Player-by-player trace from JSON pipeline. Metric-by-metric comparison without wide horizontal table dependency.
Windows shown explicitly: newly generated team recent form targets the latest 10 games; each game below shows the window actually stored in its artifact. Player historical helpers = 75 games; balancing rates = 162 games.
Savant layers shown explicitly: hitter Statcast quality, pitcher Statcast quality, and pitch movement from embedded data/all_players_stats.csv features.
Color guide: Red = final above baseline, Blue = final below baseline, Green = no difference.
| Layer | Score | Winner | Confidence | Source or usage | Synced or matches |
|---|---|---|---|---|---|
| Shipped prediction | ATL 4 - 5 LAD | LAD | 0.547 | enhanced_prediction.pre_simulation_target | True |
| Simulation draw | ATL 4 - 5 LAD | LAD | - | organic_simulation_realized_target | True |
The shipped score is reconciled to the final simulation score. The original model target remains visible as the pre-simulation audit layer.
This table distinguishes newly generated artifacts from older files. Missing trace data is shown as legacy/unavailable, never inferred.
| Priority | Change | Runtime status | Evidence |
|---|---|---|---|
| P1 | Empirical confidence blend | applied | raw=0.5977; empirical=0.5817; weight=0.5000; final=0.5897 |
| P1 | H2H margin as base feature | available | home net=-13; abs=13; home delta=-0.0750; away delta=0.0750 |
| P2 | Wider score distribution | implemented_above_requested_1.4x | variance multiplier=2.2500; floor=2.7500 |
| P2 | Simulation flip control | diagnostic_only_unless_independently_supported | candidate=False; trusted=False; published flip=False |
| P3 | Season edge + recent form | implemented | window=10; season edge=0.5802; recent edge=0.6640; blended=- |
| P3 | Continuous calibration audit | trace emitted | Checked by CONFIDENCE_CALIBRATION_APPLIED and bucket_calibration_error in learning reports. |
| Process Layer | What It Does | Stored Field | Observed Value |
|---|---|---|---|
| 1. Historical model | Starts from trained game model output. | score_evolution.steps[historical_ml] | - |
| 2. Variance layer | Applies bounded game variance before enhanced corrections. | score_evolution.steps[variance_applied] | - |
| 3. Recent/team form | Uses latest team form, recent scoring, prevention, and streak state. | enhanced_prediction_analysis.recent_form | True |
| 4. Season quality | Uses season run differential and record quality guardrails. | season_run_differential_adjustment, season_quality_guardrail | True |
| 5. Savant hitters | Applies lineup-level Statcast xwOBA, xBA, xSLG, barrel, hard-hit, sweet-spot, EV, launch-angle, whiff, K and BB quality. | savant_batter_quality_adjustment | True |
| 6. Savant pitchers | Applies starter run prevention, strikeout, walk, HR and regression factors from xwOBA, wOBA, contact quality and whiff/command. | savant_pitcher_quality_adjustment | True |
| 7. Low-score analysis | Controls unrealistic totals and preserves the pre-sync low-score expected total. | low_score_analysis | 6.8000 |
| 8. Probability/governors | Applies win probability calibration, matchup guardrails, margin governor and confidence governor. | win_probability_calibration, margin_governor, confidence_governor | 0.5467 |
| 9. Simulation reconciliation | Reconciles final shipped score with the simulation box score while retaining the pre-simulation target. | simulation_reconciliation | organic_simulation_realized_target |
| 10. Score evolution rendered | 7 stored score steps are rendered below. | game.score_evolution.steps | true |
| Step | Layer | Away Runs | Home Runs | Confidence | Description |
|---|---|---|---|---|---|
| 1 | historical_ml | 4.467 | 5.887 | - | Base ML historical model prediction |
| 2 | variance_applied | 4 | 6 | - | Deterministic baseline target (variance factor 1.0) |
| 3 | enhanced_prediction | 4 | 5 | 0.5467 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail) |
| 4 | embedded_savant_run_environment | 4 | 5 | - | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| 5 | fundamental_edge_target_review | 4 | 5 | - | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| 6 | capped_target | 4 | 5 | - | Capped at max 12 realistic runs |
| 7 | simulation_result | 4 | 5 | - | Final inning-by-inning simulation result |
{
"low_score_probability": 0.5522584469846277,
"base_low_score_probability": 0.42569964525029563,
"low_score_signal_threshold": 0.5056996452502956,
"low_score_signal_strength": 0.12655880173433204,
"confidence": 0.7486480000000002,
"factors": {
"environmental": 1.05,
"pitcher_form": 1.1,
"team_form": 1.08,
"situational": 1.04,
"combined": 1.2972960000000004
},
"prediction": "low_scoring",
"expected_total_runs": 9,
"score_scale_mode": "control",
"pre_simulation_expected_total_runs": 6.8,
"low_score_model_expected_total_runs": 6.8,
"final_simulation_total_runs": 9,
"score_source": "enhanced_prediction.pre_simulation_target"
}{
"method": "monotone_reliability_shrinkage",
"policy": "shrink_toward_even_score_floor_v3",
"sample_size": 459,
"near_bucket_sample_size": 459,
"medium_bucket_sample_size": 1079,
"wide_bucket_sample_size": 1106,
"global_sample_size": 1125,
"bucket_scope": "near_0.05",
"sparse_bucket": false,
"empirical_hit_rate": 0.5817,
"bayesian_hit_rate": 0.5786,
"prior_strength": 18.0,
"raw_pick_probability": 0.5848,
"raw_pick_probability_unclamped": 0.5848,
"score_probability_conflict": false,
"margin_implied_home_probability": 0.5436,
"margin_implied_pick_probability": 0.5436,
"score_blend_weight": 0.45,
"blended_raw_pick_probability": 0.5663,
"score_implied_floor_pick_probability": 0.5425,
"max_published_pick_probability": 0.9,
"uncapped_home_win_probability": 0.584795,
"uncapped_away_win_probability": 0.415205,
"calibrated_pick_probability": 0.5646,
"predicted_side": "home",
"reliability": 0.962264,
"shrink_floor": 0.35,
"empirical_penalty": 1.0,
"shrinkage_weight": 0.975472
}{
"method": "empirical_hit_rate_weighted_v1",
"applied": true,
"reason": "raw confidence blended with verified historical bucket hit rate",
"raw_confidence": 0.597692,
"sample_size": 459,
"empirical_hit_rate": 0.5817,
"empirical_weight": 0.5,
"blended_confidence": 0.589696,
"published_confidence": 0.546692,
"published_after_governors": true,
"governor_mode": "shrinkage_not_clamp"
}{
"method": "h2h_net_margin_monotonic_v1",
"available": true,
"sample_size": 5,
"sample_weight": 0.0577,
"home_net_margin": -13.0,
"absolute_net_margin": 13.0,
"home_average_margin": -2.6,
"home_run_delta": -0.075,
"away_run_delta": 0.075,
"evidence": [
{
"game_id": null,
"home_margin": -1.0
},
{
"game_id": null,
"home_margin": -1.0
},
{
"game_id": null,
"home_margin": -1.0
},
{
"game_id": null,
"home_margin": -5.0
},
{
"game_id": null,
"home_margin": -5.0
}
],
"adaptive_parameters": {
"h2h.history_limit": 5,
"h2h.maximum_weight": 0.15,
"h2h.prior_games": 8.0,
"h2h.maximum_total_shift": 0.65
}
}{
"applied": true,
"home": {
"team": "LAD",
"games": 162,
"wins": 100,
"losses": 62,
"win_pct": 0.6172839506172839,
"runs_scored": 801,
"runs_allowed": 600,
"run_differential": 201,
"run_differential_per_game": 1.2407407407407407,
"available": true
},
"away": {
"team": "ATL",
"games": 162,
"wins": 94,
"losses": 68,
"win_pct": 0.5802469135802469,
"runs_scored": 742,
"runs_allowed": 626,
"run_differential": 116,
"run_differential_per_game": 0.7160493827160493,
"available": true
},
"run_differential_edge_per_game": 0.5247,
"win_pct_edge": 0.037,
"quality_edge": 0.6096,
"season_quality_edge": 0.5802,
"recent_quality_blend": {
"method": "season_recent_quality_blend_v2_adaptive",
"recent_window": 10,
"season_quality_edge": 0.5802,
"recent_quality_edge": 0.664,
"season_weight": 0.65,
"recent_weight": 0.35,
"recent_reliability": 1.0,
"alignment": "aligned",
"blended_quality_edge": 0.6096
},
"margin_adjustment": 0.256,
"reason": "season-to-date run differential and record moved the score toward the stronger team",
"margin_adjustment_policy": {
"adjustment": 0.256,
"cap": 1.4,
"scale": 0.42,
"quality_edge": 0.6096,
"season_quality_edge": 0.5802,
"recent_alignment": "aligned",
"large_edge_supported_by_recent_form": false,
"method": "standard_bounded_season_recent_adjustment"
},
"adjusted_score": {
"away_runs": 1.861,
"home_runs": 6.104,
"home_win_probability": 0.8607
}
}{
"most_likely": [
{
"home_runs": 4,
"away_runs": 4,
"probability": 0.020286602876242513
},
{
"home_runs": 4,
"away_runs": 3,
"probability": 0.019844809488443825
},
{
"home_runs": 5,
"away_runs": 4,
"probability": 0.019833664882420794
},
{
"home_runs": 5,
"away_runs": 3,
"probability": 0.01940173539406224
},
{
"home_runs": 3,
"away_runs": 4,
"probability": 0.018704375468971954
}
],
"home_distribution": {
"0": 0.052919983399183614,
"1": 0.07836158878234728,
"2": 0.10459581148303007,
"3": 0.12584990209090946,
"4": 0.13649570871625613,
"5": 0.13344817567938594,
"6": 0.11760717330278227,
"7": 0.09342917414207082,
"8": 0.06690502473180449,
"9": 0.04318793992986577,
"10": 0.025130074098572937,
"11": 0.013181127990904703,
"12": 0.0062321645628381364,
"13": 0.002656151090048298
},
"away_distribution": {
"0": 0.06596937904702013,
"1": 0.0968621198279498,
"2": 0.12605182833747278,
"3": 0.1453877903934454,
"4": 0.14862447374381416,
"5": 0.13465929312730648,
"6": 0.10813491363944308,
"7": 0.07696249740114328,
"8": 0.04854851753850212,
"9": 0.02714290963653067,
"10": 0.013449942744312465,
"11": 0.005907015046905457,
"12": 0.0022993195161541756
},
"model": "overdispersed_score_distribution",
"variance_multiplier": 2.25,
"variance_floor": 2.75,
"roadmap_status": "implemented_above_requested_1.4x"
}{
"applied": true,
"confidence_cap": 0.56,
"winner_flipped": false,
"reasons": [
"latest same-matchup result beat the predicted side",
"recent head-to-head margin does not support a strong repeat pick",
"a prior same-side pick already missed against the actual result"
],
"signals": {
"predicted_team": "LAD",
"opponent_team": "ATL",
"h2h_net_margin": -3,
"opponent_breakout": false,
"opponent_blowout_win": false,
"split_recent_h2h": false,
"recent_h2h": [
{
"date": "2026-08-27",
"predicted_team_runs": 0,
"opponent_runs": 1,
"margin_for_predicted_team": -1,
"winner": "ATL"
},
{
"date": "2026-08-26",
"predicted_team_runs": 5,
"opponent_runs": 6,
"margin_for_predicted_team": -1,
"winner": "ATL"
},
{
"date": "2026-08-25",
"predicted_team_runs": 3,
"opponent_runs": 4,
"margin_for_predicted_team": -1,
"winner": "ATL"
}
],
"prediction_memory": {
"available": true,
"reason": "verified_prior_matchup_predictions_available",
"verification_policy": "pregame_artifact_matched_to_one_official_final",
"verified_outcome_count": 3,
"consecutive_same_pick_count": 0,
"same_pick_actual_loss_count": 2,
"same_pick_blowout_loss_count": 0,
"prior_predictions": [
{
"date": "20260827",
"away": "LAD",
"home": "ATL",
"game_number": 1,
"predicted_team": "ATL",
"actual_winner": "ATL",
"actual_margin": 1,
"raw_pick_probability": 0.560841,
"artifact": "20260827_LAD@ATL.json",
"verification": "pregame_official_final"
},
{
"date": "20260826",
"away": "LAD",
"home": "ATL",
"game_number": 1,
"predicted_team": "LAD",
"actual_winner": "ATL",
"actual_margin": 1,
"raw_pick_probability": 0.5486690000000001,
"artifact": "20260826_LAD@ATL.json",
"verification": "pregame_official_final"
},
{
"date": "20260825",
"away": "LAD",
"home": "ATL",
"game_number": 1,
"predicted_team": "LAD",
"actual_winner": "ATL",
"actual_margin": 1,
"raw_pick_probability": 0.5545089999999999,
"artifact": "20260825_LAD@ATL.json",
"verification": "pregame_official_final"
}
]
},
"guardrail_predicted_team": "LAD",
"guardrail_opponent_team": "ATL",
"output_pre_simulation_winner": "LAD",
"output_opponent_team": "ATL",
"simulation_score_winner": "LAD",
"final_score_winner": "LAD",
"pre_simulation_winner": "LAD",
"winner_flipped_by_simulation": false,
"simulation_would_flip_winner": false
},
"hard_flip_suppressed": false,
"flip_authority": "caps_confidence_and_shifts_runs_only",
"final_prediction_sync": {
"pre_simulation_score": {
"away_runs": 4,
"home_runs": 5,
"score_text": "ATL 4 - 5 LAD",
"winner": "LAD"
},
"final_simulation_score": {
"away_runs": 4,
"home_runs": 5,
"score_text": "ATL 4 - 5 LAD",
"winner": "LAD"
},
"winner_flipped_by_simulation": false,
"simulation_would_flip_winner": false,
"sim_flipped_pre_winner": false,
"sim_flip_trusted": false,
"sim_flip_policy": "diagnostic_only_unless_independently_supported",
"independent_margin_support": false,
"independent_margin_support_evidence": {
"pitcher_matchup_edge_home_minus_away": -0.0282,
"recent_form_edge_home_minus_away": 0.314,
"winner_direction": "home",
"thresholds": {
"pitcher_matchup": 0.35,
"recent_form": 0.75
}
},
"margin_widening_capped": false,
"simulation_winner_agrees": true,
"away_run_delta": 0,
"home_run_delta": 0,
"total_run_delta": 0,
"score_source": "enhanced_prediction.pre_simulation_target",
"simulation_usage": "organic_simulation_realized_target",
"final_prediction_source": "stable_final_prediction_policy",
"final_decision_policy": {
"policy_version": "model_target_authoritative_simulation_realizes_v3",
"away_runs": 4,
"home_runs": 5,
"winner": "LAD",
"model_winner": "LAD",
"simulation_winner": "LAD",
"simulation_winner_agrees": true,
"simulation_agreement_scope": "selected_draw_only",
"simulation_distribution_agreement": {
"available": true,
"draw_count": 4,
"published_winner": "LAD",
"published_winner_draw_share": 0.5,
"draw_majority_team": null,
"published_winner_is_draw_majority": false,
"sampling": "target_conditioned_selection",
"is_unbiased_probability_sample": false,
"note": "Draw shares are target-conditioned and diagnostic. A published winner holding a minority share is recorded, not suppressed."
},
"simulation_score_enabled": true,
"independent_margin_support": false,
"margin_widening_capped": false,
"model_margin": 1,
"simulation_margin": 1,
"simulation_usage": "organic_simulation_realized_target",
"score_source": "enhanced_prediction.pre_simulation_target",
"simulation_realized_target": true,
"model_score": {
"away_runs": 4,
"home_runs": 5
},
"simulation_score": {
"away_runs": 4,
"home_runs": 5
}
},
"final_margin_quality_review": {
"review_required": false,
"pre_margin": 1,
"final_margin": 1,
"winner_quality_edge": 0.6096,
"winner": "LAD",
"score_reviewed": {
"away_runs": 4,
"home_runs": 5,
"source": "enhanced_prediction.pre_simulation_target"
},
"reason": "published margin is directionally supported or within review threshold"
}
}
}{
"applied": false,
"confidence_cap": null,
"winner_flipped": false,
"hard_flip_suppressed": false,
"policy": "recency_uncertainty_shrinkage_v2",
"reasons": [],
"signals": {
"home": {
"team": "LAD",
"games": 162,
"wins": 100,
"losses": 62,
"win_pct": 0.6172839506172839,
"runs_scored": 801,
"runs_allowed": 600,
"run_differential": 201,
"run_differential_per_game": 1.2407407407407407,
"available": true
},
"away": {
"team": "ATL",
"games": 162,
"wins": 94,
"losses": 68,
"win_pct": 0.5802469135802469,
"runs_scored": 742,
"runs_allowed": 626,
"run_differential": 116,
"run_differential_per_game": 0.7160493827160493,
"available": true
}
}
}{
"applied": false,
"raw_margin": 0.6,
"final_margin": 0.6,
"margin_cap": 1.5,
"season_quality_edge": 0.6096,
"reason": "raw target margin within supported range"
}{
"applied": true,
"policy": "align_to_calibrated_probability_v2",
"raw_confidence": 0.56,
"final_confidence": 0.5646,
"calibrated_pick_probability": 0.5646,
"shrinkage_weight": 0.975472,
"hard_maximum": 0.9,
"confidence_floor": 0.505,
"score_gap": 0.6,
"calibration_sample_size": 459,
"calibration_empirical_hit_rate": 0.5817,
"calibration_bayesian_hit_rate": 0.5786,
"calibration_sparse_bucket": false,
"season_quality_edge": 0.6096,
"reasons": [
"confidence aligned to the calibrated pick probability"
],
"score_coherence": {
"policy": "probability_follows_published_score_v1",
"published_score": {
"away_runs": 4,
"home_runs": 5
},
"margin": 1,
"probability_before": 0.564626,
"margin_implied_home_probability": 0.572388,
"shrinkage_weight": 0.975472,
"side_flipped": false,
"applied": false,
"magnitude_pull_suppressed": true,
"probability_after": 0.564626,
"aligned_pick_probability": 0.564626
},
"starter_experience": {
"applied": false,
"min_starter_games": 26,
"shrink_factor": 1.0
}
}{
"pre_simulation_score": {
"away_runs": 4,
"home_runs": 5,
"score_text": "ATL 4 - 5 LAD",
"winner": "LAD"
},
"final_simulation_score": {
"away_runs": 4,
"home_runs": 5,
"score_text": "ATL 4 - 5 LAD",
"winner": "LAD"
},
"winner_flipped_by_simulation": false,
"simulation_would_flip_winner": false,
"sim_flipped_pre_winner": false,
"sim_flip_trusted": false,
"sim_flip_policy": "diagnostic_only_unless_independently_supported",
"independent_margin_support": false,
"independent_margin_support_evidence": {
"pitcher_matchup_edge_home_minus_away": -0.0282,
"recent_form_edge_home_minus_away": 0.314,
"winner_direction": "home",
"thresholds": {
"pitcher_matchup": 0.35,
"recent_form": 0.75
}
},
"margin_widening_capped": false,
"simulation_winner_agrees": true,
"away_run_delta": 0,
"home_run_delta": 0,
"total_run_delta": 0,
"score_source": "enhanced_prediction.pre_simulation_target",
"simulation_usage": "organic_simulation_realized_target",
"final_prediction_source": "stable_final_prediction_policy",
"final_decision_policy": {
"policy_version": "model_target_authoritative_simulation_realizes_v3",
"away_runs": 4,
"home_runs": 5,
"winner": "LAD",
"model_winner": "LAD",
"simulation_winner": "LAD",
"simulation_winner_agrees": true,
"simulation_agreement_scope": "selected_draw_only",
"simulation_distribution_agreement": {
"available": true,
"draw_count": 4,
"published_winner": "LAD",
"published_winner_draw_share": 0.5,
"draw_majority_team": null,
"published_winner_is_draw_majority": false,
"sampling": "target_conditioned_selection",
"is_unbiased_probability_sample": false,
"note": "Draw shares are target-conditioned and diagnostic. A published winner holding a minority share is recorded, not suppressed."
},
"simulation_score_enabled": true,
"independent_margin_support": false,
"margin_widening_capped": false,
"model_margin": 1,
"simulation_margin": 1,
"simulation_usage": "organic_simulation_realized_target",
"score_source": "enhanced_prediction.pre_simulation_target",
"simulation_realized_target": true,
"model_score": {
"away_runs": 4,
"home_runs": 5
},
"simulation_score": {
"away_runs": 4,
"home_runs": 5
}
},
"final_margin_quality_review": {
"review_required": false,
"pre_margin": 1,
"final_margin": 1,
"winner_quality_edge": 0.6096,
"winner": "LAD",
"score_reviewed": {
"away_runs": 4,
"home_runs": 5,
"source": "enhanced_prediction.pre_simulation_target"
},
"reason": "published margin is directionally supported or within review threshold"
}
}{
"away_runs": 4,
"home_runs": 5,
"confidence": 0.546692285,
"home_win_probability": 0.546692285,
"away_win_probability": 0.453307715,
"predicted_score_text": "ATL 4 - 5 LAD",
"embedded_savant_score_adjustment": {
"applied": true,
"source": "all_players_stats.csv embedded temporal Savant features",
"feature_contract": {
"training_grain": "one player-game row after collapsing granular at-bat rows",
"temporal_rule": "all sl_/ab_/sv_ model features are shifted before the predicted game",
"hitter_signals": [
"xwoba",
"xba",
"xslg",
"barrel_batted_rate",
"hard_hit_percent",
"bat_speed",
"launch_quality",
"walk_rate",
"strikeout_rate"
],
"pitcher_signals": [
"xwoba_allowed",
"barrel_allowed",
"hard_hit_allowed",
"whiff_rate",
"command_score",
"movement_score",
"faced_est_woba",
"faced_strikeout_rate"
]
},
"away": {
"team": "ATL",
"original_runs": 4,
"run_delta": -0.3704,
"adjusted_runs": 4,
"lineup": {
"players_used": 9,
"total_weight": 33.0,
"quality": 0.2558500317038986,
"contact": 0.10279450790437787,
"power": 0.33023258414037043,
"discipline": -0.061532422202231096,
"xwoba": 0.31533333333333335,
"recent_xwoba": 0.31533333333333335,
"barrel": 9.127272727272729,
"ab_hard_contact": 0.4021754923312174,
"ab_bat_speed": 71.76270845504575,
"ab_strikeout_rate": 0.22101177168158065,
"available_players": 9,
"top_players": [
{
"player_id": "686948",
"player_name": "Drake Baldwin",
"position": "DH",
"weight": 4.0,
"quality": 1.067755924823887,
"contact": 1.1854940316627276,
"power": 1.3546510532173006,
"discipline": 0.06727713762870027,
"xwoba": 0.37,
"recent_xwoba": 0.37,
"barrel": 12.9,
"ab_hard_contact": 0.995497254822202,
"ab_bat_speed": 74.04242166604175,
"ab_strikeout_rate": 0.21868489583333334,
"available": 1.0
},
{
"player_id": "621566",
"player_name": "Matt Olson",
"position": "1B",
"weight": 4.0,
"quality": 0.9831297031087539,
"contact": 0.8530022677582484,
"power": 1.5411991953028064,
"discipline": -0.03793479193479189,
"xwoba": 0.351,
"recent_xwoba": 0.351,
"barrel": 14.2,
"ab_hard_contact": 1.458841048913274,
"ab_bat_speed": 73.3893757057633,
"ab_strikeout_rate": 0.24996825396825395,
"available": 1.0
},
{
"player_id": "673490",
"player_name": "Ha-Seong Kim",
"position": "SS",
"weight": 3.0,
"quality": -0.7294607250020677,
"contact": -1.843598515822773,
"power": -1.6260931367224813,
"discipline": 0.32365678315678337,
"xwoba": 0.222,
"recent_xwoba": 0.222,
"barrel": 2.2,
"ab_hard_contact": -0.7344341630210678,
"ab_bat_speed": 70.23906339031339,
"ab_strikeout_rate": 0.24316239316239313,
"available": 1.0
},
{
"player_id": "660670",
"player_name": "Ronald Acuña Jr.",
"position": "RF",
"weight": 4.0,
"quality": 0.7871434366065145,
"contact": 0.7192114997607264,
"power": 1.0947417743193364,
"discipline": 0.1870400894266875,
"xwoba": 0.366,
"recent_xwoba": 0.366,
"barrel": 13.0,
"ab_hard_contact": 0.6971212006724454,
"ab_bat_speed": 73.83432465277778,
"ab_strikeout_rate": 0.22835051546391752,
"available": 1.0
},
{
"player_id": "671739",
"player_name": "Michael Harris II",
"position": "CF",
"weight": 4.0,
"quality": 0.7025568952112299,
"contact": 0.9402252115609542,
"power": 0.9333153471044517,
"discipline": -0.5114608769608769,
"xwoba": 0.342,
"recent_xwoba": 0.342,
"barrel": 10.3,
"ab_hard_contact": 0.8125926563747535,
"ab_bat_speed": 73.34894278169014,
"ab_strikeout_rate": 0.19970862470862472,
"available": 1.0
}
]
},
"opposing_starter": {
"available": true,
"player_id": "669373",
"player_name": "Tarik Skubal",
"quality": 0.8057305036745217,
"contact": 0.9621485086257785,
"command": 0.7578228733623079,
"movement": 0.8149481255993812,
"xwoba": 0.266,
"whiff": 31.7,
"faced_est_woba": 0.2648406655555556,
"faced_launch_speed": 83.79124666446208,
"faced_strikeout_rate": 0.2356947200176367,
"faced_run_exp": 0.006483162950047203
}
},
"home": {
"team": "LAD",
"original_runs": 5,
"run_delta": 0.2249,
"adjusted_runs": 5,
"lineup": {
"players_used": 9,
"total_weight": 33.0,
"quality": 0.5827005734377083,
"contact": 0.6762740948814864,
"power": 0.6223615267206188,
"discipline": 0.3441384328894329,
"xwoba": 0.3511818181818182,
"recent_xwoba": 0.3511818181818182,
"barrel": 9.863636363636363,
"ab_hard_contact": 0.3234210106028587,
"ab_bat_speed": 70.18217410307513,
"ab_strikeout_rate": 0.20212663087563087,
"available_players": 9,
"top_players": [
{
"player_id": "660271",
"player_name": "Shohei Ohtani",
"position": "DH",
"weight": 4.0,
"quality": 1.4511307265651827,
"contact": 1.4880526339692746,
"power": 1.9443557070911328,
"discipline": 0.24233356123981115,
"xwoba": 0.397,
"recent_xwoba": 0.397,
"barrel": 16.4,
"ab_hard_contact": 0.988066522775036,
"ab_bat_speed": 73.56303624131945,
"ab_strikeout_rate": 0.23862847222222222,
"available": 1.0
},
{
"player_id": "669257",
"player_name": "Will Smith",
"position": "C",
"weight": 4.0,
"quality": 1.067129067214595,
"contact": 1.1538074083668364,
"power": 1.0275283976096223,
"discipline": 0.9242677170257816,
"xwoba": 0.389,
"recent_xwoba": 0.389,
"barrel": 12.4,
"ab_hard_contact": 0.6099965236210222,
"ab_bat_speed": 68.76802419354838,
"ab_strikeout_rate": 0.18440860215053764,
"available": 1.0
},
{
"player_id": "571970",
"player_name": "Max Muncy",
"position": "3B",
"weight": 3.0,
"quality": 0.5677616041948967,
"contact": 0.4423636639177735,
"power": 0.991286300631285,
"discipline": 0.09595004180405639,
"xwoba": 0.349,
"recent_xwoba": 0.349,
"barrel": 12.9,
"ab_hard_contact": 0.3636307745304643,
"ab_bat_speed": 69.76265878808944,
"ab_strikeout_rate": 0.2729405630865485,
"available": 1.0
},
{
"player_id": "518692",
"player_name": "Freddie Freeman",
"position": "1B",
"weight": 4.0,
"quality": 0.6846238646246284,
"contact": 0.948396344086376,
"power": 0.5476474606376515,
"discipline": 0.3948812152192435,
"xwoba": 0.363,
"recent_xwoba": 0.363,
"barrel": 8.1,
"ab_hard_contact": 0.3125682603720786,
"ab_bat_speed": 69.18827654817797,
"ab_strikeout_rate": 0.16743796109993292,
"available": 1.0
},
{
"player_id": "605141",
"player_name": "Mookie Betts",
"position": "SS",
"weight": 4.0,
"quality": 0.5833424421080954,
"contact": 0.7878646391167321,
"power": 0.3700288420898362,
"discipline": 0.8562347607347607,
"xwoba": 0.339,
"recent_xwoba": 0.339,
"barrel": 7.8,
"ab_hard_contact": 0.2550530322729164,
"ab_bat_speed": 68.07022756132757,
"ab_strikeout_rate": 0.10772727272727273,
"available": 1.0
}
]
},
"opposing_starter": {
"available": true,
"player_id": "689266",
"player_name": "Dylan Dodd",
"quality": 0.3118732958256852,
"contact": 0.6323832272614132,
"command": 0.39796573050516515,
"movement": 0.33844378162402344,
"xwoba": 0.273,
"whiff": 29.5,
"faced_est_woba": 0.2648406655555556,
"faced_launch_speed": 83.79124666446208,
"faced_strikeout_rate": 0.2356947200176367,
"faced_run_exp": 0.006483162950047203
}
}
},
"fundamental_edge_target_review": {
"applied": false,
"method": "post_score_adjustment_fundamental_edge_review_v1",
"previous_score": {
"away_runs": 4,
"home_runs": 5,
"winner_side": "home"
},
"adjusted_score": {
"away_runs": 4,
"home_runs": 5,
"winner_side": "home"
},
"signals": {
"season_quality_edge_home_minus_away": 0.6096,
"recent_form_edge_home_minus_away": 0.314,
"pitcher_matchup_edge_home_minus_away": -0.0282,
"composite_home_edge": 0.5317,
"existing_home_win_probability": 0.5646,
"refreshed_home_win_probability": 0.7,
"winner_support_before_review": 0.5317
},
"reasons": [
"target direction already matched refreshed fundamentals or margin was not fragile"
]
},
"uncapped_home_win_probability": 0.564626,
"uncapped_away_win_probability": 0.435374,
"confidence_shrinkage": {
"policy": "starter_quality_shrinkage_v3",
"staged_confidence": 0.564626,
"discount_factor": 0.7225,
"published_confidence": 0.546692,
"guardrail_confidence_cap": 0.56,
"guardrail_cap_enforced": false,
"applied_discounts": [
{
"reason": "projected_margin_is_one_run",
"factor": 0.85
},
{
"reason": "matchup_recency_guardrail",
"factor": 0.85
}
]
},
"score_probability_reconciliation": {
"policy": "published_probability_follows_published_score_v1",
"incoming_home_win_probability": 0.7,
"incoming_favoured_side": "home",
"score_winner_side": "home",
"published_home_win_probability": 0.546692,
"probability_side_reverted_by_score": false,
"note": "The probability and the projected score agree on the winner."
},
"confidence_note": "Probability shrunk toward even by starter-quality and guardrail discounts; no per-game clamp is applied. Discounts: projected_margin_is_one_run x0.85, matchup_recency_guardrail x0.85.",
"pre_simulation_target": {
"away_runs": 4,
"home_runs": 5,
"predicted_score_text": "ATL 4 - 5 LAD",
"confidence": 0.546692285,
"source": "enhanced_prediction_before_inning_simulation"
},
"score_source": "enhanced_prediction.pre_simulation_target",
"final_prediction_synced": true,
"final_prediction_source": "stable_final_prediction_policy",
"simulation_usage": "organic_simulation_realized_target",
"simulation_score_matches_prediction": true,
"simulation_reconciliation": {
"pre_simulation_score": {
"away_runs": 4,
"home_runs": 5,
"score_text": "ATL 4 - 5 LAD",
"winner": "LAD"
},
"final_simulation_score": {
"away_runs": 4,
"home_runs": 5,
"score_text": "ATL 4 - 5 LAD",
"winner": "LAD"
},
"winner_flipped_by_simulation": false,
"simulation_would_flip_winner": false,
"sim_flipped_pre_winner": false,
"sim_flip_trusted": false,
"sim_flip_policy": "diagnostic_only_unless_independently_supported",
"independent_margin_support": false,
"independent_margin_support_evidence": {
"pitcher_matchup_edge_home_minus_away": -0.0282,
"recent_form_edge_home_minus_away": 0.314,
"winner_direction": "home",
"thresholds": {
"pitcher_matchup": 0.35,
"recent_form": 0.75
}
},
"margin_widening_capped": false,
"simulation_winner_agrees": true,
"away_run_delta": 0,
"home_run_delta": 0,
"total_run_delta": 0,
"score_source": "enhanced_prediction.pre_simulation_target",
"simulation_usage": "organic_simulation_realized_target",
"final_prediction_source": "stable_final_prediction_policy",
"final_decision_policy": {
"policy_version": "model_target_authoritative_simulation_realizes_v3",
"away_runs": 4,
"home_runs": 5,
"winner": "LAD",
"model_winner": "LAD",
"simulation_winner": "LAD",
"simulation_winner_agrees": true,
"simulation_agreement_scope": "selected_draw_only",
"simulation_distribution_agreement": {
"available": true,
"draw_count": 4,
"published_winner": "LAD",
"published_winner_draw_share": 0.5,
"draw_majority_team": null,
"published_winner_is_draw_majority": false,
"sampling": "target_conditioned_selection",
"is_unbiased_probability_sample": false,
"note": "Draw shares are target-conditioned and diagnostic. A published winner holding a minority share is recorded, not suppressed."
},
"simulation_score_enabled": true,
"independent_margin_support": false,
"margin_widening_capped": false,
"model_margin": 1,
"simulation_margin": 1,
"simulation_usage": "organic_simulation_realized_target",
"score_source": "enhanced_prediction.pre_simulation_target",
"simulation_realized_target": true,
"model_score": {
"away_runs": 4,
"home_runs": 5
},
"simulation_score": {
"away_runs": 4,
"home_runs": 5
}
},
"final_margin_quality_review": {
"review_required": false,
"pre_margin": 1,
"final_margin": 1,
"winner_quality_edge": 0.6096,
"winner": "LAD",
"score_reviewed": {
"away_runs": 4,
"home_runs": 5,
"source": "enhanced_prediction.pre_simulation_target"
},
"reason": "published margin is directionally supported or within review threshold"
}
},
"decision_profile": {
"method": "priced_decision_profile_v2",
"winner": "LAD",
"display_confidence": 0.5467,
"internal_signal_score": 0.572,
"internal_signal_status": "ranking_signal_not_a_calibrated_fair_probability",
"model_pick_probability": 0.5467,
"confidence_compression_detected": true,
"moneyline_fit": "unavailable_without_market_price",
"betting_status": "price_required_before_betting_analysis",
"market_context": null,
"margin_fit": "moneyline_preferred_over_margin",
"totals_fit": "low_total_lean",
"winner_accuracy_and_margin_accuracy_decoupled": true,
"signals": {
"final_margin": 1,
"winner_quality_edge": 0.6096,
"winner_recent_form_edge": 0.664,
"winner_pitcher_matchup_edge": -0.0282,
"winner_simulation_draw_rate": 0.5,
"blowout_draw_rate_margin_4_plus": 0.25,
"high_total_draw_rate_11_plus": 0.0,
"low_total_draw_rate_6_or_less": 0.75,
"total_runs_spread": {
"min": 4,
"median": 5,
"max": 9,
"range": 5
}
},
"interpretation": "The internal signal is diagnostic, not a sportsbook fair price. A bet cannot be evaluated without a source-labelled market price; model/market disagreements are a pass until independently validated."
}
}Source: data/all_players_stats.csv embedded Savant hitter features. It adjusts team offense through expected production and contact quality, then records coverage so missing hitters are visible.
| Team | Applied | Offense Factor | Raw Avg Factor | Coverage Weight | Covered | Missing |
|---|---|---|---|---|---|---|
| Away ATL | True | 1.0304 | 1.0304 | 1 | 9 | 0 |
| Home LAD | True | 1.0673 | 1.0673 | 1 | 9 | 0 |
| Pos | Player | ESPN Rank | Off Factor | Quality | Regression | xwOBA | xBA | xSLG | Barrel% | HardHit% | EV | LA | Whiff% | K% | BB% | Regression Edge |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| DH | Drake Baldwin | - | 1.1093 | 1.4576 | neutral | 0.3700 | 0.2790 | 0.5050 | 12.90 | 50.60 | 91.50 | 11 | 24.40 | 21.50 | 8.90 | 0.3429 |
| 2B | Ozzie Albies | - | 0.9552 | -0.5967 | neutral | 0.2730 | 0.2210 | 0.3370 | 3.80 | 27.70 | 87.10 | 17.80 | 21.20 | 15.40 | 6.70 | -0.7143 |
| CF | Michael Harris II | - | 1.0702 | 0.9360 | neutral | 0.3420 | 0.2900 | 0.4770 | 10.30 | 47.60 | 90.50 | 10 | 24.60 | 19.20 | 3.70 | -0.2000 |
| 1B | Matt Olson | - | 1.0899 | 1.1980 | neutral | 0.3510 | 0.2470 | 0.5030 | 14.20 | 52 | 92.50 | 18.10 | 25.40 | 24.50 | 9.20 | 0 |
| RF | Ronald Acuña Jr. | - | 1.0946 | 1.2607 | neutral | 0.3660 | 0.2610 | 0.4950 | 13 | 43.50 | 89.60 | 15.70 | 29 | 22 | 11.30 | 0.5143 |
| LF | Mauricio Dubón | - | 0.9974 | -0.0343 | neutral | 0.3040 | 0.2680 | 0.3750 | 4 | 29.40 | 86.50 | 16.10 | 15.30 | 11.80 | 5.70 | -0.3714 |
| C | Sean Murphy | - | 0.9903 | -0.1298 | neutral | 0.2730 | 0.2060 | 0.3320 | 8.20 | 41.10 | 87.80 | 5.60 | 31.90 | 30.60 | 9.10 | 0.6000 |
| 3B | Austin Riley | - | 1.0239 | 0.3191 | neutral | 0.2990 | 0.2130 | 0.3960 | 12.40 | 44.30 | 91.30 | 18.50 | 31.90 | 31.90 | 7.60 | 0.2571 |
| SS | Ha-Seong Kim | - | 0.9432 | -0.7574 | positive_batter_regression | 0.2220 | 0.1570 | 0.2060 | 2.20 | 25 | 85.90 | 19.90 | 20.20 | 25.90 | 10.90 | 1.2000 |
| Pos | Player | ESPN Rank | Off Factor | Quality | Regression | xwOBA | xBA | xSLG | Barrel% | HardHit% | EV | LA | Whiff% | K% | BB% | Regression Edge |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| DH | Shohei Ohtani | - | 1.1401 | 1.8682 | neutral | 0.3970 | 0.2860 | 0.5520 | 16.40 | 52.10 | 93.30 | 12.30 | 31.70 | 24.60 | 13.10 | 0.5714 |
| LF | Teoscar Hernández | - | 1.0522 | 0.6961 | neutral | 0.3320 | 0.2560 | 0.4370 | 10.70 | 44.80 | 90.30 | 13.90 | 32.60 | 27.50 | 8.60 | 0 |
| SS | Mookie Betts | - | 1.0592 | 0.7895 | neutral | 0.3390 | 0.2780 | 0.4350 | 7.80 | 38 | 90.20 | 17.90 | 12.50 | 11 | 8.90 | 0.0286 |
| C | Will Smith | - | 1.1236 | 1.6486 | positive_batter_regression | 0.3890 | 0.2790 | 0.5020 | 12.40 | 41.20 | 89.10 | 20.10 | 16.70 | 16.30 | 12.30 | 1.2571 |
| 1B | Freddie Freeman | - | 1.0846 | 1.1277 | neutral | 0.3630 | 0.2900 | 0.4630 | 8.10 | 41.30 | 89.50 | 12.20 | 23.20 | 17.70 | 10 | 0.4286 |
| 3B | Max Muncy | - | 1.0693 | 0.9236 | neutral | 0.3490 | 0.2420 | 0.4700 | 12.90 | 45.80 | 89.90 | 17.50 | 29.20 | 25 | 11.60 | -0.3429 |
| RF | Kyle Tucker | - | 1.0358 | 0.4771 | neutral | 0.3310 | 0.2560 | 0.3930 | 6.40 | 36.30 | 88.50 | 18.10 | 20.80 | 16.70 | 12.40 | 0.3714 |
| 2B | Tommy Edman | - | 0.9855 | -0.1936 | neutral | 0.3030 | 0.2400 | 0.3470 | 5.30 | 32 | 87.30 | 13.10 | 23 | 20.20 | 6.60 | -0.4857 |
| CF | Andy Pages | - | 1.0550 | 0.7337 | neutral | 0.3430 | 0.2740 | 0.4420 | 7.90 | 42.30 | 88.90 | 15.70 | 22.10 | 19.70 | 8.50 | -0.2571 |
{
"home": {
"applied": true,
"offense_factor": 1.0673,
"raw_average_factor": 1.0673,
"team_espn_average_rank": null,
"coverage_weight": 1.0,
"covered_batters": 9,
"missing_batters": 0,
"players": [
{
"position": "DH",
"player_id": "660271",
"player_name": "Shohei Ohtani",
"offense_factor": 1.1401,
"quality_score": 1.8682,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "660271",
"espn_rank": null
},
"metrics": {
"pa": 571.0,
"k_percent": 24.6,
"bb_percent": 13.1,
"woba": 0.377,
"xwoba": 0.397,
"xba": 0.286,
"xslg": 0.552,
"sweet_spot_percent": 38.0,
"barrel_batted_rate": 16.4,
"hard_hit_percent": 52.1,
"exit_velocity_avg": 93.3,
"launch_angle_avg": 12.3,
"whiff_percent": 31.7,
"swing_percent": 46.6
},
"components": {
"expected_quality": 2.0793,
"regression_edge": 0.5714,
"xwoba_edge": 2.5,
"xba_edge": 1.4286,
"xslg_edge": 2.5,
"barrel_edge": 2.1778,
"hard_hit_edge": 2.0714,
"exit_velocity_edge": 1.96,
"sweet_spot_edge": 0.7833,
"launch_angle_hr_bonus": 0.2
}
},
{
"position": "LF",
"player_id": "606192",
"player_name": "Teoscar Hernández",
"offense_factor": 1.0522,
"quality_score": 0.6961,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "606192",
"espn_rank": null
},
"metrics": {
"pa": 443.0,
"k_percent": 27.5,
"bb_percent": 8.6,
"woba": 0.332,
"xwoba": 0.332,
"xba": 0.256,
"xslg": 0.437,
"sweet_spot_percent": 33.5,
"barrel_batted_rate": 10.7,
"hard_hit_percent": 44.8,
"exit_velocity_avg": 90.3,
"launch_angle_avg": 13.9,
"whiff_percent": 32.6,
"swing_percent": 48.0
},
"components": {
"expected_quality": 0.8094,
"regression_edge": 0.0,
"xwoba_edge": 0.9429,
"xba_edge": 0.5714,
"xslg_edge": 1.0571,
"barrel_edge": 0.9111,
"hard_hit_edge": 1.0286,
"exit_velocity_edge": 0.76,
"sweet_spot_edge": 0.0333,
"launch_angle_hr_bonus": 0.2
}
},
{
"position": "SS",
"player_id": "605141",
"player_name": "Mookie Betts",
"offense_factor": 1.0592,
"quality_score": 0.7895,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "605141",
"espn_rank": null
},
"metrics": {
"pa": 475.0,
"k_percent": 11.0,
"bb_percent": 8.9,
"woba": 0.338,
"xwoba": 0.339,
"xba": 0.278,
"xslg": 0.435,
"sweet_spot_percent": 40.4,
"barrel_batted_rate": 7.8,
"hard_hit_percent": 38.0,
"exit_velocity_avg": 90.2,
"launch_angle_avg": 17.9,
"whiff_percent": 12.5,
"swing_percent": 41.3
},
"components": {
"expected_quality": 0.9134,
"regression_edge": 0.0286,
"xwoba_edge": 1.1429,
"xba_edge": 1.2,
"xslg_edge": 1.0286,
"barrel_edge": 0.2667,
"hard_hit_edge": 0.0571,
"exit_velocity_edge": 0.72,
"sweet_spot_edge": 1.1833,
"launch_angle_hr_bonus": 0.2
}
},
{
"position": "C",
"player_id": "669257",
"player_name": "Will Smith",
"offense_factor": 1.1236,
"quality_score": 1.6486,
"regression_flag": "positive_batter_regression",
"espn_rank": {
"available": false,
"player_id": "669257",
"espn_rank": null
},
"metrics": {
"pa": 242.0,
"k_percent": 16.3,
"bb_percent": 12.3,
"woba": 0.345,
"xwoba": 0.389,
"xba": 0.279,
"xslg": 0.502,
"sweet_spot_percent": 43.3,
"barrel_batted_rate": 12.4,
"hard_hit_percent": 41.2,
"exit_velocity_avg": 89.1,
"launch_angle_avg": 20.1,
"whiff_percent": 16.7,
"swing_percent": 41.6
},
"components": {
"expected_quality": 1.7123,
"regression_edge": 1.2571,
"xwoba_edge": 2.5,
"xba_edge": 1.2286,
"xslg_edge": 1.9857,
"barrel_edge": 1.2889,
"hard_hit_edge": 0.5143,
"exit_velocity_edge": 0.28,
"sweet_spot_edge": 1.6667,
"launch_angle_hr_bonus": 0.2
}
},
{
"position": "1B",
"player_id": "518692",
"player_name": "Freddie Freeman",
"offense_factor": 1.0846,
"quality_score": 1.1277,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "518692",
"espn_rank": null
},
"metrics": {
"pa": 607.0,
"k_percent": 17.7,
"bb_percent": 10.0,
"woba": 0.348,
"xwoba": 0.363,
"xba": 0.29,
"xslg": 0.463,
"sweet_spot_percent": 38.7,
"barrel_batted_rate": 8.1,
"hard_hit_percent": 41.3,
"exit_velocity_avg": 89.5,
"launch_angle_avg": 12.2,
"whiff_percent": 23.2,
"swing_percent": 50.1
},
"components": {
"expected_quality": 1.2415,
"regression_edge": 0.4286,
"xwoba_edge": 1.8286,
"xba_edge": 1.5429,
"xslg_edge": 1.4286,
"barrel_edge": 0.3333,
"hard_hit_edge": 0.5286,
"exit_velocity_edge": 0.44,
"sweet_spot_edge": 0.9,
"launch_angle_hr_bonus": 0.2
}
},
{
"position": "3B",
"player_id": "571970",
"player_name": "Max Muncy",
"offense_factor": 1.0693,
"quality_score": 0.9236,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "571970",
"espn_rank": null
},
"metrics": {
"pa": 519.0,
"k_percent": 25.0,
"bb_percent": 11.6,
"woba": 0.361,
"xwoba": 0.349,
"xba": 0.242,
"xslg": 0.47,
"sweet_spot_percent": 35.8,
"barrel_batted_rate": 12.9,
"hard_hit_percent": 45.8,
"exit_velocity_avg": 89.9,
"launch_angle_avg": 17.5,
"whiff_percent": 29.2,
"swing_percent": 44.9
},
"components": {
"expected_quality": 1.1298,
"regression_edge": -0.3429,
"xwoba_edge": 1.4286,
"xba_edge": 0.1714,
"xslg_edge": 1.5286,
"barrel_edge": 1.4,
"hard_hit_edge": 1.1714,
"exit_velocity_edge": 0.6,
"sweet_spot_edge": 0.4167,
"launch_angle_hr_bonus": 0.2
}
},
{
"position": "RF",
"player_id": "663656",
"player_name": "Kyle Tucker",
"offense_factor": 1.0358,
"quality_score": 0.4771,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "663656",
"espn_rank": null
},
"metrics": {
"pa": 576.0,
"k_percent": 16.7,
"bb_percent": 12.4,
"woba": 0.318,
"xwoba": 0.331,
"xba": 0.256,
"xslg": 0.393,
"sweet_spot_percent": 34.2,
"barrel_batted_rate": 6.4,
"hard_hit_percent": 36.3,
"exit_velocity_avg": 88.5,
"launch_angle_avg": 18.1,
"whiff_percent": 20.8,
"swing_percent": 48.5
},
"components": {
"expected_quality": 0.4943,
"regression_edge": 0.3714,
"xwoba_edge": 0.9143,
"xba_edge": 0.5714,
"xslg_edge": 0.4286,
"barrel_edge": -0.0444,
"hard_hit_edge": -0.1857,
"exit_velocity_edge": 0.04,
"sweet_spot_edge": 0.15,
"launch_angle_hr_bonus": 0.0
}
},
{
"position": "2B",
"player_id": "669242",
"player_name": "Tommy Edman",
"offense_factor": 0.9855,
"quality_score": -0.1936,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "669242",
"espn_rank": null
},
"metrics": {
"pa": 292.0,
"k_percent": 20.2,
"bb_percent": 6.6,
"woba": 0.32,
"xwoba": 0.303,
"xba": 0.24,
"xslg": 0.347,
"sweet_spot_percent": 29.4,
"barrel_batted_rate": 5.3,
"hard_hit_percent": 32.0,
"exit_velocity_avg": 87.3,
"launch_angle_avg": 13.1,
"whiff_percent": 23.0,
"swing_percent": 46.4
},
"components": {
"expected_quality": -0.146,
"regression_edge": -0.4857,
"xwoba_edge": 0.1143,
"xba_edge": 0.1143,
"xslg_edge": -0.2286,
"barrel_edge": -0.2889,
"hard_hit_edge": -0.8,
"exit_velocity_edge": -0.44,
"sweet_spot_edge": -0.65,
"launch_angle_hr_bonus": 0.0
}
},
{
"position": "CF",
"player_id": "681624",
"player_name": "Andy Pages",
"offense_factor": 1.055,
"quality_score": 0.7337,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "681624",
"espn_rank": null
},
"metrics": {
"pa": 544.0,
"k_percent": 19.7,
"bb_percent": 8.5,
"woba": 0.352,
"xwoba": 0.343,
"xba": 0.274,
"xslg": 0.442,
"sweet_spot_percent": 37.4,
"barrel_batted_rate": 7.9,
"hard_hit_percent": 42.3,
"exit_velocity_avg": 88.9,
"launch_angle_avg": 15.7,
"whiff_percent": 22.1,
"swing_percent": 47.2
},
"components": {
"expected_quality": 0.895,
"regression_edge": -0.2571,
"xwoba_edge": 1.2571,
"xba_edge": 1.0857,
"xslg_edge": 1.1286,
"barrel_edge": 0.2889,
"hard_hit_edge": 0.6714,
"exit_velocity_edge": 0.2,
"sweet_spot_edge": 0.6833,
"launch_angle_hr_bonus": 0.0
}
}
],
"source": "all_players_stats.csv embedded Savant batter features"
},
"away": {
"applied": true,
"offense_factor": 1.0304,
"raw_average_factor": 1.0304,
"team_espn_average_rank": null,
"coverage_weight": 1.0,
"covered_batters": 9,
"missing_batters": 0,
"players": [
{
"position": "DH",
"player_id": "686948",
"player_name": "Drake Baldwin",
"offense_factor": 1.1093,
"quality_score": 1.4576,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "686948",
"espn_rank": null
},
"metrics": {
"pa": 570.0,
"k_percent": 21.5,
"bb_percent": 8.9,
"woba": 0.358,
"xwoba": 0.37,
"xba": 0.279,
"xslg": 0.505,
"sweet_spot_percent": 37.5,
"barrel_batted_rate": 12.9,
"hard_hit_percent": 50.6,
"exit_velocity_avg": 91.5,
"launch_angle_avg": 11.0,
"whiff_percent": 24.4,
"swing_percent": 51.2
},
"components": {
"expected_quality": 1.6391,
"regression_edge": 0.3429,
"xwoba_edge": 2.0286,
"xba_edge": 1.2286,
"xslg_edge": 2.0286,
"barrel_edge": 1.4,
"hard_hit_edge": 1.8571,
"exit_velocity_edge": 1.24,
"sweet_spot_edge": 0.7,
"launch_angle_hr_bonus": 0.2
}
},
{
"position": "2B",
"player_id": "645277",
"player_name": "Ozzie Albies",
"offense_factor": 0.9552,
"quality_score": -0.5967,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "645277",
"espn_rank": null
},
"metrics": {
"pa": 634.0,
"k_percent": 15.4,
"bb_percent": 6.7,
"woba": 0.298,
"xwoba": 0.273,
"xba": 0.221,
"xslg": 0.337,
"sweet_spot_percent": 32.3,
"barrel_batted_rate": 3.8,
"hard_hit_percent": 27.7,
"exit_velocity_avg": 87.1,
"launch_angle_avg": 17.8,
"whiff_percent": 21.2,
"swing_percent": 56.1
},
"components": {
"expected_quality": -0.5775,
"regression_edge": -0.7143,
"xwoba_edge": -0.7429,
"xba_edge": -0.4286,
"xslg_edge": -0.3714,
"barrel_edge": -0.6222,
"hard_hit_edge": -1.4143,
"exit_velocity_edge": -0.52,
"sweet_spot_edge": -0.1667,
"launch_angle_hr_bonus": 0.0
}
},
{
"position": "CF",
"player_id": "671739",
"player_name": "Michael Harris II",
"offense_factor": 1.0702,
"quality_score": 0.936,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "671739",
"espn_rank": null
},
"metrics": {
"pa": 573.0,
"k_percent": 19.2,
"bb_percent": 3.7,
"woba": 0.349,
"xwoba": 0.342,
"xba": 0.29,
"xslg": 0.477,
"sweet_spot_percent": 31.9,
"barrel_batted_rate": 10.3,
"hard_hit_percent": 47.6,
"exit_velocity_avg": 90.5,
"launch_angle_avg": 10.0,
"whiff_percent": 24.6,
"swing_percent": 56.4
},
"components": {
"expected_quality": 1.1209,
"regression_edge": -0.2,
"xwoba_edge": 1.2286,
"xba_edge": 1.5429,
"xslg_edge": 1.6286,
"barrel_edge": 0.8222,
"hard_hit_edge": 1.4286,
"exit_velocity_edge": 0.84,
"sweet_spot_edge": -0.2333,
"launch_angle_hr_bonus": 0.2
}
},
{
"position": "1B",
"player_id": "621566",
"player_name": "Matt Olson",
"offense_factor": 1.0899,
"quality_score": 1.198,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "621566",
"espn_rank": null
},
"metrics": {
"pa": 646.0,
"k_percent": 24.5,
"bb_percent": 9.2,
"woba": 0.351,
"xwoba": 0.351,
"xba": 0.247,
"xslg": 0.503,
"sweet_spot_percent": 32.0,
"barrel_batted_rate": 14.2,
"hard_hit_percent": 52.0,
"exit_velocity_avg": 92.5,
"launch_angle_avg": 18.1,
"whiff_percent": 25.4,
"swing_percent": 46.9
},
"components": {
"expected_quality": 1.3931,
"regression_edge": 0.0,
"xwoba_edge": 1.4857,
"xba_edge": 0.3143,
"xslg_edge": 2.0,
"barrel_edge": 1.6889,
"hard_hit_edge": 2.0571,
"exit_velocity_edge": 1.64,
"sweet_spot_edge": -0.2167,
"launch_angle_hr_bonus": 0.45
}
},
{
"position": "RF",
"player_id": "660670",
"player_name": "Ronald Acuña Jr.",
"offense_factor": 1.0946,
"quality_score": 1.2607,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "660670",
"espn_rank": null
},
"metrics": {
"pa": 429.0,
"k_percent": 22.0,
"bb_percent": 11.3,
"woba": 0.348,
"xwoba": 0.366,
"xba": 0.261,
"xslg": 0.495,
"sweet_spot_percent": 34.7,
"barrel_batted_rate": 13.0,
"hard_hit_percent": 43.5,
"exit_velocity_avg": 89.6,
"launch_angle_avg": 15.7,
"whiff_percent": 29.0,
"swing_percent": 49.4
},
"components": {
"expected_quality": 1.3822,
"regression_edge": 0.5143,
"xwoba_edge": 1.9143,
"xba_edge": 0.7143,
"xslg_edge": 1.8857,
"barrel_edge": 1.4222,
"hard_hit_edge": 0.8429,
"exit_velocity_edge": 0.48,
"sweet_spot_edge": 0.2333,
"launch_angle_hr_bonus": 0.2
}
},
{
"position": "LF",
"player_id": "643289",
"player_name": "Mauricio Dubón",
"offense_factor": 0.9974,
"quality_score": -0.0343,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "643289",
"espn_rank": null
},
"metrics": {
"pa": 574.0,
"k_percent": 11.8,
"bb_percent": 5.7,
"woba": 0.317,
"xwoba": 0.304,
"xba": 0.268,
"xslg": 0.375,
"sweet_spot_percent": 36.5,
"barrel_batted_rate": 4.0,
"hard_hit_percent": 29.4,
"exit_velocity_avg": 86.5,
"launch_angle_avg": 16.1,
"whiff_percent": 15.3,
"swing_percent": 53.7
},
"components": {
"expected_quality": 0.0206,
"regression_edge": -0.3714,
"xwoba_edge": 0.1429,
"xba_edge": 0.9143,
"xslg_edge": 0.1714,
"barrel_edge": -0.5778,
"hard_hit_edge": -1.1714,
"exit_velocity_edge": -0.76,
"sweet_spot_edge": 0.5333,
"launch_angle_hr_bonus": 0.0
}
},
{
"position": "C",
"player_id": "669221",
"player_name": "Sean Murphy",
"offense_factor": 0.9903,
"quality_score": -0.1298,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "669221",
"espn_rank": null
},
"metrics": {
"pa": 96.0,
"k_percent": 30.6,
"bb_percent": 9.1,
"woba": 0.252,
"xwoba": 0.273,
"xba": 0.206,
"xslg": 0.332,
"sweet_spot_percent": 26.0,
"barrel_batted_rate": 8.2,
"hard_hit_percent": 41.1,
"exit_velocity_avg": 87.8,
"launch_angle_avg": 5.6,
"whiff_percent": 31.9,
"swing_percent": 50.1
},
"components": {
"expected_quality": -0.433,
"regression_edge": 0.6,
"xwoba_edge": -0.7429,
"xba_edge": -0.8571,
"xslg_edge": -0.4429,
"barrel_edge": 0.3556,
"hard_hit_edge": 0.5,
"exit_velocity_edge": -0.24,
"sweet_spot_edge": -1.2167,
"launch_angle_hr_bonus": 0.0
}
},
{
"position": "3B",
"player_id": "663586",
"player_name": "Austin Riley",
"offense_factor": 1.0239,
"quality_score": 0.3191,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "663586",
"espn_rank": null
},
"metrics": {
"pa": 589.0,
"k_percent": 31.9,
"bb_percent": 7.6,
"woba": 0.29,
"xwoba": 0.299,
"xba": 0.213,
"xslg": 0.396,
"sweet_spot_percent": 34.3,
"barrel_batted_rate": 12.4,
"hard_hit_percent": 44.3,
"exit_velocity_avg": 91.3,
"launch_angle_avg": 18.5,
"whiff_percent": 31.9,
"swing_percent": 48.8
},
"components": {
"expected_quality": 0.3291,
"regression_edge": 0.2571,
"xwoba_edge": 0.0,
"xba_edge": -0.6571,
"xslg_edge": 0.4714,
"barrel_edge": 1.2889,
"hard_hit_edge": 0.9571,
"exit_velocity_edge": 1.16,
"sweet_spot_edge": 0.1667,
"launch_angle_hr_bonus": 0.45
}
},
{
"position": "SS",
"player_id": "673490",
"player_name": "Ha-Seong Kim",
"offense_factor": 0.9432,
"quality_score": -0.7574,
"regression_flag": "positive_batter_regression",
"espn_rank": {
"available": false,
"player_id": "673490",
"espn_rank": null
},
"metrics": {
"pa": 122.0,
"k_percent": 25.9,
"bb_percent": 10.9,
"woba": 0.18,
"xwoba": 0.222,
"xba": 0.157,
"xslg": 0.206,
"sweet_spot_percent": 21.7,
"barrel_batted_rate": 2.2,
"hard_hit_percent": 25.0,
"exit_velocity_avg": 85.9,
"launch_angle_avg": 19.9,
"whiff_percent": 20.2,
"swing_percent": 42.7
},
"components": {
"expected_quality": -1.7835,
"regression_edge": 1.2,
"xwoba_edge": -2.2,
"xba_edge": -2.2571,
"xslg_edge": -2.2429,
"barrel_edge": -0.9778,
"hard_hit_edge": -1.8,
"exit_velocity_edge": -1.0,
"sweet_spot_edge": -1.9333,
"launch_angle_hr_bonus": 0.0
}
}
],
"source": "all_players_stats.csv embedded Savant batter features"
},
"reason": "Baseball Savant hitter xwOBA, xBA, xSLG, exit velocity, launch angle, barrel, hard-hit, sweet-spot, whiff, K%, and BB% adjusted offense; ESPN rank is attached for reporting only"
}Source: data/all_players_stats.csv embedded Savant pitcher and movement features. Starter quality modifies opposing run scoring and pitcher strikeout/walk/homer expectations.
| Team | Pitcher | Available | ESPN Rank | Quality | Sample Wt | Run Prev | K Factor | BB Factor | HR Factor | Regression | xwOBA | wOBA | K% | BB% | Whiff% | Barrel% | HardHit% |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Away ATL | True | - | 0.2871 | 0.6720 | 0.9756 | 1.0365 | 0.9731 | 0.9948 | neutral | 0.2730 | 0.2600 | 27.30 | 7.20 | 29.50 | 8.90 | 37.10 | |
| Home LAD | True | - | 0.7622 | 1 | 0.9352 | 1.0823 | 0.9040 | 0.9340 | neutral | 0.2660 | 0.2640 | 30 | 4.40 | 31.70 | 6.70 | 34.80 |
| Team | Pitcher | Movement Available | Primary Pitch | Pitches | Velo | Spin | Axis | HB | IVB | Drop | Rel X | Rel Z | Extension | Arm Angle | Movement Score |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Away ATL | True | None | 13 | 90.70 | 2143 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.0466 | |
| Home LAD | True | None | 92 | 92.63 | 2173 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.1550 |
| Run Factor | Value |
|---|---|
| away_runs_vs_home_pitcher | 0.9610 |
| home_runs_vs_away_pitcher | 0.9939 |
| home_pitcher_starter_only_factor | 0.9352 |
| away_pitcher_starter_only_factor | 0.9836 |
| home_pitcher_workload_share | 0.7037 |
| away_pitcher_workload_share | 0.6296 |
| home_pitcher_quality_edge | 0.3556 |
{
"applied": true,
"home_pitcher": {
"available": true,
"pitcher_id": "669373",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 569.0,
"k_percent": 30.0,
"bb_percent": 4.4,
"woba": 0.264,
"xwoba": 0.266,
"sweet_spot_percent": 34.6,
"barrel_batted_rate": 6.7,
"hard_hit_percent": 34.8,
"avg_best_speed": 75.3556,
"avg_hyper_speed": 93.4848,
"whiff_percent": 31.7,
"swing_percent": 53.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.851,
"command_and_miss": 1.0729,
"regression_edge": -0.0571,
"xwoba_edge": 1.3143,
"barrel_edge": 0.1111,
"hard_hit_edge": 0.4429,
"whiff_edge": 0.9286,
"bb_edge": 1.2,
"pitch_design_score": 0.155
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669373",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 92,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 92.63147798168428,
"release_spin_rate": 2173.3742821287633,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 92.63147798168428,
"release_spin_rate": 2173.3742821287633,
"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.6315,
"release_spin_rate": 2173.3743,
"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.155,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.1069,
"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.7622,
"sample_weight": 1.0,
"run_prevention_factor": 0.9352,
"strikeout_factor": 1.0823,
"walk_factor": 0.904,
"homer_factor": 0.934,
"woba_minus_xwoba": -0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "669373",
"espn_rank": null
}
},
"away_pitcher": {
"available": true,
"pitcher_id": "689266",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 168.0,
"k_percent": 27.3,
"bb_percent": 7.2,
"woba": 0.26,
"xwoba": 0.273,
"sweet_spot_percent": 37.9,
"barrel_batted_rate": 8.9,
"hard_hit_percent": 37.1,
"avg_best_speed": 80.0941,
"avg_hyper_speed": 93.4986,
"whiff_percent": 29.5,
"swing_percent": 54.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.5212,
"command_and_miss": 0.6493,
"regression_edge": -0.3714,
"xwoba_edge": 1.1143,
"barrel_edge": -0.3778,
"hard_hit_edge": 0.1143,
"whiff_edge": 0.6143,
"bb_edge": 0.5,
"pitch_design_score": 0.0466
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "689266",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 13,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 13,
"pitch_usage": 0.0,
"release_speed": 90.69542798085439,
"release_spin_rate": 2142.6259128208435,
"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": 13,
"pitch_usage": 0.0,
"release_speed": 90.69542798085439,
"release_spin_rate": 2142.6259128208435,
"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.6954,
"release_spin_rate": 2142.6259,
"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.0466,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.3325,
"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.2871,
"sample_weight": 0.672,
"run_prevention_factor": 0.9756,
"strikeout_factor": 1.0365,
"walk_factor": 0.9731,
"homer_factor": 0.9948,
"woba_minus_xwoba": -0.013,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "689266",
"espn_rank": null
}
},
"run_factors": {
"away_runs_vs_home_pitcher": 0.961,
"home_runs_vs_away_pitcher": 0.9939,
"home_pitcher_starter_only_factor": 0.9352,
"away_pitcher_starter_only_factor": 0.9836,
"home_pitcher_workload_share": 0.7037,
"away_pitcher_workload_share": 0.6296,
"home_pitcher_quality_edge": 0.3556
},
"score_before": {
"away_runs": 2.0,
"home_runs": 6.0
},
"score_after": {
"away_runs": 1.9219,
"home_runs": 5.9631,
"home_win_probability": 0.8499
},
"reason": "Baseball Savant xwOBA, barrel, hard-hit, sweet-spot, whiff, K%, and BB% adjusted starter run prevention"
}| Team | Last-10 W-L | Win % | R/G | RA/G | Run Diff | Streak | Offense | Defense |
|---|---|---|---|---|---|---|---|---|
| Away ATL | 5-5 | 0.500 | 4 | 3.90 | 1 | 1L | average | average |
| Home LAD | 8-2 | 0.800 | 5 | 2.20 | 28 | 3W | average | strong |
| Team | Record | Win % | Run Diff | RD/Game | Available |
|---|---|---|---|---|---|
| Away ATL | 94-68 | 0.580 | 116 | 0.716 | True |
| Home LAD | 100-62 | 0.617 | 201 | 1.241 | True |
| Signal | - | - | 0.525 | 0.610 | applied=True |
| Date | Matchup | Score | Winner | Margin | Type |
|---|---|---|---|---|---|
| 2026-08-27 | LAD @ ATL | 0 - 1 | ATL | 1 | close |
| 2026-08-26 | LAD @ ATL | 5 - 6 | ATL | 1 | close |
| 2026-08-25 | LAD @ ATL | 3 - 4 | ATL | 1 | close |
| 2026-05-10 | ATL @ LAD | 7 - 2 | ATL | 5 | blowout |
| 2026-05-09 | ATL @ LAD | 7 - 2 | ATL | 5 | blowout |
| Layer | AB | H | R | HR | RBI | BB | SO |
|---|---|---|---|---|---|---|---|
| Game target ATL | - | - | 4 | - | - | - | - |
| Game target LAD | - | - | 5 | - | - | - | - |
| Player finalized ATL | 33 | 8 | 4 | 1 | 4 | 2 | 10 |
| Player finalized LAD | 33 | 7 | 5 | 1 | 4 | 3 | 8 |
| Player model fractional ATL | 33.80 | 7.36 | 4.06 | 1.33 | 4.24 | 2.50 | 9.32 |
| Player model fractional LAD | 34.58 | 8.34 | 4.89 | 1.49 | 4.89 | 3.50 | 8.07 |
| Simulation box ATL | 36 | 9 | 4 | 1 | 4 | 3 | 9 |
| Simulation box LAD | 30 | 6 | 5 | 2 | 5 | 5 | 9 |
If player finalized rows and game target disagree, the report now exposes that gap instead of hiding it. Fractional model rows show the unrounded prop layer before box-score realization.
| Team | Role | Pitcher | Pre IP | Pre ER | Pre SO | Pre H | Pre BB | Weighted ERA | Weighted WHIP | Box Sync |
|---|---|---|---|---|---|---|---|---|---|---|
| Away ATL | Starter | Dylan Dodd | 5.20 | 3 | 7 | 3 | 3 | 4.64 | 1.04 | True |
| Away ATL | Setup Man | Didier Fuentes | 1 | 1 | 1 | 1 | 1 | 4.25 | 1.44 | True |
| Away ATL | Closer | Raisel Iglesias | 1.10 | 1 | 1 | 1 | 0 | 1.88 | 0.91 | True |
| Home LAD | Starter | Tarik Skubal | 6.10 | 1 | 7 | 5 | 1 | 2.82 | 1.09 | True |
| Home LAD | Setup Man | Justin Wrobleski | 1.10 | 0 | 1 | 1 | 0 | 3.77 | 1.29 | True |
| Home LAD | Closer | Tanner Scott | 1 | 2 | 0 | 1 | 1 | 2.71 | 1.10 | True |
| Home LAD | Middle Reliever (High Leverage) | Evan Phillips | 0.10 | 1 | 1 | 2 | 1 | 3.77 | 0.96 | True |
| Side | Team | Role | Pos | Player | Dominant | Changed | Boosted | Deboosted | Better | Worse | Largest Metric | Largest Delta | Direction | Effect |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| away | ATL | batter | SS | Ha-Seong Kim | better | 10 | 5 | 5 | 6 | 4 | predicted_H | 2.7600 | boost | better |
| away | ATL | pitcher | Starter | Dylan Dodd | better | 5 | 1 | 4 | 4 | 1 | predicted_ER | -2.0000 | deboost | better |
| home | LAD | pitcher | Starter | Tarik Skubal | neutral | 2 | 1 | 1 | 1 | 1 | predicted_SO | 2.0000 | boost | better |
| home | LAD | pitcher | Closer | Tanner Scott | worse | 1 | 0 | 1 | 0 | 1 | predicted_SO | -2.0000 | deboost | worse |
| home | LAD | batter | LF | Teoscar Hernández | worse | 10 | 4 | 6 | 3 | 7 | predicted_SO | 1.9190 | boost | worse |
| home | LAD | batter | 2B | Tommy Edman | worse | 10 | 3 | 7 | 2 | 8 | predicted_AB | -1.8000 | deboost | worse |
| away | ATL | batter | RF | Ronald Acuña Jr. | worse | 10 | 5 | 5 | 4 | 6 | predicted_RBI | 1.5400 | boost | better |
| home | LAD | batter | SS | Mookie Betts | worse | 10 | 4 | 6 | 3 | 7 | predicted_AB | -1.5400 | deboost | worse |
| home | LAD | batter | C | Will Smith | better | 8 | 5 | 3 | 6 | 2 | predicted_RBI | 1.3900 | boost | better |
| away | ATL | batter | 1B | Matt Olson | better | 11 | 7 | 4 | 8 | 3 | predicted_RBI | 1.2300 | boost | better |
| home | LAD | batter | DH | Shohei Ohtani | worse | 11 | 2 | 9 | 3 | 8 | predicted_SO | -1.1270 | deboost | better |
| away | ATL | batter | DH | Drake Baldwin | worse | 11 | 1 | 10 | 0 | 11 | predicted_H | -1.1140 | deboost | worse |
| home | LAD | batter | 1B | Freddie Freeman | better | 11 | 7 | 4 | 8 | 3 | predicted_H | 1.0700 | boost | better |
| home | LAD | batter | 3B | Max Muncy | worse | 11 | 3 | 8 | 2 | 9 | predicted_SO | 1.0480 | boost | worse |
| away | ATL | pitcher | Setup Man | Didier Fuentes | worse | 3 | 3 | 0 | 0 | 3 | predicted_ER | 1.0000 | boost | worse |
| away | ATL | pitcher | Closer | Raisel Iglesias | worse | 3 | 3 | 0 | 1 | 2 | predicted_ER | 1.0000 | boost | worse |
| away | ATL | batter | CF | Michael Harris II | worse | 11 | 2 | 9 | 1 | 10 | predicted_RBI | -0.9900 | deboost | worse |
| home | LAD | batter | CF | Andy Pages | better | 11 | 6 | 5 | 7 | 4 | predicted_RBI | 0.9900 | boost | better |
| away | ATL | batter | LF | Mauricio Dubón | worse | 11 | 4 | 7 | 3 | 8 | predicted_3B | 0.9810 | boost | better |
| away | ATL | batter | C | Sean Murphy | worse | 10 | 2 | 8 | 1 | 9 | predicted_SO | 0.9120 | boost | worse |
| home | LAD | batter | RF | Kyle Tucker | worse | 11 | 5 | 6 | 4 | 7 | predicted_H | -0.8700 | deboost | worse |
| away | ATL | batter | 3B | Austin Riley | worse | 11 | 1 | 10 | 2 | 9 | predicted_H | -0.7500 | deboost | worse |
| away | ATL | batter | 2B | Ozzie Albies | worse | 10 | 2 | 8 | 3 | 7 | predicted_BB | 0.7010 | boost | better |
| home | LAD | pitcher | Setup Man | Justin Wrobleski | worse | 1 | 0 | 1 | 0 | 1 | predicted_IP | -0.2333 | deboost | worse |
| home | LAD | pitcher | Middle Reliever (High Leverage) | Evan Phillips | worse | 1 | 0 | 1 | 0 | 1 | predicted_IP | -0.2333 | deboost | worse |
This table ranks players whose JSON evolution changed materially. Boost/deboost is numeric movement; better/worse is role-aware.
| Field | Value |
|---|---|
| Pitcher | Dylan Dodd |
| Role | Starter |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 0.2871 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | 0.0466 |
| Avg Velo | 90.6954 |
| Avg Spin | 2142.6259 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 5.2000 |
| Pre ER | 3 |
| Pre H | 3 |
| Pre BB | 3 |
| Pre SO | 7 |
| Season ERA | 2.6821 |
| Season WHIP | 0.9139 |
| Role Avg IP | 3 |
| Recent Avg IP | 3 |
| Last Start IP | 3 |
{
"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.0195,
"defense_index": 1.1626,
"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": "LAD",
"games": 162,
"wins": 100,
"losses": 62,
"win_pct": 0.6173,
"runs_scored": 801.0,
"runs_allowed": 600.0,
"run_differential": 201.0,
"run_differential_per_game": 1.2407,
"avg_runs_scored": 4.9444,
"avg_runs_allowed": 3.7037,
"offense_index": 1.1006,
"defense_index": 1.213,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 2.2,
"run_differential": 28.0
},
"available": true,
"quality_score": 0.3566
},
"edges": {
"quality_edge": -0.2008,
"offense_edge": 0.0195,
"opponent_offense_edge": 0.1006,
"defense_strength": 0.1626,
"opponent_defense_weakness": -0.213,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9928,
"run_prevention": 1.0099,
"strikeout": 0.9859
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "689266",
"profile": {
"available": true,
"pitcher_id": "689266",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 168.0,
"k_percent": 27.3,
"bb_percent": 7.2,
"woba": 0.26,
"xwoba": 0.273,
"sweet_spot_percent": 37.9,
"barrel_batted_rate": 8.9,
"hard_hit_percent": 37.1,
"avg_best_speed": 80.0941,
"avg_hyper_speed": 93.4986,
"whiff_percent": 29.5,
"swing_percent": 54.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.5212,
"command_and_miss": 0.6493,
"regression_edge": -0.3714,
"xwoba_edge": 1.1143,
"barrel_edge": -0.3778,
"hard_hit_edge": 0.1143,
"whiff_edge": 0.6143,
"bb_edge": 0.5,
"pitch_design_score": 0.0466
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "689266",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 13,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 13,
"pitch_usage": 0.0,
"release_speed": 90.69542798085439,
"release_spin_rate": 2142.6259128208435,
"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": 13,
"pitch_usage": 0.0,
"release_speed": 90.69542798085439,
"release_spin_rate": 2142.6259128208435,
"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.6954,
"release_spin_rate": 2142.6259,
"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.0466,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.3325,
"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.2871,
"sample_weight": 0.672,
"run_prevention_factor": 0.9756,
"strikeout_factor": 1.0365,
"walk_factor": 0.9731,
"homer_factor": 0.9948,
"woba_minus_xwoba": -0.013,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "689266",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9836,
"adjusted": 0
},
"predicted_H": {
"original": 1.0,
"factor": 0.9836,
"adjusted": 1
},
"predicted_BB": {
"original": 0.0,
"factor": 0.9819,
"adjusted": 0
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9965,
"adjusted": 0
},
"predicted_SO": {
"original": 4.0,
"factor": 1.0245,
"adjusted": 4
}
}
}
}{
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 9.1,
"ER": 5,
"H": 8,
"BB": 1,
"SO": 10,
"HR": 3,
"ERA": 4.821428571428572,
"WHIP": 0.9642857142857144,
"K9": 9.642857142857144,
"HR9": 2.8928571428571432,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-10-01T00:00:00"
}{
"available": true,
"pitcher_id": "689266",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 13,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 13,
"pitch_usage": 0.0,
"release_speed": 90.69542798085439,
"release_spin_rate": 2142.6259128208435,
"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": 13,
"pitch_usage": 0.0,
"release_speed": 90.69542798085439,
"release_spin_rate": 2142.6259128208435,
"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.6954,
"release_spin_rate": 2142.6259,
"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.0466,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.3325,
"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."
}{
"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": 10.373,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6748,
"prior_weight": 0.3252
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "689266",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 49,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 5.0,
"ER": 3.0,
"R": 3.0,
"H": 4.0,
"BB": 0.0,
"SO": 6.0,
"HR": 1.0,
"BF": 20.0,
"Pitches": 77.0
},
"per_game": {
"IP": 1.0,
"ER": 0.6,
"R": 0.6,
"H": 0.8,
"BB": 0.0,
"SO": 1.2,
"HR": 0.2,
"BF": 4.0,
"Pitches": 15.4
},
"rates": {
"ERA": 5.4,
"WHIP": 0.8,
"ER_per_IP": 0.6,
"H_per_IP": 0.8,
"BB_per_IP": 0.0,
"SO_per_IP": 1.2,
"HR_per_IP": 0.2
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 9.1,
"ER": 5.0,
"R": 5.0,
"H": 8.0,
"BB": 1.0,
"SO": 10.0,
"HR": 3.0,
"BF": 38.0,
"Pitches": 138.0
},
"per_game": {
"IP": 1.0,
"ER": 0.5,
"R": 0.5,
"H": 0.8,
"BB": 0.1,
"SO": 1.0,
"HR": 0.3,
"BF": 3.8,
"Pitches": 13.8
},
"rates": {
"ERA": 4.8214,
"WHIP": 0.9643,
"ER_per_IP": 0.53571,
"H_per_IP": 0.85714,
"BB_per_IP": 0.10714,
"SO_per_IP": 1.07143,
"HR_per_IP": 0.32143
}
},
"season": {
"games": 49,
"totals": {
"IP": 50.1,
"ER": 15.0,
"R": 15.0,
"H": 32.0,
"BB": 14.0,
"SO": 53.0,
"HR": 7.0,
"BF": 197.0,
"Pitches": 793.0
},
"per_game": {
"IP": 1.0,
"ER": 0.3061,
"R": 0.3061,
"H": 0.6531,
"BB": 0.2857,
"SO": 1.0816,
"HR": 0.1429,
"BF": 4.0204,
"Pitches": 16.1837
},
"rates": {
"ERA": 2.6821,
"WHIP": 0.9139,
"ER_per_IP": 0.29801,
"H_per_IP": 0.63576,
"BB_per_IP": 0.27815,
"SO_per_IP": 1.05298,
"HR_per_IP": 0.13907
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.2,
"predicted_ER": 1.298,
"predicted_H": 2.143,
"predicted_BB": 0.469,
"predicted_SO": 2.676,
"predicted_HR": 0.512,
"predicted_ERA": 4.6395,
"predicted_WHIP": 1.0374
}
}{
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4874,
"form_weight": 0.5126,
"form_reliability": 0.6748,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.373,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6748,
"prior_weight": 0.3252
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 2.2,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 1.298,
"final": 2.6149,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 2.143,
"final": 3.0481,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 0.469,
"final": 1.7026,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 6.0,
"form": 2.676,
"final": 4.2961,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 2.0,
"form": 0.512,
"final": 1.2372,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.6395,
"final": 4.6395,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0374,
"final": 1.0374,
"source": "form_only"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | Didier Fuentes |
| Role | Setup Man |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 0.5937 |
| ESPN Rank | - |
| Movement Available | False |
| Primary Pitch | - |
| Movement Score | - |
| Avg Velo | - |
| Avg Spin | - |
| HB Inches | - |
| IVB Inches | - |
| Release Extension | - |
| Pre IP | 1 |
| Pre ER | 1 |
| Pre H | 1 |
| Pre BB | 1 |
| Pre SO | 1 |
| Season ERA | 2.4978 |
| Season WHIP | 1.1101 |
| Role Avg IP | 1.2320 |
| Recent Avg IP | 1 |
| Last Start IP | 0 |
{
"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.0195,
"defense_index": 1.1626,
"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": "LAD",
"games": 162,
"wins": 100,
"losses": 62,
"win_pct": 0.6173,
"runs_scored": 801.0,
"runs_allowed": 600.0,
"run_differential": 201.0,
"run_differential_per_game": 1.2407,
"avg_runs_scored": 4.9444,
"avg_runs_allowed": 3.7037,
"offense_index": 1.1006,
"defense_index": 1.213,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 2.2,
"run_differential": 28.0
},
"available": true,
"quality_score": 0.3566
},
"edges": {
"quality_edge": -0.2008,
"offense_edge": 0.0195,
"opponent_offense_edge": 0.1006,
"defense_strength": 0.1626,
"opponent_defense_weakness": -0.213,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9928,
"run_prevention": 1.0099,
"strikeout": 0.9859
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "800311",
"profile": {
"available": true,
"pitcher_id": "800311",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 264.0,
"k_percent": 31.0,
"bb_percent": 7.1,
"woba": 0.269,
"xwoba": 0.275,
"sweet_spot_percent": 36.3,
"barrel_batted_rate": 6.6,
"hard_hit_percent": 34.6,
"avg_best_speed": 77.5089,
"avg_hyper_speed": 93.3514,
"whiff_percent": 30.4,
"swing_percent": 52.7
},
"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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.6557,
"command_and_miss": 0.9371,
"regression_edge": -0.1714,
"xwoba_edge": 1.0571,
"barrel_edge": 0.1333,
"hard_hit_edge": 0.4714,
"whiff_edge": 0.7429,
"bb_edge": 0.525,
"pitch_design_score": 0.0
},
"pitch_movement_profile": {
"available": false,
"pitcher_id": "800311",
"reason": "pitcher_movement_profile_has_no_pitches"
},
"quality_score": 0.5937,
"sample_weight": 1.0,
"run_prevention_factor": 0.9495,
"strikeout_factor": 1.0806,
"walk_factor": 0.958,
"homer_factor": 0.9388,
"woba_minus_xwoba": -0.006,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "800311",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9495,
"adjusted": 0
},
"predicted_H": {
"original": 1.0,
"factor": 0.9495,
"adjusted": 1
},
"predicted_BB": {
"original": 0.0,
"factor": 0.958,
"adjusted": 0
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9388,
"adjusted": 0
},
"predicted_SO": {
"original": 2.0,
"factor": 1.0806,
"adjusted": 2
}
}
}
}{
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 13.0,
"ER": 5,
"H": 14,
"BB": 2,
"SO": 14,
"HR": 3,
"ERA": 3.4615384615384617,
"WHIP": 1.2307692307692308,
"K9": 9.692307692307692,
"HR9": 2.076923076923077,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-10-01T00:00:00"
}{
"available": false,
"pitcher_id": "800311",
"reason": "pitcher_movement_profile_has_no_pitches"
}{
"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": 15.595,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7572,
"prior_weight": 0.2428
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "800311",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 60,
"reference_playing_time": 1.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 5.0,
"ER": 3.0,
"R": 3.0,
"H": 9.0,
"BB": 0.0,
"SO": 3.0,
"HR": 2.0,
"BF": 22.0,
"Pitches": 92.0
},
"per_game": {
"IP": 1.0,
"ER": 0.6,
"R": 0.6,
"H": 1.8,
"BB": 0.0,
"SO": 0.6,
"HR": 0.4,
"BF": 4.4,
"Pitches": 18.4
},
"rates": {
"ERA": 5.4,
"WHIP": 1.8,
"ER_per_IP": 0.6,
"H_per_IP": 1.8,
"BB_per_IP": 0.0,
"SO_per_IP": 0.6,
"HR_per_IP": 0.4
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 13.0,
"ER": 5.0,
"R": 6.0,
"H": 14.0,
"BB": 2.0,
"SO": 14.0,
"HR": 3.0,
"BF": 53.0,
"Pitches": 223.0
},
"per_game": {
"IP": 1.1,
"ER": 0.5,
"R": 0.6,
"H": 1.4,
"BB": 0.2,
"SO": 1.4,
"HR": 0.3,
"BF": 5.3,
"Pitches": 22.3
},
"rates": {
"ERA": 3.4615,
"WHIP": 1.2308,
"ER_per_IP": 0.38462,
"H_per_IP": 1.07692,
"BB_per_IP": 0.15385,
"SO_per_IP": 1.07692,
"HR_per_IP": 0.23077
}
},
"season": {
"games": 60,
"totals": {
"IP": 75.2,
"ER": 21.0,
"R": 22.0,
"H": 64.0,
"BB": 20.0,
"SO": 93.0,
"HR": 7.0,
"BF": 307.0,
"Pitches": 1267.0
},
"per_game": {
"IP": 1.1,
"ER": 0.35,
"R": 0.3667,
"H": 1.0667,
"BB": 0.3333,
"SO": 1.55,
"HR": 0.1167,
"BF": 5.1167,
"Pitches": 21.1167
},
"rates": {
"ERA": 2.4978,
"WHIP": 1.1101,
"ER_per_IP": 0.27753,
"H_per_IP": 0.84581,
"BB_per_IP": 0.26432,
"SO_per_IP": 1.22907,
"HR_per_IP": 0.09251
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 1.0,
"predicted_ER": 0.538,
"predicted_H": 1.442,
"predicted_BB": 0.197,
"predicted_SO": 1.028,
"predicted_HR": 0.282,
"predicted_ERA": 4.2548,
"predicted_WHIP": 1.4387
}
}{
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4526,
"form_weight": 0.5474,
"form_reliability": 0.7572,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.595,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7572,
"prior_weight": 0.2428
},
"applied_metrics": {
"predicted_IP": {
"model": 1.0,
"form": 1.0,
"final": 1.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 0.538,
"final": 0.2945,
"source": "model_form_blend"
},
"predicted_H": {
"model": 0.0,
"form": 1.442,
"final": 0.7894,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 0.197,
"final": 0.5604,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 1.028,
"final": 1.0153,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.282,
"final": 0.1544,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.2548,
"final": 4.2548,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4387,
"final": 1.4387,
"source": "form_only"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | Raisel Iglesias |
| Role | Closer |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 0.2863 |
| ESPN Rank | - |
| Movement Available | False |
| Primary Pitch | - |
| Movement Score | - |
| Avg Velo | - |
| Avg Spin | - |
| HB Inches | - |
| IVB Inches | - |
| Release Extension | - |
| Pre IP | 1.1000 |
| Pre ER | 1 |
| Pre H | 1 |
| Pre BB | 0 |
| Pre SO | 1 |
| Season ERA | 2.4677 |
| Season WHIP | 1.0806 |
| Role Avg IP | 1.0160 |
| Recent Avg IP | 1 |
| Last Start IP | 0 |
{
"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.0195,
"defense_index": 1.1626,
"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": "LAD",
"games": 162,
"wins": 100,
"losses": 62,
"win_pct": 0.6173,
"runs_scored": 801.0,
"runs_allowed": 600.0,
"run_differential": 201.0,
"run_differential_per_game": 1.2407,
"avg_runs_scored": 4.9444,
"avg_runs_allowed": 3.7037,
"offense_index": 1.1006,
"defense_index": 1.213,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 2.2,
"run_differential": 28.0
},
"available": true,
"quality_score": 0.3566
},
"edges": {
"quality_edge": -0.2008,
"offense_edge": 0.0195,
"opponent_offense_edge": 0.1006,
"defense_strength": 0.1626,
"opponent_defense_weakness": -0.213,
"recent_win_pct_edge": -0.3
},
"player_factors": {
"ip": 0.9928,
"run_prevention": 1.0099,
"strikeout": 0.9859
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "628452",
"profile": {
"available": true,
"pitcher_id": "628452",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 221.0,
"k_percent": 26.8,
"bb_percent": 7.1,
"woba": 0.274,
"xwoba": 0.289,
"sweet_spot_percent": 35.0,
"barrel_batted_rate": 9.6,
"hard_hit_percent": 37.6,
"avg_best_speed": 77.1554,
"avg_hyper_speed": 93.6867,
"whiff_percent": 30.0,
"swing_percent": 52.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.3544,
"command_and_miss": 0.6471,
"regression_edge": -0.4286,
"xwoba_edge": 0.6571,
"barrel_edge": -0.5333,
"hard_hit_edge": 0.0429,
"whiff_edge": 0.6857,
"bb_edge": 0.525,
"pitch_design_score": 0.0
},
"pitch_movement_profile": {
"available": false,
"pitcher_id": "628452",
"reason": "pitcher_movement_profile_has_no_pitches"
},
"quality_score": 0.2863,
"sample_weight": 0.884,
"run_prevention_factor": 0.9757,
"strikeout_factor": 1.048,
"walk_factor": 0.9629,
"homer_factor": 1.0188,
"woba_minus_xwoba": -0.015,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "628452",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9785,
"adjusted": 0
},
"predicted_H": {
"original": 1.0,
"factor": 0.9785,
"adjusted": 1
},
"predicted_BB": {
"original": 0.0,
"factor": 0.9672,
"adjusted": 0
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0166,
"adjusted": 0
},
"predicted_SO": {
"original": 2.0,
"factor": 1.0424,
"adjusted": 2
}
}
}
}{
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 10.0,
"ER": 1,
"H": 6,
"BB": 1,
"SO": 10,
"HR": 1,
"ERA": 0.9,
"WHIP": 0.7,
"K9": 9.0,
"HR9": 0.9,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": true,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-30T00:00:00"
}{
"available": false,
"pitcher_id": "628452",
"reason": "pitcher_movement_profile_has_no_pitches"
}{
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.778,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7188,
"prior_weight": 0.2812
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "628452",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 61,
"reference_playing_time": 1.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 5.0,
"ER": 0.0,
"R": 0.0,
"H": 3.0,
"BB": 0.0,
"SO": 4.0,
"HR": 0.0,
"BF": 17.0,
"Pitches": 53.0
},
"per_game": {
"IP": 1.0,
"ER": 0.0,
"R": 0.0,
"H": 0.6,
"BB": 0.0,
"SO": 0.8,
"HR": 0.0,
"BF": 3.4,
"Pitches": 10.6
},
"rates": {
"ERA": 0.0,
"WHIP": 0.6,
"ER_per_IP": 0.0,
"H_per_IP": 0.6,
"BB_per_IP": 0.0,
"SO_per_IP": 0.8,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 10.0,
"ER": 1.0,
"R": 2.0,
"H": 6.0,
"BB": 1.0,
"SO": 10.0,
"HR": 1.0,
"BF": 36.0,
"Pitches": 129.0
},
"per_game": {
"IP": 1.0,
"ER": 0.1,
"R": 0.2,
"H": 0.6,
"BB": 0.1,
"SO": 1.0,
"HR": 0.1,
"BF": 3.6,
"Pitches": 12.9
},
"rates": {
"ERA": 0.9,
"WHIP": 0.7,
"ER_per_IP": 0.1,
"H_per_IP": 0.6,
"BB_per_IP": 0.1,
"SO_per_IP": 1.0,
"HR_per_IP": 0.1
}
},
"season": {
"games": 61,
"totals": {
"IP": 62.0,
"ER": 17.0,
"R": 21.0,
"H": 50.0,
"BB": 17.0,
"SO": 64.0,
"HR": 6.0,
"BF": 246.0,
"Pitches": 927.0
},
"per_game": {
"IP": 1.0,
"ER": 0.2787,
"R": 0.3443,
"H": 0.8197,
"BB": 0.2787,
"SO": 1.0492,
"HR": 0.0984,
"BF": 4.0328,
"Pitches": 15.1967
},
"rates": {
"ERA": 2.4677,
"WHIP": 1.0806,
"ER_per_IP": 0.27419,
"H_per_IP": 0.80645,
"BB_per_IP": 0.27419,
"SO_per_IP": 1.03226,
"HR_per_IP": 0.09677
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 1.0,
"predicted_ER": 0.209,
"predicted_H": 0.738,
"predicted_BB": 0.171,
"predicted_SO": 0.921,
"predicted_HR": 0.081,
"predicted_ERA": 1.8774,
"predicted_WHIP": 0.909
}
}{
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4688,
"form_weight": 0.5312,
"form_reliability": 0.7188,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.778,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7188,
"prior_weight": 0.2812
},
"applied_metrics": {
"predicted_IP": {
"model": 1.0,
"form": 1.0,
"final": 1.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 0.209,
"final": 0.111,
"source": "model_form_blend"
},
"predicted_H": {
"model": 0.0,
"form": 0.738,
"final": 0.392,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 0.171,
"final": 0.0908,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 0.921,
"final": 0.958,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.081,
"final": 0.043,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 1.8774,
"final": 1.8774,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.909,
"final": 0.909,
"source": "form_only"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.150 | 0.000 | 0.000 | Hitting_2B | 0.142 | 0.000 | -0.142 | 0.000 |
| predicted_3B | 0.000 | 0.000 | 0.000 | Hitting_3B | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_AB | 3.957 | 3.000 | 4.000 | Hitting_AB | 3.981 | 4.000 | -0.981 | -1.000 |
| predicted_AVG | 0.282 | 0.000 | 0.250 | Hitting_AVG | 0.283 | 0.000 | -0.283 | 0.000 |
| predicted_BB | 0.393 | 0.000 | 1.000 | Hitting_BB | 0.419 | 0.000 | -0.419 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.005 | 0.000 | -0.005 | 0.000 |
| predicted_H | 1.114 | 0.000 | 1.000 | Hitting_H | 1.128 | 0.000 | -1.128 | 0.000 |
| predicted_HR | 0.179 | 0.000 | 0.000 | Hitting_HR | 0.181 | 0.000 | -0.181 | 0.000 |
| predicted_OBP | 0.346 | 0.400 | 0.400 | Hitting_OBP | 0.360 | 0.000 | 0.040 | 0.400 |
| predicted_R | 0.600 | 0.000 | 1.000 | Hitting_R | 0.624 | 0.000 | -0.624 | 0.000 |
| predicted_RBI | 0.571 | 0.000 | 1.000 | Hitting_RBI | 0.609 | 0.000 | -0.609 | 0.000 |
| predicted_SLG | 0.455 | 0.000 | 0.250 | Hitting_SLG | 0.456 | 0.000 | -0.456 | 0.000 |
| predicted_SO | 0.943 | 1.000 | 1.000 | Hitting_SO | 0.954 | 0.000 | 0.046 | 1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 11 |
| Boosted Metrics | 1 |
| Deboosted Metrics | 10 |
| Better Metrics | 0 |
| Worse Metrics | 11 |
| Biggest Boost | predicted_SO: 0.9430 -> 1.0000 (boost 0.0570, worse) |
| Biggest Deboost | predicted_H: 1.1140 -> 0.0000 (deboost -1.1140, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 4 | 1 | 3 | 1 | 3 | predicted_AB: 3.9570 -> 4.0194 (boost 0.0624, better) | predicted_R: 0.6000 -> 0.5437 (deboost -0.0563, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 3 | 0 | 3 | 0 | 3 | - | predicted_SLG: 0.4491 -> 0.4363 (deboost -0.0128, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 2 | 5 | 1 | 6 | predicted_RBI: 0.5210 -> 1.0000 (boost 0.4790, better) | predicted_BB: 0.3427 -> 0.0000 (deboost -0.3427, worse) | AB rounded to 4 (raw=4.02), rates preserved: AVG=0.259 HR/AB=0.042 |
| 6 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5146 -> 1.0000 (boost 0.4854, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 5 | 4 | 1 | 3 | 2 | predicted_BB: 0.0000 -> 0.3080 (boost 0.3080, better) | predicted_RBI: 1.0000 -> 0.5898 (deboost -0.4102, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 5 | 2 | 3 | 3 | 2 | predicted_BB: 0.3080 -> 1.0000 (boost 0.6920, better) | predicted_SO: 1.2697 -> 1.0000 (deboost -0.2697, better) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 4 | 0 | 4 | 0 | 4 | - | predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 5 | 1 | 4 | 1 | 4 | predicted_HBP: 0.0000 -> 2.0000 (boost 2.0000, better) | predicted_AB: 4.0000 -> 3.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_AVG: 0.2500 -> 0.2691 (boost 0.0191, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "686948",
"player_name": "Drake Baldwin",
"position": "DH",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.15,
"predicted_3B": 0.0,
"predicted_AB": 3.957,
"predicted_AVG": 0.282,
"predicted_BB": 0.393,
"predicted_H": 1.114,
"predicted_HR": 0.179,
"predicted_OBP": 0.346,
"predicted_R": 0.6,
"predicted_RBI": 0.571,
"predicted_SLG": 0.455,
"predicted_SO": 0.943
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1666,
"predicted_3B": 0.0004,
"predicted_AB": 4.0194,
"predicted_AVG": 0.2784,
"predicted_BB": 0.3445,
"predicted_H": 1.1175,
"predicted_HBP": 0.058,
"predicted_HR": 0.1733,
"predicted_OBP": 0.3377,
"predicted_R": 0.5437,
"predicted_RBI": 0.5505,
"predicted_SLG": 0.4491,
"predicted_SO": 0.9273
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.15,
"after": 0.1666,
"delta": 0.0166,
"percent_delta": 0.1107,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0004,
"delta": 0.0004,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.957,
"after": 4.0194,
"delta": 0.0624,
"percent_delta": 0.0158,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.282,
"after": 0.2784,
"delta": -0.0036,
"percent_delta": -0.0128,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.393,
"after": 0.3445,
"delta": -0.0485,
"percent_delta": -0.1234,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.114,
"after": 1.1175,
"delta": 0.0035,
"percent_delta": 0.0031,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.179,
"after": 0.1733,
"delta": -0.0057,
"percent_delta": -0.0318,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.346,
"after": 0.3377,
"delta": -0.0083,
"percent_delta": -0.024,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.6,
"after": 0.5437,
"delta": -0.0563,
"percent_delta": -0.0938,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.571,
"after": 0.5505,
"delta": -0.0205,
"percent_delta": -0.0359,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.455,
"after": 0.4491,
"delta": -0.0059,
"percent_delta": -0.013,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.943,
"after": 0.9273,
"delta": -0.0157,
"percent_delta": -0.0166,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 1,
"deboosted_metrics": 3,
"better_metrics": 1,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.957,
"after": 4.0194,
"delta": 0.0624,
"percent_delta": 0.0158,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_R",
"before": 0.6,
"after": 0.5437,
"delta": -0.0563,
"percent_delta": -0.0938,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 140
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1666,
"predicted_3B": 0.0004,
"predicted_AB": 4.0194,
"predicted_AVG": 0.2691,
"predicted_BB": 0.3427,
"predicted_H": 1.0816,
"predicted_HBP": 0.058,
"predicted_HR": 0.1683,
"predicted_OBP": 0.3265,
"predicted_R": 0.5146,
"predicted_RBI": 0.521,
"predicted_SLG": 0.4363,
"predicted_SO": 0.9321
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1666,
"after": 0.1666,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0004,
"after": 0.0004,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0194,
"after": 4.0194,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2784,
"after": 0.2691,
"delta": -0.0093,
"percent_delta": -0.0334,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.3445,
"after": 0.3427,
"delta": -0.0018,
"percent_delta": -0.0052,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.1175,
"after": 1.0816,
"delta": -0.0359,
"percent_delta": -0.0321,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.058,
"after": 0.058,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1733,
"after": 0.1683,
"delta": -0.005,
"percent_delta": -0.0289,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3377,
"after": 0.3265,
"delta": -0.0112,
"percent_delta": -0.0332,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.5437,
"after": 0.5146,
"delta": -0.0291,
"percent_delta": -0.0535,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5505,
"after": 0.521,
"delta": -0.0295,
"percent_delta": -0.0536,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4491,
"after": 0.4363,
"delta": -0.0128,
"percent_delta": -0.0285,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.9273,
"after": 0.9321,
"delta": 0.0048,
"percent_delta": 0.0052,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.4491,
"after": 0.4363,
"delta": -0.0128,
"percent_delta": -0.0285,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=4.02), rates preserved: AVG=0.259 HR/AB=0.042",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1666,
"after": 0.0,
"delta": -0.1666,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0004,
"after": 0.0,
"delta": -0.0004,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0194,
"after": 4.0,
"delta": -0.0194,
"percent_delta": -0.0048,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.3427,
"after": 0.0,
"delta": -0.3427,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0816,
"after": 1.0,
"delta": -0.0816,
"percent_delta": -0.0754,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.058,
"after": 0.0,
"delta": -0.058,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1683,
"after": 0.0,
"delta": -0.1683,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.521,
"after": 1.0,
"delta": 0.479,
"percent_delta": 0.9194,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.9321,
"after": 1.0,
"delta": 0.0679,
"percent_delta": 0.0728,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 2,
"deboosted_metrics": 5,
"better_metrics": 1,
"worse_metrics": 6,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.521,
"after": 1.0,
"delta": 0.479,
"percent_delta": 0.9194,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.3427,
"after": 0.0,
"delta": -0.3427,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.5146,
"after": 1.0,
"delta": 0.4854,
"percent_delta": 0.9433,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.5146,
"after": 1.0,
"delta": 0.4854,
"percent_delta": 0.9433,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1626,
"predicted_3B": 0.007,
"predicted_BB": 0.308,
"predicted_H": 1.0211,
"predicted_HR": 0.1727,
"predicted_RBI": 0.5898,
"predicted_SO": 1.2697
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1626,
"delta": 0.1626,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.007,
"delta": 0.007,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.308,
"delta": 0.308,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0211,
"delta": 0.0211,
"percent_delta": 0.0211,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1727,
"delta": 0.1727,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.5898,
"delta": -0.4102,
"percent_delta": -0.4102,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.2697,
"delta": 0.2697,
"percent_delta": 0.2697,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 4,
"deboosted_metrics": 1,
"better_metrics": 3,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 0.308,
"delta": 0.308,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.5898,
"delta": -0.4102,
"percent_delta": -0.4102,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1626,
"after": 0.0,
"delta": -0.1626,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.007,
"after": 0.0,
"delta": -0.007,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.308,
"after": 1.0,
"delta": 0.692,
"percent_delta": 2.2468,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0211,
"after": 1.0,
"delta": -0.0211,
"percent_delta": -0.0207,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1727,
"after": 0.0,
"delta": -0.1727,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5898,
"after": 1.0,
"delta": 0.4102,
"percent_delta": 0.6955,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.2697,
"after": 1.0,
"delta": -0.2697,
"percent_delta": -0.2124,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 2,
"deboosted_metrics": 3,
"better_metrics": 3,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.308,
"after": 1.0,
"delta": 0.692,
"percent_delta": 2.2468,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.2697,
"after": 1.0,
"delta": -0.2697,
"percent_delta": -0.2124,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.25,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.308,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SLG": 0.42,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2691,
"after": 0.25,
"delta": -0.0191,
"percent_delta": -0.071,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3265,
"after": 0.308,
"delta": -0.0185,
"percent_delta": -0.0567,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4363,
"after": 0.42,
"delta": -0.0163,
"percent_delta": -0.0374,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 0,
"deboosted_metrics": 4,
"better_metrics": 0,
"worse_metrics": 4,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 2.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 2.0,
"delta": 2.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 1,
"deboosted_metrics": 4,
"better_metrics": 1,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_HBP",
"before": 0.0,
"after": 2.0,
"delta": 2.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.2691,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_DH": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 2.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3265,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.4363,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.25,
"after": 0.2691,
"delta": 0.0191,
"percent_delta": 0.0764,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"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_OBP",
"before": 0.308,
"after": 0.3265,
"delta": 0.0185,
"percent_delta": 0.0601,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.42,
"after": 0.4363,
"delta": 0.0163,
"percent_delta": 0.0389,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_AVG",
"before": 0.25,
"after": 0.2691,
"delta": 0.0191,
"percent_delta": 0.0764,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.15,
"after": 0.0,
"delta": -0.15,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.957,
"after": 3.0,
"delta": -0.957,
"percent_delta": -0.2418,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.282,
"after": 0.2691,
"delta": -0.0129,
"percent_delta": -0.0457,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.393,
"after": 0.0,
"delta": -0.393,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.114,
"after": 0.0,
"delta": -1.114,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.179,
"after": 0.0,
"delta": -0.179,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.346,
"after": 0.3265,
"delta": -0.0195,
"percent_delta": -0.0564,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.6,
"after": 0.0,
"delta": -0.6,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.571,
"after": 0.0,
"delta": -0.571,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.455,
"after": 0.4363,
"delta": -0.0187,
"percent_delta": -0.0411,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.943,
"after": 1.0,
"delta": 0.057,
"percent_delta": 0.0604,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 11,
"boosted_metrics": 1,
"deboosted_metrics": 10,
"better_metrics": 0,
"worse_metrics": 11,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.943,
"after": 1.0,
"delta": 0.057,
"percent_delta": 0.0604,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.114,
"after": 0.0,
"delta": -1.114,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.150 | - |
| predicted_3B | 0.000 | - |
| predicted_AB | 3.957 | - |
| predicted_AVG | 0.282 | - |
| predicted_BB | 0.393 | - |
| predicted_H | 1.114 | - |
| predicted_HR | 0.179 | - |
| predicted_OBP | 0.346 | - |
| predicted_R | 0.600 | - |
| predicted_RBI | 0.571 | - |
| predicted_SLG | 0.455 | - |
| predicted_SO | 0.943 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.167 | 0.017 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 4.019 | 0.062 |
| predicted_AVG | 0.278 | -0.004 |
| predicted_BB | 0.344 | -0.049 |
| predicted_H | 1.117 | 0.003 |
| predicted_HBP | 0.058 | - |
| predicted_HR | 0.173 | -0.006 |
| predicted_OBP | 0.338 | -0.008 |
| predicted_R | 0.544 | -0.056 |
| predicted_RBI | 0.550 | -0.020 |
| predicted_SLG | 0.449 | -0.006 |
| predicted_SO | 0.927 | -0.016 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.167 | 0.000 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 4.019 | 0.000 |
| predicted_AVG | 0.269 | -0.009 |
| predicted_BB | 0.343 | -0.002 |
| predicted_H | 1.082 | -0.036 |
| predicted_HBP | 0.058 | 0.000 |
| predicted_HR | 0.168 | -0.005 |
| predicted_OBP | 0.327 | -0.011 |
| predicted_R | 0.515 | -0.029 |
| predicted_RBI | 0.521 | -0.029 |
| predicted_SLG | 0.436 | -0.013 |
| predicted_SO | 0.932 | 0.005 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=4.02), rates preserved: AVG=0.259 HR/AB=0.042
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.163 | 0.163 |
| 3B | 0.007 | 0.007 |
| BB | 0.308 | 0.308 |
| H | 1.021 | 0.021 |
| HR | 0.173 | 0.173 |
| RBI | 0.590 | -0.410 |
| SO | 1.270 | 0.270 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.163 |
| 3B | 0.000 | -0.007 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 0.692 |
| H | 1.000 | -0.021 |
| HR | 0.000 | -0.173 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.410 |
| SO | 1.000 | -0.270 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.167 |
| predicted_3B | 0.000 | -0.000 |
| predicted_AB | 4.000 | -0.019 |
| predicted_AVG | 0.250 | -0.019 |
| predicted_BB | 0.000 | -0.343 |
| predicted_H | 1.000 | -0.082 |
| predicted_HR | 0.000 | -0.168 |
| predicted_OBP | 0.308 | -0.019 |
| predicted_R | 1.000 | 0.485 |
| predicted_RBI | 1.000 | 0.479 |
| predicted_SLG | 0.420 | -0.016 |
| predicted_SO | 1.000 | 0.068 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | -1.000 |
| BB | 0.000 | -1.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | -1.000 |
| HBP | 2.000 | 2.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | - |
| R | 0.000 | -1.000 |
| RBI | 0.000 | -1.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 22.000 | 5.000 | 1.000 | 0.000 | 1.000 | 3.000 | 1.000 | 0.000 | 4.000 | 0.2273 | 0.2273 | 0.4091 | 0.2273 | 0.0454 | 0.1364 | 0.0000 | 0.1818 |
| last_10 | 0.20 | 10 | - | 43.000 | 13.000 | 3.000 | 0.000 | 1.000 | 3.000 | 3.000 | 2.000 | 9.000 | 0.3023 | 0.3478 | 0.4419 | 0.3023 | 0.0233 | 0.0698 | 0.0465 | 0.2093 |
| season | 0.60 | 140 | - | 554.000 | 156.000 | 21.000 | 0.000 | 25.000 | 80.000 | 84.000 | 55.000 | 132.000 | 0.2816 | 0.3548 | 0.4549 | 0.2816 | 0.0451 | 0.1444 | 0.0993 | 0.2383 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1880 |
| predicted_3B | 0.0010 |
| predicted_AB | 4.1000 |
| predicted_AVG | 0.2737 |
| predicted_BB | 0.2820 |
| predicted_H | 1.1220 |
| predicted_HBP | 0.0580 |
| predicted_HR | 0.1660 |
| predicted_OBP | 0.3269 |
| predicted_R | 0.4710 |
| predicted_RBI | 0.5240 |
| predicted_SLG | 0.4415 |
| predicted_SO | 0.9070 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1500 | 0.1880 | 0.1666 | model_form_blend |
| predicted_3B | 0.0000 | 0.0010 | 0.0004 | model_form_blend |
| predicted_AB | 3.9570 | 4.1000 | 4.0194 | model_form_blend |
| predicted_AVG | 0.2820 | 0.2737 | 0.2784 | model_form_blend |
| predicted_BB | 0.3930 | 0.2820 | 0.3445 | model_form_blend |
| predicted_H | 1.1140 | 1.1220 | 1.1175 | model_form_blend |
| predicted_HBP | - | 0.0580 | 0.0580 | form_only |
| predicted_HR | 0.1790 | 0.1660 | 0.1733 | model_form_blend |
| predicted_OBP | 0.3460 | 0.3269 | 0.3377 | model_form_blend |
| predicted_R | 0.6000 | 0.4710 | 0.5437 | model_form_blend |
| predicted_RBI | 0.5710 | 0.5240 | 0.5505 | model_form_blend |
| predicted_SLG | 0.4550 | 0.4415 | 0.4491 | model_form_blend |
| predicted_SO | 0.9430 | 0.9070 | 0.9273 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 585 |
| Season rows before report date | 585 |
| Report year | 2026 |
| Profile rows used | 140 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 5 |
| AB | 3 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 1 |
| SF | 0 |
| HBP | 2 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 1 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 1 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | C |
| gameID | 20261001_PHI@ATL |
| game_type | full |
| mlbID | 686948 |
| playerID | 686948 |
| playerName | Drake Baldwin |
| pos | C |
| started | True |
| startingPosition | C |
| team | ATL |
| teamID | 2 |
| game_date | 2026-10-01 |
| sl_k_percent | 21.5 |
| sl_bb_percent | 8.9 |
| sl_woba | 0.358 |
| sl_xwoba | 0.37 |
| sl_xba | 0.279 |
| sl_xslg | 0.505 |
| sl_sweet_spot_percent | 37.5 |
| sl_barrel_batted_rate | 12.9 |
| sl_hard_hit_percent | 50.6 |
| sl_exit_velocity_avg | 91.5 |
| sl_launch_angle_avg | 11.0 |
| sl_whiff_percent | 24.4 |
| sl_swing_percent | 51.2 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.165 | 0.000 | 0.000 | Hitting_2B | 0.192 | 0.000 | -0.192 | 0.000 |
| predicted_3B | 0.012 | 0.000 | 0.000 | Hitting_3B | 0.003 | 0.000 | -0.003 | 0.000 |
| predicted_AB | 4.070 | 4.000 | 4.000 | Hitting_AB | 3.852 | 3.000 | 0.148 | 1.000 |
| predicted_AVG | 0.213 | 0.250 | 0.250 | Hitting_AVG | 0.244 | 0.333 | 0.006 | -0.083 |
| predicted_BB | 0.299 | 1.000 | 0.000 | Hitting_BB | 0.317 | 1.000 | 0.683 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.027 | 0.000 | -0.027 | 0.000 |
| predicted_H | 0.870 | 1.000 | 1.000 | Hitting_H | 0.941 | 1.000 | 0.059 | 0.000 |
| predicted_HR | 0.170 | 0.000 | 0.000 | Hitting_HR | 0.135 | 1.000 | -0.135 | -1.000 |
| predicted_OBP | 0.308 | 0.400 | 0.250 | Hitting_OBP | 0.303 | 0.500 | 0.097 | -0.100 |
| predicted_R | 0.537 | 0.000 | 0.000 | Hitting_R | 0.554 | 1.000 | -0.554 | -1.000 |
| predicted_RBI | 0.630 | 0.000 | 1.000 | Hitting_RBI | 0.460 | 2.000 | -0.460 | -2.000 |
| predicted_SB | - | 0.000 | 0.000 | BaseRunning_SB | 0.021 | 0.000 | -0.021 | 0.000 |
| predicted_SLG | 0.427 | 0.250 | 0.250 | Hitting_SLG | 0.401 | 1.333 | -0.151 | -1.083 |
| predicted_SO | 0.646 | 0.000 | 1.000 | Hitting_SO | 0.665 | 1.000 | -0.665 | -1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 10 |
| Boosted Metrics | 2 |
| Deboosted Metrics | 8 |
| Better Metrics | 3 |
| Worse Metrics | 7 |
| Biggest Boost | predicted_BB: 0.2990 -> 1.0000 (boost 0.7010, better) |
| Biggest Deboost | predicted_SO: 0.6460 -> 0.0000 (deboost -0.6460, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 4 | 1 | 3 | 0 | 4 | predicted_SO: 0.6460 -> 0.6981 (boost 0.0521, worse) | predicted_AB: 4.0700 -> 3.8415 (deboost -0.2285, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 3 | 0 | 3 | 0 | 3 | - | predicted_OBP: 0.3089 -> 0.2719 (deboost -0.0370, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 8 | 3 | 5 | 2 | 6 | predicted_SO: 0.7017 -> 1.0000 (boost 0.2983, worse) | predicted_RBI: 0.5449 -> 0.0000 (deboost -0.5449, worse) | AB rounded to 4 (raw=4.07), rates preserved: AVG=0.191 HR/AB=0.038 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=5.0, weight=0.057, BvP AVG=0.600) |
| 7 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5037 -> 1.0000 (boost 0.4963, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 4 | 2 | 5 | 1 | predicted_RBI: 0.0000 -> 0.5068 (boost 0.5068, better) | predicted_SO: 1.0000 -> 0.7689 (deboost -0.2311, better) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 9 | lineup_integer_allocation | 7 | 3 | 4 | 2 | 5 | predicted_RBI: 0.5068 -> 1.0000 (boost 0.4932, better) | predicted_R: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 10 | embedded_savant_player_context | 5 | 4 | 1 | 4 | 1 | predicted_R: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_RBI: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | simulation_box_score_reference | 3 | 1 | 2 | 2 | 1 | predicted_BB: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_R: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 12 | current_json_final | 3 | 0 | 3 | 0 | 3 | - | predicted_SLG: 0.4210 -> 0.3863 (deboost -0.0347, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "645277",
"player_name": "Ozzie Albies",
"position": "2B",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.165,
"predicted_3B": 0.012,
"predicted_AB": 4.07,
"predicted_AVG": 0.213,
"predicted_BB": 0.299,
"predicted_H": 0.87,
"predicted_HR": 0.17,
"predicted_OBP": 0.308,
"predicted_R": 0.537,
"predicted_RBI": 0.63,
"predicted_SLG": 0.427,
"predicted_SO": 0.646
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1348,
"predicted_3B": 0.0387,
"predicted_AB": 3.8415,
"predicted_AVG": 0.2167,
"predicted_BB": 0.3292,
"predicted_H": 0.8328,
"predicted_HBP": 0.116,
"predicted_HR": 0.1599,
"predicted_OBP": 0.3089,
"predicted_R": 0.5322,
"predicted_RBI": 0.5757,
"predicted_SLG": 0.421,
"predicted_SO": 0.6981
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.165,
"after": 0.1348,
"delta": -0.0302,
"percent_delta": -0.183,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.012,
"after": 0.0387,
"delta": 0.0267,
"percent_delta": 2.225,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.07,
"after": 3.8415,
"delta": -0.2285,
"percent_delta": -0.0561,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.213,
"after": 0.2167,
"delta": 0.0037,
"percent_delta": 0.0174,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.299,
"after": 0.3292,
"delta": 0.0302,
"percent_delta": 0.101,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.87,
"after": 0.8328,
"delta": -0.0372,
"percent_delta": -0.0428,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.17,
"after": 0.1599,
"delta": -0.0101,
"percent_delta": -0.0594,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.308,
"after": 0.3089,
"delta": 0.0009,
"percent_delta": 0.0029,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.537,
"after": 0.5322,
"delta": -0.0048,
"percent_delta": -0.0089,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.63,
"after": 0.5757,
"delta": -0.0543,
"percent_delta": -0.0862,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.427,
"after": 0.421,
"delta": -0.006,
"percent_delta": -0.0141,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.646,
"after": 0.6981,
"delta": 0.0521,
"percent_delta": 0.0807,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 1,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.646,
"after": 0.6981,
"delta": 0.0521,
"percent_delta": 0.0807,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.07,
"after": 3.8415,
"delta": -0.2285,
"percent_delta": -0.0561,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 164
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1348,
"predicted_3B": 0.0387,
"predicted_AB": 3.8415,
"predicted_AVG": 0.2098,
"predicted_BB": 0.3275,
"predicted_H": 0.8061,
"predicted_HBP": 0.116,
"predicted_HR": 0.1553,
"predicted_OBP": 0.2719,
"predicted_R": 0.5037,
"predicted_RBI": 0.5449,
"predicted_SLG": 0.3863,
"predicted_SO": 0.7017
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1348,
"after": 0.1348,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0387,
"after": 0.0387,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.8415,
"after": 3.8415,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2167,
"after": 0.2098,
"delta": -0.0069,
"percent_delta": -0.0318,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.3292,
"after": 0.3275,
"delta": -0.0017,
"percent_delta": -0.0052,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.8328,
"after": 0.8061,
"delta": -0.0267,
"percent_delta": -0.0321,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.116,
"after": 0.116,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1599,
"after": 0.1553,
"delta": -0.0046,
"percent_delta": -0.0288,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3089,
"after": 0.2719,
"delta": -0.037,
"percent_delta": -0.1198,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.5322,
"after": 0.5037,
"delta": -0.0285,
"percent_delta": -0.0536,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5757,
"after": 0.5449,
"delta": -0.0308,
"percent_delta": -0.0535,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.421,
"after": 0.3863,
"delta": -0.0347,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.6981,
"after": 0.7017,
"delta": 0.0036,
"percent_delta": 0.0052,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.3089,
"after": 0.2719,
"delta": -0.037,
"percent_delta": -0.1198,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=4.07), rates preserved: AVG=0.191 HR/AB=0.038",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1348,
"after": 0.0,
"delta": -0.1348,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0387,
"after": 0.0,
"delta": -0.0387,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.8415,
"after": 4.0,
"delta": 0.1585,
"percent_delta": 0.0413,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.3275,
"after": 0.0,
"delta": -0.3275,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8061,
"after": 1.0,
"delta": 0.1939,
"percent_delta": 0.2405,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.116,
"after": 0.0,
"delta": -0.116,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1553,
"after": 0.0,
"delta": -0.1553,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.5449,
"after": 0.0,
"delta": -0.5449,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.7017,
"after": 1.0,
"delta": 0.2983,
"percent_delta": 0.4251,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 8,
"boosted_metrics": 3,
"deboosted_metrics": 5,
"better_metrics": 2,
"worse_metrics": 6,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.7017,
"after": 1.0,
"delta": 0.2983,
"percent_delta": 0.4251,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.5449,
"after": 0.0,
"delta": -0.5449,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "bvp_blend",
"description": "Sample-size BvP blend (BvP AB=5.0, weight=0.057, BvP AVG=0.600)",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {
"model_expectation": 0.9429,
"bvp": 0.0571
},
"window_games": {}
},
{
"index": 7,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.5037,
"after": 1.0,
"delta": 0.4963,
"percent_delta": 0.9853,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.5037,
"after": 1.0,
"delta": 0.4963,
"percent_delta": 0.9853,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1663,
"predicted_3B": 0.0082,
"predicted_BB": 0.2675,
"predicted_H": 0.8844,
"predicted_HR": 0.1598,
"predicted_RBI": 0.5068,
"predicted_SO": 0.7689
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1663,
"delta": 0.1663,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0082,
"delta": 0.0082,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.2675,
"delta": 0.2675,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.8844,
"delta": -0.1156,
"percent_delta": -0.1156,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1598,
"delta": 0.1598,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.5068,
"delta": 0.5068,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.7689,
"delta": -0.2311,
"percent_delta": -0.2311,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 5,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.5068,
"delta": 0.5068,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 0.7689,
"delta": -0.2311,
"percent_delta": -0.2311,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1663,
"after": 0.0,
"delta": -0.1663,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0082,
"after": 0.0,
"delta": -0.0082,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.2675,
"after": 0.0,
"delta": -0.2675,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8844,
"after": 1.0,
"delta": 0.1156,
"percent_delta": 0.1307,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1598,
"after": 0.0,
"delta": -0.1598,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.5068,
"after": 1.0,
"delta": 0.4932,
"percent_delta": 0.9732,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.7689,
"after": 1.0,
"delta": 0.2311,
"percent_delta": 0.3006,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 3,
"deboosted_metrics": 4,
"better_metrics": 2,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.5068,
"after": 1.0,
"delta": 0.4932,
"percent_delta": 0.9732,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.241,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.298,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.421,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2098,
"after": 0.241,
"delta": 0.0312,
"percent_delta": 0.1487,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.2719,
"after": 0.298,
"delta": 0.0261,
"percent_delta": 0.096,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.3863,
"after": 0.421,
"delta": 0.0347,
"percent_delta": 0.0898,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 4,
"deboosted_metrics": 1,
"better_metrics": 4,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 12,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.2098,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.2719,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.3863,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.241,
"after": 0.2098,
"delta": -0.0312,
"percent_delta": -0.1293,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.298,
"after": 0.2719,
"delta": -0.0261,
"percent_delta": -0.0876,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.421,
"after": 0.3863,
"delta": -0.0347,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.421,
"after": 0.3863,
"delta": -0.0347,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.165,
"after": 0.0,
"delta": -0.165,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.012,
"after": 0.0,
"delta": -0.012,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.07,
"after": 4.0,
"delta": -0.07,
"percent_delta": -0.0172,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.213,
"after": 0.2098,
"delta": -0.0032,
"percent_delta": -0.015,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.299,
"after": 1.0,
"delta": 0.701,
"percent_delta": 2.3445,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.87,
"after": 1.0,
"delta": 0.13,
"percent_delta": 0.1494,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.17,
"after": 0.0,
"delta": -0.17,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.308,
"after": 0.2719,
"delta": -0.0361,
"percent_delta": -0.1172,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.537,
"after": 0.0,
"delta": -0.537,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.63,
"after": 0.0,
"delta": -0.63,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.427,
"after": 0.3863,
"delta": -0.0407,
"percent_delta": -0.0953,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.646,
"after": 0.0,
"delta": -0.646,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 10,
"boosted_metrics": 2,
"deboosted_metrics": 8,
"better_metrics": 3,
"worse_metrics": 7,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.299,
"after": 1.0,
"delta": 0.701,
"percent_delta": 2.3445,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 0.646,
"after": 0.0,
"delta": -0.646,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.165 | - |
| predicted_3B | 0.012 | - |
| predicted_AB | 4.070 | - |
| predicted_AVG | 0.213 | - |
| predicted_BB | 0.299 | - |
| predicted_H | 0.870 | - |
| predicted_HR | 0.170 | - |
| predicted_OBP | 0.308 | - |
| predicted_R | 0.537 | - |
| predicted_RBI | 0.630 | - |
| predicted_SLG | 0.427 | - |
| predicted_SO | 0.646 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.135 | -0.030 |
| predicted_3B | 0.039 | 0.027 |
| predicted_AB | 3.841 | -0.229 |
| predicted_AVG | 0.217 | 0.004 |
| predicted_BB | 0.329 | 0.030 |
| predicted_H | 0.833 | -0.037 |
| predicted_HBP | 0.116 | - |
| predicted_HR | 0.160 | -0.010 |
| predicted_OBP | 0.309 | 0.001 |
| predicted_R | 0.532 | -0.005 |
| predicted_RBI | 0.576 | -0.054 |
| predicted_SLG | 0.421 | -0.006 |
| predicted_SO | 0.698 | 0.052 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.135 | 0.000 |
| predicted_3B | 0.039 | 0.000 |
| predicted_AB | 3.841 | 0.000 |
| predicted_AVG | 0.210 | -0.007 |
| predicted_BB | 0.328 | -0.002 |
| predicted_H | 0.806 | -0.027 |
| predicted_HBP | 0.116 | 0.000 |
| predicted_HR | 0.155 | -0.005 |
| predicted_OBP | 0.272 | -0.037 |
| predicted_R | 0.504 | -0.028 |
| predicted_RBI | 0.545 | -0.031 |
| predicted_SLG | 0.386 | -0.035 |
| predicted_SO | 0.702 | 0.004 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=4.07), rates preserved: AVG=0.191 HR/AB=0.038
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=5.0, weight=0.057, BvP AVG=0.600)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.166 | 0.166 |
| 3B | 0.008 | 0.008 |
| BB | 0.268 | 0.268 |
| H | 0.884 | -0.116 |
| HR | 0.160 | 0.160 |
| RBI | 0.507 | 0.507 |
| SO | 0.769 | -0.231 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.166 |
| 3B | 0.000 | -0.008 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -0.268 |
| H | 1.000 | 0.116 |
| HR | 0.000 | -0.160 |
| R | 0.000 | -1.000 |
| RBI | 1.000 | 0.493 |
| SO | 1.000 | 0.231 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.135 |
| predicted_3B | 0.000 | -0.039 |
| predicted_AB | 4.000 | 0.159 |
| predicted_AVG | 0.241 | 0.031 |
| predicted_BB | 0.000 | -0.328 |
| predicted_H | 1.000 | 0.194 |
| predicted_HR | 0.000 | -0.155 |
| predicted_OBP | 0.298 | 0.026 |
| predicted_R | 1.000 | 0.496 |
| predicted_RBI | 0.000 | -0.545 |
| predicted_SLG | 0.421 | 0.035 |
| predicted_SO | 1.000 | 0.298 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 1.000 |
| CS | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -1.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 15.000 | 3.000 | 0.000 | 1.000 | 1.000 | 3.000 | 3.000 | 3.000 | 4.000 | 0.2000 | 0.3684 | 0.5333 | 0.2000 | 0.0667 | 0.2000 | 0.2000 | 0.2667 |
| last_10 | 0.20 | 10 | - | 34.000 | 6.000 | 0.000 | 1.000 | 1.000 | 5.000 | 4.000 | 3.000 | 10.000 | 0.1765 | 0.2821 | 0.3235 | 0.1765 | 0.0294 | 0.1471 | 0.0882 | 0.2941 |
| season | 0.60 | 164 | - | 617.000 | 149.000 | 27.000 | 2.000 | 23.000 | 76.000 | 88.000 | 49.000 | 106.000 | 0.2415 | 0.3004 | 0.4036 | 0.2415 | 0.0373 | 0.1232 | 0.0794 | 0.1718 |
| Metric | Value |
|---|---|
| predicted_2B | 0.0960 |
| predicted_3B | 0.0730 |
| predicted_AB | 3.5480 |
| predicted_AVG | 0.2214 |
| predicted_BB | 0.3680 |
| predicted_H | 0.7850 |
| predicted_HBP | 0.1160 |
| predicted_HR | 0.1470 |
| predicted_OBP | 0.3101 |
| predicted_R | 0.5260 |
| predicted_RBI | 0.5060 |
| predicted_SLG | 0.4133 |
| predicted_SO | 0.7650 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1650 | 0.0960 | 0.1348 | model_form_blend |
| predicted_3B | 0.0120 | 0.0730 | 0.0387 | model_form_blend |
| predicted_AB | 4.0700 | 3.5480 | 3.8415 | model_form_blend |
| predicted_AVG | 0.2130 | 0.2214 | 0.2167 | model_form_blend |
| predicted_BB | 0.2990 | 0.3680 | 0.3292 | model_form_blend |
| predicted_H | 0.8700 | 0.7850 | 0.8328 | model_form_blend |
| predicted_HBP | - | 0.1160 | 0.1160 | form_only |
| predicted_HR | 0.1700 | 0.1470 | 0.1599 | model_form_blend |
| predicted_OBP | 0.3080 | 0.3101 | 0.3089 | model_form_blend |
| predicted_R | 0.5370 | 0.5260 | 0.5322 | model_form_blend |
| predicted_RBI | 0.6300 | 0.5060 | 0.5757 | model_form_blend |
| predicted_SLG | 0.4270 | 0.4133 | 0.4210 | model_form_blend |
| predicted_SO | 0.6460 | 0.7650 | 0.6981 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 657 |
| Season rows before report date | 657 |
| Report year | 2026 |
| Profile rows used | 164 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 5 |
| AB | 4 |
| H | 1 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 1 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 3 |
| Hitting_AVG | 0.333 |
| Hitting_BB | 1 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 1 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 2 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 4 |
| Hitting_battingOrder | 8 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | 2B |
| gameID | 20261001_PHI@ATL |
| game_type | full |
| mlbID | 645277 |
| playerID | 645277 |
| playerName | Ozzie Albies |
| pos | 2B |
| started | True |
| startingPosition | 2B |
| team | ATL |
| teamID | 2 |
| game_date | 2026-10-01 |
| sl_k_percent | 15.4 |
| sl_bb_percent | 6.7 |
| sl_woba | 0.298 |
| sl_xwoba | 0.273 |
| sl_xba | 0.221 |
| sl_xslg | 0.337 |
| sl_sweet_spot_percent | 32.3 |
| sl_barrel_batted_rate | 3.8 |
| sl_hard_hit_percent | 27.7 |
| sl_exit_velocity_avg | 87.1 |
| sl_launch_angle_avg | 17.8 |
| sl_whiff_percent | 21.2 |
| sl_swing_percent | 56.1 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.229 | 0.000 | 1.000 | Hitting_2B | 0.236 | 0.000 | -0.236 | 0.000 |
| predicted_3B | 0.006 | 0.000 | 0.000 | Hitting_3B | 0.008 | 0.000 | -0.008 | 0.000 |
| predicted_AB | 4.830 | 5.000 | 4.000 | Hitting_AB | 4.025 | 3.000 | 0.975 | 2.000 |
| predicted_AVG | 0.334 | 0.200 | 0.250 | Hitting_AVG | 0.297 | 0.333 | -0.097 | -0.133 |
| predicted_BB | 0.134 | 0.000 | 0.000 | Hitting_BB | 0.144 | 0.000 | -0.144 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.022 | 0.000 | -0.022 | 0.000 |
| predicted_H | 1.610 | 1.000 | 1.000 | Hitting_H | 1.197 | 1.000 | -0.197 | 0.000 |
| predicted_HR | 0.230 | 0.000 | 0.000 | Hitting_HR | 0.179 | 1.000 | -0.179 | -1.000 |
| predicted_OBP | 0.380 | 0.200 | 0.250 | Hitting_OBP | 0.323 | 0.500 | -0.123 | -0.300 |
| predicted_R | 0.529 | 0.000 | 1.000 | Hitting_R | 0.554 | 1.000 | -0.554 | -1.000 |
| predicted_RBI | 0.990 | 0.000 | 1.000 | Hitting_RBI | 0.600 | 3.000 | -0.600 | -3.000 |
| predicted_SLG | 0.551 | 0.200 | 0.500 | Hitting_SLG | 0.494 | 1.333 | -0.294 | -1.133 |
| predicted_SO | 0.771 | 1.000 | 1.000 | Hitting_SO | 0.818 | 1.000 | 0.182 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 11 |
| Boosted Metrics | 2 |
| Deboosted Metrics | 9 |
| Better Metrics | 1 |
| Worse Metrics | 10 |
| Biggest Boost | predicted_SO: 0.7710 -> 1.0000 (boost 0.2290, worse) |
| Biggest Deboost | predicted_RBI: 0.9900 -> 0.0000 (deboost -0.9900, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 4 | 1 | 3 | 1 | 3 | predicted_R: 0.5290 -> 0.6072 (boost 0.0782, better) | predicted_AB: 4.8300 -> 4.3859 (deboost -0.4441, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 3 | 0 | 3 | 0 | 3 | - | predicted_OBP: 0.3777 -> 0.3459 (deboost -0.0318, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 8 | 2 | 6 | 1 | 7 | predicted_SO: 0.7478 -> 1.0000 (boost 0.2522, worse) | predicted_H: 1.4319 -> 1.0000 (deboost -0.4319, worse) | AB rounded to 4 (raw=4.83), rates preserved: AVG=0.285 HR/AB=0.040 |
| 6 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5747 -> 1.0000 (boost 0.4253, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 5 | 4 | 1 | 3 | 2 | predicted_2B: 0.0000 -> 0.1878 (boost 0.1878, better) | predicted_RBI: 1.0000 -> 0.5992 (deboost -0.4008, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 5 | 2 | 3 | 3 | 2 | predicted_2B: 0.1878 -> 1.0000 (boost 0.8122, better) | predicted_HR: 0.1700 -> 0.0000 (deboost -0.1700, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 4 | 0 | 4 | 0 | 4 | - | predicted_2B: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 3 | 1 | 2 | 1 | 2 | predicted_AB: 4.0000 -> 5.0000 (boost 1.0000, better) | predicted_R: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_SLG: 0.4570 -> 0.5203 (boost 0.0633, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "671739",
"player_name": "Michael Harris II",
"position": "CF",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.229,
"predicted_3B": 0.006,
"predicted_AB": 4.83,
"predicted_AVG": 0.334,
"predicted_BB": 0.134,
"predicted_H": 1.61,
"predicted_HR": 0.23,
"predicted_OBP": 0.38,
"predicted_R": 0.529,
"predicted_RBI": 0.99,
"predicted_SLG": 0.551,
"predicted_SO": 0.771
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.2565,
"predicted_3B": 0.0051,
"predicted_AB": 4.3859,
"predicted_AVG": 0.3383,
"predicted_BB": 0.1309,
"predicted_H": 1.4794,
"predicted_HBP": 0.07,
"predicted_HR": 0.2003,
"predicted_OBP": 0.3777,
"predicted_R": 0.6072,
"predicted_RBI": 0.8188,
"predicted_SLG": 0.5506,
"predicted_SO": 0.7439
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.229,
"after": 0.2565,
"delta": 0.0275,
"percent_delta": 0.1201,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.006,
"after": 0.0051,
"delta": -0.0009,
"percent_delta": -0.15,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.83,
"after": 4.3859,
"delta": -0.4441,
"percent_delta": -0.0919,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.334,
"after": 0.3383,
"delta": 0.0043,
"percent_delta": 0.0129,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.134,
"after": 0.1309,
"delta": -0.0031,
"percent_delta": -0.0231,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.61,
"after": 1.4794,
"delta": -0.1306,
"percent_delta": -0.0811,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.23,
"after": 0.2003,
"delta": -0.0297,
"percent_delta": -0.1291,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.38,
"after": 0.3777,
"delta": -0.0023,
"percent_delta": -0.0061,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.529,
"after": 0.6072,
"delta": 0.0782,
"percent_delta": 0.1478,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.99,
"after": 0.8188,
"delta": -0.1712,
"percent_delta": -0.1729,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.551,
"after": 0.5506,
"delta": -0.0004,
"percent_delta": -0.0007,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.771,
"after": 0.7439,
"delta": -0.0271,
"percent_delta": -0.0351,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 1,
"deboosted_metrics": 3,
"better_metrics": 1,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.529,
"after": 0.6072,
"delta": 0.0782,
"percent_delta": 0.1478,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.83,
"after": 4.3859,
"delta": -0.4441,
"percent_delta": -0.0919,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 157
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.2565,
"predicted_3B": 0.0051,
"predicted_AB": 4.3859,
"predicted_AVG": 0.3265,
"predicted_BB": 0.1302,
"predicted_H": 1.4319,
"predicted_HBP": 0.07,
"predicted_HR": 0.1945,
"predicted_OBP": 0.3459,
"predicted_R": 0.5747,
"predicted_RBI": 0.775,
"predicted_SLG": 0.5203,
"predicted_SO": 0.7478
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.2565,
"after": 0.2565,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0051,
"after": 0.0051,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.3859,
"after": 4.3859,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.3383,
"after": 0.3265,
"delta": -0.0118,
"percent_delta": -0.0349,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.1309,
"after": 0.1302,
"delta": -0.0007,
"percent_delta": -0.0053,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.4794,
"after": 1.4319,
"delta": -0.0475,
"percent_delta": -0.0321,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.07,
"after": 0.07,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.2003,
"after": 0.1945,
"delta": -0.0058,
"percent_delta": -0.029,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3777,
"after": 0.3459,
"delta": -0.0318,
"percent_delta": -0.0842,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.6072,
"after": 0.5747,
"delta": -0.0325,
"percent_delta": -0.0535,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.8188,
"after": 0.775,
"delta": -0.0438,
"percent_delta": -0.0535,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.5506,
"after": 0.5203,
"delta": -0.0303,
"percent_delta": -0.055,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.7439,
"after": 0.7478,
"delta": 0.0039,
"percent_delta": 0.0052,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.3777,
"after": 0.3459,
"delta": -0.0318,
"percent_delta": -0.0842,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=4.83), rates preserved: AVG=0.285 HR/AB=0.040",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.2565,
"after": 0.0,
"delta": -0.2565,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0051,
"after": 0.0,
"delta": -0.0051,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.3859,
"after": 4.0,
"delta": -0.3859,
"percent_delta": -0.088,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.1302,
"after": 0.0,
"delta": -0.1302,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.4319,
"after": 1.0,
"delta": -0.4319,
"percent_delta": -0.3016,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.07,
"after": 0.0,
"delta": -0.07,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1945,
"after": 0.0,
"delta": -0.1945,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.775,
"after": 1.0,
"delta": 0.225,
"percent_delta": 0.2903,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.7478,
"after": 1.0,
"delta": 0.2522,
"percent_delta": 0.3373,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 8,
"boosted_metrics": 2,
"deboosted_metrics": 6,
"better_metrics": 1,
"worse_metrics": 7,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.7478,
"after": 1.0,
"delta": 0.2522,
"percent_delta": 0.3373,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.4319,
"after": 1.0,
"delta": -0.4319,
"percent_delta": -0.3016,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.5747,
"after": 1.0,
"delta": 0.4253,
"percent_delta": 0.74,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.5747,
"after": 1.0,
"delta": 0.4253,
"percent_delta": 0.74,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1878,
"predicted_3B": 0.0085,
"predicted_BB": 0.138,
"predicted_H": 1.0308,
"predicted_HR": 0.17,
"predicted_RBI": 0.5992,
"predicted_SO": 1.0853
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1878,
"delta": 0.1878,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0085,
"delta": 0.0085,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.138,
"delta": 0.138,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0308,
"delta": 0.0308,
"percent_delta": 0.0308,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.17,
"delta": 0.17,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.5992,
"delta": -0.4008,
"percent_delta": -0.4008,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0853,
"delta": 0.0853,
"percent_delta": 0.0853,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 4,
"deboosted_metrics": 1,
"better_metrics": 3,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1878,
"delta": 0.1878,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.5992,
"delta": -0.4008,
"percent_delta": -0.4008,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 1.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1878,
"after": 1.0,
"delta": 0.8122,
"percent_delta": 4.3248,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0085,
"after": 0.0,
"delta": -0.0085,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.138,
"after": 0.0,
"delta": -0.138,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0308,
"after": 1.0,
"delta": -0.0308,
"percent_delta": -0.0299,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.17,
"after": 0.0,
"delta": -0.17,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5992,
"after": 1.0,
"delta": 0.4008,
"percent_delta": 0.6689,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0853,
"after": 1.0,
"delta": -0.0853,
"percent_delta": -0.0786,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 2,
"deboosted_metrics": 3,
"better_metrics": 3,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_2B",
"before": 0.1878,
"after": 1.0,
"delta": 0.8122,
"percent_delta": 4.3248,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_HR",
"before": 0.17,
"after": 0.0,
"delta": -0.17,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.27,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.301,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SLG": 0.457,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.3265,
"after": 0.27,
"delta": -0.0565,
"percent_delta": -0.173,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3459,
"after": 0.301,
"delta": -0.0449,
"percent_delta": -0.1298,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.5203,
"after": 0.457,
"delta": -0.0633,
"percent_delta": -0.1217,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 0,
"deboosted_metrics": 4,
"better_metrics": 0,
"worse_metrics": 4,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_2B",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 5.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_AB",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 5.0,
"predicted_AVG": 0.3265,
"predicted_BB": 0.0,
"predicted_CF": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3459,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.5203,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.27,
"after": 0.3265,
"delta": 0.0565,
"percent_delta": 0.2092,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.301,
"after": 0.3459,
"delta": 0.0449,
"percent_delta": 0.1492,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.457,
"after": 0.5203,
"delta": 0.0633,
"percent_delta": 0.1386,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.457,
"after": 0.5203,
"delta": 0.0633,
"percent_delta": 0.1386,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.229,
"after": 0.0,
"delta": -0.229,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.006,
"after": 0.0,
"delta": -0.006,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.83,
"after": 5.0,
"delta": 0.17,
"percent_delta": 0.0352,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.334,
"after": 0.3265,
"delta": -0.0075,
"percent_delta": -0.0225,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.134,
"after": 0.0,
"delta": -0.134,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.61,
"after": 1.0,
"delta": -0.61,
"percent_delta": -0.3789,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.23,
"after": 0.0,
"delta": -0.23,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.38,
"after": 0.3459,
"delta": -0.0341,
"percent_delta": -0.0897,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.529,
"after": 0.0,
"delta": -0.529,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.99,
"after": 0.0,
"delta": -0.99,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.551,
"after": 0.5203,
"delta": -0.0307,
"percent_delta": -0.0557,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.771,
"after": 1.0,
"delta": 0.229,
"percent_delta": 0.297,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 11,
"boosted_metrics": 2,
"deboosted_metrics": 9,
"better_metrics": 1,
"worse_metrics": 10,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.771,
"after": 1.0,
"delta": 0.229,
"percent_delta": 0.297,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.99,
"after": 0.0,
"delta": -0.99,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.229 | - |
| predicted_3B | 0.006 | - |
| predicted_AB | 4.830 | - |
| predicted_AVG | 0.334 | - |
| predicted_BB | 0.134 | - |
| predicted_H | 1.610 | - |
| predicted_HR | 0.230 | - |
| predicted_OBP | 0.380 | - |
| predicted_R | 0.529 | - |
| predicted_RBI | 0.990 | - |
| predicted_SLG | 0.551 | - |
| predicted_SO | 0.771 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.257 | 0.027 |
| predicted_3B | 0.005 | -0.001 |
| predicted_AB | 4.386 | -0.444 |
| predicted_AVG | 0.338 | 0.004 |
| predicted_BB | 0.131 | -0.003 |
| predicted_H | 1.479 | -0.131 |
| predicted_HBP | 0.070 | - |
| predicted_HR | 0.200 | -0.030 |
| predicted_OBP | 0.378 | -0.002 |
| predicted_R | 0.607 | 0.078 |
| predicted_RBI | 0.819 | -0.171 |
| predicted_SLG | 0.551 | -0.000 |
| predicted_SO | 0.744 | -0.027 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.257 | 0.000 |
| predicted_3B | 0.005 | 0.000 |
| predicted_AB | 4.386 | 0.000 |
| predicted_AVG | 0.327 | -0.012 |
| predicted_BB | 0.130 | -0.001 |
| predicted_H | 1.432 | -0.048 |
| predicted_HBP | 0.070 | 0.000 |
| predicted_HR | 0.195 | -0.006 |
| predicted_OBP | 0.346 | -0.032 |
| predicted_R | 0.575 | -0.032 |
| predicted_RBI | 0.775 | -0.044 |
| predicted_SLG | 0.520 | -0.030 |
| predicted_SO | 0.748 | 0.004 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=4.83), rates preserved: AVG=0.285 HR/AB=0.040
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.188 | 0.188 |
| 3B | 0.009 | 0.009 |
| BB | 0.138 | 0.138 |
| H | 1.031 | 0.031 |
| HR | 0.170 | 0.170 |
| RBI | 0.599 | -0.401 |
| SO | 1.085 | 0.085 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 0.812 |
| 3B | 0.000 | -0.009 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -0.138 |
| H | 1.000 | -0.031 |
| HR | 0.000 | -0.170 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.401 |
| SO | 1.000 | -0.085 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.257 |
| predicted_3B | 0.000 | -0.005 |
| predicted_AB | 4.000 | -0.386 |
| predicted_AVG | 0.270 | -0.056 |
| predicted_BB | 0.000 | -0.130 |
| predicted_H | 1.000 | -0.432 |
| predicted_HR | 0.000 | -0.195 |
| predicted_OBP | 0.301 | -0.045 |
| predicted_R | 1.000 | 0.425 |
| predicted_RBI | 1.000 | 0.225 |
| predicted_SLG | 0.457 | -0.063 |
| predicted_SO | 1.000 | 0.252 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -1.000 |
| 3B | 0.000 | 0.000 |
| AB | 5.000 | 1.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | - |
| R | 0.000 | -1.000 |
| RBI | 0.000 | -1.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 19.000 | 9.000 | 2.000 | 0.000 | 1.000 | 4.000 | 6.000 | 0.000 | 4.000 | 0.4737 | 0.5000 | 0.7368 | 0.4737 | 0.0526 | 0.2105 | 0.0000 | 0.2105 |
| last_10 | 0.20 | 10 | - | 38.000 | 14.000 | 4.000 | 0.000 | 1.000 | 5.000 | 8.000 | 2.000 | 4.000 | 0.3684 | 0.4146 | 0.5526 | 0.3684 | 0.0263 | 0.1316 | 0.0526 | 0.1053 |
| season | 0.60 | 157 | - | 600.000 | 180.000 | 36.000 | 1.000 | 27.000 | 90.000 | 83.000 | 21.000 | 121.000 | 0.3000 | 0.3254 | 0.4983 | 0.3000 | 0.0450 | 0.1500 | 0.0350 | 0.2017 |
| Metric | Value |
|---|---|
| predicted_2B | 0.2920 |
| predicted_3B | 0.0040 |
| predicted_AB | 3.8130 |
| predicted_AVG | 0.3438 |
| predicted_BB | 0.1270 |
| predicted_H | 1.3110 |
| predicted_HBP | 0.0700 |
| predicted_HR | 0.1620 |
| predicted_OBP | 0.3748 |
| predicted_R | 0.7080 |
| predicted_RBI | 0.5980 |
| predicted_SLG | 0.5500 |
| predicted_SO | 0.7090 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.2290 | 0.2920 | 0.2565 | model_form_blend |
| predicted_3B | 0.0060 | 0.0040 | 0.0051 | model_form_blend |
| predicted_AB | 4.8300 | 3.8130 | 4.3859 | model_form_blend |
| predicted_AVG | 0.3340 | 0.3438 | 0.3383 | model_form_blend |
| predicted_BB | 0.1340 | 0.1270 | 0.1309 | model_form_blend |
| predicted_H | 1.6100 | 1.3110 | 1.4794 | model_form_blend |
| predicted_HBP | - | 0.0700 | 0.0700 | form_only |
| predicted_HR | 0.2300 | 0.1620 | 0.2003 | model_form_blend |
| predicted_OBP | 0.3800 | 0.3748 | 0.3777 | model_form_blend |
| predicted_R | 0.5290 | 0.7080 | 0.6072 | model_form_blend |
| predicted_RBI | 0.9900 | 0.5980 | 0.8188 | model_form_blend |
| predicted_SLG | 0.5510 | 0.5500 | 0.5506 | model_form_blend |
| predicted_SO | 0.7710 | 0.7090 | 0.7439 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 598 |
| Season rows before report date | 598 |
| Report year | 2026 |
| Profile rows used | 157 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 5 |
| AB | 5 |
| H | 1 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 3 |
| Hitting_AVG | 0.333 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 1 |
| Hitting_HR | 1 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 3 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 4 |
| Hitting_battingOrder | 4 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | CF |
| gameID | 20261001_PHI@ATL |
| game_type | full |
| mlbID | 671739 |
| playerID | 671739 |
| playerName | Michael Harris II |
| pos | CF |
| started | True |
| startingPosition | CF |
| team | ATL |
| teamID | 2 |
| game_date | 2026-10-01 |
| sl_k_percent | 19.2 |
| sl_bb_percent | 3.7 |
| sl_woba | 0.349 |
| sl_xwoba | 0.342 |
| sl_xba | 0.29 |
| sl_xslg | 0.477 |
| sl_sweet_spot_percent | 31.9 |
| sl_barrel_batted_rate | 10.3 |
| sl_hard_hit_percent | 47.6 |
| sl_exit_velocity_avg | 90.5 |
| sl_launch_angle_avg | 10.0 |
| sl_whiff_percent | 24.6 |
| sl_swing_percent | 56.4 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.207 | 0.000 | 0.000 | Hitting_2B | 0.228 | 0.000 | -0.228 | 0.000 |
| predicted_3B | 0.000 | 0.000 | 0.000 | Hitting_3B | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_AB | 3.841 | 4.000 | 4.000 | Hitting_AB | 3.897 | 3.000 | 0.103 | 1.000 |
| predicted_AVG | 0.240 | 0.250 | 0.250 | Hitting_AVG | 0.254 | 0.333 | -0.004 | -0.083 |
| predicted_BB | 0.390 | 1.000 | 0.000 | Hitting_BB | 0.430 | 1.000 | 0.570 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_H | 0.920 | 1.000 | 1.000 | Hitting_H | 0.988 | 1.000 | 0.012 | 0.000 |
| predicted_HR | 0.340 | 0.000 | 1.000 | Hitting_HR | 0.265 | 1.000 | -0.265 | -1.000 |
| predicted_OBP | 0.284 | 0.400 | 0.250 | Hitting_OBP | 0.328 | 0.500 | 0.072 | -0.100 |
| predicted_R | 0.610 | 1.000 | 1.000 | Hitting_R | 0.657 | 2.000 | 0.343 | -1.000 |
| predicted_RBI | 0.770 | 2.000 | 1.000 | Hitting_RBI | 0.594 | 1.000 | 1.406 | 1.000 |
| predicted_SLG | 0.485 | 0.250 | 1.000 | Hitting_SLG | 0.516 | 1.333 | -0.266 | -1.083 |
| predicted_SO | 1.055 | 1.000 | 1.000 | Hitting_SO | 1.091 | 0.000 | -0.091 | 1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 11 |
| Boosted Metrics | 7 |
| Deboosted Metrics | 4 |
| Better Metrics | 8 |
| Worse Metrics | 3 |
| Biggest Boost | predicted_RBI: 0.7700 -> 2.0000 (boost 1.2300, better) |
| Biggest Deboost | predicted_HR: 0.3400 -> 0.0000 (deboost -0.3400, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 5 | 0 | 5 | 0 | 5 | - | predicted_AB: 3.8410 -> 3.7749 (deboost -0.0661, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 3 | 2 | 1 | 2 | 1 | predicted_SLG: 0.4663 -> 0.4948 (boost 0.0285, better) | predicted_AVG: 0.2314 -> 0.2239 (deboost -0.0075, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 6 | 3 | 3 | 3 | 3 | predicted_RBI: 0.6940 -> 1.0000 (boost 0.3060, better) | predicted_BB: 0.3523 -> 0.0000 (deboost -0.3523, worse) | AB rounded to 4 (raw=3.84), rates preserved: AVG=0.212 HR/AB=0.073 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=10.0, weight=0.100, BvP AVG=0.300) |
| 7 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5322 -> 1.0000 (boost 0.4678, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 4 | 2 | 3 | 3 | predicted_SO: 1.0000 -> 1.3284 (boost 0.3284, worse) | predicted_RBI: 1.0000 -> 0.5426 (deboost -0.4574, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 9 | lineup_integer_allocation | 6 | 3 | 3 | 4 | 2 | predicted_HR: 0.2001 -> 1.0000 (boost 0.7999, better) | predicted_SO: 1.3284 -> 1.0000 (deboost -0.3284, better) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 10 | embedded_savant_player_context | 4 | 2 | 2 | 2 | 2 | predicted_AVG: 0.2239 -> 0.2380 (boost 0.0141, better) | predicted_HR: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | simulation_box_score_reference | 2 | 2 | 0 | 2 | 0 | predicted_BB: 0.0000 -> 1.0000 (boost 1.0000, better) | - | Attached simulation box score without overwriting model prediction |
| 12 | current_json_final | 3 | 1 | 2 | 1 | 2 | predicted_SLG: 0.4510 -> 0.4948 (boost 0.0438, better) | predicted_AVG: 0.2380 -> 0.2239 (deboost -0.0141, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "621566",
"player_name": "Matt Olson",
"position": "1B",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.207,
"predicted_3B": 0.0,
"predicted_AB": 3.841,
"predicted_AVG": 0.24,
"predicted_BB": 0.39,
"predicted_H": 0.92,
"predicted_HR": 0.34,
"predicted_OBP": 0.284,
"predicted_R": 0.61,
"predicted_RBI": 0.77,
"predicted_SLG": 0.485,
"predicted_SO": 1.055
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1785,
"predicted_3B": 0.0004,
"predicted_AB": 3.7749,
"predicted_AVG": 0.2314,
"predicted_BB": 0.3541,
"predicted_H": 0.8731,
"predicted_HBP": 0.011,
"predicted_HR": 0.2896,
"predicted_OBP": 0.2789,
"predicted_R": 0.5623,
"predicted_RBI": 0.7332,
"predicted_SLG": 0.4663,
"predicted_SO": 1.0432
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.207,
"after": 0.1785,
"delta": -0.0285,
"percent_delta": -0.1377,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0004,
"delta": 0.0004,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.841,
"after": 3.7749,
"delta": -0.0661,
"percent_delta": -0.0172,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.24,
"after": 0.2314,
"delta": -0.0086,
"percent_delta": -0.0358,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.39,
"after": 0.3541,
"delta": -0.0359,
"percent_delta": -0.0921,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.92,
"after": 0.8731,
"delta": -0.0469,
"percent_delta": -0.051,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.34,
"after": 0.2896,
"delta": -0.0504,
"percent_delta": -0.1482,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.284,
"after": 0.2789,
"delta": -0.0051,
"percent_delta": -0.018,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.61,
"after": 0.5623,
"delta": -0.0477,
"percent_delta": -0.0782,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.77,
"after": 0.7332,
"delta": -0.0368,
"percent_delta": -0.0478,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.485,
"after": 0.4663,
"delta": -0.0187,
"percent_delta": -0.0386,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.055,
"after": 1.0432,
"delta": -0.0118,
"percent_delta": -0.0112,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 0,
"deboosted_metrics": 5,
"better_metrics": 0,
"worse_metrics": 5,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_AB",
"before": 3.841,
"after": 3.7749,
"delta": -0.0661,
"percent_delta": -0.0172,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 164
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1785,
"predicted_3B": 0.0004,
"predicted_AB": 3.7749,
"predicted_AVG": 0.2239,
"predicted_BB": 0.3523,
"predicted_H": 0.8451,
"predicted_HBP": 0.011,
"predicted_HR": 0.2812,
"predicted_OBP": 0.2901,
"predicted_R": 0.5322,
"predicted_RBI": 0.694,
"predicted_SLG": 0.4948,
"predicted_SO": 1.0486
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1785,
"after": 0.1785,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0004,
"after": 0.0004,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.7749,
"after": 3.7749,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2314,
"after": 0.2239,
"delta": -0.0075,
"percent_delta": -0.0324,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.3541,
"after": 0.3523,
"delta": -0.0018,
"percent_delta": -0.0051,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.8731,
"after": 0.8451,
"delta": -0.028,
"percent_delta": -0.0321,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.011,
"after": 0.011,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.2896,
"after": 0.2812,
"delta": -0.0084,
"percent_delta": -0.029,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.2789,
"after": 0.2901,
"delta": 0.0112,
"percent_delta": 0.0402,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.5623,
"after": 0.5322,
"delta": -0.0301,
"percent_delta": -0.0535,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.7332,
"after": 0.694,
"delta": -0.0392,
"percent_delta": -0.0535,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4663,
"after": 0.4948,
"delta": 0.0285,
"percent_delta": 0.0611,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0432,
"after": 1.0486,
"delta": 0.0054,
"percent_delta": 0.0052,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 2,
"deboosted_metrics": 1,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.4663,
"after": 0.4948,
"delta": 0.0285,
"percent_delta": 0.0611,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AVG",
"before": 0.2314,
"after": 0.2239,
"delta": -0.0075,
"percent_delta": -0.0324,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=3.84), rates preserved: AVG=0.212 HR/AB=0.073",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1785,
"after": 0.0,
"delta": -0.1785,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0004,
"after": 0.0,
"delta": -0.0004,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.7749,
"after": 4.0,
"delta": 0.2251,
"percent_delta": 0.0596,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.3523,
"after": 0.0,
"delta": -0.3523,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8451,
"after": 1.0,
"delta": 0.1549,
"percent_delta": 0.1833,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.011,
"after": 0.0,
"delta": -0.011,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.2812,
"after": 0.0,
"delta": -0.2812,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.694,
"after": 1.0,
"delta": 0.306,
"percent_delta": 0.4409,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0486,
"after": 1.0,
"delta": -0.0486,
"percent_delta": -0.0463,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 3,
"deboosted_metrics": 3,
"better_metrics": 3,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.694,
"after": 1.0,
"delta": 0.306,
"percent_delta": 0.4409,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.3523,
"after": 0.0,
"delta": -0.3523,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "bvp_blend",
"description": "Sample-size BvP blend (BvP AB=10.0, weight=0.100, BvP AVG=0.300)",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {
"model_expectation": 0.9,
"bvp": 0.1
},
"window_games": {}
},
{
"index": 7,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.5322,
"after": 1.0,
"delta": 0.4678,
"percent_delta": 0.879,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.5322,
"after": 1.0,
"delta": 0.4678,
"percent_delta": 0.879,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1809,
"predicted_3B": 0.0057,
"predicted_BB": 0.2861,
"predicted_H": 0.8825,
"predicted_HR": 0.2001,
"predicted_RBI": 0.5426,
"predicted_SO": 1.3284
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1809,
"delta": 0.1809,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0057,
"delta": 0.0057,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.2861,
"delta": 0.2861,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.8825,
"delta": -0.1175,
"percent_delta": -0.1175,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.2001,
"delta": 0.2001,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.5426,
"delta": -0.4574,
"percent_delta": -0.4574,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.3284,
"delta": 0.3284,
"percent_delta": 0.3284,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 3,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 1.3284,
"delta": 0.3284,
"percent_delta": 0.3284,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.5426,
"delta": -0.4574,
"percent_delta": -0.4574,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1809,
"after": 0.0,
"delta": -0.1809,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0057,
"after": 0.0,
"delta": -0.0057,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.2861,
"after": 0.0,
"delta": -0.2861,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8825,
"after": 1.0,
"delta": 0.1175,
"percent_delta": 0.1331,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.2001,
"after": 1.0,
"delta": 0.7999,
"percent_delta": 3.9975,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5426,
"after": 1.0,
"delta": 0.4574,
"percent_delta": 0.843,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.3284,
"after": 1.0,
"delta": -0.3284,
"percent_delta": -0.2472,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 3,
"deboosted_metrics": 3,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_HR",
"before": 0.2001,
"after": 1.0,
"delta": 0.7999,
"percent_delta": 3.9975,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.3284,
"after": 1.0,
"delta": -0.3284,
"percent_delta": -0.2472,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.238,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.298,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SLG": 0.451,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2239,
"after": 0.238,
"delta": 0.0141,
"percent_delta": 0.063,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.2901,
"after": 0.298,
"delta": 0.0079,
"percent_delta": 0.0272,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4948,
"after": 0.451,
"delta": -0.0438,
"percent_delta": -0.0885,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 2,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_AVG",
"before": 0.2239,
"after": 0.238,
"delta": 0.0141,
"percent_delta": 0.063,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_HR",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 2.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 12,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.2239,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_FB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.2901,
"predicted_R": 1.0,
"predicted_RBI": 2.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.4948,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.238,
"after": 0.2239,
"delta": -0.0141,
"percent_delta": -0.0594,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.298,
"after": 0.2901,
"delta": -0.0079,
"percent_delta": -0.0265,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.451,
"after": 0.4948,
"delta": 0.0438,
"percent_delta": 0.0972,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.451,
"after": 0.4948,
"delta": 0.0438,
"percent_delta": 0.0972,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AVG",
"before": 0.238,
"after": 0.2239,
"delta": -0.0141,
"percent_delta": -0.0594,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.207,
"after": 0.0,
"delta": -0.207,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.841,
"after": 4.0,
"delta": 0.159,
"percent_delta": 0.0414,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.24,
"after": 0.2239,
"delta": -0.0161,
"percent_delta": -0.0671,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.39,
"after": 1.0,
"delta": 0.61,
"percent_delta": 1.5641,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.92,
"after": 1.0,
"delta": 0.08,
"percent_delta": 0.087,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.34,
"after": 0.0,
"delta": -0.34,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.284,
"after": 0.2901,
"delta": 0.0061,
"percent_delta": 0.0215,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.61,
"after": 1.0,
"delta": 0.39,
"percent_delta": 0.6393,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.77,
"after": 2.0,
"delta": 1.23,
"percent_delta": 1.5974,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.485,
"after": 0.4948,
"delta": 0.0098,
"percent_delta": 0.0202,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.055,
"after": 1.0,
"delta": -0.055,
"percent_delta": -0.0521,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 11,
"boosted_metrics": 7,
"deboosted_metrics": 4,
"better_metrics": 8,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.77,
"after": 2.0,
"delta": 1.23,
"percent_delta": 1.5974,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_HR",
"before": 0.34,
"after": 0.0,
"delta": -0.34,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.207 | - |
| predicted_3B | 0.000 | - |
| predicted_AB | 3.841 | - |
| predicted_AVG | 0.240 | - |
| predicted_BB | 0.390 | - |
| predicted_H | 0.920 | - |
| predicted_HR | 0.340 | - |
| predicted_OBP | 0.284 | - |
| predicted_R | 0.610 | - |
| predicted_RBI | 0.770 | - |
| predicted_SLG | 0.485 | - |
| predicted_SO | 1.055 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.178 | -0.028 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 3.775 | -0.066 |
| predicted_AVG | 0.231 | -0.009 |
| predicted_BB | 0.354 | -0.036 |
| predicted_H | 0.873 | -0.047 |
| predicted_HBP | 0.011 | - |
| predicted_HR | 0.290 | -0.050 |
| predicted_OBP | 0.279 | -0.005 |
| predicted_R | 0.562 | -0.048 |
| predicted_RBI | 0.733 | -0.037 |
| predicted_SLG | 0.466 | -0.019 |
| predicted_SO | 1.043 | -0.012 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.178 | 0.000 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 3.775 | 0.000 |
| predicted_AVG | 0.224 | -0.008 |
| predicted_BB | 0.352 | -0.002 |
| predicted_H | 0.845 | -0.028 |
| predicted_HBP | 0.011 | 0.000 |
| predicted_HR | 0.281 | -0.008 |
| predicted_OBP | 0.290 | 0.011 |
| predicted_R | 0.532 | -0.030 |
| predicted_RBI | 0.694 | -0.039 |
| predicted_SLG | 0.495 | 0.029 |
| predicted_SO | 1.049 | 0.005 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=3.84), rates preserved: AVG=0.212 HR/AB=0.073
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=10.0, weight=0.100, BvP AVG=0.300)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.181 | 0.181 |
| 3B | 0.006 | 0.006 |
| BB | 0.286 | 0.286 |
| H | 0.882 | -0.118 |
| HR | 0.200 | 0.200 |
| RBI | 0.543 | -0.457 |
| SO | 1.328 | 0.328 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.181 |
| 3B | 0.000 | -0.006 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -0.286 |
| H | 1.000 | 0.118 |
| HR | 1.000 | 0.800 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.457 |
| SO | 1.000 | -0.328 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.178 |
| predicted_3B | 0.000 | -0.000 |
| predicted_AB | 4.000 | 0.225 |
| predicted_AVG | 0.238 | 0.014 |
| predicted_BB | 0.000 | -0.352 |
| predicted_H | 1.000 | 0.155 |
| predicted_HR | 0.000 | -0.281 |
| predicted_OBP | 0.298 | 0.008 |
| predicted_R | 1.000 | 0.468 |
| predicted_RBI | 1.000 | 0.306 |
| predicted_SLG | 0.451 | -0.044 |
| predicted_SO | 1.000 | -0.049 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 1.000 |
| CS | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | -1.000 |
| PA | 5.000 | - |
| R | 1.000 | 0.000 |
| RBI | 2.000 | 1.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 17.000 | 3.000 | 0.000 | 0.000 | 1.000 | 5.000 | 2.000 | 1.000 | 6.000 | 0.1765 | 0.2000 | 0.3529 | 0.1765 | 0.0588 | 0.2941 | 0.0588 | 0.3529 |
| last_10 | 0.20 | 10 | - | 35.000 | 6.000 | 1.000 | 0.000 | 2.000 | 7.000 | 3.000 | 2.000 | 8.000 | 0.1714 | 0.2000 | 0.3714 | 0.1714 | 0.0571 | 0.2000 | 0.0571 | 0.2286 |
| season | 0.60 | 164 | - | 630.000 | 157.000 | 34.000 | 0.000 | 41.000 | 94.000 | 100.000 | 64.000 | 173.000 | 0.2492 | 0.3182 | 0.4984 | 0.2492 | 0.0651 | 0.1492 | 0.1016 | 0.2746 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1420 |
| predicted_3B | 0.0010 |
| predicted_AB | 3.6900 |
| predicted_AVG | 0.2203 |
| predicted_BB | 0.3080 |
| predicted_H | 0.8130 |
| predicted_HBP | 0.0110 |
| predicted_HR | 0.2250 |
| predicted_OBP | 0.2723 |
| predicted_R | 0.5010 |
| predicted_RBI | 0.6860 |
| predicted_SLG | 0.4424 |
| predicted_SO | 1.0280 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.2070 | 0.1420 | 0.1785 | model_form_blend |
| predicted_3B | 0.0000 | 0.0010 | 0.0004 | model_form_blend |
| predicted_AB | 3.8410 | 3.6900 | 3.7749 | model_form_blend |
| predicted_AVG | 0.2400 | 0.2203 | 0.2314 | model_form_blend |
| predicted_BB | 0.3900 | 0.3080 | 0.3541 | model_form_blend |
| predicted_H | 0.9200 | 0.8130 | 0.8731 | model_form_blend |
| predicted_HBP | - | 0.0110 | 0.0110 | form_only |
| predicted_HR | 0.3400 | 0.2250 | 0.2896 | model_form_blend |
| predicted_OBP | 0.2840 | 0.2723 | 0.2789 | model_form_blend |
| predicted_R | 0.6100 | 0.5010 | 0.5623 | model_form_blend |
| predicted_RBI | 0.7700 | 0.6860 | 0.7332 | model_form_blend |
| predicted_SLG | 0.4850 | 0.4424 | 0.4663 | model_form_blend |
| predicted_SO | 1.0550 | 1.0280 | 1.0432 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 668 |
| Season rows before report date | 668 |
| Report year | 2026 |
| Profile rows used | 164 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 5 |
| AB | 4 |
| H | 1 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 1 |
| RBI | 2 |
| BB | 1 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 3 |
| Hitting_AVG | 0.333 |
| Hitting_BB | 1 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 1 |
| Hitting_IBB | 0 |
| Hitting_R | 2 |
| Hitting_RBI | 1 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 4 |
| Hitting_battingOrder | 3 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | 1B |
| gameID | 20261001_PHI@ATL |
| game_type | full |
| mlbID | 621566 |
| playerID | 621566 |
| playerName | Matt Olson |
| pos | 1B |
| started | True |
| startingPosition | 1B |
| team | ATL |
| teamID | 2 |
| game_date | 2026-10-01 |
| sl_k_percent | 24.5 |
| sl_bb_percent | 9.2 |
| sl_woba | 0.351 |
| sl_xwoba | 0.351 |
| sl_xba | 0.247 |
| sl_xslg | 0.503 |
| sl_sweet_spot_percent | 32.0 |
| sl_barrel_batted_rate | 14.2 |
| sl_hard_hit_percent | 52.0 |
| sl_exit_velocity_avg | 92.5 |
| sl_launch_angle_avg | 18.1 |
| sl_whiff_percent | 25.4 |
| sl_swing_percent | 46.9 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.165 | 0.000 | 0.000 | Hitting_2B | 0.180 | 0.000 | -0.180 | 0.000 |
| predicted_3B | 0.009 | 0.000 | 0.000 | Hitting_3B | 0.009 | 0.000 | -0.009 | 0.000 |
| predicted_AB | 4.210 | 5.000 | 4.000 | Hitting_AB | 3.872 | 3.000 | 1.128 | 2.000 |
| predicted_AVG | 0.229 | 0.200 | 0.250 | Hitting_AVG | 0.257 | 0.333 | -0.057 | -0.133 |
| predicted_BB | 0.505 | 0.000 | 1.000 | Hitting_BB | 0.532 | 1.000 | -0.532 | -1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.077 | 0.000 | -0.077 | 0.000 |
| predicted_H | 0.960 | 1.000 | 1.000 | Hitting_H | 0.995 | 1.000 | 0.005 | 0.000 |
| predicted_HR | 0.200 | 1.000 | 0.000 | Hitting_HR | 0.187 | 0.000 | 0.813 | 1.000 |
| predicted_OBP | 0.328 | 0.200 | 0.400 | Hitting_OBP | 0.351 | 0.500 | -0.151 | -0.300 |
| predicted_R | 0.578 | 1.000 | 1.000 | Hitting_R | 0.581 | 1.000 | 0.419 | 0.000 |
| predicted_RBI | 0.460 | 2.000 | 0.000 | Hitting_RBI | 0.511 | 0.000 | 1.489 | 2.000 |
| predicted_SLG | 0.399 | 0.800 | 0.250 | Hitting_SLG | 0.453 | 0.333 | 0.347 | 0.467 |
| predicted_SO | 0.954 | 2.000 | 1.000 | Hitting_SO | 0.980 | 0.000 | 1.020 | 2.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 10 |
| Boosted Metrics | 5 |
| Deboosted Metrics | 5 |
| Better Metrics | 4 |
| Worse Metrics | 6 |
| Biggest Boost | predicted_RBI: 0.4600 -> 2.0000 (boost 1.5400, better) |
| Biggest Deboost | predicted_BB: 0.5050 -> 0.0000 (deboost -0.5050, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 4 | 0 | 4 | 0 | 4 | - | predicted_AB: 4.2100 -> 3.9915 (deboost -0.2185, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 2 | 0 | 2 | 0 | 2 | - | predicted_OBP: 0.3244 -> 0.3018 (deboost -0.0226, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 2 | 5 | 1 | 6 | predicted_H: 0.8467 -> 1.0000 (boost 0.1533, better) | predicted_BB: 0.5127 -> 0.0000 (deboost -0.5127, worse) | AB rounded to 4 (raw=4.21), rates preserved: AVG=0.194 HR/AB=0.041 |
| 6 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5249 -> 1.0000 (boost 0.4751, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 5 | 1 | 4 | 2 | predicted_RBI: 0.0000 -> 0.4765 (boost 0.4765, better) | predicted_H: 1.0000 -> 0.8802 (deboost -0.1198, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 6 | 2 | 4 | 3 | 3 | predicted_BB: 0.4152 -> 1.0000 (boost 0.5848, better) | predicted_RBI: 0.4765 -> 0.0000 (deboost -0.4765, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 4 | 3 | 1 | 3 | 1 | predicted_SLG: 0.3799 -> 0.4120 (boost 0.0321, better) | predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 4 | 4 | 0 | 3 | 1 | predicted_RBI: 0.0000 -> 2.0000 (boost 2.0000, better) | - | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 3 | 0 | 3 | 0 | 3 | - | predicted_SLG: 0.4120 -> 0.3799 (deboost -0.0321, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "660670",
"player_name": "Ronald Acuña Jr.",
"position": "RF",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.165,
"predicted_3B": 0.009,
"predicted_AB": 4.21,
"predicted_AVG": 0.229,
"predicted_BB": 0.505,
"predicted_H": 0.96,
"predicted_HR": 0.2,
"predicted_OBP": 0.328,
"predicted_R": 0.578,
"predicted_RBI": 0.46,
"predicted_SLG": 0.399,
"predicted_SO": 0.954
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1373,
"predicted_3B": 0.0077,
"predicted_AB": 3.9915,
"predicted_AVG": 0.219,
"predicted_BB": 0.5154,
"predicted_H": 0.8748,
"predicted_HBP": 0.091,
"predicted_HR": 0.1775,
"predicted_OBP": 0.3244,
"predicted_R": 0.5546,
"predicted_RBI": 0.4449,
"predicted_SLG": 0.3807,
"predicted_SO": 0.9086
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.165,
"after": 0.1373,
"delta": -0.0277,
"percent_delta": -0.1679,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.009,
"after": 0.0077,
"delta": -0.0013,
"percent_delta": -0.1444,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.21,
"after": 3.9915,
"delta": -0.2185,
"percent_delta": -0.0519,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.229,
"after": 0.219,
"delta": -0.01,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.505,
"after": 0.5154,
"delta": 0.0104,
"percent_delta": 0.0206,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.96,
"after": 0.8748,
"delta": -0.0852,
"percent_delta": -0.0887,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.2,
"after": 0.1775,
"delta": -0.0225,
"percent_delta": -0.1125,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.328,
"after": 0.3244,
"delta": -0.0036,
"percent_delta": -0.011,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.578,
"after": 0.5546,
"delta": -0.0234,
"percent_delta": -0.0405,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.46,
"after": 0.4449,
"delta": -0.0151,
"percent_delta": -0.0328,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.399,
"after": 0.3807,
"delta": -0.0183,
"percent_delta": -0.0459,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.954,
"after": 0.9086,
"delta": -0.0454,
"percent_delta": -0.0476,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 0,
"deboosted_metrics": 4,
"better_metrics": 0,
"worse_metrics": 4,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.21,
"after": 3.9915,
"delta": -0.2185,
"percent_delta": -0.0519,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 109
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1373,
"predicted_3B": 0.0077,
"predicted_AB": 3.9915,
"predicted_AVG": 0.2121,
"predicted_BB": 0.5127,
"predicted_H": 0.8467,
"predicted_HBP": 0.091,
"predicted_HR": 0.1724,
"predicted_OBP": 0.3018,
"predicted_R": 0.5249,
"predicted_RBI": 0.4211,
"predicted_SLG": 0.3799,
"predicted_SO": 0.9133
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1373,
"after": 0.1373,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0077,
"after": 0.0077,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.9915,
"after": 3.9915,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.219,
"after": 0.2121,
"delta": -0.0069,
"percent_delta": -0.0315,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.5154,
"after": 0.5127,
"delta": -0.0027,
"percent_delta": -0.0052,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.8748,
"after": 0.8467,
"delta": -0.0281,
"percent_delta": -0.0321,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.091,
"after": 0.091,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1775,
"after": 0.1724,
"delta": -0.0051,
"percent_delta": -0.0287,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3244,
"after": 0.3018,
"delta": -0.0226,
"percent_delta": -0.0697,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.5546,
"after": 0.5249,
"delta": -0.0297,
"percent_delta": -0.0536,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.4449,
"after": 0.4211,
"delta": -0.0238,
"percent_delta": -0.0535,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3807,
"after": 0.3799,
"delta": -0.0008,
"percent_delta": -0.0021,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.9086,
"after": 0.9133,
"delta": 0.0047,
"percent_delta": 0.0052,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.3244,
"after": 0.3018,
"delta": -0.0226,
"percent_delta": -0.0697,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=4.21), rates preserved: AVG=0.194 HR/AB=0.041",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1373,
"after": 0.0,
"delta": -0.1373,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0077,
"after": 0.0,
"delta": -0.0077,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.9915,
"after": 4.0,
"delta": 0.0085,
"percent_delta": 0.0021,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.5127,
"after": 0.0,
"delta": -0.5127,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8467,
"after": 1.0,
"delta": 0.1533,
"percent_delta": 0.1811,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.091,
"after": 0.0,
"delta": -0.091,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1724,
"after": 0.0,
"delta": -0.1724,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.4211,
"after": 0.0,
"delta": -0.4211,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.9133,
"after": 1.0,
"delta": 0.0867,
"percent_delta": 0.0949,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 2,
"deboosted_metrics": 5,
"better_metrics": 1,
"worse_metrics": 6,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.8467,
"after": 1.0,
"delta": 0.1533,
"percent_delta": 0.1811,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.5127,
"after": 0.0,
"delta": -0.5127,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.5249,
"after": 1.0,
"delta": 0.4751,
"percent_delta": 0.9051,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.5249,
"after": 1.0,
"delta": 0.4751,
"percent_delta": 0.9051,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1783,
"predicted_3B": 0.0083,
"predicted_BB": 0.4152,
"predicted_H": 0.8802,
"predicted_HR": 0.1687,
"predicted_RBI": 0.4765,
"predicted_SO": 1.1418
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1783,
"delta": 0.1783,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0083,
"delta": 0.0083,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.4152,
"delta": 0.4152,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.8802,
"delta": -0.1198,
"percent_delta": -0.1198,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1687,
"delta": 0.1687,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.4765,
"delta": 0.4765,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.1418,
"delta": 0.1418,
"percent_delta": 0.1418,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 5,
"deboosted_metrics": 1,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.4765,
"delta": 0.4765,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.8802,
"delta": -0.1198,
"percent_delta": -0.1198,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1783,
"after": 0.0,
"delta": -0.1783,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0083,
"after": 0.0,
"delta": -0.0083,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.4152,
"after": 1.0,
"delta": 0.5848,
"percent_delta": 1.4085,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8802,
"after": 1.0,
"delta": 0.1198,
"percent_delta": 0.1361,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1687,
"after": 0.0,
"delta": -0.1687,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.4765,
"after": 0.0,
"delta": -0.4765,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.1418,
"after": 1.0,
"delta": -0.1418,
"percent_delta": -0.1242,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 2,
"deboosted_metrics": 4,
"better_metrics": 3,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.4152,
"after": 1.0,
"delta": 0.5848,
"percent_delta": 1.4085,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.4765,
"after": 0.0,
"delta": -0.4765,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.229,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.31,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.412,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2121,
"after": 0.229,
"delta": 0.0169,
"percent_delta": 0.0797,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3018,
"after": 0.31,
"delta": 0.0082,
"percent_delta": 0.0272,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3799,
"after": 0.412,
"delta": 0.0321,
"percent_delta": 0.0845,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 3,
"deboosted_metrics": 1,
"better_metrics": 3,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.3799,
"after": 0.412,
"delta": 0.0321,
"percent_delta": 0.0845,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 5.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 1.0,
"predicted_R": 1.0,
"predicted_RBI": 2.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 2.0,
"delta": 2.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 4,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 2.0,
"delta": 2.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 5.0,
"predicted_AVG": 0.2121,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 1.0,
"predicted_OBP": 0.3018,
"predicted_R": 1.0,
"predicted_RBI": 2.0,
"predicted_RF": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.3799,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.229,
"after": 0.2121,
"delta": -0.0169,
"percent_delta": -0.0737,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.31,
"after": 0.3018,
"delta": -0.0082,
"percent_delta": -0.0264,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.412,
"after": 0.3799,
"delta": -0.0321,
"percent_delta": -0.0778,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.412,
"after": 0.3799,
"delta": -0.0321,
"percent_delta": -0.0778,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.165,
"after": 0.0,
"delta": -0.165,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.009,
"after": 0.0,
"delta": -0.009,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.21,
"after": 5.0,
"delta": 0.79,
"percent_delta": 0.1876,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.229,
"after": 0.2121,
"delta": -0.0169,
"percent_delta": -0.0738,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.505,
"after": 0.0,
"delta": -0.505,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.96,
"after": 1.0,
"delta": 0.04,
"percent_delta": 0.0417,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.2,
"after": 1.0,
"delta": 0.8,
"percent_delta": 4.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.328,
"after": 0.3018,
"delta": -0.0262,
"percent_delta": -0.0799,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.578,
"after": 1.0,
"delta": 0.422,
"percent_delta": 0.7301,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.46,
"after": 2.0,
"delta": 1.54,
"percent_delta": 3.3478,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.399,
"after": 0.3799,
"delta": -0.0191,
"percent_delta": -0.0479,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.954,
"after": 2.0,
"delta": 1.046,
"percent_delta": 1.0964,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 10,
"boosted_metrics": 5,
"deboosted_metrics": 5,
"better_metrics": 4,
"worse_metrics": 6,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.46,
"after": 2.0,
"delta": 1.54,
"percent_delta": 3.3478,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.505,
"after": 0.0,
"delta": -0.505,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.165 | - |
| predicted_3B | 0.009 | - |
| predicted_AB | 4.210 | - |
| predicted_AVG | 0.229 | - |
| predicted_BB | 0.505 | - |
| predicted_H | 0.960 | - |
| predicted_HR | 0.200 | - |
| predicted_OBP | 0.328 | - |
| predicted_R | 0.578 | - |
| predicted_RBI | 0.460 | - |
| predicted_SLG | 0.399 | - |
| predicted_SO | 0.954 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.137 | -0.028 |
| predicted_3B | 0.008 | -0.001 |
| predicted_AB | 3.991 | -0.219 |
| predicted_AVG | 0.219 | -0.010 |
| predicted_BB | 0.515 | 0.010 |
| predicted_H | 0.875 | -0.085 |
| predicted_HBP | 0.091 | - |
| predicted_HR | 0.177 | -0.023 |
| predicted_OBP | 0.324 | -0.004 |
| predicted_R | 0.555 | -0.023 |
| predicted_RBI | 0.445 | -0.015 |
| predicted_SLG | 0.381 | -0.018 |
| predicted_SO | 0.909 | -0.045 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.137 | 0.000 |
| predicted_3B | 0.008 | 0.000 |
| predicted_AB | 3.991 | 0.000 |
| predicted_AVG | 0.212 | -0.007 |
| predicted_BB | 0.513 | -0.003 |
| predicted_H | 0.847 | -0.028 |
| predicted_HBP | 0.091 | 0.000 |
| predicted_HR | 0.172 | -0.005 |
| predicted_OBP | 0.302 | -0.023 |
| predicted_R | 0.525 | -0.030 |
| predicted_RBI | 0.421 | -0.024 |
| predicted_SLG | 0.380 | -0.001 |
| predicted_SO | 0.913 | 0.005 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=4.21), rates preserved: AVG=0.194 HR/AB=0.041
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.178 | 0.178 |
| 3B | 0.008 | 0.008 |
| BB | 0.415 | 0.415 |
| H | 0.880 | -0.120 |
| HR | 0.169 | 0.169 |
| RBI | 0.476 | 0.476 |
| SO | 1.142 | 0.142 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.178 |
| 3B | 0.000 | -0.008 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 0.585 |
| H | 1.000 | 0.120 |
| HR | 0.000 | -0.169 |
| R | 1.000 | 0.000 |
| RBI | 0.000 | -0.476 |
| SO | 1.000 | -0.142 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.137 |
| predicted_3B | 0.000 | -0.008 |
| predicted_AB | 4.000 | 0.009 |
| predicted_AVG | 0.229 | 0.017 |
| predicted_BB | 0.000 | -0.513 |
| predicted_H | 1.000 | 0.153 |
| predicted_HR | 0.000 | -0.172 |
| predicted_OBP | 0.310 | 0.008 |
| predicted_R | 1.000 | 0.475 |
| predicted_RBI | 0.000 | -0.421 |
| predicted_SLG | 0.412 | 0.032 |
| predicted_SO | 1.000 | 0.087 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 5.000 | 1.000 |
| BB | 0.000 | -1.000 |
| CS | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 1.000 | 1.000 |
| PA | 5.000 | - |
| R | 1.000 | 0.000 |
| RBI | 2.000 | 2.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 2.000 | 1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 18.000 | 1.000 | 0.000 | 0.000 | 0.000 | 0.000 | 2.000 | 3.000 | 4.000 | 0.0556 | 0.2273 | 0.0556 | 0.0556 | 0.0000 | 0.0000 | 0.1667 | 0.2222 |
| last_10 | 0.20 | 10 | - | 35.000 | 7.000 | 0.000 | 0.000 | 2.000 | 6.000 | 5.000 | 6.000 | 6.000 | 0.2000 | 0.3333 | 0.3714 | 0.2000 | 0.0571 | 0.1714 | 0.1714 | 0.1714 |
| season | 0.60 | 109 | - | 414.000 | 105.000 | 18.000 | 1.000 | 20.000 | 55.000 | 63.000 | 55.000 | 104.000 | 0.2536 | 0.3473 | 0.4469 | 0.2536 | 0.0483 | 0.1328 | 0.1328 | 0.2512 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1010 |
| predicted_3B | 0.0060 |
| predicted_AB | 3.7050 |
| predicted_AVG | 0.2059 |
| predicted_BB | 0.5290 |
| predicted_H | 0.7630 |
| predicted_HBP | 0.0910 |
| predicted_HR | 0.1480 |
| predicted_OBP | 0.3196 |
| predicted_R | 0.5240 |
| predicted_RBI | 0.4250 |
| predicted_SLG | 0.3567 |
| predicted_SO | 0.8490 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1650 | 0.1010 | 0.1373 | model_form_blend |
| predicted_3B | 0.0090 | 0.0060 | 0.0077 | model_form_blend |
| predicted_AB | 4.2100 | 3.7050 | 3.9915 | model_form_blend |
| predicted_AVG | 0.2290 | 0.2059 | 0.2190 | model_form_blend |
| predicted_BB | 0.5050 | 0.5290 | 0.5154 | model_form_blend |
| predicted_H | 0.9600 | 0.7630 | 0.8748 | model_form_blend |
| predicted_HBP | - | 0.0910 | 0.0910 | form_only |
| predicted_HR | 0.2000 | 0.1480 | 0.1775 | model_form_blend |
| predicted_OBP | 0.3280 | 0.3196 | 0.3244 | model_form_blend |
| predicted_R | 0.5780 | 0.5240 | 0.5546 | model_form_blend |
| predicted_RBI | 0.4600 | 0.4250 | 0.4449 | model_form_blend |
| predicted_SLG | 0.3990 | 0.3567 | 0.3807 | model_form_blend |
| predicted_SO | 0.9540 | 0.8490 | 0.9086 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 444 |
| Season rows before report date | 444 |
| Report year | 2026 |
| Profile rows used | 109 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 5 |
| AB | 5 |
| H | 1 |
| 2B | 0 |
| 3B | 0 |
| HR | 1 |
| R | 1 |
| RBI | 2 |
| BB | 0 |
| SO | 2 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 3 |
| Hitting_AVG | 0.333 |
| Hitting_BB | 1 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 1 |
| Hitting_battingOrder | 2 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | RF |
| gameID | 20261001_PHI@ATL |
| game_type | full |
| mlbID | 660670 |
| playerID | 660670 |
| playerName | Ronald Acuña Jr. |
| pos | RF |
| started | True |
| startingPosition | RF |
| team | ATL |
| teamID | 2 |
| game_date | 2026-10-01 |
| sl_k_percent | 22.0 |
| sl_bb_percent | 11.3 |
| sl_woba | 0.348 |
| sl_xwoba | 0.366 |
| sl_xba | 0.261 |
| sl_xslg | 0.495 |
| sl_sweet_spot_percent | 34.7 |
| sl_barrel_batted_rate | 13.0 |
| sl_hard_hit_percent | 43.5 |
| sl_exit_velocity_avg | 89.6 |
| sl_launch_angle_avg | 15.7 |
| sl_whiff_percent | 29.0 |
| sl_swing_percent | 49.4 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.187 | 0.000 | 0.000 | Hitting_2B | 0.193 | 0.000 | -0.193 | 0.000 |
| predicted_3B | 0.019 | 1.000 | 0.000 | Hitting_3B | 0.022 | 0.000 | 0.978 | 1.000 |
| predicted_AB | 4.310 | 4.000 | 4.000 | Hitting_AB | 3.824 | 4.000 | 0.176 | 0.000 |
| predicted_AVG | 0.253 | 0.500 | 0.250 | Hitting_AVG | 0.278 | 0.000 | 0.222 | 0.500 |
| predicted_BB | 0.226 | 0.000 | 0.000 | Hitting_BB | 0.245 | 0.000 | -0.245 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.022 | 0.000 | -0.022 | 0.000 |
| predicted_H | 1.090 | 2.000 | 1.000 | Hitting_H | 1.064 | 0.000 | 0.936 | 2.000 |
| predicted_HR | 0.100 | 0.000 | 0.000 | Hitting_HR | 0.081 | 0.000 | -0.081 | 0.000 |
| predicted_OBP | 0.311 | 0.500 | 0.250 | Hitting_OBP | 0.325 | 0.000 | 0.175 | 0.500 |
| predicted_R | 0.426 | 1.000 | 0.000 | Hitting_R | 0.448 | 0.000 | 0.552 | 1.000 |
| predicted_RBI | 0.470 | 0.000 | 0.000 | Hitting_RBI | 0.510 | 0.000 | -0.510 | 0.000 |
| predicted_SLG | 0.404 | 1.000 | 0.250 | Hitting_SLG | 0.404 | 0.000 | 0.596 | 1.000 |
| predicted_SO | 0.490 | 1.000 | 1.000 | Hitting_SO | 0.485 | 1.000 | 0.515 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 11 |
| Boosted Metrics | 4 |
| Deboosted Metrics | 7 |
| Better Metrics | 3 |
| Worse Metrics | 8 |
| Biggest Boost | predicted_3B: 0.0190 -> 1.0000 (boost 0.9810, better) |
| Biggest Deboost | predicted_RBI: 0.4700 -> 0.0000 (deboost -0.4700, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 2 | 1 | 1 | 1 | 1 | predicted_AVG: 0.2530 -> 0.2625 (boost 0.0095, better) | predicted_AB: 4.3100 -> 4.1031 (deboost -0.2069, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 3 | 0 | 3 | 0 | 3 | - | predicted_SLG: 0.4086 -> 0.3805 (deboost -0.0281, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 6 | 1 | 5 | 0 | 6 | predicted_SO: 0.5259 -> 1.0000 (boost 0.4741, worse) | predicted_RBI: 0.4275 -> 0.0000 (deboost -0.4275, worse) | AB rounded to 4 (raw=4.31), rates preserved: AVG=0.232 HR/AB=0.023 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=12.0, weight=0.114, BvP AVG=0.083) |
| 7 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.3859 -> 0.0000 (deboost -0.3859, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 4 | 2 | 5 | 1 | predicted_RBI: 0.0000 -> 0.4746 (boost 0.4746, better) | predicted_SO: 1.0000 -> 0.6885 (deboost -0.3115, better) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 9 | lineup_integer_allocation | 6 | 2 | 4 | 1 | 5 | predicted_SO: 0.6885 -> 1.0000 (boost 0.3115, worse) | predicted_RBI: 0.4746 -> 0.0000 (deboost -0.4746, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 10 | embedded_savant_player_context | 1 | 0 | 1 | 0 | 1 | - | predicted_AVG: 0.2534 -> 0.2390 (deboost -0.0144, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | simulation_box_score_reference | 3 | 3 | 0 | 3 | 0 | predicted_3B: 0.0000 -> 1.0000 (boost 1.0000, better) | - | Attached simulation box score without overwriting model prediction |
| 12 | current_json_final | 1 | 1 | 0 | 1 | 0 | predicted_AVG: 0.2390 -> 0.2534 (boost 0.0144, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "643289",
"player_name": "Mauricio Dubón",
"position": "LF",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.187,
"predicted_3B": 0.019,
"predicted_AB": 4.31,
"predicted_AVG": 0.253,
"predicted_BB": 0.226,
"predicted_H": 1.09,
"predicted_HR": 0.1,
"predicted_OBP": 0.311,
"predicted_R": 0.426,
"predicted_RBI": 0.47,
"predicted_SLG": 0.404,
"predicted_SO": 0.49
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1892,
"predicted_3B": 0.0159,
"predicted_AB": 4.1031,
"predicted_AVG": 0.2625,
"predicted_BB": 0.1989,
"predicted_H": 1.0743,
"predicted_HBP": 0.017,
"predicted_HR": 0.1031,
"predicted_OBP": 0.3088,
"predicted_R": 0.4077,
"predicted_RBI": 0.4517,
"predicted_SLG": 0.4086,
"predicted_SO": 0.5232
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.187,
"after": 0.1892,
"delta": 0.0022,
"percent_delta": 0.0118,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.019,
"after": 0.0159,
"delta": -0.0031,
"percent_delta": -0.1632,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.31,
"after": 4.1031,
"delta": -0.2069,
"percent_delta": -0.048,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.253,
"after": 0.2625,
"delta": 0.0095,
"percent_delta": 0.0375,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.226,
"after": 0.1989,
"delta": -0.0271,
"percent_delta": -0.1199,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.09,
"after": 1.0743,
"delta": -0.0157,
"percent_delta": -0.0144,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1,
"after": 0.1031,
"delta": 0.0031,
"percent_delta": 0.031,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.311,
"after": 0.3088,
"delta": -0.0022,
"percent_delta": -0.0071,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.426,
"after": 0.4077,
"delta": -0.0183,
"percent_delta": -0.043,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.47,
"after": 0.4517,
"delta": -0.0183,
"percent_delta": -0.0389,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.404,
"after": 0.4086,
"delta": 0.0046,
"percent_delta": 0.0114,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.49,
"after": 0.5232,
"delta": 0.0332,
"percent_delta": 0.0678,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_AVG",
"before": 0.253,
"after": 0.2625,
"delta": 0.0095,
"percent_delta": 0.0375,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.31,
"after": 4.1031,
"delta": -0.2069,
"percent_delta": -0.048,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 155
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1892,
"predicted_3B": 0.0159,
"predicted_AB": 4.1031,
"predicted_AVG": 0.2534,
"predicted_BB": 0.1979,
"predicted_H": 1.0398,
"predicted_HBP": 0.017,
"predicted_HR": 0.1001,
"predicted_OBP": 0.2878,
"predicted_R": 0.3859,
"predicted_RBI": 0.4275,
"predicted_SLG": 0.3805,
"predicted_SO": 0.5259
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1892,
"after": 0.1892,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0159,
"after": 0.0159,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.1031,
"after": 4.1031,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2625,
"after": 0.2534,
"delta": -0.0091,
"percent_delta": -0.0347,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.1989,
"after": 0.1979,
"delta": -0.001,
"percent_delta": -0.005,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0743,
"after": 1.0398,
"delta": -0.0345,
"percent_delta": -0.0321,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.017,
"after": 0.017,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1031,
"after": 0.1001,
"delta": -0.003,
"percent_delta": -0.0291,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3088,
"after": 0.2878,
"delta": -0.021,
"percent_delta": -0.068,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.4077,
"after": 0.3859,
"delta": -0.0218,
"percent_delta": -0.0535,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.4517,
"after": 0.4275,
"delta": -0.0242,
"percent_delta": -0.0536,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4086,
"after": 0.3805,
"delta": -0.0281,
"percent_delta": -0.0688,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.5232,
"after": 0.5259,
"delta": 0.0027,
"percent_delta": 0.0052,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.4086,
"after": 0.3805,
"delta": -0.0281,
"percent_delta": -0.0688,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=4.31), rates preserved: AVG=0.232 HR/AB=0.023",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1892,
"after": 0.0,
"delta": -0.1892,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0159,
"after": 0.0,
"delta": -0.0159,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.1031,
"after": 4.0,
"delta": -0.1031,
"percent_delta": -0.0251,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.1979,
"after": 0.0,
"delta": -0.1979,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0398,
"after": 1.0,
"delta": -0.0398,
"percent_delta": -0.0383,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.017,
"after": 0.0,
"delta": -0.017,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1001,
"after": 0.0,
"delta": -0.1001,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.4275,
"after": 0.0,
"delta": -0.4275,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.5259,
"after": 1.0,
"delta": 0.4741,
"percent_delta": 0.9015,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 1,
"deboosted_metrics": 5,
"better_metrics": 0,
"worse_metrics": 6,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.5259,
"after": 1.0,
"delta": 0.4741,
"percent_delta": 0.9015,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.4275,
"after": 0.0,
"delta": -0.4275,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "bvp_blend",
"description": "Sample-size BvP blend (BvP AB=12.0, weight=0.114, BvP AVG=0.083)",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {
"model_expectation": 0.8857,
"bvp": 0.1143
},
"window_games": {}
},
{
"index": 7,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.3859,
"after": 0.0,
"delta": -0.3859,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_R",
"before": 0.3859,
"after": 0.0,
"delta": -0.3859,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1721,
"predicted_3B": 0.0098,
"predicted_BB": 0.224,
"predicted_H": 0.8776,
"predicted_HR": 0.1109,
"predicted_RBI": 0.4746,
"predicted_SO": 0.6885
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1721,
"delta": 0.1721,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0098,
"delta": 0.0098,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.224,
"delta": 0.224,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.8776,
"delta": -0.1224,
"percent_delta": -0.1224,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1109,
"delta": 0.1109,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.4746,
"delta": 0.4746,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.6885,
"delta": -0.3115,
"percent_delta": -0.3115,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 5,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.4746,
"delta": 0.4746,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 0.6885,
"delta": -0.3115,
"percent_delta": -0.3115,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1721,
"after": 0.0,
"delta": -0.1721,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0098,
"after": 0.0,
"delta": -0.0098,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.224,
"after": 0.0,
"delta": -0.224,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8776,
"after": 1.0,
"delta": 0.1224,
"percent_delta": 0.1395,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1109,
"after": 0.0,
"delta": -0.1109,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.4746,
"after": 0.0,
"delta": -0.4746,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.6885,
"after": 1.0,
"delta": 0.3115,
"percent_delta": 0.4524,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 2,
"deboosted_metrics": 4,
"better_metrics": 1,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.6885,
"after": 1.0,
"delta": 0.3115,
"percent_delta": 0.4524,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.4746,
"after": 0.0,
"delta": -0.4746,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.239,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.289,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.382,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2534,
"after": 0.239,
"delta": -0.0144,
"percent_delta": -0.0568,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.2878,
"after": 0.289,
"delta": 0.0012,
"percent_delta": 0.0042,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3805,
"after": 0.382,
"delta": 0.0015,
"percent_delta": 0.0039,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_AVG",
"before": 0.2534,
"after": 0.239,
"delta": -0.0144,
"percent_delta": -0.0568,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 1.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 2.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_3B",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 12,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 1.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.2534,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 2.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_LF": 0.0,
"predicted_OBP": 0.2878,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.3805,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.239,
"after": 0.2534,
"delta": 0.0144,
"percent_delta": 0.0603,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"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_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.289,
"after": 0.2878,
"delta": -0.0012,
"percent_delta": -0.0043,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.382,
"after": 0.3805,
"delta": -0.0015,
"percent_delta": -0.004,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_AVG",
"before": 0.239,
"after": 0.2534,
"delta": 0.0144,
"percent_delta": 0.0603,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.187,
"after": 0.0,
"delta": -0.187,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.019,
"after": 1.0,
"delta": 0.981,
"percent_delta": 51.6316,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AB",
"before": 4.31,
"after": 4.0,
"delta": -0.31,
"percent_delta": -0.0719,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.253,
"after": 0.2534,
"delta": 0.0004,
"percent_delta": 0.0016,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.226,
"after": 0.0,
"delta": -0.226,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.09,
"after": 2.0,
"delta": 0.91,
"percent_delta": 0.8349,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1,
"after": 0.0,
"delta": -0.1,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.311,
"after": 0.2878,
"delta": -0.0232,
"percent_delta": -0.0746,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.426,
"after": 1.0,
"delta": 0.574,
"percent_delta": 1.3474,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.47,
"after": 0.0,
"delta": -0.47,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.404,
"after": 0.3805,
"delta": -0.0235,
"percent_delta": -0.0582,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.49,
"after": 1.0,
"delta": 0.51,
"percent_delta": 1.0408,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 11,
"boosted_metrics": 4,
"deboosted_metrics": 7,
"better_metrics": 3,
"worse_metrics": 8,
"biggest_boost": {
"metric": "predicted_3B",
"before": 0.019,
"after": 1.0,
"delta": 0.981,
"percent_delta": 51.6316,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.47,
"after": 0.0,
"delta": -0.47,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.187 | - |
| predicted_3B | 0.019 | - |
| predicted_AB | 4.310 | - |
| predicted_AVG | 0.253 | - |
| predicted_BB | 0.226 | - |
| predicted_H | 1.090 | - |
| predicted_HR | 0.100 | - |
| predicted_OBP | 0.311 | - |
| predicted_R | 0.426 | - |
| predicted_RBI | 0.470 | - |
| predicted_SLG | 0.404 | - |
| predicted_SO | 0.490 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.189 | 0.002 |
| predicted_3B | 0.016 | -0.003 |
| predicted_AB | 4.103 | -0.207 |
| predicted_AVG | 0.263 | 0.010 |
| predicted_BB | 0.199 | -0.027 |
| predicted_H | 1.074 | -0.016 |
| predicted_HBP | 0.017 | - |
| predicted_HR | 0.103 | 0.003 |
| predicted_OBP | 0.309 | -0.002 |
| predicted_R | 0.408 | -0.018 |
| predicted_RBI | 0.452 | -0.018 |
| predicted_SLG | 0.409 | 0.005 |
| predicted_SO | 0.523 | 0.033 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.189 | 0.000 |
| predicted_3B | 0.016 | 0.000 |
| predicted_AB | 4.103 | 0.000 |
| predicted_AVG | 0.253 | -0.009 |
| predicted_BB | 0.198 | -0.001 |
| predicted_H | 1.040 | -0.034 |
| predicted_HBP | 0.017 | 0.000 |
| predicted_HR | 0.100 | -0.003 |
| predicted_OBP | 0.288 | -0.021 |
| predicted_R | 0.386 | -0.022 |
| predicted_RBI | 0.427 | -0.024 |
| predicted_SLG | 0.381 | -0.028 |
| predicted_SO | 0.526 | 0.003 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=4.31), rates preserved: AVG=0.232 HR/AB=0.023
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=12.0, weight=0.114, BvP AVG=0.083)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.172 | 0.172 |
| 3B | 0.010 | 0.010 |
| BB | 0.224 | 0.224 |
| H | 0.878 | -0.122 |
| HR | 0.111 | 0.111 |
| RBI | 0.475 | 0.475 |
| SO | 0.689 | -0.311 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.172 |
| 3B | 0.000 | -0.010 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -0.224 |
| H | 1.000 | 0.122 |
| HR | 0.000 | -0.111 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -0.475 |
| SO | 1.000 | 0.311 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.189 |
| predicted_3B | 0.000 | -0.016 |
| predicted_AB | 4.000 | -0.103 |
| predicted_AVG | 0.239 | -0.014 |
| predicted_BB | 0.000 | -0.198 |
| predicted_H | 1.000 | -0.040 |
| predicted_HR | 0.000 | -0.100 |
| predicted_OBP | 0.289 | 0.001 |
| predicted_R | 0.000 | -0.386 |
| predicted_RBI | 0.000 | -0.427 |
| predicted_SLG | 0.382 | 0.002 |
| predicted_SO | 1.000 | 0.474 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 1.000 | 1.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 2.000 | 1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 1.000 | 1.000 |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 20.000 | 5.000 | 1.000 | 0.000 | 1.000 | 2.000 | 1.000 | 0.000 | 3.000 | 0.2500 | 0.2500 | 0.4500 | 0.2500 | 0.0500 | 0.1000 | 0.0000 | 0.1500 |
| last_10 | 0.20 | 10 | - | 40.000 | 12.000 | 2.000 | 0.000 | 1.000 | 3.000 | 4.000 | 1.000 | 7.000 | 0.3000 | 0.3171 | 0.4250 | 0.3000 | 0.0250 | 0.0750 | 0.0250 | 0.1750 |
| season | 0.60 | 155 | - | 578.000 | 160.000 | 29.000 | 3.000 | 12.000 | 73.000 | 66.000 | 35.000 | 76.000 | 0.2768 | 0.3210 | 0.3997 | 0.2768 | 0.0208 | 0.1263 | 0.0605 | 0.1315 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1920 |
| predicted_3B | 0.0120 |
| predicted_AB | 3.8360 |
| predicted_AVG | 0.2748 |
| predicted_BB | 0.1640 |
| predicted_H | 1.0540 |
| predicted_HBP | 0.0170 |
| predicted_HR | 0.1070 |
| predicted_OBP | 0.3060 |
| predicted_R | 0.3840 |
| predicted_RBI | 0.4280 |
| predicted_SLG | 0.4145 |
| predicted_SO | 0.5660 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1870 | 0.1920 | 0.1892 | model_form_blend |
| predicted_3B | 0.0190 | 0.0120 | 0.0159 | model_form_blend |
| predicted_AB | 4.3100 | 3.8360 | 4.1031 | model_form_blend |
| predicted_AVG | 0.2530 | 0.2748 | 0.2625 | model_form_blend |
| predicted_BB | 0.2260 | 0.1640 | 0.1989 | model_form_blend |
| predicted_H | 1.0900 | 1.0540 | 1.0743 | model_form_blend |
| predicted_HBP | - | 0.0170 | 0.0170 | form_only |
| predicted_HR | 0.1000 | 0.1070 | 0.1031 | model_form_blend |
| predicted_OBP | 0.3110 | 0.3060 | 0.3088 | model_form_blend |
| predicted_R | 0.4260 | 0.3840 | 0.4077 | model_form_blend |
| predicted_RBI | 0.4700 | 0.4280 | 0.4517 | model_form_blend |
| predicted_SLG | 0.4040 | 0.4145 | 0.4086 | model_form_blend |
| predicted_SO | 0.4900 | 0.5660 | 0.5232 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 592 |
| Season rows before report date | 592 |
| Report year | 2026 |
| Profile rows used | 155 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 2 |
| 2B | 0 |
| 3B | 1 |
| HR | 0 |
| R | 1 |
| RBI | 0 |
| BB | 0 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 5 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | SS |
| gameID | 20261001_PHI@ATL |
| game_type | full |
| mlbID | 643289 |
| playerID | 643289 |
| playerName | Mauricio Dubón |
| pos | LF |
| started | True |
| startingPosition | SS |
| team | ATL |
| teamID | 2 |
| game_date | 2026-10-01 |
| sl_k_percent | 11.8 |
| sl_bb_percent | 5.7 |
| sl_woba | 0.317 |
| sl_xwoba | 0.304 |
| sl_xba | 0.268 |
| sl_xslg | 0.375 |
| sl_sweet_spot_percent | 36.5 |
| sl_barrel_batted_rate | 4.0 |
| sl_hard_hit_percent | 29.4 |
| sl_exit_velocity_avg | 86.5 |
| sl_launch_angle_avg | 16.1 |
| sl_whiff_percent | 15.3 |
| sl_swing_percent | 53.7 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.147 | 0.000 | 0.000 | Hitting_2B | 0.154 | 1.000 | -0.154 | -1.000 |
| predicted_3B | 0.000 | 0.000 | 0.000 | Hitting_3B | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_AB | 3.360 | 4.000 | 3.000 | Hitting_AB | 3.462 | 3.000 | 0.538 | 1.000 |
| predicted_AVG | 0.185 | 0.000 | 0.333 | Hitting_AVG | 0.197 | 0.333 | -0.197 | -0.333 |
| predicted_BB | 0.353 | 0.000 | 0.000 | Hitting_BB | 0.317 | 1.000 | -0.317 | -1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_H | 0.620 | 0.000 | 1.000 | Hitting_H | 0.683 | 1.000 | -0.683 | -1.000 |
| predicted_HR | 0.070 | 0.000 | 0.000 | Hitting_HR | 0.125 | 0.000 | -0.125 | 0.000 |
| predicted_OBP | 0.294 | 0.000 | 0.333 | Hitting_OBP | 0.265 | 0.500 | -0.265 | -0.500 |
| predicted_R | 0.353 | 0.000 | 0.000 | Hitting_R | 0.413 | 1.000 | -0.413 | -1.000 |
| predicted_RBI | 0.260 | 0.000 | 0.000 | Hitting_RBI | 0.423 | 0.000 | -0.423 | 0.000 |
| predicted_SLG | 0.302 | 0.000 | 0.333 | Hitting_SLG | 0.350 | 0.667 | -0.350 | -0.667 |
| predicted_SO | 1.088 | 2.000 | 1.000 | Hitting_SO | 1.231 | 0.000 | 0.769 | 2.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 10 |
| Boosted Metrics | 2 |
| Deboosted Metrics | 8 |
| Better Metrics | 1 |
| Worse Metrics | 9 |
| Biggest Boost | predicted_SO: 1.0880 -> 2.0000 (boost 0.9120, worse) |
| Biggest Deboost | predicted_H: 0.6200 -> 0.0000 (deboost -0.6200, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 2 | 1 | 1 | 2 | 0 | predicted_AVG: 0.1850 -> 0.1913 (boost 0.0063, better) | predicted_SO: 1.0880 -> 1.0207 (deboost -0.0673, better) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 3 | 0 | 3 | 0 | 3 | - | predicted_OBP: 0.2920 -> 0.2666 (deboost -0.0254, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 6 | 1 | 5 | 1 | 5 | predicted_H: 0.6203 -> 1.0000 (boost 0.3797, better) | predicted_BB: 0.3730 -> 0.0000 (deboost -0.3730, worse) | AB rounded to 3 (raw=3.36), rates preserved: AVG=0.178 HR/AB=0.020 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=8.0, weight=0.084, BvP AVG=0.250) |
| 7 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.3304 -> 0.0000 (deboost -0.3304, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 5 | 1 | 4 | 2 | predicted_RBI: 0.0000 -> 0.3698 (boost 0.3698, better) | predicted_H: 1.0000 -> 0.6992 (deboost -0.3008, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 9 | lineup_integer_allocation | 6 | 1 | 5 | 2 | 4 | predicted_H: 0.6992 -> 1.0000 (boost 0.3008, better) | predicted_RBI: 0.3698 -> 0.0000 (deboost -0.3698, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 10 | embedded_savant_player_context | 3 | 3 | 0 | 3 | 0 | predicted_SLG: 0.2895 -> 0.3760 (boost 0.0865, better) | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | simulation_box_score_reference | 3 | 2 | 1 | 1 | 2 | predicted_AB: 3.0000 -> 4.0000 (boost 1.0000, better) | predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 12 | current_json_final | 3 | 0 | 3 | 0 | 3 | - | predicted_SLG: 0.3760 -> 0.2895 (deboost -0.0865, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "669221",
"player_name": "Sean Murphy",
"position": "C",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.147,
"predicted_3B": 0.0,
"predicted_AB": 3.36,
"predicted_AVG": 0.185,
"predicted_BB": 0.353,
"predicted_H": 0.62,
"predicted_HR": 0.07,
"predicted_OBP": 0.294,
"predicted_R": 0.353,
"predicted_RBI": 0.26,
"predicted_SLG": 0.302,
"predicted_SO": 1.088
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1501,
"predicted_3B": 0.0012,
"predicted_AB": 3.3537,
"predicted_AVG": 0.1913,
"predicted_BB": 0.375,
"predicted_H": 0.6409,
"predicted_HBP": 0.006,
"predicted_HR": 0.068,
"predicted_OBP": 0.292,
"predicted_R": 0.3491,
"predicted_RBI": 0.2596,
"predicted_SLG": 0.3042,
"predicted_SO": 1.0207
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.147,
"after": 0.1501,
"delta": 0.0031,
"percent_delta": 0.0211,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0012,
"delta": 0.0012,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.36,
"after": 3.3537,
"delta": -0.0063,
"percent_delta": -0.0019,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.185,
"after": 0.1913,
"delta": 0.0063,
"percent_delta": 0.0341,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.353,
"after": 0.375,
"delta": 0.022,
"percent_delta": 0.0623,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.62,
"after": 0.6409,
"delta": 0.0209,
"percent_delta": 0.0337,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.07,
"after": 0.068,
"delta": -0.002,
"percent_delta": -0.0286,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.294,
"after": 0.292,
"delta": -0.002,
"percent_delta": -0.0068,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.353,
"after": 0.3491,
"delta": -0.0039,
"percent_delta": -0.011,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.26,
"after": 0.2596,
"delta": -0.0004,
"percent_delta": -0.0015,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.302,
"after": 0.3042,
"delta": 0.0022,
"percent_delta": 0.0073,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.088,
"after": 1.0207,
"delta": -0.0673,
"percent_delta": -0.0619,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_AVG",
"before": 0.185,
"after": 0.1913,
"delta": 0.0063,
"percent_delta": 0.0341,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.088,
"after": 1.0207,
"delta": -0.0673,
"percent_delta": -0.0619,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 34
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1501,
"predicted_3B": 0.0012,
"predicted_AB": 3.3537,
"predicted_AVG": 0.185,
"predicted_BB": 0.373,
"predicted_H": 0.6203,
"predicted_HBP": 0.006,
"predicted_HR": 0.066,
"predicted_OBP": 0.2666,
"predicted_R": 0.3304,
"predicted_RBI": 0.2457,
"predicted_SLG": 0.2895,
"predicted_SO": 1.026
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1501,
"after": 0.1501,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0012,
"after": 0.0012,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.3537,
"after": 3.3537,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.1913,
"after": 0.185,
"delta": -0.0063,
"percent_delta": -0.0329,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.375,
"after": 0.373,
"delta": -0.002,
"percent_delta": -0.0053,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.6409,
"after": 0.6203,
"delta": -0.0206,
"percent_delta": -0.0321,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.006,
"after": 0.006,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.068,
"after": 0.066,
"delta": -0.002,
"percent_delta": -0.0294,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.292,
"after": 0.2666,
"delta": -0.0254,
"percent_delta": -0.087,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.3491,
"after": 0.3304,
"delta": -0.0187,
"percent_delta": -0.0536,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.2596,
"after": 0.2457,
"delta": -0.0139,
"percent_delta": -0.0535,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3042,
"after": 0.2895,
"delta": -0.0147,
"percent_delta": -0.0483,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0207,
"after": 1.026,
"delta": 0.0053,
"percent_delta": 0.0052,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.292,
"after": 0.2666,
"delta": -0.0254,
"percent_delta": -0.087,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 3 (raw=3.36), rates preserved: AVG=0.178 HR/AB=0.020",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1501,
"after": 0.0,
"delta": -0.1501,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0012,
"after": 0.0,
"delta": -0.0012,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.3537,
"after": 3.0,
"delta": -0.3537,
"percent_delta": -0.1055,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.373,
"after": 0.0,
"delta": -0.373,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.6203,
"after": 1.0,
"delta": 0.3797,
"percent_delta": 0.6121,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.006,
"after": 0.0,
"delta": -0.006,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.066,
"after": 0.0,
"delta": -0.066,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.2457,
"after": 0.0,
"delta": -0.2457,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.026,
"after": 1.0,
"delta": -0.026,
"percent_delta": -0.0253,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 1,
"deboosted_metrics": 5,
"better_metrics": 1,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.6203,
"after": 1.0,
"delta": 0.3797,
"percent_delta": 0.6121,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.373,
"after": 0.0,
"delta": -0.373,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "bvp_blend",
"description": "Sample-size BvP blend (BvP AB=8.0, weight=0.084, BvP AVG=0.250)",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {
"model_expectation": 0.9158,
"bvp": 0.0842
},
"window_games": {}
},
{
"index": 7,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.3304,
"after": 0.0,
"delta": -0.3304,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_R",
"before": 0.3304,
"after": 0.0,
"delta": -0.3304,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1439,
"predicted_3B": 0.0068,
"predicted_BB": 0.2928,
"predicted_H": 0.6992,
"predicted_HR": 0.1198,
"predicted_RBI": 0.3698,
"predicted_SO": 1.178
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1439,
"delta": 0.1439,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0068,
"delta": 0.0068,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.2928,
"delta": 0.2928,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.6992,
"delta": -0.3008,
"percent_delta": -0.3008,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1198,
"delta": 0.1198,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.3698,
"delta": 0.3698,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.178,
"delta": 0.178,
"percent_delta": 0.178,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 5,
"deboosted_metrics": 1,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.3698,
"delta": 0.3698,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.6992,
"delta": -0.3008,
"percent_delta": -0.3008,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1439,
"after": 0.0,
"delta": -0.1439,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0068,
"after": 0.0,
"delta": -0.0068,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.2928,
"after": 0.0,
"delta": -0.2928,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.6992,
"after": 1.0,
"delta": 0.3008,
"percent_delta": 0.4302,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1198,
"after": 0.0,
"delta": -0.1198,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.3698,
"after": 0.0,
"delta": -0.3698,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.178,
"after": 1.0,
"delta": -0.178,
"percent_delta": -0.1511,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 1,
"deboosted_metrics": 5,
"better_metrics": 2,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.6992,
"after": 1.0,
"delta": 0.3008,
"percent_delta": 0.4302,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.3698,
"after": 0.0,
"delta": -0.3698,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.216,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.287,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.376,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.185,
"after": 0.216,
"delta": 0.031,
"percent_delta": 0.1676,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.2666,
"after": 0.287,
"delta": 0.0204,
"percent_delta": 0.0765,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.2895,
"after": 0.376,
"delta": 0.0865,
"percent_delta": 0.2988,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.2895,
"after": 0.376,
"delta": 0.0865,
"percent_delta": 0.2988,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 2,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 12,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.185,
"predicted_BB": 0.0,
"predicted_C": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.2666,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.2895,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.216,
"after": 0.185,
"delta": -0.031,
"percent_delta": -0.1437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.287,
"after": 0.2666,
"delta": -0.0204,
"percent_delta": -0.0712,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.376,
"after": 0.2895,
"delta": -0.0865,
"percent_delta": -0.23,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.376,
"after": 0.2895,
"delta": -0.0865,
"percent_delta": -0.23,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.147,
"after": 0.0,
"delta": -0.147,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.36,
"after": 4.0,
"delta": 0.64,
"percent_delta": 0.1905,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.185,
"after": 0.185,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.353,
"after": 0.0,
"delta": -0.353,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.62,
"after": 0.0,
"delta": -0.62,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.07,
"after": 0.0,
"delta": -0.07,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.294,
"after": 0.2666,
"delta": -0.0274,
"percent_delta": -0.0932,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.353,
"after": 0.0,
"delta": -0.353,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.26,
"after": 0.0,
"delta": -0.26,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.302,
"after": 0.2895,
"delta": -0.0125,
"percent_delta": -0.0414,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.088,
"after": 2.0,
"delta": 0.912,
"percent_delta": 0.8382,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 10,
"boosted_metrics": 2,
"deboosted_metrics": 8,
"better_metrics": 1,
"worse_metrics": 9,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.088,
"after": 2.0,
"delta": 0.912,
"percent_delta": 0.8382,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 0.62,
"after": 0.0,
"delta": -0.62,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.147 | - |
| predicted_3B | 0.000 | - |
| predicted_AB | 3.360 | - |
| predicted_AVG | 0.185 | - |
| predicted_BB | 0.353 | - |
| predicted_H | 0.620 | - |
| predicted_HR | 0.070 | - |
| predicted_OBP | 0.294 | - |
| predicted_R | 0.353 | - |
| predicted_RBI | 0.260 | - |
| predicted_SLG | 0.302 | - |
| predicted_SO | 1.088 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.150 | 0.003 |
| predicted_3B | 0.001 | 0.001 |
| predicted_AB | 3.354 | -0.006 |
| predicted_AVG | 0.191 | 0.006 |
| predicted_BB | 0.375 | 0.022 |
| predicted_H | 0.641 | 0.021 |
| predicted_HBP | 0.006 | - |
| predicted_HR | 0.068 | -0.002 |
| predicted_OBP | 0.292 | -0.002 |
| predicted_R | 0.349 | -0.004 |
| predicted_RBI | 0.260 | -0.000 |
| predicted_SLG | 0.304 | 0.002 |
| predicted_SO | 1.021 | -0.067 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.150 | 0.000 |
| predicted_3B | 0.001 | 0.000 |
| predicted_AB | 3.354 | 0.000 |
| predicted_AVG | 0.185 | -0.006 |
| predicted_BB | 0.373 | -0.002 |
| predicted_H | 0.620 | -0.021 |
| predicted_HBP | 0.006 | 0.000 |
| predicted_HR | 0.066 | -0.002 |
| predicted_OBP | 0.267 | -0.025 |
| predicted_R | 0.330 | -0.019 |
| predicted_RBI | 0.246 | -0.014 |
| predicted_SLG | 0.289 | -0.015 |
| predicted_SO | 1.026 | 0.005 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=3.36), rates preserved: AVG=0.178 HR/AB=0.020
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=8.0, weight=0.084, BvP AVG=0.250)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.144 | 0.144 |
| 3B | 0.007 | 0.007 |
| BB | 0.293 | 0.293 |
| H | 0.699 | -0.301 |
| HR | 0.120 | 0.120 |
| RBI | 0.370 | 0.370 |
| SO | 1.178 | 0.178 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.144 |
| 3B | 0.000 | -0.007 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | -0.293 |
| H | 1.000 | 0.301 |
| HR | 0.000 | -0.120 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -0.370 |
| SO | 1.000 | -0.178 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.150 |
| predicted_3B | 0.000 | -0.001 |
| predicted_AB | 3.000 | -0.354 |
| predicted_AVG | 0.216 | 0.031 |
| predicted_BB | 0.000 | -0.373 |
| predicted_H | 1.000 | 0.380 |
| predicted_HR | 0.000 | -0.066 |
| predicted_OBP | 0.287 | 0.020 |
| predicted_R | 0.000 | -0.330 |
| predicted_RBI | 0.000 | -0.246 |
| predicted_SLG | 0.376 | 0.087 |
| predicted_SO | 1.000 | -0.026 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 1.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | -1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 2.000 | 1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 15.000 | 4.000 | 1.000 | 0.000 | 0.000 | 0.000 | 1.000 | 3.000 | 3.000 | 0.2667 | 0.3889 | 0.3333 | 0.2667 | 0.0000 | 0.0000 | 0.2000 | 0.2000 |
| last_10 | 0.20 | 10 | - | 32.000 | 4.000 | 1.000 | 0.000 | 0.000 | 2.000 | 3.000 | 5.000 | 8.000 | 0.1250 | 0.2432 | 0.1562 | 0.1250 | 0.0000 | 0.0625 | 0.1562 | 0.2500 |
| season | 0.60 | 34 | - | 113.000 | 21.000 | 5.000 | 0.000 | 3.000 | 10.000 | 12.000 | 12.000 | 37.000 | 0.1858 | 0.2640 | 0.3097 | 0.1858 | 0.0266 | 0.0885 | 0.1062 | 0.3274 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1550 |
| predicted_3B | 0.0030 |
| predicted_AB | 3.3440 |
| predicted_AVG | 0.2011 |
| predicted_BB | 0.4090 |
| predicted_H | 0.6730 |
| predicted_HBP | 0.0060 |
| predicted_HR | 0.0650 |
| predicted_OBP | 0.2888 |
| predicted_R | 0.3430 |
| predicted_RBI | 0.2590 |
| predicted_SLG | 0.3077 |
| predicted_SO | 0.9170 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1470 | 0.1550 | 0.1501 | model_form_blend |
| predicted_3B | 0.0000 | 0.0030 | 0.0012 | model_form_blend |
| predicted_AB | 3.3600 | 3.3440 | 3.3537 | model_form_blend |
| predicted_AVG | 0.1850 | 0.2011 | 0.1913 | model_form_blend |
| predicted_BB | 0.3530 | 0.4090 | 0.3750 | model_form_blend |
| predicted_H | 0.6200 | 0.6730 | 0.6409 | model_form_blend |
| predicted_HBP | - | 0.0060 | 0.0060 | form_only |
| predicted_HR | 0.0700 | 0.0650 | 0.0680 | model_form_blend |
| predicted_OBP | 0.2940 | 0.2888 | 0.2920 | model_form_blend |
| predicted_R | 0.3530 | 0.3430 | 0.3491 | model_form_blend |
| predicted_RBI | 0.2600 | 0.2590 | 0.2596 | model_form_blend |
| predicted_SLG | 0.3020 | 0.3077 | 0.3042 | model_form_blend |
| predicted_SO | 1.0880 | 0.9170 | 1.0207 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 104 |
| Season rows before report date | 104 |
| Report year | 2026 |
| Profile rows used | 34 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 2 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 1 |
| Hitting_3B | 0 |
| Hitting_AB | 3 |
| Hitting_AVG | 0.333 |
| Hitting_BB | 1 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 2 |
| Hitting_battingOrder | 8 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | C |
| gameID | 20260930_PHI@ATL |
| game_type | full |
| mlbID | 669221 |
| playerID | 669221 |
| playerName | Sean Murphy |
| pos | C |
| started | True |
| startingPosition | C |
| team | ATL |
| teamID | 2 |
| game_date | 2026-09-30 |
| sl_k_percent | 30.6 |
| sl_bb_percent | 9.1 |
| sl_woba | 0.252 |
| sl_xwoba | 0.273 |
| sl_xba | 0.206 |
| sl_xslg | 0.332 |
| sl_sweet_spot_percent | 26.0 |
| sl_barrel_batted_rate | 8.2 |
| sl_hard_hit_percent | 41.1 |
| sl_exit_velocity_avg | 87.8 |
| sl_launch_angle_avg | 5.6 |
| sl_whiff_percent | 31.9 |
| sl_swing_percent | 50.1 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.124 | 0.000 | 0.000 | Hitting_2B | 0.137 | 0.000 | -0.137 | 0.000 |
| predicted_3B | 0.012 | 0.000 | 0.000 | Hitting_3B | 0.013 | 0.000 | -0.013 | 0.000 |
| predicted_AB | 3.528 | 4.000 | 3.000 | Hitting_AB | 3.612 | 2.000 | 0.388 | 2.000 |
| predicted_AVG | 0.220 | 0.000 | 0.333 | Hitting_AVG | 0.227 | 0.000 | -0.227 | 0.000 |
| predicted_BB | 0.317 | 0.000 | 0.000 | Hitting_BB | 0.319 | 2.000 | -0.319 | -2.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.015 | 0.000 | -0.015 | 0.000 |
| predicted_H | 0.750 | 0.000 | 1.000 | Hitting_H | 0.820 | 0.000 | -0.820 | 0.000 |
| predicted_HR | 0.190 | 0.000 | 0.000 | Hitting_HR | 0.117 | 0.000 | -0.117 | 0.000 |
| predicted_OBP | 0.311 | 0.000 | 0.333 | Hitting_OBP | 0.303 | 0.500 | -0.303 | -0.500 |
| predicted_R | 0.410 | 0.000 | 0.000 | Hitting_R | 0.431 | 1.000 | -0.431 | -1.000 |
| predicted_RBI | 0.480 | 0.000 | 0.000 | Hitting_RBI | 0.479 | 0.000 | -0.479 | 0.000 |
| predicted_SLG | 0.402 | 0.000 | 0.333 | Hitting_SLG | 0.370 | 0.000 | -0.370 | 0.000 |
| predicted_SO | 1.230 | 1.000 | 2.000 | Hitting_SO | 1.261 | 0.000 | -0.261 | 1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 11 |
| Boosted Metrics | 1 |
| Deboosted Metrics | 10 |
| Better Metrics | 2 |
| Worse Metrics | 9 |
| Biggest Boost | predicted_AB: 3.5280 -> 4.0000 (boost 0.4720, better) |
| Biggest Deboost | predicted_H: 0.7500 -> 0.0000 (deboost -0.7500, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 4 | 1 | 3 | 2 | 2 | predicted_BB: 0.3170 -> 0.3734 (boost 0.0564, better) | predicted_SO: 1.2300 -> 1.1754 (deboost -0.0546, better) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 2 | 0 | 2 | 0 | 2 | - | predicted_OBP: 0.3082 -> 0.2766 (deboost -0.0316, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 8 | 1 | 7 | 2 | 6 | predicted_H: 0.7027 -> 1.0000 (boost 0.2973, better) | predicted_AB: 3.5118 -> 3.0000 (deboost -0.5118, worse) | AB rounded to 3 (raw=3.53), rates preserved: AVG=0.192 HR/AB=0.050 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=5.0, weight=0.057, BvP AVG=0.200) |
| 7 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.3963 -> 0.0000 (deboost -0.3963, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 5 | 1 | 4 | 2 | predicted_SO: 1.0000 -> 1.4502 (boost 0.4502, worse) | predicted_H: 1.0000 -> 0.7318 (deboost -0.2682, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 9 | lineup_integer_allocation | 6 | 2 | 4 | 1 | 5 | predicted_SO: 1.4502 -> 2.0000 (boost 0.5498, worse) | predicted_RBI: 0.4138 -> 0.0000 (deboost -0.4138, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 10 | embedded_savant_player_context | 3 | 1 | 2 | 2 | 1 | predicted_AVG: 0.2001 -> 0.2160 (boost 0.0159, better) | predicted_SO: 2.0000 -> 1.0000 (deboost -1.0000, better) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | simulation_box_score_reference | 2 | 1 | 1 | 1 | 1 | predicted_AB: 3.0000 -> 4.0000 (boost 1.0000, better) | predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 12 | current_json_final | 2 | 1 | 1 | 1 | 1 | predicted_SLG: 0.3760 -> 0.3873 (boost 0.0113, better) | predicted_AVG: 0.2160 -> 0.2001 (deboost -0.0159, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "663586",
"player_name": "Austin Riley",
"position": "3B",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.124,
"predicted_3B": 0.012,
"predicted_AB": 3.528,
"predicted_AVG": 0.22,
"predicted_BB": 0.317,
"predicted_H": 0.75,
"predicted_HR": 0.19,
"predicted_OBP": 0.311,
"predicted_R": 0.41,
"predicted_RBI": 0.48,
"predicted_SLG": 0.402,
"predicted_SO": 1.23
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1039,
"predicted_3B": 0.0103,
"predicted_AB": 3.5118,
"predicted_AVG": 0.2109,
"predicted_BB": 0.3734,
"predicted_H": 0.726,
"predicted_HBP": 0.102,
"predicted_HR": 0.183,
"predicted_OBP": 0.3082,
"predicted_R": 0.4187,
"predicted_RBI": 0.497,
"predicted_SLG": 0.3903,
"predicted_SO": 1.1754
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.124,
"after": 0.1039,
"delta": -0.0201,
"percent_delta": -0.1621,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.012,
"after": 0.0103,
"delta": -0.0017,
"percent_delta": -0.1417,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.528,
"after": 3.5118,
"delta": -0.0162,
"percent_delta": -0.0046,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.22,
"after": 0.2109,
"delta": -0.0091,
"percent_delta": -0.0414,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.317,
"after": 0.3734,
"delta": 0.0564,
"percent_delta": 0.1779,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.75,
"after": 0.726,
"delta": -0.024,
"percent_delta": -0.032,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.19,
"after": 0.183,
"delta": -0.007,
"percent_delta": -0.0368,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.311,
"after": 0.3082,
"delta": -0.0028,
"percent_delta": -0.009,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.41,
"after": 0.4187,
"delta": 0.0087,
"percent_delta": 0.0212,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.48,
"after": 0.497,
"delta": 0.017,
"percent_delta": 0.0354,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.402,
"after": 0.3903,
"delta": -0.0117,
"percent_delta": -0.0291,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.23,
"after": 1.1754,
"delta": -0.0546,
"percent_delta": -0.0444,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 1,
"deboosted_metrics": 3,
"better_metrics": 2,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.317,
"after": 0.3734,
"delta": 0.0564,
"percent_delta": 0.1779,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.23,
"after": 1.1754,
"delta": -0.0546,
"percent_delta": -0.0444,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 161
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1039,
"predicted_3B": 0.0103,
"predicted_AB": 3.5118,
"predicted_AVG": 0.2001,
"predicted_BB": 0.3715,
"predicted_H": 0.7027,
"predicted_HBP": 0.102,
"predicted_HR": 0.1777,
"predicted_OBP": 0.2766,
"predicted_R": 0.3963,
"predicted_RBI": 0.4704,
"predicted_SLG": 0.3873,
"predicted_SO": 1.1815
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1039,
"after": 0.1039,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0103,
"after": 0.0103,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.5118,
"after": 3.5118,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2109,
"after": 0.2001,
"delta": -0.0108,
"percent_delta": -0.0512,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.3734,
"after": 0.3715,
"delta": -0.0019,
"percent_delta": -0.0051,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.726,
"after": 0.7027,
"delta": -0.0233,
"percent_delta": -0.0321,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.102,
"after": 0.102,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.183,
"after": 0.1777,
"delta": -0.0053,
"percent_delta": -0.029,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3082,
"after": 0.2766,
"delta": -0.0316,
"percent_delta": -0.1025,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.4187,
"after": 0.3963,
"delta": -0.0224,
"percent_delta": -0.0535,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.497,
"after": 0.4704,
"delta": -0.0266,
"percent_delta": -0.0535,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3903,
"after": 0.3873,
"delta": -0.003,
"percent_delta": -0.0077,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.1754,
"after": 1.1815,
"delta": 0.0061,
"percent_delta": 0.0052,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.3082,
"after": 0.2766,
"delta": -0.0316,
"percent_delta": -0.1025,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 3 (raw=3.53), rates preserved: AVG=0.192 HR/AB=0.050",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1039,
"after": 0.0,
"delta": -0.1039,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0103,
"after": 0.0,
"delta": -0.0103,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.5118,
"after": 3.0,
"delta": -0.5118,
"percent_delta": -0.1457,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.3715,
"after": 0.0,
"delta": -0.3715,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.7027,
"after": 1.0,
"delta": 0.2973,
"percent_delta": 0.4231,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.102,
"after": 0.0,
"delta": -0.102,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1777,
"after": 0.0,
"delta": -0.1777,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.4704,
"after": 0.0,
"delta": -0.4704,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.1815,
"after": 1.0,
"delta": -0.1815,
"percent_delta": -0.1536,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 8,
"boosted_metrics": 1,
"deboosted_metrics": 7,
"better_metrics": 2,
"worse_metrics": 6,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.7027,
"after": 1.0,
"delta": 0.2973,
"percent_delta": 0.4231,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 3.5118,
"after": 3.0,
"delta": -0.5118,
"percent_delta": -0.1457,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "bvp_blend",
"description": "Sample-size BvP blend (BvP AB=5.0, weight=0.057, BvP AVG=0.200)",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {
"model_expectation": 0.9429,
"bvp": 0.0571
},
"window_games": {}
},
{
"index": 7,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.3963,
"after": 0.0,
"delta": -0.3963,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_R",
"before": 0.3963,
"after": 0.0,
"delta": -0.3963,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1682,
"predicted_3B": 0.0078,
"predicted_BB": 0.2723,
"predicted_H": 0.7318,
"predicted_HR": 0.1183,
"predicted_RBI": 0.4138,
"predicted_SO": 1.4502
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1682,
"delta": 0.1682,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0078,
"delta": 0.0078,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.2723,
"delta": 0.2723,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.7318,
"delta": -0.2682,
"percent_delta": -0.2682,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1183,
"delta": 0.1183,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.4138,
"delta": 0.4138,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.4502,
"delta": 0.4502,
"percent_delta": 0.4502,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 5,
"deboosted_metrics": 1,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 1.4502,
"delta": 0.4502,
"percent_delta": 0.4502,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.7318,
"delta": -0.2682,
"percent_delta": -0.2682,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1682,
"after": 0.0,
"delta": -0.1682,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0078,
"after": 0.0,
"delta": -0.0078,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.2723,
"after": 0.0,
"delta": -0.2723,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.7318,
"after": 1.0,
"delta": 0.2682,
"percent_delta": 0.3665,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1183,
"after": 0.0,
"delta": -0.1183,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.4138,
"after": 0.0,
"delta": -0.4138,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.4502,
"after": 2.0,
"delta": 0.5498,
"percent_delta": 0.3791,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 2,
"deboosted_metrics": 4,
"better_metrics": 1,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.4502,
"after": 2.0,
"delta": 0.5498,
"percent_delta": 0.3791,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.4138,
"after": 0.0,
"delta": -0.4138,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.216,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.281,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.376,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2001,
"after": 0.216,
"delta": 0.0159,
"percent_delta": 0.0795,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.2766,
"after": 0.281,
"delta": 0.0044,
"percent_delta": 0.0159,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3873,
"after": 0.376,
"delta": -0.0113,
"percent_delta": -0.0292,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_AVG",
"before": 0.2001,
"after": 0.216,
"delta": 0.0159,
"percent_delta": 0.0795,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 12,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.2001,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.2766,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.3873,
"predicted_SO": 1.0,
"predicted_TB": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.216,
"after": 0.2001,
"delta": -0.0159,
"percent_delta": -0.0736,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.281,
"after": 0.2766,
"delta": -0.0044,
"percent_delta": -0.0156,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.376,
"after": 0.3873,
"delta": 0.0113,
"percent_delta": 0.0302,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.376,
"after": 0.3873,
"delta": 0.0113,
"percent_delta": 0.0302,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AVG",
"before": 0.216,
"after": 0.2001,
"delta": -0.0159,
"percent_delta": -0.0736,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.124,
"after": 0.0,
"delta": -0.124,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.012,
"after": 0.0,
"delta": -0.012,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.528,
"after": 4.0,
"delta": 0.472,
"percent_delta": 0.1338,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.22,
"after": 0.2001,
"delta": -0.0199,
"percent_delta": -0.0905,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.317,
"after": 0.0,
"delta": -0.317,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.75,
"after": 0.0,
"delta": -0.75,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.19,
"after": 0.0,
"delta": -0.19,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.311,
"after": 0.2766,
"delta": -0.0344,
"percent_delta": -0.1106,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.41,
"after": 0.0,
"delta": -0.41,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.48,
"after": 0.0,
"delta": -0.48,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.402,
"after": 0.3873,
"delta": -0.0147,
"percent_delta": -0.0366,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.23,
"after": 1.0,
"delta": -0.23,
"percent_delta": -0.187,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 11,
"boosted_metrics": 1,
"deboosted_metrics": 10,
"better_metrics": 2,
"worse_metrics": 9,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.528,
"after": 4.0,
"delta": 0.472,
"percent_delta": 0.1338,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 0.75,
"after": 0.0,
"delta": -0.75,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.124 | - |
| predicted_3B | 0.012 | - |
| predicted_AB | 3.528 | - |
| predicted_AVG | 0.220 | - |
| predicted_BB | 0.317 | - |
| predicted_H | 0.750 | - |
| predicted_HR | 0.190 | - |
| predicted_OBP | 0.311 | - |
| predicted_R | 0.410 | - |
| predicted_RBI | 0.480 | - |
| predicted_SLG | 0.402 | - |
| predicted_SO | 1.230 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.104 | -0.020 |
| predicted_3B | 0.010 | -0.002 |
| predicted_AB | 3.512 | -0.016 |
| predicted_AVG | 0.211 | -0.009 |
| predicted_BB | 0.373 | 0.056 |
| predicted_H | 0.726 | -0.024 |
| predicted_HBP | 0.102 | - |
| predicted_HR | 0.183 | -0.007 |
| predicted_OBP | 0.308 | -0.003 |
| predicted_R | 0.419 | 0.009 |
| predicted_RBI | 0.497 | 0.017 |
| predicted_SLG | 0.390 | -0.012 |
| predicted_SO | 1.175 | -0.055 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.104 | 0.000 |
| predicted_3B | 0.010 | 0.000 |
| predicted_AB | 3.512 | 0.000 |
| predicted_AVG | 0.200 | -0.011 |
| predicted_BB | 0.371 | -0.002 |
| predicted_H | 0.703 | -0.023 |
| predicted_HBP | 0.102 | 0.000 |
| predicted_HR | 0.178 | -0.005 |
| predicted_OBP | 0.277 | -0.032 |
| predicted_R | 0.396 | -0.022 |
| predicted_RBI | 0.470 | -0.027 |
| predicted_SLG | 0.387 | -0.003 |
| predicted_SO | 1.181 | 0.006 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=3.53), rates preserved: AVG=0.192 HR/AB=0.050
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=5.0, weight=0.057, BvP AVG=0.200)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.168 | 0.168 |
| 3B | 0.008 | 0.008 |
| BB | 0.272 | 0.272 |
| H | 0.732 | -0.268 |
| HR | 0.118 | 0.118 |
| RBI | 0.414 | 0.414 |
| SO | 1.450 | 0.450 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.168 |
| 3B | 0.000 | -0.008 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | -0.272 |
| H | 1.000 | 0.268 |
| HR | 0.000 | -0.118 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -0.414 |
| SO | 2.000 | 0.550 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.104 |
| predicted_3B | 0.000 | -0.010 |
| predicted_AB | 3.000 | -0.512 |
| predicted_AVG | 0.216 | 0.016 |
| predicted_BB | 0.000 | -0.371 |
| predicted_H | 1.000 | 0.297 |
| predicted_HR | 0.000 | -0.178 |
| predicted_OBP | 0.281 | 0.004 |
| predicted_R | 0.000 | -0.396 |
| predicted_RBI | 0.000 | -0.470 |
| predicted_SLG | 0.376 | -0.011 |
| predicted_SO | 1.000 | -0.181 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 1.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | -1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | -1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 17.000 | 2.000 | 0.000 | 0.000 | 1.000 | 3.000 | 2.000 | 4.000 | 5.000 | 0.1176 | 0.3182 | 0.2941 | 0.1177 | 0.0588 | 0.1765 | 0.2353 | 0.2941 |
| last_10 | 0.20 | 10 | - | 34.000 | 7.000 | 0.000 | 0.000 | 3.000 | 6.000 | 5.000 | 5.000 | 9.000 | 0.2059 | 0.3171 | 0.4706 | 0.2059 | 0.0882 | 0.1765 | 0.1471 | 0.2647 |
| season | 0.60 | 161 | - | 568.000 | 125.000 | 20.000 | 2.000 | 20.000 | 75.000 | 66.000 | 51.000 | 198.000 | 0.2201 | 0.2956 | 0.3680 | 0.2201 | 0.0352 | 0.1320 | 0.0898 | 0.3486 |
| Metric | Value |
|---|---|
| predicted_2B | 0.0780 |
| predicted_3B | 0.0080 |
| predicted_AB | 3.4910 |
| predicted_AVG | 0.1991 |
| predicted_BB | 0.4460 |
| predicted_H | 0.6950 |
| predicted_HBP | 0.1020 |
| predicted_HR | 0.1740 |
| predicted_OBP | 0.3045 |
| predicted_R | 0.4300 |
| predicted_RBI | 0.5190 |
| predicted_SLG | 0.3753 |
| predicted_SO | 1.1050 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1240 | 0.0780 | 0.1039 | model_form_blend |
| predicted_3B | 0.0120 | 0.0080 | 0.0103 | model_form_blend |
| predicted_AB | 3.5280 | 3.4910 | 3.5118 | model_form_blend |
| predicted_AVG | 0.2200 | 0.1991 | 0.2109 | model_form_blend |
| predicted_BB | 0.3170 | 0.4460 | 0.3734 | model_form_blend |
| predicted_H | 0.7500 | 0.6950 | 0.7260 | model_form_blend |
| predicted_HBP | - | 0.1020 | 0.1020 | form_only |
| predicted_HR | 0.1900 | 0.1740 | 0.1830 | model_form_blend |
| predicted_OBP | 0.3110 | 0.3045 | 0.3082 | model_form_blend |
| predicted_R | 0.4100 | 0.4300 | 0.4187 | model_form_blend |
| predicted_RBI | 0.4800 | 0.5190 | 0.4970 | model_form_blend |
| predicted_SLG | 0.4020 | 0.3753 | 0.3903 | model_form_blend |
| predicted_SO | 1.2300 | 1.1050 | 1.1754 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 605 |
| Season rows before report date | 605 |
| Report year | 2026 |
| Profile rows used | 161 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 2 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 2 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 7 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | 3B |
| gameID | 20261001_PHI@ATL |
| game_type | full |
| mlbID | 663586 |
| playerID | 663586 |
| playerName | Austin Riley |
| pos | 3B |
| started | True |
| startingPosition | 3B |
| team | ATL |
| teamID | 2 |
| game_date | 2026-10-01 |
| sl_k_percent | 31.9 |
| sl_bb_percent | 7.6 |
| sl_woba | 0.29 |
| sl_xwoba | 0.299 |
| sl_xba | 0.213 |
| sl_xslg | 0.396 |
| sl_sweet_spot_percent | 34.3 |
| sl_barrel_batted_rate | 12.4 |
| sl_hard_hit_percent | 44.3 |
| sl_exit_velocity_avg | 91.3 |
| sl_launch_angle_avg | 18.5 |
| sl_whiff_percent | 31.9 |
| sl_swing_percent | 48.8 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.021 | 0.000 | 0.000 | Hitting_2B | 0.028 | 0.000 | -0.028 | 0.000 |
| predicted_3B | 0.021 | 1.000 | 0.000 | Hitting_3B | 0.007 | 0.000 | 0.993 | 1.000 |
| predicted_AB | 2.809 | 3.000 | 3.000 | Hitting_AB | 2.811 | 1.000 | 0.189 | 2.000 |
| predicted_AVG | 0.155 | 1.000 | 0.000 | Hitting_AVG | 0.114 | 0.000 | 0.886 | 1.000 |
| predicted_BB | 0.362 | 1.000 | 0.000 | Hitting_BB | 0.350 | 1.000 | 0.650 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_H | 0.240 | 3.000 | 0.000 | Hitting_H | 0.322 | 0.000 | 2.678 | 3.000 |
| predicted_HR | 0.020 | 0.000 | 0.000 | Hitting_HR | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_OBP | 0.249 | 1.000 | 0.000 | Hitting_OBP | 0.219 | 0.500 | 0.781 | 0.500 |
| predicted_R | 0.234 | 1.000 | 0.000 | Hitting_R | 0.224 | 1.000 | 0.776 | 0.000 |
| predicted_RBI | 0.140 | 0.000 | 0.000 | Hitting_RBI | 0.175 | 0.000 | -0.175 | 0.000 |
| predicted_SLG | 0.172 | 1.667 | 0.000 | Hitting_SLG | 0.129 | 0.000 | 1.537 | 1.667 |
| predicted_SO | 0.851 | 0.000 | 1.000 | Hitting_SO | 0.804 | 0.000 | -0.804 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 10 |
| Boosted Metrics | 5 |
| Deboosted Metrics | 5 |
| Better Metrics | 6 |
| Worse Metrics | 4 |
| Biggest Boost | predicted_H: 0.2400 -> 3.0000 (boost 2.7600, better) |
| Biggest Deboost | predicted_SO: 0.8510 -> 0.0000 (deboost -0.8510, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 4 | 3 | 1 | 3 | 1 | predicted_R: 0.2340 -> 0.3110 (boost 0.0770, better) | predicted_AVG: 0.1550 -> 0.1410 (deboost -0.0140, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 3 | 0 | 3 | 0 | 3 | - | predicted_AVG: 0.1410 -> 0.0962 (deboost -0.0448, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 5 | 2 | 3 | 1 | 4 | predicted_AB: 2.8138 -> 3.0000 (boost 0.1862, better) | predicted_BB: 0.4144 -> 0.0000 (deboost -0.4144, worse) | AB rounded to 3 (raw=2.81), rates preserved: AVG=0.093 HR/AB=0.006 |
| 6 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.2944 -> 0.0000 (deboost -0.2944, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 5 | 5 | 0 | 5 | 0 | predicted_H: 0.0000 -> 0.5867 (boost 0.5867, better) | - | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 5 | 0 | 5 | 0 | 5 | - | predicted_H: 0.5867 -> 0.0000 (deboost -0.5867, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 3 | 3 | 0 | 3 | 0 | predicted_SLG: 0.1545 -> 0.3180 (boost 0.1635, better) | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 5 | 4 | 1 | 5 | 0 | predicted_H: 0.0000 -> 3.0000 (boost 3.0000, better) | predicted_SO: 1.0000 -> 0.0000 (deboost -1.0000, better) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 3 | 0 | 3 | 0 | 3 | - | predicted_SLG: 0.3180 -> 0.1545 (deboost -0.1635, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "673490",
"player_name": "Ha-Seong Kim",
"position": "SS",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.021,
"predicted_3B": 0.021,
"predicted_AB": 2.809,
"predicted_AVG": 0.155,
"predicted_BB": 0.362,
"predicted_H": 0.24,
"predicted_HR": 0.02,
"predicted_OBP": 0.249,
"predicted_R": 0.234,
"predicted_RBI": 0.14,
"predicted_SLG": 0.172,
"predicted_SO": 0.851
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.0258,
"predicted_3B": 0.0423,
"predicted_AB": 2.8138,
"predicted_AVG": 0.141,
"predicted_BB": 0.4166,
"predicted_H": 0.2797,
"predicted_HBP": 0.015,
"predicted_HR": 0.0184,
"predicted_OBP": 0.251,
"predicted_R": 0.311,
"predicted_RBI": 0.1464,
"predicted_SLG": 0.1839,
"predicted_SO": 0.8771
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.021,
"after": 0.0258,
"delta": 0.0048,
"percent_delta": 0.2286,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.021,
"after": 0.0423,
"delta": 0.0213,
"percent_delta": 1.0143,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.809,
"after": 2.8138,
"delta": 0.0048,
"percent_delta": 0.0017,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.155,
"after": 0.141,
"delta": -0.014,
"percent_delta": -0.0903,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.362,
"after": 0.4166,
"delta": 0.0546,
"percent_delta": 0.1508,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.24,
"after": 0.2797,
"delta": 0.0397,
"percent_delta": 0.1654,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.02,
"after": 0.0184,
"delta": -0.0016,
"percent_delta": -0.08,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.249,
"after": 0.251,
"delta": 0.002,
"percent_delta": 0.008,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.234,
"after": 0.311,
"delta": 0.077,
"percent_delta": 0.3291,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.14,
"after": 0.1464,
"delta": 0.0064,
"percent_delta": 0.0457,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.172,
"after": 0.1839,
"delta": 0.0119,
"percent_delta": 0.0692,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.851,
"after": 0.8771,
"delta": 0.0261,
"percent_delta": 0.0307,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 3,
"deboosted_metrics": 1,
"better_metrics": 3,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.234,
"after": 0.311,
"delta": 0.077,
"percent_delta": 0.3291,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AVG",
"before": 0.155,
"after": 0.141,
"delta": -0.014,
"percent_delta": -0.0903,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 47
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.0258,
"predicted_3B": 0.0423,
"predicted_AB": 2.8138,
"predicted_AVG": 0.0962,
"predicted_BB": 0.4144,
"predicted_H": 0.2707,
"predicted_HBP": 0.015,
"predicted_HR": 0.0179,
"predicted_OBP": 0.2122,
"predicted_R": 0.2944,
"predicted_RBI": 0.1386,
"predicted_SLG": 0.1545,
"predicted_SO": 0.8817
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0258,
"after": 0.0258,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0423,
"after": 0.0423,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.8138,
"after": 2.8138,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.141,
"after": 0.0962,
"delta": -0.0448,
"percent_delta": -0.3177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.4166,
"after": 0.4144,
"delta": -0.0022,
"percent_delta": -0.0053,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.2797,
"after": 0.2707,
"delta": -0.009,
"percent_delta": -0.0322,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.015,
"after": 0.015,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0184,
"after": 0.0179,
"delta": -0.0005,
"percent_delta": -0.0272,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.251,
"after": 0.2122,
"delta": -0.0388,
"percent_delta": -0.1546,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.311,
"after": 0.2944,
"delta": -0.0166,
"percent_delta": -0.0534,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.1464,
"after": 0.1386,
"delta": -0.0078,
"percent_delta": -0.0533,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.1839,
"after": 0.1545,
"delta": -0.0294,
"percent_delta": -0.1599,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.8771,
"after": 0.8817,
"delta": 0.0046,
"percent_delta": 0.0052,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_AVG",
"before": 0.141,
"after": 0.0962,
"delta": -0.0448,
"percent_delta": -0.3177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 3 (raw=2.81), rates preserved: AVG=0.093 HR/AB=0.006",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0258,
"after": 0.0,
"delta": -0.0258,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0423,
"after": 0.0,
"delta": -0.0423,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.8138,
"after": 3.0,
"delta": 0.1862,
"percent_delta": 0.0662,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.4144,
"after": 0.0,
"delta": -0.4144,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.2707,
"after": 0.0,
"delta": -0.2707,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.015,
"after": 0.0,
"delta": -0.015,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0179,
"after": 0.0,
"delta": -0.0179,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.1386,
"after": 0.0,
"delta": -0.1386,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.8817,
"after": 1.0,
"delta": 0.1183,
"percent_delta": 0.1342,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 2,
"deboosted_metrics": 3,
"better_metrics": 1,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_AB",
"before": 2.8138,
"after": 3.0,
"delta": 0.1862,
"percent_delta": 0.0662,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.4144,
"after": 0.0,
"delta": -0.4144,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.2944,
"after": 0.0,
"delta": -0.2944,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_R",
"before": 0.2944,
"after": 0.0,
"delta": -0.2944,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1232,
"predicted_3B": 0.0082,
"predicted_BB": 0.2904,
"predicted_H": 0.5867,
"predicted_HR": 0.0646,
"predicted_RBI": 0.2876,
"predicted_SO": 1.0071
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1232,
"delta": 0.1232,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0082,
"delta": 0.0082,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.2904,
"delta": 0.2904,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.5867,
"delta": 0.5867,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0646,
"delta": 0.0646,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.2876,
"delta": 0.2876,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0071,
"delta": 0.0071,
"percent_delta": 0.0071,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 5,
"deboosted_metrics": 0,
"better_metrics": 5,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.0,
"after": 0.5867,
"delta": 0.5867,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1232,
"after": 0.0,
"delta": -0.1232,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0082,
"after": 0.0,
"delta": -0.0082,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.2904,
"after": 0.0,
"delta": -0.2904,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.5867,
"after": 0.0,
"delta": -0.5867,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0646,
"after": 0.0,
"delta": -0.0646,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.2876,
"after": 0.0,
"delta": -0.2876,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0071,
"after": 1.0,
"delta": -0.0071,
"percent_delta": -0.007,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 0,
"deboosted_metrics": 5,
"better_metrics": 0,
"worse_metrics": 5,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 0.5867,
"after": 0.0,
"delta": -0.5867,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.203,
"predicted_BB": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.281,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.318,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.0962,
"after": 0.203,
"delta": 0.1068,
"percent_delta": 1.1102,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.2122,
"after": 0.281,
"delta": 0.0688,
"percent_delta": 0.3242,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.1545,
"after": 0.318,
"delta": 0.1635,
"percent_delta": 1.0583,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.1545,
"after": 0.318,
"delta": 0.1635,
"percent_delta": 1.0583,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 1.0,
"predicted_AB": 3.0,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 3.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 3.0,
"delta": 3.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 4,
"deboosted_metrics": 1,
"better_metrics": 5,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.0,
"after": 3.0,
"delta": 3.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 1.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.0962,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 3.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.2122,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.1545,
"predicted_SO": 0.0,
"predicted_SS": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.203,
"after": 0.0962,
"delta": -0.1068,
"percent_delta": -0.526,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.281,
"after": 0.2122,
"delta": -0.0688,
"percent_delta": -0.2447,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.318,
"after": 0.1545,
"delta": -0.1635,
"percent_delta": -0.5142,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.318,
"after": 0.1545,
"delta": -0.1635,
"percent_delta": -0.5142,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.021,
"after": 0.0,
"delta": -0.021,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.021,
"after": 1.0,
"delta": 0.979,
"percent_delta": 46.619,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AB",
"before": 2.809,
"after": 3.0,
"delta": 0.191,
"percent_delta": 0.068,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.155,
"after": 0.0962,
"delta": -0.0588,
"percent_delta": -0.3794,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.362,
"after": 1.0,
"delta": 0.638,
"percent_delta": 1.7624,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.24,
"after": 3.0,
"delta": 2.76,
"percent_delta": 11.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.02,
"after": 0.0,
"delta": -0.02,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.249,
"after": 0.2122,
"delta": -0.0368,
"percent_delta": -0.1478,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.234,
"after": 1.0,
"delta": 0.766,
"percent_delta": 3.2735,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.14,
"after": 0.0,
"delta": -0.14,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.172,
"after": 0.1545,
"delta": -0.0175,
"percent_delta": -0.1017,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.851,
"after": 0.0,
"delta": -0.851,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 10,
"boosted_metrics": 5,
"deboosted_metrics": 5,
"better_metrics": 6,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.24,
"after": 3.0,
"delta": 2.76,
"percent_delta": 11.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 0.851,
"after": 0.0,
"delta": -0.851,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.021 | - |
| predicted_3B | 0.021 | - |
| predicted_AB | 2.809 | - |
| predicted_AVG | 0.155 | - |
| predicted_BB | 0.362 | - |
| predicted_H | 0.240 | - |
| predicted_HR | 0.020 | - |
| predicted_OBP | 0.249 | - |
| predicted_R | 0.234 | - |
| predicted_RBI | 0.140 | - |
| predicted_SLG | 0.172 | - |
| predicted_SO | 0.851 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.026 | 0.005 |
| predicted_3B | 0.042 | 0.021 |
| predicted_AB | 2.814 | 0.005 |
| predicted_AVG | 0.141 | -0.014 |
| predicted_BB | 0.417 | 0.055 |
| predicted_H | 0.280 | 0.040 |
| predicted_HBP | 0.015 | - |
| predicted_HR | 0.018 | -0.002 |
| predicted_OBP | 0.251 | 0.002 |
| predicted_R | 0.311 | 0.077 |
| predicted_RBI | 0.146 | 0.006 |
| predicted_SLG | 0.184 | 0.012 |
| predicted_SO | 0.877 | 0.026 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.026 | 0.000 |
| predicted_3B | 0.042 | 0.000 |
| predicted_AB | 2.814 | 0.000 |
| predicted_AVG | 0.096 | -0.045 |
| predicted_BB | 0.414 | -0.002 |
| predicted_H | 0.271 | -0.009 |
| predicted_HBP | 0.015 | 0.000 |
| predicted_HR | 0.018 | -0.001 |
| predicted_OBP | 0.212 | -0.039 |
| predicted_R | 0.294 | -0.017 |
| predicted_RBI | 0.139 | -0.008 |
| predicted_SLG | 0.154 | -0.029 |
| predicted_SO | 0.882 | 0.005 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=2.81), rates preserved: AVG=0.093 HR/AB=0.006
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 0.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 0.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.123 | 0.123 |
| 3B | 0.008 | 0.008 |
| BB | 0.290 | 0.290 |
| H | 0.587 | 0.587 |
| HR | 0.065 | 0.065 |
| RBI | 0.288 | 0.288 |
| SO | 1.007 | 0.007 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.123 |
| 3B | 0.000 | -0.008 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | -0.290 |
| H | 0.000 | -0.587 |
| HR | 0.000 | -0.065 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -0.288 |
| SO | 1.000 | -0.007 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.026 |
| predicted_3B | 0.000 | -0.042 |
| predicted_AB | 3.000 | 0.186 |
| predicted_AVG | 0.203 | 0.107 |
| predicted_BB | 0.000 | -0.414 |
| predicted_H | 0.000 | -0.271 |
| predicted_HR | 0.000 | -0.018 |
| predicted_OBP | 0.281 | 0.069 |
| predicted_R | 0.000 | -0.294 |
| predicted_RBI | 0.000 | -0.139 |
| predicted_SLG | 0.318 | 0.164 |
| predicted_SO | 1.000 | 0.118 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 1.000 | 1.000 |
| AB | 3.000 | 0.000 |
| BB | 1.000 | 1.000 |
| CS | 0.000 | 0.000 |
| H | 3.000 | 3.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 1.000 | 1.000 |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 11.000 | 1.000 | 0.000 | 1.000 | 0.000 | 0.000 | 4.000 | 4.000 | 5.000 | 0.0909 | 0.3333 | 0.2727 | 0.0909 | 0.0000 | 0.0000 | 0.3636 | 0.4546 |
| last_10 | 0.20 | 10 | - | 25.000 | 1.000 | 0.000 | 1.000 | 0.000 | 0.000 | 4.000 | 6.000 | 9.000 | 0.0400 | 0.2258 | 0.1200 | 0.0400 | 0.0000 | 0.0000 | 0.2400 | 0.3600 |
| season | 0.60 | 47 | - | 132.000 | 15.000 | 1.000 | 1.000 | 0.000 | 9.000 | 11.000 | 17.000 | 40.000 | 0.1136 | 0.2200 | 0.1364 | 0.1136 | 0.0000 | 0.0682 | 0.1288 | 0.3030 |
| Metric | Value |
|---|---|
| predicted_2B | 0.0330 |
| predicted_3B | 0.0740 |
| predicted_AB | 2.8210 |
| predicted_AVG | 0.1200 |
| predicted_BB | 0.4980 |
| predicted_H | 0.3390 |
| predicted_HBP | 0.0150 |
| predicted_HR | 0.0160 |
| predicted_OBP | 0.2541 |
| predicted_R | 0.4260 |
| predicted_RBI | 0.1560 |
| predicted_SLG | 0.2016 |
| predicted_SO | 0.9160 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.0210 | 0.0330 | 0.0258 | model_form_blend |
| predicted_3B | 0.0210 | 0.0740 | 0.0423 | model_form_blend |
| predicted_AB | 2.8090 | 2.8210 | 2.8138 | model_form_blend |
| predicted_AVG | 0.1550 | 0.1200 | 0.1410 | model_form_blend |
| predicted_BB | 0.3620 | 0.4980 | 0.4166 | model_form_blend |
| predicted_H | 0.2400 | 0.3390 | 0.2797 | model_form_blend |
| predicted_HBP | - | 0.0150 | 0.0150 | form_only |
| predicted_HR | 0.0200 | 0.0160 | 0.0184 | model_form_blend |
| predicted_OBP | 0.2490 | 0.2541 | 0.2510 | model_form_blend |
| predicted_R | 0.2340 | 0.4260 | 0.3110 | model_form_blend |
| predicted_RBI | 0.1400 | 0.1560 | 0.1464 | model_form_blend |
| predicted_SLG | 0.1720 | 0.2016 | 0.1839 | model_form_blend |
| predicted_SO | 0.8510 | 0.9160 | 0.8771 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 143 |
| Season rows before report date | 143 |
| Report year | 2026 |
| Profile rows used | 47 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 3 |
| H | 3 |
| 2B | 0 |
| 3B | 1 |
| HR | 0 |
| R | 1 |
| RBI | 0 |
| BB | 1 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 1 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 1 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 0 |
| Hitting_SAC | 1 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 9 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | SS |
| gameID | 20260930_PHI@ATL |
| game_type | full |
| mlbID | 673490 |
| playerID | 673490 |
| playerName | Ha-Seong Kim |
| pos | SS |
| started | True |
| startingPosition | SS |
| team | ATL |
| teamID | 2 |
| game_date | 2026-09-30 |
| sl_k_percent | 25.9 |
| sl_bb_percent | 10.9 |
| sl_woba | 0.18 |
| sl_xwoba | 0.222 |
| sl_xba | 0.157 |
| sl_xslg | 0.206 |
| sl_sweet_spot_percent | 21.7 |
| sl_barrel_batted_rate | 2.2 |
| sl_hard_hit_percent | 25.0 |
| sl_exit_velocity_avg | 85.9 |
| sl_launch_angle_avg | 19.9 |
| sl_whiff_percent | 20.2 |
| sl_swing_percent | 42.7 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 3.000 | 3.000 | 3.000 | Pitching_BB | 0.286 | 0.000 | 2.714 | 3.000 |
| predicted_ER | 3.000 | 2.000 | 3.000 | Pitching_ER | 0.306 | 1.000 | 1.694 | 1.000 |
| predicted_H | 3.000 | 3.000 | 3.000 | Pitching_H | 0.653 | 1.000 | 2.347 | 2.000 |
| predicted_IP | 5.200 | 5.200 | 5.200 | Pitching_InningsPitched | 0.908 | 0.200 | 4.292 | 5.000 |
| predicted_SO | 7.000 | 7.000 | 7.000 | Pitching_SO | 1.082 | 0.000 | 5.918 | 7.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_form_blend |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 5 |
| Boosted Metrics | 1 |
| Deboosted Metrics | 4 |
| Better Metrics | 4 |
| Worse Metrics | 1 |
| Biggest Boost | predicted_SO: 6.0000 -> 7.0000 (boost 1.0000, better) |
| Biggest Deboost | predicted_ER: 4.0000 -> 2.0000 (deboost -2.0000, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 2 | pitcher_quality_guardrail | 3 | 0 | 3 | 2 | 1 | - | predicted_ER: 4.0000 -> 2.0000 (deboost -2.0000, better) | Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form. |
| 3 | current_json_final | 2 | 1 | 1 | 2 | 0 | predicted_SO: 6.0000 -> 7.0000 (boost 1.0000, better) | predicted_H: 4.0000 -> 3.0000 (deboost -1.0000, better) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "pitcher",
"player_id": "689266",
"player_name": "Dylan Dodd",
"position": "Starter",
"team": "ATL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 4.0,
"predicted_HR": 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": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 4.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 2.0,
"delta": -2.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 2,
"worse_metrics": 1,
"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": 3.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 1.0,
"predicted_IP": 5.2,
"predicted_R": 2.0,
"predicted_SO": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"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": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 2.0,
"delta": -2.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"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": 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": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 1,
"deboosted_metrics": 4,
"better_metrics": 4,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 7.0,
"delta": 1.0,
"percent_delta": 0.1667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_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"
}
}
}Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 3.000 | - |
| predicted_ER | 4.000 | - |
| predicted_H | 4.000 | - |
| predicted_HR | 2.000 | - |
| predicted_IP | 5.667 | - |
| predicted_SO | 6.000 | - |
Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 3.000 | 0.000 |
| predicted_ER | 2.000 | -2.000 |
| predicted_H | 4.000 | 0.000 |
| predicted_HR | 1.000 | -1.000 |
| predicted_IP | 5.200 | -0.467 |
| predicted_SO | 6.000 | 0.000 |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 5.000 | 3.000 | 4.000 | 0.000 | 6.000 | 1.000 | 5.4000 | 0.8000 | 0.6000 | 0.8000 | 0.0000 | 1.2000 | 0.2000 |
| last_10 | 0.35 | 10 | 9.100 | 5.000 | 8.000 | 1.000 | 10.000 | 3.000 | 4.8214 | 0.9643 | 0.5357 | 0.8571 | 0.1071 | 1.0714 | 0.3214 |
| season | 0.20 | 49 | 50.100 | 15.000 | 32.000 | 14.000 | 53.000 | 7.000 | 2.6821 | 0.9139 | 0.2980 | 0.6358 | 0.2782 | 1.0530 | 0.1391 |
| Metric | Value |
|---|---|
| predicted_BB | 0.4690 |
| predicted_ER | 1.2980 |
| predicted_ERA | 4.6395 |
| predicted_H | 2.1430 |
| predicted_HR | 0.5120 |
| predicted_IP | 2.2000 |
| predicted_SO | 2.6760 |
| predicted_WHIP | 1.0374 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 3.0000 | 0.4690 | 1.7026 | model_form_blend |
| predicted_ER | 4.0000 | 1.2980 | 2.6149 | model_form_blend |
| predicted_ERA | - | 4.6395 | 4.6395 | form_only |
| predicted_H | 4.0000 | 2.1430 | 3.0481 | model_form_blend |
| predicted_HR | 2.0000 | 0.5120 | 1.2372 | model_form_blend |
| predicted_IP | 5.2000 | 2.2000 | 4.1000 | model_form_blend |
| predicted_SO | 6.0000 | 2.6760 | 4.2961 | model_form_blend |
| predicted_WHIP | - | 1.0374 | 1.0374 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 49 |
| Season rows before report date | 49 |
| Report year | 2026 |
| Profile rows used | 49 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 5.2 |
| H | 3 |
| R | 2 |
| ER | 2 |
| BB | 3 |
| SO | 7 |
| HR | 1 |
| BF | 23 |
| Pitches | 104 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 3 |
| Pitching_ER | 1 |
| Pitching_ERA | 13.50 |
| Pitching_Flyouts | 2 |
| Pitching_Groundouts | 0 |
| Pitching_H | 1 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.2 |
| Pitching_Pitches | 14 |
| Pitching_R | 1 |
| Pitching_SO | 0 |
| Pitching_Strikes | 8 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 5 |
| allPositionsPlayed | P |
| gameID | 20261001_PHI@ATL |
| game_type | full |
| mlbID | 689266 |
| playerID | 689266 |
| playerName | Dylan Dodd |
| pos | P |
| started | False |
| startingPosition | P |
| team | ATL |
| teamID | 2 |
| game_date | 2026-10-01 |
| sl_k_percent | 27.3 |
| sl_bb_percent | 7.2 |
| sl_woba | 0.26 |
| sl_xwoba | 0.273 |
| sl_sweet_spot_percent | 37.9 |
| sl_barrel_batted_rate | 8.9 |
| sl_hard_hit_percent | 37.1 |
| sl_whiff_percent | 29.5 |
| sl_swing_percent | 54.4 |
| sl_avg_best_speed | 80.094113934 |
| sl_avg_hyper_speed | 93.49856377 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 1.000 | 2.000 | 1.000 | Pitching_BB | 0.344 | 0.000 | 1.656 | 2.000 |
| predicted_ER | 1.000 | 2.000 | 1.000 | Pitching_ER | 0.344 | 0.000 | 1.656 | 2.000 |
| predicted_H | 1.000 | 2.000 | 1.000 | Pitching_H | 1.049 | 0.000 | 0.951 | 2.000 |
| predicted_IP | 1.000 | 1.000 | 1.000 | Pitching_InningsPitched | 1.157 | 1.000 | -0.157 | 0.000 |
| predicted_SO | 1.000 | 1.000 | 1.000 | Pitching_SO | 1.574 | 0.000 | -0.574 | 1.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_form_blend |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 3 |
| Boosted Metrics | 3 |
| Deboosted Metrics | 0 |
| Better Metrics | 0 |
| Worse Metrics | 3 |
| Biggest Boost | predicted_ER: 0.0000 -> 1.0000 (boost 1.0000, worse) |
| Biggest Deboost | - |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 2 | pitcher_quality_run_redistribution | 3 | 3 | 0 | 0 | 3 | predicted_ER: 0.0000 -> 1.0000 (boost 1.0000, worse) | - | Runs moved off a protected strong starter and assigned to bullpen exposure to keep team totals coherent. |
| 3 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "pitcher",
"player_id": "800311",
"player_name": "Didier Fuentes",
"position": "Setup Man",
"team": "ATL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_run_redistribution",
"description": "Runs moved off a protected strong starter and assigned to bullpen exposure to keep team totals coherent.",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_IP": 1.0,
"predicted_SO": 1.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": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_IP",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_ER",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"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": 1.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_IP": 1.0,
"predicted_R": 1.0,
"predicted_SO": 1.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": 1.0,
"after": 1.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 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": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_IP",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_ER",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 1.000 | - |
| predicted_ER | 0.000 | - |
| predicted_H | 0.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 1.000 | - |
| predicted_SO | 1.000 | - |
Runs moved off a protected strong starter and assigned to bullpen exposure to keep team totals coherent.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 1.000 | 0.000 |
| predicted_ER | 1.000 | 1.000 |
| predicted_H | 1.000 | 1.000 |
| predicted_HR | 1.000 | 1.000 |
| predicted_IP | 1.000 | 0.000 |
| predicted_SO | 1.000 | 0.000 |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 5.000 | 3.000 | 9.000 | 0.000 | 3.000 | 2.000 | 5.4000 | 1.8000 | 0.6000 | 1.8000 | 0.0000 | 0.6000 | 0.4000 |
| last_10 | 0.35 | 10 | 13.000 | 5.000 | 14.000 | 2.000 | 14.000 | 3.000 | 3.4615 | 1.2308 | 0.3846 | 1.0769 | 0.1538 | 1.0769 | 0.2308 |
| season | 0.20 | 60 | 75.200 | 21.000 | 64.000 | 20.000 | 93.000 | 7.000 | 2.4978 | 1.1101 | 0.2775 | 0.8458 | 0.2643 | 1.2291 | 0.0925 |
| Metric | Value |
|---|---|
| predicted_BB | 0.1970 |
| predicted_ER | 0.5380 |
| predicted_ERA | 4.2548 |
| predicted_H | 1.4420 |
| predicted_HR | 0.2820 |
| predicted_IP | 1.0000 |
| predicted_SO | 1.0280 |
| predicted_WHIP | 1.4387 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 1.0000 | 0.1970 | 0.5604 | model_form_blend |
| predicted_ER | 0.0000 | 0.5380 | 0.2945 | model_form_blend |
| predicted_ERA | - | 4.2548 | 4.2548 | form_only |
| predicted_H | 0.0000 | 1.4420 | 0.7894 | model_form_blend |
| predicted_HR | 0.0000 | 0.2820 | 0.1544 | model_form_blend |
| predicted_IP | 1.0000 | 1.0000 | 1.0000 | model_form_blend |
| predicted_SO | 1.0000 | 1.0280 | 1.0153 | model_form_blend |
| predicted_WHIP | - | 1.4387 | 1.4387 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 61 |
| Season rows before report date | 61 |
| Report year | 2026 |
| Profile rows used | 60 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 1.0 |
| H | 2 |
| R | 2 |
| ER | 2 |
| BB | 2 |
| SO | 1 |
| HR | 1 |
| BF | 7 |
| Pitches | 27 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 3 |
| Pitching_ER | 0 |
| Pitching_ERA | 3.00 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 2 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 1.0 |
| Pitching_Pitches | 13 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 9 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 4 |
| allPositionsPlayed | P |
| gameID | 20261001_PHI@ATL |
| game_type | full |
| mlbID | 800311 |
| playerID | 800311 |
| playerName | Didier Fuentes |
| pos | P |
| started | False |
| startingPosition | P |
| team | ATL |
| teamID | 2 |
| game_date | 2026-10-01 |
| sl_k_percent | 31.0 |
| sl_bb_percent | 7.1 |
| sl_woba | 0.269 |
| sl_xwoba | 0.275 |
| sl_sweet_spot_percent | 36.3 |
| sl_barrel_batted_rate | 6.6 |
| sl_hard_hit_percent | 34.6 |
| sl_whiff_percent | 30.4 |
| sl_swing_percent | 52.7 |
| sl_avg_best_speed | 77.508901348 |
| sl_avg_hyper_speed | 93.351390506 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 0.000 | 0.000 | 0.000 | Pitching_BB | 0.279 | 0.000 | -0.279 | 0.000 |
| predicted_ER | 1.000 | 1.000 | 1.000 | Pitching_ER | 0.279 | 0.000 | 0.721 | 1.000 |
| predicted_H | 1.000 | 1.000 | 1.000 | Pitching_H | 0.820 | 1.000 | 0.180 | 0.000 |
| predicted_IP | 1.100 | 1.100 | 1.100 | Pitching_InningsPitched | 0.982 | 1.000 | 0.118 | 0.100 |
| predicted_SO | 1.000 | 1.000 | 1.000 | Pitching_SO | 1.049 | 0.000 | -0.049 | 1.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_form_blend |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 3 |
| Boosted Metrics | 3 |
| Deboosted Metrics | 0 |
| Better Metrics | 1 |
| Worse Metrics | 2 |
| Biggest Boost | predicted_ER: 0.0000 -> 1.0000 (boost 1.0000, worse) |
| Biggest Deboost | - |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 2 | pitcher_quality_run_redistribution | 3 | 3 | 0 | 1 | 2 | predicted_ER: 0.0000 -> 1.0000 (boost 1.0000, worse) | - | Runs moved off a protected strong starter and assigned to bullpen exposure to keep team totals coherent. |
| 3 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "pitcher",
"player_id": "628452",
"player_name": "Raisel Iglesias",
"position": "Closer",
"team": "ATL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_run_redistribution",
"description": "Runs moved off a protected strong starter and assigned to bullpen exposure to keep team totals coherent.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 1.1,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"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": 1.0,
"after": 1.1,
"delta": 0.1,
"percent_delta": 0.1,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_ER",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 1.1,
"predicted_R": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 1.1,
"after": 1.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"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": 1.0,
"after": 1.1,
"delta": 0.1,
"percent_delta": 0.1,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_ER",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 0.000 | - |
| predicted_ER | 0.000 | - |
| predicted_H | 0.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 1.000 | - |
| predicted_SO | 1.000 | - |
Runs moved off a protected strong starter and assigned to bullpen exposure to keep team totals coherent.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 0.000 | 0.000 |
| predicted_ER | 1.000 | 1.000 |
| predicted_H | 1.000 | 1.000 |
| predicted_HR | 0.000 | 0.000 |
| predicted_IP | 1.100 | 0.100 |
| predicted_SO | 1.000 | 0.000 |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 5.000 | 0.000 | 3.000 | 0.000 | 4.000 | 0.000 | 0.0000 | 0.6000 | 0.0000 | 0.6000 | 0.0000 | 0.8000 | 0.0000 |
| last_10 | 0.35 | 10 | 10.000 | 1.000 | 6.000 | 1.000 | 10.000 | 1.000 | 0.9000 | 0.7000 | 0.1000 | 0.6000 | 0.1000 | 1.0000 | 0.1000 |
| season | 0.20 | 61 | 62.000 | 17.000 | 50.000 | 17.000 | 64.000 | 6.000 | 2.4677 | 1.0806 | 0.2742 | 0.8065 | 0.2742 | 1.0323 | 0.0968 |
| Metric | Value |
|---|---|
| predicted_BB | 0.1710 |
| predicted_ER | 0.2090 |
| predicted_ERA | 1.8774 |
| predicted_H | 0.7380 |
| predicted_HR | 0.0810 |
| predicted_IP | 1.0000 |
| predicted_SO | 0.9210 |
| predicted_WHIP | 0.9090 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 0.0000 | 0.1710 | 0.0908 | model_form_blend |
| predicted_ER | 0.0000 | 0.2090 | 0.1110 | model_form_blend |
| predicted_ERA | - | 1.8774 | 1.8774 | form_only |
| predicted_H | 0.0000 | 0.7380 | 0.3920 | model_form_blend |
| predicted_HR | 0.0000 | 0.0810 | 0.0430 | model_form_blend |
| predicted_IP | 1.0000 | 1.0000 | 1.0000 | model_form_blend |
| predicted_SO | 1.0000 | 0.9210 | 0.9580 | model_form_blend |
| predicted_WHIP | - | 0.9090 | 0.9090 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 61 |
| Season rows before report date | 61 |
| Report year | 2026 |
| Profile rows used | 61 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 1.1 |
| H | 1 |
| R | 1 |
| ER | 1 |
| BB | 0 |
| SO | 1 |
| HR | 0 |
| BF | 5 |
| Pitches | 28 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 4 |
| Pitching_ER | 0 |
| Pitching_ERA | 0.00 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 1 |
| Pitching_H | 1 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 1.0 |
| Pitching_Pitches | 9 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 7 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 3 |
| allPositionsPlayed | P |
| gameID | 20260930_PHI@ATL |
| game_type | full |
| mlbID | 628452 |
| playerID | 628452 |
| playerName | Raisel Iglesias |
| pos | P |
| started | False |
| startingPosition | P |
| team | ATL |
| teamID | 2 |
| game_date | 2026-09-30 |
| sl_k_percent | 26.8 |
| sl_bb_percent | 7.1 |
| sl_woba | 0.274 |
| sl_xwoba | 0.289 |
| sl_sweet_spot_percent | 35.0 |
| sl_barrel_batted_rate | 9.6 |
| sl_hard_hit_percent | 37.6 |
| sl_whiff_percent | 30.0 |
| sl_swing_percent | 52.4 |
| sl_avg_best_speed | 77.155392051 |
| sl_avg_hyper_speed | 93.686712949 |
| Field | Value |
|---|---|
| Pitcher | Tarik Skubal |
| Role | Starter |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 0.7622 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | 0.1550 |
| Avg Velo | 92.6315 |
| Avg Spin | 2173.3743 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 6.1000 |
| Pre ER | 1 |
| Pre H | 5 |
| Pre BB | 1 |
| Pre SO | 7 |
| Season ERA | 2.7227 |
| Season WHIP | 0.9643 |
| Role Avg IP | 6.1030 |
| Recent Avg IP | 6.4000 |
| Last Start IP | 7 |
{
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAD",
"games": 162,
"wins": 100,
"losses": 62,
"win_pct": 0.6173,
"runs_scored": 801.0,
"runs_allowed": 600.0,
"run_differential": 201.0,
"run_differential_per_game": 1.2407,
"avg_runs_scored": 4.9444,
"avg_runs_allowed": 3.7037,
"offense_index": 1.1006,
"defense_index": 1.213,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 2.2,
"run_differential": 28.0
},
"available": true,
"quality_score": 0.3566
},
"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.0195,
"defense_index": 1.1626,
"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.2008,
"offense_edge": 0.1006,
"opponent_offense_edge": 0.0195,
"defense_strength": 0.213,
"opponent_defense_weakness": -0.1626,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0136,
"run_prevention": 0.9718,
"strikeout": 1.0045
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "669373",
"profile": {
"available": true,
"pitcher_id": "669373",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 569.0,
"k_percent": 30.0,
"bb_percent": 4.4,
"woba": 0.264,
"xwoba": 0.266,
"sweet_spot_percent": 34.6,
"barrel_batted_rate": 6.7,
"hard_hit_percent": 34.8,
"avg_best_speed": 75.3556,
"avg_hyper_speed": 93.4848,
"whiff_percent": 31.7,
"swing_percent": 53.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.851,
"command_and_miss": 1.0729,
"regression_edge": -0.0571,
"xwoba_edge": 1.3143,
"barrel_edge": 0.1111,
"hard_hit_edge": 0.4429,
"whiff_edge": 0.9286,
"bb_edge": 1.2,
"pitch_design_score": 0.155
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "669373",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 92,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 92.63147798168428,
"release_spin_rate": 2173.3742821287633,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 92.63147798168428,
"release_spin_rate": 2173.3742821287633,
"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.6315,
"release_spin_rate": 2173.3743,
"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.155,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.1069,
"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.7622,
"sample_weight": 1.0,
"run_prevention_factor": 0.9352,
"strikeout_factor": 1.0823,
"walk_factor": 0.904,
"homer_factor": 0.934,
"woba_minus_xwoba": -0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "669373",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.9352,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.9352,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.904,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.934,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.0823,
"adjusted": 8
}
}
}
}{
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 62.0,
"ER": 18,
"H": 52,
"BB": 13,
"SO": 70,
"HR": 4,
"ERA": 2.6129032258064515,
"WHIP": 1.0483870967741935,
"K9": 10.161290322580646,
"HR9": 0.5806451612903226,
"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-25T00:00:00"
}{
"available": true,
"pitcher_id": "669373",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 92,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 92.63147798168428,
"release_spin_rate": 2173.3742821287633,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 92,
"pitch_usage": 0.0,
"release_speed": 92.63147798168428,
"release_spin_rate": 2173.3742821287633,
"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.6315,
"release_spin_rate": 2173.3743,
"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.155,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.1069,
"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."
}{
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "669373",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 26,
"reference_playing_time": 6.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 32.0,
"ER": 8.0,
"R": 8.0,
"H": 28.0,
"BB": 6.0,
"SO": 33.0,
"HR": 2.0,
"BF": 125.0,
"Pitches": 447.0
},
"per_game": {
"IP": 6.1,
"ER": 1.6,
"R": 1.6,
"H": 5.6,
"BB": 1.2,
"SO": 6.6,
"HR": 0.4,
"BF": 25.0,
"Pitches": 89.4
},
"rates": {
"ERA": 2.25,
"WHIP": 1.0625,
"ER_per_IP": 0.25,
"H_per_IP": 0.875,
"BB_per_IP": 0.1875,
"SO_per_IP": 1.03125,
"HR_per_IP": 0.0625
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 62.0,
"ER": 18.0,
"R": 19.0,
"H": 52.0,
"BB": 13.0,
"SO": 70.0,
"HR": 4.0,
"BF": 246.0,
"Pitches": 925.0
},
"per_game": {
"IP": 6.1,
"ER": 1.8,
"R": 1.9,
"H": 5.2,
"BB": 1.3,
"SO": 7.0,
"HR": 0.4,
"BF": 24.6,
"Pitches": 92.5
},
"rates": {
"ERA": 2.6129,
"WHIP": 1.0484,
"ER_per_IP": 0.29032,
"H_per_IP": 0.83871,
"BB_per_IP": 0.20968,
"SO_per_IP": 1.12903,
"HR_per_IP": 0.06452
}
},
"season": {
"games": 26,
"totals": {
"IP": 158.2,
"ER": 48.0,
"R": 52.0,
"H": 126.0,
"BB": 27.0,
"SO": 186.0,
"HR": 14.0,
"BF": 620.0,
"Pitches": 2356.0
},
"per_game": {
"IP": 6.0,
"ER": 1.8462,
"R": 2.0,
"H": 4.8462,
"BB": 1.0385,
"SO": 7.1538,
"HR": 0.5385,
"BF": 23.8462,
"Pitches": 90.6154
},
"rates": {
"ERA": 2.7227,
"WHIP": 0.9643,
"ER_per_IP": 0.30252,
"H_per_IP": 0.79412,
"BB_per_IP": 0.17017,
"SO_per_IP": 1.17227,
"HR_per_IP": 0.08824
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.1,
"predicted_ER": 1.964,
"predicted_H": 5.451,
"predicted_BB": 1.394,
"predicted_SO": 6.703,
"predicted_HR": 0.509,
"predicted_ERA": 2.8164,
"predicted_WHIP": 1.0904
}
}{
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4181,
"form_weight": 0.5819,
"form_reliability": 0.8387,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 26.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8387,
"prior_weight": 0.1613
},
"applied_metrics": {
"predicted_IP": {
"model": 6.1,
"form": 6.1,
"final": 6.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.964,
"final": 1.5609,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.451,
"final": 5.2624,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.394,
"final": 1.2292,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 6.703,
"final": 5.9909,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.509,
"final": 0.2962,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.8164,
"final": 2.8164,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0904,
"final": 1.0904,
"source": "form_only"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | Justin Wrobleski |
| Role | Setup Man |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | -0.2901 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | 0.0442 |
| Avg Velo | 90.6540 |
| Avg Spin | 2394.1250 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 1.1000 |
| Pre ER | 0 |
| Pre H | 1 |
| Pre BB | 0 |
| Pre SO | 1 |
| Season ERA | 3.6643 |
| Season WHIP | 1.1429 |
| Role Avg IP | 1.9440 |
| Recent Avg IP | 1.5330 |
| Last Start IP | 0 |
{
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAD",
"games": 162,
"wins": 100,
"losses": 62,
"win_pct": 0.6173,
"runs_scored": 801.0,
"runs_allowed": 600.0,
"run_differential": 201.0,
"run_differential_per_game": 1.2407,
"avg_runs_scored": 4.9444,
"avg_runs_allowed": 3.7037,
"offense_index": 1.1006,
"defense_index": 1.213,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 2.2,
"run_differential": 28.0
},
"available": true,
"quality_score": 0.3566
},
"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.0195,
"defense_index": 1.1626,
"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.2008,
"offense_edge": 0.1006,
"opponent_offense_edge": 0.0195,
"defense_strength": 0.213,
"opponent_defense_weakness": -0.1626,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0136,
"run_prevention": 0.9718,
"strikeout": 1.0045
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "680736",
"profile": {
"available": true,
"pitcher_id": "680736",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 557.0,
"k_percent": 20.4,
"bb_percent": 5.4,
"woba": 0.299,
"xwoba": 0.326,
"sweet_spot_percent": 36.3,
"barrel_batted_rate": 9.4,
"hard_hit_percent": 43.9,
"avg_best_speed": 79.5322,
"avg_hyper_speed": 94.6286,
"whiff_percent": 20.7,
"swing_percent": 49.9
},
"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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3196,
"command_and_miss": -0.1443,
"regression_edge": -0.7714,
"xwoba_edge": -0.4,
"barrel_edge": -0.4889,
"hard_hit_edge": -0.8571,
"whiff_edge": -0.6429,
"bb_edge": 0.95,
"pitch_design_score": 0.0442
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "680736",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 45,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 45,
"pitch_usage": 0.0,
"release_speed": 90.65401949031055,
"release_spin_rate": 2394.125027056207,
"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": 45,
"pitch_usage": 0.0,
"release_speed": 90.65401949031055,
"release_spin_rate": 2394.125027056207,
"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.654,
"release_spin_rate": 2394.125,
"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.0442,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.3159,
"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.2901,
"sample_weight": 1.0,
"run_prevention_factor": 1.0247,
"strikeout_factor": 0.9646,
"walk_factor": 0.924,
"homer_factor": 1.0854,
"woba_minus_xwoba": -0.027,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "680736",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 1.0247,
"adjusted": 1
},
"predicted_H": {
"original": 2.0,
"factor": 1.0247,
"adjusted": 2
},
"predicted_BB": {
"original": 0.0,
"factor": 0.924,
"adjusted": 0
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0854,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9646,
"adjusted": 3
}
}
}
}{
"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": 27.1,
"ER": 21,
"H": 35,
"BB": 10,
"SO": 31,
"HR": 9,
"ERA": 6.914634146341465,
"WHIP": 1.6463414634146345,
"K9": 10.207317073170733,
"HR9": 2.963414634146342,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-27T00:00:00"
}{
"available": true,
"pitcher_id": "680736",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 45,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 45,
"pitch_usage": 0.0,
"release_speed": 90.65401949031055,
"release_spin_rate": 2394.125027056207,
"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": 45,
"pitch_usage": 0.0,
"release_speed": 90.65401949031055,
"release_spin_rate": 2394.125027056207,
"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.654,
"release_spin_rate": 2394.125,
"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.0442,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.3159,
"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."
}{
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "680736",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 28,
"reference_playing_time": 1.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 8.2,
"ER": 1.0,
"R": 1.0,
"H": 8.0,
"BB": 1.0,
"SO": 8.0,
"HR": 0.0,
"BF": 35.0,
"Pitches": 128.0
},
"per_game": {
"IP": 1.2,
"ER": 0.2,
"R": 0.2,
"H": 1.6,
"BB": 0.2,
"SO": 1.6,
"HR": 0.0,
"BF": 7.0,
"Pitches": 25.6
},
"rates": {
"ERA": 1.0385,
"WHIP": 1.0385,
"ER_per_IP": 0.11538,
"H_per_IP": 0.92308,
"BB_per_IP": 0.11538,
"SO_per_IP": 0.92308,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 27.1,
"ER": 21.0,
"R": 23.0,
"H": 35.0,
"BB": 10.0,
"SO": 31.0,
"HR": 9.0,
"BF": 129.0,
"Pitches": 511.0
},
"per_game": {
"IP": 2.2,
"ER": 2.1,
"R": 2.3,
"H": 3.5,
"BB": 1.0,
"SO": 3.1,
"HR": 0.9,
"BF": 12.9,
"Pitches": 51.1
},
"rates": {
"ERA": 6.9146,
"WHIP": 1.6463,
"ER_per_IP": 0.76829,
"H_per_IP": 1.28049,
"BB_per_IP": 0.36585,
"SO_per_IP": 1.13415,
"HR_per_IP": 0.32927
}
},
"season": {
"games": 28,
"totals": {
"IP": 140.0,
"ER": 57.0,
"R": 59.0,
"H": 129.0,
"BB": 31.0,
"SO": 118.0,
"HR": 21.0,
"BF": 578.0,
"Pitches": 2137.0
},
"per_game": {
"IP": 5.0,
"ER": 2.0357,
"R": 2.1071,
"H": 4.6071,
"BB": 1.1071,
"SO": 4.2143,
"HR": 0.75,
"BF": 20.6429,
"Pitches": 76.3214
},
"rates": {
"ERA": 3.6643,
"WHIP": 1.1429,
"ER_per_IP": 0.40714,
"H_per_IP": 0.92143,
"BB_per_IP": 0.22143,
"SO_per_IP": 0.84286,
"HR_per_IP": 0.15
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 2.1,
"predicted_ER": 1.038,
"predicted_H": 2.574,
"predicted_BB": 0.614,
"predicted_SO": 2.414,
"predicted_HR": 0.361,
"predicted_ERA": 3.7702,
"predicted_WHIP": 1.286
}
}{
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.414,
"form_weight": 0.586,
"form_reliability": 0.8485,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 28.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8485,
"prior_weight": 0.1515
},
"applied_metrics": {
"predicted_IP": {
"model": 1.1,
"form": 2.1,
"final": 2.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 1.038,
"final": 0.6083,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 2.574,
"final": 1.9224,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 0.614,
"final": 0.3598,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 2.414,
"final": 1.8286,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.361,
"final": 0.2115,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.7702,
"final": 3.7702,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.286,
"final": 1.286,
"source": "form_only"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | Tanner Scott |
| Role | Closer |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 0.6857 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | 0.1789 |
| Avg Velo | 93.0583 |
| Avg Spin | 2600.2614 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 1 |
| Pre ER | 2 |
| Pre H | 1 |
| Pre BB | 1 |
| Pre SO | 0 |
| Season ERA | 2.6859 |
| Season WHIP | 0.9895 |
| Role Avg IP | 0.9230 |
| Recent Avg IP | 1 |
| Last Start IP | 0 |
{
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAD",
"games": 162,
"wins": 100,
"losses": 62,
"win_pct": 0.6173,
"runs_scored": 801.0,
"runs_allowed": 600.0,
"run_differential": 201.0,
"run_differential_per_game": 1.2407,
"avg_runs_scored": 4.9444,
"avg_runs_allowed": 3.7037,
"offense_index": 1.1006,
"defense_index": 1.213,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 2.2,
"run_differential": 28.0
},
"available": true,
"quality_score": 0.3566
},
"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.0195,
"defense_index": 1.1626,
"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.2008,
"offense_edge": 0.1006,
"opponent_offense_edge": 0.0195,
"defense_strength": 0.213,
"opponent_defense_weakness": -0.1626,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0136,
"run_prevention": 0.9718,
"strikeout": 1.0045
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "656945",
"profile": {
"available": true,
"pitcher_id": "656945",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 226.0,
"k_percent": 32.7,
"bb_percent": 6.0,
"woba": 0.25,
"xwoba": 0.27,
"sweet_spot_percent": 35.9,
"barrel_batted_rate": 6.5,
"hard_hit_percent": 34.6,
"avg_best_speed": 77.9267,
"avg_hyper_speed": 93.6064,
"whiff_percent": 35.5,
"swing_percent": 56.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.8012,
"command_and_miss": 1.3564,
"regression_edge": -0.5714,
"xwoba_edge": 1.2,
"barrel_edge": 0.1556,
"hard_hit_edge": 0.4714,
"whiff_edge": 1.4714,
"bb_edge": 0.8,
"pitch_design_score": 0.1789
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "656945",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 12,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 12,
"pitch_usage": 0.0,
"release_speed": 93.0583407992636,
"release_spin_rate": 2600.2614183866235,
"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": 12,
"pitch_usage": 0.0,
"release_speed": 93.0583407992636,
"release_spin_rate": 2600.2614183866235,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 93.0583,
"release_spin_rate": 2600.2614,
"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.1789,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.2777,
"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.6857,
"sample_weight": 0.904,
"run_prevention_factor": 0.9417,
"strikeout_factor": 1.108,
"walk_factor": 0.9421,
"homer_factor": 0.9392,
"woba_minus_xwoba": -0.02,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "656945",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9473,
"adjusted": 0
},
"predicted_H": {
"original": 1.0,
"factor": 0.9473,
"adjusted": 1
},
"predicted_BB": {
"original": 0.0,
"factor": 0.9477,
"adjusted": 0
},
"predicted_HR": {
"original": 0.0,
"factor": 0.945,
"adjusted": 0
},
"predicted_SO": {
"original": 2.0,
"factor": 1.0976,
"adjusted": 2
}
}
}
}{
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 8.2,
"ER": 4,
"H": 8,
"BB": 3,
"SO": 15,
"HR": 0,
"ERA": 4.153846153846154,
"WHIP": 1.2692307692307694,
"K9": 15.576923076923078,
"HR9": 0.0,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-26T00:00:00"
}{
"available": true,
"pitcher_id": "656945",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 12,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 12,
"pitch_usage": 0.0,
"release_speed": 93.0583407992636,
"release_spin_rate": 2600.2614183866235,
"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": 12,
"pitch_usage": 0.0,
"release_speed": 93.0583407992636,
"release_spin_rate": 2600.2614183866235,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 93.0583,
"release_spin_rate": 2600.2614,
"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.1789,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.2777,
"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."
}{
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.121,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7241,
"prior_weight": 0.2759
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "656945",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 69,
"reference_playing_time": 1.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 5.0,
"ER": 0.0,
"R": 0.0,
"H": 2.0,
"BB": 2.0,
"SO": 9.0,
"HR": 0.0,
"BF": 19.0,
"Pitches": 80.0
},
"per_game": {
"IP": 1.0,
"ER": 0.0,
"R": 0.0,
"H": 0.4,
"BB": 0.4,
"SO": 1.8,
"HR": 0.0,
"BF": 3.8,
"Pitches": 16.0
},
"rates": {
"ERA": 0.0,
"WHIP": 0.8,
"ER_per_IP": 0.0,
"H_per_IP": 0.4,
"BB_per_IP": 0.4,
"SO_per_IP": 1.8,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 8.2,
"ER": 4.0,
"R": 5.0,
"H": 8.0,
"BB": 3.0,
"SO": 15.0,
"HR": 0.0,
"BF": 38.0,
"Pitches": 149.0
},
"per_game": {
"IP": 1.0,
"ER": 0.4,
"R": 0.5,
"H": 0.8,
"BB": 0.3,
"SO": 1.5,
"HR": 0.0,
"BF": 3.8,
"Pitches": 14.9
},
"rates": {
"ERA": 4.1538,
"WHIP": 1.2692,
"ER_per_IP": 0.46154,
"H_per_IP": 0.92308,
"BB_per_IP": 0.34615,
"SO_per_IP": 1.73077,
"HR_per_IP": 0.0
}
},
"season": {
"games": 69,
"totals": {
"IP": 63.2,
"ER": 19.0,
"R": 20.0,
"H": 48.0,
"BB": 15.0,
"SO": 82.0,
"HR": 4.0,
"BF": 251.0,
"Pitches": 963.0
},
"per_game": {
"IP": 1.0,
"ER": 0.2754,
"R": 0.2899,
"H": 0.6957,
"BB": 0.2174,
"SO": 1.1884,
"HR": 0.058,
"BF": 3.6377,
"Pitches": 13.9565
},
"rates": {
"ERA": 2.6859,
"WHIP": 0.9895,
"ER_per_IP": 0.29843,
"H_per_IP": 0.75393,
"BB_per_IP": 0.2356,
"SO_per_IP": 1.28796,
"HR_per_IP": 0.06283
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 1.0,
"predicted_ER": 0.301,
"predicted_H": 0.745,
"predicted_BB": 0.357,
"predicted_SO": 1.469,
"predicted_HR": 0.05,
"predicted_ERA": 2.7134,
"predicted_WHIP": 1.1018
}
}{
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4666,
"form_weight": 0.5334,
"form_reliability": 0.7241,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.121,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7241,
"prior_weight": 0.2759
},
"applied_metrics": {
"predicted_IP": {
"model": 1.0,
"form": 1.0,
"final": 1.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 0.301,
"final": 1.0937,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 0.745,
"final": 0.864,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 0.357,
"final": 0.657,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 1.469,
"final": 1.7167,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.05,
"final": 0.4932,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.7134,
"final": 2.7134,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1018,
"final": 1.1018,
"source": "form_only"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | Evan Phillips |
| Role | Middle Reliever (High Leverage) |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | -0.0340 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | 0.1410 |
| Avg Velo | 92.3821 |
| Avg Spin | 2484.0896 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 0.1000 |
| Pre ER | 1 |
| Pre H | 2 |
| Pre BB | 1 |
| Pre SO | 1 |
| Season ERA | 3.4615 |
| Season WHIP | 1.0769 |
| Role Avg IP | 0.8390 |
| Recent Avg IP | 1 |
| Last Start IP | 0 |
{
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "LAD",
"games": 162,
"wins": 100,
"losses": 62,
"win_pct": 0.6173,
"runs_scored": 801.0,
"runs_allowed": 600.0,
"run_differential": 201.0,
"run_differential_per_game": 1.2407,
"avg_runs_scored": 4.9444,
"avg_runs_allowed": 3.7037,
"offense_index": 1.1006,
"defense_index": 1.213,
"current_streak": "W3",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.0,
"avg_runs_allowed": 2.2,
"run_differential": 28.0
},
"available": true,
"quality_score": 0.3566
},
"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.0195,
"defense_index": 1.1626,
"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.2008,
"offense_edge": 0.1006,
"opponent_offense_edge": 0.0195,
"defense_strength": 0.213,
"opponent_defense_weakness": -0.1626,
"recent_win_pct_edge": 0.3
},
"player_factors": {
"ip": 1.0136,
"run_prevention": 0.9718,
"strikeout": 1.0045
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "623465",
"profile": {
"available": true,
"pitcher_id": "623465",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 90.0,
"k_percent": 31.1,
"bb_percent": 5.7,
"woba": 0.292,
"xwoba": 0.321,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 16.7,
"hard_hit_percent": 39.4,
"avg_best_speed": 80.1336,
"avg_hyper_speed": 95.3489,
"whiff_percent": 26.7,
"swing_percent": 48.7
},
"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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3919,
"command_and_miss": 0.8286,
"regression_edge": -0.8286,
"xwoba_edge": -0.2571,
"barrel_edge": -2.1111,
"hard_hit_edge": -0.2143,
"whiff_edge": 0.2143,
"bb_edge": 0.875,
"pitch_design_score": 0.141
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "623465",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 19,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 19,
"pitch_usage": 0.0,
"release_speed": 92.38214029749633,
"release_spin_rate": 2484.0896341825305,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 19,
"pitch_usage": 0.0,
"release_speed": 92.38214029749633,
"release_spin_rate": 2484.0896341825305,
"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.3821,
"release_spin_rate": 2484.0896,
"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.141,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.0072,
"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.034,
"sample_weight": 0.45,
"run_prevention_factor": 1.0029,
"strikeout_factor": 1.027,
"walk_factor": 0.9685,
"homer_factor": 1.0833,
"woba_minus_xwoba": -0.029,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "623465",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 1.0013,
"adjusted": 0
},
"predicted_H": {
"original": 1.0,
"factor": 1.0013,
"adjusted": 1
},
"predicted_BB": {
"original": 0.0,
"factor": 0.9858,
"adjusted": 0
},
"predicted_HR": {
"original": 0.0,
"factor": 1.0375,
"adjusted": 0
},
"predicted_SO": {
"original": 2.0,
"factor": 1.0121,
"adjusted": 2
}
}
}
}{
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 9.1,
"ER": 2,
"H": 4,
"BB": 1,
"SO": 15,
"HR": 1,
"ERA": 1.9285714285714288,
"WHIP": 0.5357142857142858,
"K9": 14.464285714285715,
"HR9": 0.9642857142857144,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": true,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-27T00:00:00"
}{
"available": true,
"pitcher_id": "623465",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 19,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 19,
"pitch_usage": 0.0,
"release_speed": 92.38214029749633,
"release_spin_rate": 2484.0896341825305,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 19,
"pitch_usage": 0.0,
"release_speed": 92.38214029749633,
"release_spin_rate": 2484.0896341825305,
"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.3821,
"release_spin_rate": 2484.0896,
"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.141,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.0072,
"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."
}{
"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": 5.358,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5173,
"prior_weight": 0.4827
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "623465",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 0.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 5.0,
"ER": 2.0,
"R": 2.0,
"H": 2.0,
"BB": 0.0,
"SO": 8.0,
"HR": 1.0,
"BF": 17.0,
"Pitches": 66.0
},
"per_game": {
"IP": 1.0,
"ER": 0.4,
"R": 0.4,
"H": 0.4,
"BB": 0.0,
"SO": 1.6,
"HR": 0.2,
"BF": 3.4,
"Pitches": 13.2
},
"rates": {
"ERA": 3.6,
"WHIP": 0.4,
"ER_per_IP": 0.4,
"H_per_IP": 0.4,
"BB_per_IP": 0.0,
"SO_per_IP": 1.6,
"HR_per_IP": 0.2
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 9.1,
"ER": 2.0,
"R": 2.0,
"H": 4.0,
"BB": 1.0,
"SO": 15.0,
"HR": 1.0,
"BF": 34.0,
"Pitches": 133.0
},
"per_game": {
"IP": 1.0,
"ER": 0.2,
"R": 0.2,
"H": 0.4,
"BB": 0.1,
"SO": 1.5,
"HR": 0.1,
"BF": 3.4,
"Pitches": 13.3
},
"rates": {
"ERA": 1.9286,
"WHIP": 0.5357,
"ER_per_IP": 0.21429,
"H_per_IP": 0.42857,
"BB_per_IP": 0.10714,
"SO_per_IP": 1.60714,
"HR_per_IP": 0.10714
}
},
"season": {
"games": 31,
"totals": {
"IP": 26.0,
"ER": 10.0,
"R": 11.0,
"H": 22.0,
"BB": 6.0,
"SO": 33.0,
"HR": 5.0,
"BF": 106.0,
"Pitches": 423.0
},
"per_game": {
"IP": 1.0,
"ER": 0.3226,
"R": 0.3548,
"H": 0.7097,
"BB": 0.1935,
"SO": 1.0645,
"HR": 0.1613,
"BF": 3.4194,
"Pitches": 13.6452
},
"rates": {
"ERA": 3.4615,
"WHIP": 1.0769,
"ER_per_IP": 0.38462,
"H_per_IP": 0.84615,
"BB_per_IP": 0.23077,
"SO_per_IP": 1.26923,
"HR_per_IP": 0.19231
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 0.2,
"predicted_ER": 0.284,
"predicted_H": 0.497,
"predicted_BB": 0.154,
"predicted_SO": 0.845,
"predicted_HR": 0.107,
"predicted_ERA": 3.7703,
"predicted_WHIP": 0.9597
}
}{
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5539,
"form_weight": 0.4461,
"form_reliability": 0.5173,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 5.358,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.5173,
"prior_weight": 0.4827
},
"applied_metrics": {
"predicted_IP": {
"model": 0.1,
"form": 0.2,
"final": 0.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 0.284,
"final": 0.6806,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 0.497,
"final": 1.3296,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 0.154,
"final": 0.6226,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 0.845,
"final": 0.9309,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.107,
"final": 0.0477,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.7703,
"final": 3.7703,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9597,
"final": 0.9597,
"source": "form_only"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.187 | 0.000 | 0.000 | Hitting_2B | 0.186 | 0.000 | -0.186 | 0.000 |
| predicted_3B | 0.030 | 0.000 | 0.000 | Hitting_3B | 0.033 | 0.000 | -0.033 | 0.000 |
| predicted_AB | 3.866 | 3.000 | 4.000 | Hitting_AB | 3.902 | 3.000 | -0.902 | 0.000 |
| predicted_AVG | 0.274 | 0.000 | 0.250 | Hitting_AVG | 0.279 | 0.333 | -0.279 | -0.333 |
| predicted_BB | 0.604 | 1.000 | 1.000 | Hitting_BB | 0.640 | 0.000 | 0.360 | 1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.022 | 0.000 | -0.022 | 0.000 |
| predicted_H | 1.060 | 0.000 | 1.000 | Hitting_H | 1.088 | 1.000 | -1.088 | -1.000 |
| predicted_HR | 0.224 | 0.000 | 1.000 | Hitting_HR | 0.231 | 0.000 | -0.231 | 0.000 |
| predicted_OBP | 0.372 | 0.250 | 0.400 | Hitting_OBP | 0.384 | 0.333 | -0.134 | -0.083 |
| predicted_R | 0.657 | 1.000 | 1.000 | Hitting_R | 0.691 | 0.000 | 0.309 | 1.000 |
| predicted_RBI | 0.590 | 0.000 | 1.000 | Hitting_RBI | 0.633 | 0.000 | -0.633 | 0.000 |
| predicted_SLG | 0.512 | 0.000 | 1.000 | Hitting_SLG | 0.521 | 0.333 | -0.521 | -0.333 |
| predicted_SO | 1.127 | 0.000 | 1.000 | Hitting_SO | 1.136 | 0.000 | -1.136 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 11 |
| Boosted Metrics | 2 |
| Deboosted Metrics | 9 |
| Better Metrics | 3 |
| Worse Metrics | 8 |
| Biggest Boost | predicted_BB: 0.6040 -> 1.0000 (boost 0.3960, better) |
| Biggest Deboost | predicted_SO: 1.1270 -> 0.0000 (deboost -1.1270, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 7 | 1 | 6 | 0 | 7 | predicted_SO: 1.1270 -> 1.2064 (boost 0.0794, worse) | predicted_R: 0.6570 -> 0.5728 (deboost -0.0842, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 0 | 0 | 0 | 0 | 0 | - | - | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 3 | 4 | 4 | 3 | predicted_RBI: 0.5305 -> 1.0000 (boost 0.4695, better) | predicted_SO: 1.1943 -> 1.0000 (deboost -0.1943, better) | AB rounded to 4 (raw=3.90), rates preserved: AVG=0.243 HR/AB=0.048 |
| 6 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5886 -> 1.0000 (boost 0.4114, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 3 | 3 | 2 | 4 | predicted_SO: 1.0000 -> 1.2882 (boost 0.2882, worse) | predicted_BB: 1.0000 -> 0.4842 (deboost -0.5158, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 6 | 4 | 2 | 5 | 1 | predicted_HR: 0.1939 -> 1.0000 (boost 0.8061, better) | predicted_SO: 1.2882 -> 1.0000 (deboost -0.2882, better) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 4 | 0 | 4 | 0 | 4 | - | predicted_HR: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 4 | 0 | 4 | 1 | 3 | - | predicted_AB: 4.0000 -> 3.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_SLG: 0.4250 -> 0.4695 (boost 0.0445, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "660271",
"player_name": "Shohei Ohtani",
"position": "DH",
"team": "LAD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.187,
"predicted_3B": 0.03,
"predicted_AB": 3.866,
"predicted_AVG": 0.274,
"predicted_BB": 0.604,
"predicted_H": 1.06,
"predicted_HR": 0.224,
"predicted_OBP": 0.372,
"predicted_R": 0.657,
"predicted_RBI": 0.59,
"predicted_SLG": 0.512,
"predicted_SO": 1.127
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1805,
"predicted_3B": 0.0248,
"predicted_AB": 3.8952,
"predicted_AVG": 0.2627,
"predicted_BB": 0.5486,
"predicted_H": 1.0229,
"predicted_HBP": 0.07,
"predicted_HR": 0.186,
"predicted_OBP": 0.3566,
"predicted_R": 0.5728,
"predicted_RBI": 0.5163,
"predicted_SLG": 0.4654,
"predicted_SO": 1.2064
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.187,
"after": 0.1805,
"delta": -0.0065,
"percent_delta": -0.0348,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.03,
"after": 0.0248,
"delta": -0.0052,
"percent_delta": -0.1733,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.866,
"after": 3.8952,
"delta": 0.0292,
"percent_delta": 0.0076,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.274,
"after": 0.2627,
"delta": -0.0113,
"percent_delta": -0.0412,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.604,
"after": 0.5486,
"delta": -0.0554,
"percent_delta": -0.0917,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.06,
"after": 1.0229,
"delta": -0.0371,
"percent_delta": -0.035,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.224,
"after": 0.186,
"delta": -0.038,
"percent_delta": -0.1696,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.372,
"after": 0.3566,
"delta": -0.0154,
"percent_delta": -0.0414,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.657,
"after": 0.5728,
"delta": -0.0842,
"percent_delta": -0.1282,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.59,
"after": 0.5163,
"delta": -0.0737,
"percent_delta": -0.1249,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.512,
"after": 0.4654,
"delta": -0.0466,
"percent_delta": -0.091,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.127,
"after": 1.2064,
"delta": 0.0794,
"percent_delta": 0.0705,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 1,
"deboosted_metrics": 6,
"better_metrics": 0,
"worse_metrics": 7,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.127,
"after": 1.2064,
"delta": 0.0794,
"percent_delta": 0.0705,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_R",
"before": 0.657,
"after": 0.5728,
"delta": -0.0842,
"percent_delta": -0.1282,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 134
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1805,
"predicted_3B": 0.0248,
"predicted_AB": 3.8952,
"predicted_AVG": 0.2663,
"predicted_BB": 0.5541,
"predicted_H": 1.0373,
"predicted_HBP": 0.07,
"predicted_HR": 0.1871,
"predicted_OBP": 0.3577,
"predicted_R": 0.5886,
"predicted_RBI": 0.5305,
"predicted_SLG": 0.4695,
"predicted_SO": 1.1943
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1805,
"after": 0.1805,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0248,
"after": 0.0248,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.8952,
"after": 3.8952,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2627,
"after": 0.2663,
"delta": 0.0036,
"percent_delta": 0.0137,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.5486,
"after": 0.5541,
"delta": 0.0055,
"percent_delta": 0.01,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0229,
"after": 1.0373,
"delta": 0.0144,
"percent_delta": 0.0141,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.07,
"after": 0.07,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.186,
"after": 0.1871,
"delta": 0.0011,
"percent_delta": 0.0059,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3566,
"after": 0.3577,
"delta": 0.0011,
"percent_delta": 0.0031,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.5728,
"after": 0.5886,
"delta": 0.0158,
"percent_delta": 0.0276,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5163,
"after": 0.5305,
"delta": 0.0142,
"percent_delta": 0.0275,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4654,
"after": 0.4695,
"delta": 0.0041,
"percent_delta": 0.0088,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.2064,
"after": 1.1943,
"delta": -0.0121,
"percent_delta": -0.01,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=3.90), rates preserved: AVG=0.243 HR/AB=0.048",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1805,
"after": 0.0,
"delta": -0.1805,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0248,
"after": 0.0,
"delta": -0.0248,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.8952,
"after": 4.0,
"delta": 0.1048,
"percent_delta": 0.0269,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.5541,
"after": 1.0,
"delta": 0.4459,
"percent_delta": 0.8047,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0373,
"after": 1.0,
"delta": -0.0373,
"percent_delta": -0.036,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.07,
"after": 0.0,
"delta": -0.07,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1871,
"after": 0.0,
"delta": -0.1871,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.5305,
"after": 1.0,
"delta": 0.4695,
"percent_delta": 0.885,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.1943,
"after": 1.0,
"delta": -0.1943,
"percent_delta": -0.1627,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 3,
"deboosted_metrics": 4,
"better_metrics": 4,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.5305,
"after": 1.0,
"delta": 0.4695,
"percent_delta": 0.885,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.1943,
"after": 1.0,
"delta": -0.1943,
"percent_delta": -0.1627,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.5886,
"after": 1.0,
"delta": 0.4114,
"percent_delta": 0.6989,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.5886,
"after": 1.0,
"delta": 0.4114,
"percent_delta": 0.6989,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1677,
"predicted_3B": 0.0149,
"predicted_BB": 0.4842,
"predicted_H": 0.8936,
"predicted_HR": 0.1939,
"predicted_RBI": 0.5694,
"predicted_SO": 1.2882
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1677,
"delta": 0.1677,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0149,
"delta": 0.0149,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 1.0,
"after": 0.4842,
"delta": -0.5158,
"percent_delta": -0.5158,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.8936,
"delta": -0.1064,
"percent_delta": -0.1064,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1939,
"delta": 0.1939,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.5694,
"delta": -0.4306,
"percent_delta": -0.4306,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.2882,
"delta": 0.2882,
"percent_delta": 0.2882,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 3,
"deboosted_metrics": 3,
"better_metrics": 2,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 1.2882,
"delta": 0.2882,
"percent_delta": 0.2882,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 1.0,
"after": 0.4842,
"delta": -0.5158,
"percent_delta": -0.5158,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1677,
"after": 0.0,
"delta": -0.1677,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0149,
"after": 0.0,
"delta": -0.0149,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.4842,
"after": 1.0,
"delta": 0.5158,
"percent_delta": 1.0653,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8936,
"after": 1.0,
"delta": 0.1064,
"percent_delta": 0.1191,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1939,
"after": 1.0,
"delta": 0.8061,
"percent_delta": 4.1573,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5694,
"after": 1.0,
"delta": 0.4306,
"percent_delta": 0.7562,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.2882,
"after": 1.0,
"delta": -0.2882,
"percent_delta": -0.2237,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 5,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_HR",
"before": 0.1939,
"after": 1.0,
"delta": 0.8061,
"percent_delta": 4.1573,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.2882,
"after": 1.0,
"delta": -0.2882,
"percent_delta": -0.2237,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.227,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.317,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SLG": 0.425,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2663,
"after": 0.227,
"delta": -0.0393,
"percent_delta": -0.1476,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.3577,
"after": 0.317,
"delta": -0.0407,
"percent_delta": -0.1138,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4695,
"after": 0.425,
"delta": -0.0445,
"percent_delta": -0.0948,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 0,
"deboosted_metrics": 4,
"better_metrics": 0,
"worse_metrics": 4,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_HR",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 0,
"deboosted_metrics": 4,
"better_metrics": 1,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.2663,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_DH": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3577,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.4695,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.227,
"after": 0.2663,
"delta": 0.0393,
"percent_delta": 0.1732,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.317,
"after": 0.3577,
"delta": 0.0407,
"percent_delta": 0.1283,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.425,
"after": 0.4695,
"delta": 0.0445,
"percent_delta": 0.1047,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.425,
"after": 0.4695,
"delta": 0.0445,
"percent_delta": 0.1047,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.187,
"after": 0.0,
"delta": -0.187,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.03,
"after": 0.0,
"delta": -0.03,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.866,
"after": 3.0,
"delta": -0.866,
"percent_delta": -0.224,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.274,
"after": 0.2663,
"delta": -0.0077,
"percent_delta": -0.0281,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.604,
"after": 1.0,
"delta": 0.396,
"percent_delta": 0.6556,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.06,
"after": 0.0,
"delta": -1.06,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.224,
"after": 0.0,
"delta": -0.224,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.372,
"after": 0.3577,
"delta": -0.0143,
"percent_delta": -0.0384,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.657,
"after": 1.0,
"delta": 0.343,
"percent_delta": 0.5221,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.59,
"after": 0.0,
"delta": -0.59,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.512,
"after": 0.4695,
"delta": -0.0425,
"percent_delta": -0.083,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.127,
"after": 0.0,
"delta": -1.127,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 11,
"boosted_metrics": 2,
"deboosted_metrics": 9,
"better_metrics": 3,
"worse_metrics": 8,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.604,
"after": 1.0,
"delta": 0.396,
"percent_delta": 0.6556,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.127,
"after": 0.0,
"delta": -1.127,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.187 | - |
| predicted_3B | 0.030 | - |
| predicted_AB | 3.866 | - |
| predicted_AVG | 0.274 | - |
| predicted_BB | 0.604 | - |
| predicted_H | 1.060 | - |
| predicted_HR | 0.224 | - |
| predicted_OBP | 0.372 | - |
| predicted_R | 0.657 | - |
| predicted_RBI | 0.590 | - |
| predicted_SLG | 0.512 | - |
| predicted_SO | 1.127 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.180 | -0.007 |
| predicted_3B | 0.025 | -0.005 |
| predicted_AB | 3.895 | 0.029 |
| predicted_AVG | 0.263 | -0.011 |
| predicted_BB | 0.549 | -0.055 |
| predicted_H | 1.023 | -0.037 |
| predicted_HBP | 0.070 | - |
| predicted_HR | 0.186 | -0.038 |
| predicted_OBP | 0.357 | -0.015 |
| predicted_R | 0.573 | -0.084 |
| predicted_RBI | 0.516 | -0.074 |
| predicted_SLG | 0.465 | -0.047 |
| predicted_SO | 1.206 | 0.079 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.180 | 0.000 |
| predicted_3B | 0.025 | 0.000 |
| predicted_AB | 3.895 | 0.000 |
| predicted_AVG | 0.266 | 0.004 |
| predicted_BB | 0.554 | 0.006 |
| predicted_H | 1.037 | 0.014 |
| predicted_HBP | 0.070 | 0.000 |
| predicted_HR | 0.187 | 0.001 |
| predicted_OBP | 0.358 | 0.001 |
| predicted_R | 0.589 | 0.016 |
| predicted_RBI | 0.530 | 0.014 |
| predicted_SLG | 0.469 | 0.004 |
| predicted_SO | 1.194 | -0.012 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=3.90), rates preserved: AVG=0.243 HR/AB=0.048
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 1.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.168 | 0.168 |
| 3B | 0.015 | 0.015 |
| BB | 0.484 | -0.516 |
| H | 0.894 | -0.106 |
| HR | 0.194 | 0.194 |
| RBI | 0.569 | -0.431 |
| SO | 1.288 | 0.288 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.168 |
| 3B | 0.000 | -0.015 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 0.516 |
| H | 1.000 | 0.106 |
| HR | 1.000 | 0.806 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.431 |
| SO | 1.000 | -0.288 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.180 |
| predicted_3B | 0.000 | -0.025 |
| predicted_AB | 4.000 | 0.105 |
| predicted_AVG | 0.227 | -0.039 |
| predicted_BB | 1.000 | 0.446 |
| predicted_H | 1.000 | -0.037 |
| predicted_HR | 0.000 | -0.187 |
| predicted_OBP | 0.317 | -0.041 |
| predicted_R | 1.000 | 0.411 |
| predicted_RBI | 1.000 | 0.470 |
| predicted_SLG | 0.425 | -0.044 |
| predicted_SO | 1.000 | -0.194 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | -1.000 |
| BB | 1.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | -1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | -1.000 |
| PA | 4.000 | - |
| R | 1.000 | 0.000 |
| RBI | 0.000 | -1.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 21.000 | 5.000 | 1.000 | 0.000 | 0.000 | 1.000 | 0.000 | 1.000 | 8.000 | 0.2381 | 0.2727 | 0.2857 | 0.2381 | 0.0000 | 0.0476 | 0.0476 | 0.3810 |
| last_10 | 0.20 | 10 | - | 39.000 | 7.000 | 1.000 | 0.000 | 0.000 | 1.000 | 3.000 | 4.000 | 17.000 | 0.1795 | 0.2889 | 0.2051 | 0.1795 | 0.0000 | 0.0256 | 0.1026 | 0.4359 |
| season | 0.60 | 134 | - | 518.000 | 142.000 | 25.000 | 4.000 | 30.000 | 79.000 | 88.000 | 81.000 | 151.000 | 0.2741 | 0.3764 | 0.5116 | 0.2741 | 0.0579 | 0.1525 | 0.1564 | 0.2915 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1720 |
| predicted_3B | 0.0180 |
| predicted_AB | 3.9330 |
| predicted_AVG | 0.2480 |
| predicted_BB | 0.4770 |
| predicted_H | 0.9750 |
| predicted_HBP | 0.0700 |
| predicted_HR | 0.1370 |
| predicted_OBP | 0.3366 |
| predicted_R | 0.4640 |
| predicted_RBI | 0.4210 |
| predicted_SLG | 0.4052 |
| predicted_SO | 1.3090 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1870 | 0.1720 | 0.1805 | model_form_blend |
| predicted_3B | 0.0300 | 0.0180 | 0.0248 | model_form_blend |
| predicted_AB | 3.8660 | 3.9330 | 3.8952 | model_form_blend |
| predicted_AVG | 0.2740 | 0.2480 | 0.2627 | model_form_blend |
| predicted_BB | 0.6040 | 0.4770 | 0.5486 | model_form_blend |
| predicted_H | 1.0600 | 0.9750 | 1.0229 | model_form_blend |
| predicted_HBP | - | 0.0700 | 0.0700 | form_only |
| predicted_HR | 0.2240 | 0.1370 | 0.1860 | model_form_blend |
| predicted_OBP | 0.3720 | 0.3366 | 0.3566 | model_form_blend |
| predicted_R | 0.6570 | 0.4640 | 0.5728 | model_form_blend |
| predicted_RBI | 0.5900 | 0.4210 | 0.5163 | model_form_blend |
| predicted_SLG | 0.5120 | 0.4052 | 0.4654 | model_form_blend |
| predicted_SO | 1.1270 | 1.3090 | 1.2064 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 602 |
| Season rows before report date | 602 |
| Report year | 2026 |
| Profile rows used | 134 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 3 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 1 |
| RBI | 0 |
| BB | 1 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 3 |
| Hitting_AVG | 0.333 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 1 |
| Hitting_battingOrder | 1 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | DH |
| gameID | 20260927_LAD@SF |
| game_type | full |
| mlbID | 660271 |
| playerID | 660271 |
| playerName | Shohei Ohtani |
| pos | TWP |
| started | True |
| startingPosition | DH |
| team | LAD |
| teamID | 14 |
| game_date | 2026-09-27 |
| sl_k_percent | 24.6 |
| sl_bb_percent | 13.1 |
| sl_woba | 0.377 |
| sl_xwoba | 0.397 |
| sl_xba | 0.286 |
| sl_xslg | 0.552 |
| sl_sweet_spot_percent | 38.0 |
| sl_barrel_batted_rate | 16.4 |
| sl_hard_hit_percent | 52.1 |
| sl_exit_velocity_avg | 93.3 |
| sl_launch_angle_avg | 12.3 |
| sl_whiff_percent | 31.7 |
| sl_swing_percent | 46.6 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.138 | 0.000 | 0.000 | Hitting_2B | 0.140 | 0.000 | -0.140 | 0.000 |
| predicted_3B | 0.016 | 0.000 | 0.000 | Hitting_3B | 0.017 | 0.000 | -0.017 | 0.000 |
| predicted_AB | 3.740 | 3.000 | 4.000 | Hitting_AB | 3.662 | 3.000 | -0.662 | 0.000 |
| predicted_AVG | 0.249 | 0.000 | 0.250 | Hitting_AVG | 0.266 | 0.000 | -0.266 | 0.000 |
| predicted_BB | 0.333 | 1.000 | 0.000 | Hitting_BB | 0.378 | 0.000 | 0.622 | 1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.009 | 0.000 | -0.009 | 0.000 |
| predicted_H | 0.930 | 0.000 | 1.000 | Hitting_H | 0.974 | 0.000 | -0.974 | 0.000 |
| predicted_HR | 0.160 | 0.000 | 0.000 | Hitting_HR | 0.129 | 0.000 | -0.129 | 0.000 |
| predicted_OBP | 0.316 | 0.250 | 0.250 | Hitting_OBP | 0.337 | 0.000 | -0.087 | 0.250 |
| predicted_R | 0.528 | 0.000 | 1.000 | Hitting_R | 0.552 | 0.000 | -0.552 | 0.000 |
| predicted_RBI | 0.400 | 0.000 | 0.000 | Hitting_RBI | 0.548 | 0.000 | -0.548 | 0.000 |
| predicted_SLG | 0.404 | 0.000 | 0.250 | Hitting_SLG | 0.419 | 0.000 | -0.419 | 0.000 |
| predicted_SO | 1.081 | 3.000 | 1.000 | Hitting_SO | 1.090 | 0.000 | 1.910 | 3.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 10 |
| Boosted Metrics | 4 |
| Deboosted Metrics | 6 |
| Better Metrics | 3 |
| Worse Metrics | 7 |
| Biggest Boost | predicted_SO: 1.0810 -> 3.0000 (boost 1.9190, worse) |
| Biggest Deboost | predicted_H: 0.9300 -> 0.0000 (deboost -0.9300, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 4 | 3 | 1 | 3 | 1 | predicted_SLG: 0.4040 -> 0.4199 (boost 0.0159, better) | predicted_AB: 3.7400 -> 3.6833 (deboost -0.0567, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 2 | 1 | 1 | 1 | 1 | predicted_SLG: 0.4199 -> 0.4344 (boost 0.0145, better) | predicted_OBP: 0.3234 -> 0.3184 (deboost -0.0050, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 1 | 6 | 2 | 5 | predicted_AB: 3.6833 -> 4.0000 (boost 0.3167, better) | predicted_RBI: 0.4088 -> 0.0000 (deboost -0.4088, worse) | AB rounded to 4 (raw=3.74), rates preserved: AVG=0.238 HR/AB=0.041 |
| 6 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5368 -> 1.0000 (boost 0.4632, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 5 | 1 | 4 | 2 | predicted_RBI: 0.0000 -> 0.4889 (boost 0.4889, better) | predicted_H: 1.0000 -> 0.8222 (deboost -0.1778, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 6 | 1 | 5 | 2 | 4 | predicted_H: 0.8222 -> 1.0000 (boost 0.1778, better) | predicted_RBI: 0.4889 -> 0.0000 (deboost -0.4889, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 3 | 0 | 3 | 0 | 3 | - | predicted_SLG: 0.4344 -> 0.3900 (deboost -0.0444, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 5 | 2 | 3 | 1 | 4 | predicted_SO: 1.0000 -> 3.0000 (boost 2.0000, worse) | predicted_AB: 4.0000 -> 3.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_SLG: 0.3900 -> 0.4344 (boost 0.0444, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "606192",
"player_name": "Teoscar Hernández",
"position": "LF",
"team": "LAD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.138,
"predicted_3B": 0.016,
"predicted_AB": 3.74,
"predicted_AVG": 0.249,
"predicted_BB": 0.333,
"predicted_H": 0.93,
"predicted_HR": 0.16,
"predicted_OBP": 0.316,
"predicted_R": 0.528,
"predicted_RBI": 0.4,
"predicted_SLG": 0.404,
"predicted_SO": 1.081
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1415,
"predicted_3B": 0.0134,
"predicted_AB": 3.6833,
"predicted_AVG": 0.2619,
"predicted_BB": 0.2854,
"predicted_H": 0.9629,
"predicted_HBP": 0.078,
"predicted_HR": 0.1509,
"predicted_OBP": 0.3234,
"predicted_R": 0.5224,
"predicted_RBI": 0.3978,
"predicted_SLG": 0.4199,
"predicted_SO": 1.1208
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.138,
"after": 0.1415,
"delta": 0.0035,
"percent_delta": 0.0254,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.016,
"after": 0.0134,
"delta": -0.0026,
"percent_delta": -0.1625,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.74,
"after": 3.6833,
"delta": -0.0567,
"percent_delta": -0.0152,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.249,
"after": 0.2619,
"delta": 0.0129,
"percent_delta": 0.0518,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.333,
"after": 0.2854,
"delta": -0.0476,
"percent_delta": -0.1429,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.93,
"after": 0.9629,
"delta": 0.0329,
"percent_delta": 0.0354,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.16,
"after": 0.1509,
"delta": -0.0091,
"percent_delta": -0.0569,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.316,
"after": 0.3234,
"delta": 0.0074,
"percent_delta": 0.0234,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.528,
"after": 0.5224,
"delta": -0.0056,
"percent_delta": -0.0106,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.4,
"after": 0.3978,
"delta": -0.0022,
"percent_delta": -0.0055,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.404,
"after": 0.4199,
"delta": 0.0159,
"percent_delta": 0.0394,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.081,
"after": 1.1208,
"delta": 0.0398,
"percent_delta": 0.0368,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 3,
"deboosted_metrics": 1,
"better_metrics": 3,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.404,
"after": 0.4199,
"delta": 0.0159,
"percent_delta": 0.0394,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 3.74,
"after": 3.6833,
"delta": -0.0567,
"percent_delta": -0.0152,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 123
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1415,
"predicted_3B": 0.0134,
"predicted_AB": 3.6833,
"predicted_AVG": 0.2651,
"predicted_BB": 0.2883,
"predicted_H": 0.9765,
"predicted_HBP": 0.078,
"predicted_HR": 0.1518,
"predicted_OBP": 0.3184,
"predicted_R": 0.5368,
"predicted_RBI": 0.4088,
"predicted_SLG": 0.4344,
"predicted_SO": 1.1096
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1415,
"after": 0.1415,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0134,
"after": 0.0134,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.6833,
"after": 3.6833,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2619,
"after": 0.2651,
"delta": 0.0032,
"percent_delta": 0.0122,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.2854,
"after": 0.2883,
"delta": 0.0029,
"percent_delta": 0.0102,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.9629,
"after": 0.9765,
"delta": 0.0136,
"percent_delta": 0.0141,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.078,
"after": 0.078,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1509,
"after": 0.1518,
"delta": 0.0009,
"percent_delta": 0.006,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3234,
"after": 0.3184,
"delta": -0.005,
"percent_delta": -0.0155,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.5224,
"after": 0.5368,
"delta": 0.0144,
"percent_delta": 0.0276,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.3978,
"after": 0.4088,
"delta": 0.011,
"percent_delta": 0.0277,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4199,
"after": 0.4344,
"delta": 0.0145,
"percent_delta": 0.0345,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.1208,
"after": 1.1096,
"delta": -0.0112,
"percent_delta": -0.01,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.4199,
"after": 0.4344,
"delta": 0.0145,
"percent_delta": 0.0345,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.3234,
"after": 0.3184,
"delta": -0.005,
"percent_delta": -0.0155,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=3.74), rates preserved: AVG=0.238 HR/AB=0.041",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1415,
"after": 0.0,
"delta": -0.1415,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0134,
"after": 0.0,
"delta": -0.0134,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.6833,
"after": 4.0,
"delta": 0.3167,
"percent_delta": 0.086,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.2883,
"after": 0.0,
"delta": -0.2883,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.9765,
"after": 1.0,
"delta": 0.0235,
"percent_delta": 0.0241,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.078,
"after": 0.0,
"delta": -0.078,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1518,
"after": 0.0,
"delta": -0.1518,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.4088,
"after": 0.0,
"delta": -0.4088,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.1096,
"after": 1.0,
"delta": -0.1096,
"percent_delta": -0.0988,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 1,
"deboosted_metrics": 6,
"better_metrics": 2,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.6833,
"after": 4.0,
"delta": 0.3167,
"percent_delta": 0.086,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.4088,
"after": 0.0,
"delta": -0.4088,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.5368,
"after": 1.0,
"delta": 0.4632,
"percent_delta": 0.8629,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.5368,
"after": 1.0,
"delta": 0.4632,
"percent_delta": 0.8629,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1645,
"predicted_3B": 0.0096,
"predicted_BB": 0.3513,
"predicted_H": 0.8222,
"predicted_HR": 0.1348,
"predicted_RBI": 0.4889,
"predicted_SO": 1.2164
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1645,
"delta": 0.1645,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0096,
"delta": 0.0096,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.3513,
"delta": 0.3513,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.8222,
"delta": -0.1778,
"percent_delta": -0.1778,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1348,
"delta": 0.1348,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.4889,
"delta": 0.4889,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.2164,
"delta": 0.2164,
"percent_delta": 0.2164,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 5,
"deboosted_metrics": 1,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.4889,
"delta": 0.4889,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.8222,
"delta": -0.1778,
"percent_delta": -0.1778,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1645,
"after": 0.0,
"delta": -0.1645,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0096,
"after": 0.0,
"delta": -0.0096,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.3513,
"after": 0.0,
"delta": -0.3513,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8222,
"after": 1.0,
"delta": 0.1778,
"percent_delta": 0.2162,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1348,
"after": 0.0,
"delta": -0.1348,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.4889,
"after": 0.0,
"delta": -0.4889,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.2164,
"after": 1.0,
"delta": -0.2164,
"percent_delta": -0.1779,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 1,
"deboosted_metrics": 5,
"better_metrics": 2,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.8222,
"after": 1.0,
"delta": 0.1778,
"percent_delta": 0.2162,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.4889,
"after": 0.0,
"delta": -0.4889,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.227,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.301,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.39,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2651,
"after": 0.227,
"delta": -0.0381,
"percent_delta": -0.1437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3184,
"after": 0.301,
"delta": -0.0174,
"percent_delta": -0.0546,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4344,
"after": 0.39,
"delta": -0.0444,
"percent_delta": -0.1022,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.4344,
"after": 0.39,
"delta": -0.0444,
"percent_delta": -0.1022,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 2,
"deboosted_metrics": 3,
"better_metrics": 1,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.2651,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_LF": 0.0,
"predicted_OBP": 0.3184,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.4344,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.227,
"after": 0.2651,
"delta": 0.0381,
"percent_delta": 0.1679,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.301,
"after": 0.3184,
"delta": 0.0174,
"percent_delta": 0.058,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.39,
"after": 0.4344,
"delta": 0.0444,
"percent_delta": 0.1139,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.39,
"after": 0.4344,
"delta": 0.0444,
"percent_delta": 0.1139,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.138,
"after": 0.0,
"delta": -0.138,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.016,
"after": 0.0,
"delta": -0.016,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.74,
"after": 3.0,
"delta": -0.74,
"percent_delta": -0.1979,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.249,
"after": 0.2651,
"delta": 0.0161,
"percent_delta": 0.0647,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.333,
"after": 1.0,
"delta": 0.667,
"percent_delta": 2.003,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.93,
"after": 0.0,
"delta": -0.93,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.16,
"after": 0.0,
"delta": -0.16,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.316,
"after": 0.3184,
"delta": 0.0024,
"percent_delta": 0.0076,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.528,
"after": 0.0,
"delta": -0.528,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.4,
"after": 0.0,
"delta": -0.4,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.404,
"after": 0.4344,
"delta": 0.0304,
"percent_delta": 0.0752,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.081,
"after": 3.0,
"delta": 1.919,
"percent_delta": 1.7752,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 10,
"boosted_metrics": 4,
"deboosted_metrics": 6,
"better_metrics": 3,
"worse_metrics": 7,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.081,
"after": 3.0,
"delta": 1.919,
"percent_delta": 1.7752,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 0.93,
"after": 0.0,
"delta": -0.93,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.138 | - |
| predicted_3B | 0.016 | - |
| predicted_AB | 3.740 | - |
| predicted_AVG | 0.249 | - |
| predicted_BB | 0.333 | - |
| predicted_H | 0.930 | - |
| predicted_HR | 0.160 | - |
| predicted_OBP | 0.316 | - |
| predicted_R | 0.528 | - |
| predicted_RBI | 0.400 | - |
| predicted_SLG | 0.404 | - |
| predicted_SO | 1.081 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.141 | 0.003 |
| predicted_3B | 0.013 | -0.003 |
| predicted_AB | 3.683 | -0.057 |
| predicted_AVG | 0.262 | 0.013 |
| predicted_BB | 0.285 | -0.048 |
| predicted_H | 0.963 | 0.033 |
| predicted_HBP | 0.078 | - |
| predicted_HR | 0.151 | -0.009 |
| predicted_OBP | 0.323 | 0.007 |
| predicted_R | 0.522 | -0.006 |
| predicted_RBI | 0.398 | -0.002 |
| predicted_SLG | 0.420 | 0.016 |
| predicted_SO | 1.121 | 0.040 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.141 | 0.000 |
| predicted_3B | 0.013 | 0.000 |
| predicted_AB | 3.683 | 0.000 |
| predicted_AVG | 0.265 | 0.003 |
| predicted_BB | 0.288 | 0.003 |
| predicted_H | 0.977 | 0.014 |
| predicted_HBP | 0.078 | 0.000 |
| predicted_HR | 0.152 | 0.001 |
| predicted_OBP | 0.318 | -0.005 |
| predicted_R | 0.537 | 0.014 |
| predicted_RBI | 0.409 | 0.011 |
| predicted_SLG | 0.434 | 0.015 |
| predicted_SO | 1.110 | -0.011 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=3.74), rates preserved: AVG=0.238 HR/AB=0.041
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.165 | 0.165 |
| 3B | 0.010 | 0.010 |
| BB | 0.351 | 0.351 |
| H | 0.822 | -0.178 |
| HR | 0.135 | 0.135 |
| RBI | 0.489 | 0.489 |
| SO | 1.216 | 0.216 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.165 |
| 3B | 0.000 | -0.010 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -0.351 |
| H | 1.000 | 0.178 |
| HR | 0.000 | -0.135 |
| R | 1.000 | 0.000 |
| RBI | 0.000 | -0.489 |
| SO | 1.000 | -0.216 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.141 |
| predicted_3B | 0.000 | -0.013 |
| predicted_AB | 4.000 | 0.317 |
| predicted_AVG | 0.227 | -0.038 |
| predicted_BB | 0.000 | -0.288 |
| predicted_H | 1.000 | 0.023 |
| predicted_HR | 0.000 | -0.152 |
| predicted_OBP | 0.301 | -0.017 |
| predicted_R | 1.000 | 0.463 |
| predicted_RBI | 0.000 | -0.409 |
| predicted_SLG | 0.390 | -0.044 |
| predicted_SO | 1.000 | -0.110 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | -1.000 |
| BB | 1.000 | 1.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | -1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | -1.000 |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 3.000 | 2.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 17.000 | 5.000 | 1.000 | 0.000 | 1.000 | 1.000 | 2.000 | 0.000 | 7.000 | 0.2941 | 0.3333 | 0.5294 | 0.2941 | 0.0588 | 0.0588 | 0.0000 | 0.4118 |
| last_10 | 0.20 | 10 | - | 39.000 | 12.000 | 1.000 | 0.000 | 1.000 | 2.000 | 6.000 | 1.000 | 13.000 | 0.3077 | 0.3415 | 0.4103 | 0.3077 | 0.0256 | 0.0513 | 0.0256 | 0.3333 |
| season | 0.60 | 123 | - | 438.000 | 117.000 | 17.000 | 2.000 | 16.000 | 63.000 | 65.000 | 41.000 | 133.000 | 0.2671 | 0.3333 | 0.4247 | 0.2671 | 0.0365 | 0.1438 | 0.0936 | 0.3036 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1460 |
| predicted_3B | 0.0100 |
| predicted_AB | 3.6090 |
| predicted_AVG | 0.2787 |
| predicted_BB | 0.2230 |
| predicted_H | 1.0060 |
| predicted_HBP | 0.0780 |
| predicted_HR | 0.1390 |
| predicted_OBP | 0.3332 |
| predicted_R | 0.5150 |
| predicted_RBI | 0.3950 |
| predicted_SLG | 0.4407 |
| predicted_SO | 1.1730 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1380 | 0.1460 | 0.1415 | model_form_blend |
| predicted_3B | 0.0160 | 0.0100 | 0.0134 | model_form_blend |
| predicted_AB | 3.7400 | 3.6090 | 3.6833 | model_form_blend |
| predicted_AVG | 0.2490 | 0.2787 | 0.2619 | model_form_blend |
| predicted_BB | 0.3330 | 0.2230 | 0.2854 | model_form_blend |
| predicted_H | 0.9300 | 1.0060 | 0.9629 | model_form_blend |
| predicted_HBP | - | 0.0780 | 0.0780 | form_only |
| predicted_HR | 0.1600 | 0.1390 | 0.1509 | model_form_blend |
| predicted_OBP | 0.3160 | 0.3332 | 0.3234 | model_form_blend |
| predicted_R | 0.5280 | 0.5150 | 0.5224 | model_form_blend |
| predicted_RBI | 0.4000 | 0.3950 | 0.3978 | model_form_blend |
| predicted_SLG | 0.4040 | 0.4407 | 0.4199 | model_form_blend |
| predicted_SO | 1.0810 | 1.1730 | 1.1208 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 458 |
| Season rows before report date | 458 |
| Report year | 2026 |
| Profile rows used | 123 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 3 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 1 |
| SO | 3 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 3 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 5 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | LF |
| gameID | 20260927_LAD@SF |
| game_type | full |
| mlbID | 606192 |
| playerID | 606192 |
| playerName | Teoscar Hernández |
| pos | LF |
| started | True |
| startingPosition | LF |
| team | LAD |
| teamID | 14 |
| game_date | 2026-09-27 |
| sl_k_percent | 27.5 |
| sl_bb_percent | 8.6 |
| sl_woba | 0.332 |
| sl_xwoba | 0.332 |
| sl_xba | 0.256 |
| sl_xslg | 0.437 |
| sl_sweet_spot_percent | 33.5 |
| sl_barrel_batted_rate | 10.7 |
| sl_hard_hit_percent | 44.8 |
| sl_exit_velocity_avg | 90.3 |
| sl_launch_angle_avg | 13.9 |
| sl_whiff_percent | 32.6 |
| sl_swing_percent | 48.0 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.207 | 0.000 | 1.000 | Hitting_2B | 0.192 | 0.000 | -0.192 | 0.000 |
| predicted_3B | 0.000 | 0.000 | 0.000 | Hitting_3B | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_AB | 4.540 | 3.000 | 4.000 | Hitting_AB | 4.065 | 2.000 | -1.065 | 1.000 |
| predicted_AVG | 0.233 | 0.000 | 0.250 | Hitting_AVG | 0.260 | 0.000 | -0.260 | 0.000 |
| predicted_BB | 0.364 | 1.000 | 0.000 | Hitting_BB | 0.355 | 0.000 | 0.645 | 1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.018 | 0.000 | -0.018 | 0.000 |
| predicted_H | 1.060 | 0.000 | 1.000 | Hitting_H | 1.057 | 0.000 | -1.057 | 0.000 |
| predicted_HR | 0.190 | 0.000 | 0.000 | Hitting_HR | 0.198 | 0.000 | -0.198 | 0.000 |
| predicted_OBP | 0.319 | 0.250 | 0.250 | Hitting_OBP | 0.322 | 0.000 | -0.072 | 0.250 |
| predicted_R | 0.579 | 1.000 | 1.000 | Hitting_R | 0.624 | 0.000 | 0.376 | 1.000 |
| predicted_RBI | 0.560 | 0.000 | 1.000 | Hitting_RBI | 0.610 | 0.000 | -0.610 | 0.000 |
| predicted_SLG | 0.462 | 0.000 | 0.500 | Hitting_SLG | 0.453 | 0.000 | -0.453 | 0.000 |
| predicted_SO | 0.463 | 1.000 | 0.000 | Hitting_SO | 0.488 | 2.000 | 0.512 | -1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 10 |
| Boosted Metrics | 4 |
| Deboosted Metrics | 6 |
| Better Metrics | 3 |
| Worse Metrics | 7 |
| Biggest Boost | predicted_BB: 0.3640 -> 1.0000 (boost 0.6360, better) |
| Biggest Deboost | predicted_AB: 4.5400 -> 3.0000 (deboost -1.5400, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 4 | 3 | 1 | 3 | 1 | predicted_SLG: 0.4620 -> 0.4827 (boost 0.0207, better) | predicted_AB: 4.5400 -> 4.2335 (deboost -0.3065, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 2 | 0 | 2 | 0 | 2 | - | predicted_SLG: 0.4827 -> 0.4503 (deboost -0.0324, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 0 | 7 | 1 | 6 | - | predicted_RBI: 0.5558 -> 0.0000 (deboost -0.5558, worse) | AB rounded to 4 (raw=4.54), rates preserved: AVG=0.216 HR/AB=0.044 |
| 6 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5959 -> 1.0000 (boost 0.4041, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 5 | 1 | 4 | 2 | predicted_SO: 0.0000 -> 0.5769 (boost 0.5769, worse) | predicted_H: 1.0000 -> 0.8800 (deboost -0.1200, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 6 | 3 | 3 | 4 | 2 | predicted_2B: 0.1972 -> 1.0000 (boost 0.8028, better) | predicted_SO: 0.5769 -> 0.0000 (deboost -0.5769, better) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 5 | 0 | 5 | 0 | 5 | - | predicted_2B: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 4 | 2 | 2 | 1 | 3 | predicted_BB: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_AB: 4.0000 -> 3.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_SLG: 0.4170 -> 0.4503 (boost 0.0333, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "605141",
"player_name": "Mookie Betts",
"position": "SS",
"team": "LAD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.207,
"predicted_3B": 0.0,
"predicted_AB": 4.54,
"predicted_AVG": 0.233,
"predicted_BB": 0.364,
"predicted_H": 1.06,
"predicted_HR": 0.19,
"predicted_OBP": 0.319,
"predicted_R": 0.579,
"predicted_RBI": 0.56,
"predicted_SLG": 0.462,
"predicted_SO": 0.463
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.23,
"predicted_3B": 0.0004,
"predicted_AB": 4.2335,
"predicted_AVG": 0.2521,
"predicted_BB": 0.41,
"predicted_H": 1.0609,
"predicted_HBP": 0.011,
"predicted_HR": 0.1987,
"predicted_OBP": 0.335,
"predicted_R": 0.5799,
"predicted_RBI": 0.5409,
"predicted_SLG": 0.4827,
"predicted_SO": 0.4964
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.207,
"after": 0.23,
"delta": 0.023,
"percent_delta": 0.1111,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0004,
"delta": 0.0004,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.54,
"after": 4.2335,
"delta": -0.3065,
"percent_delta": -0.0675,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.233,
"after": 0.2521,
"delta": 0.0191,
"percent_delta": 0.082,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.364,
"after": 0.41,
"delta": 0.046,
"percent_delta": 0.1264,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.06,
"after": 1.0609,
"delta": 0.0009,
"percent_delta": 0.0008,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.19,
"after": 0.1987,
"delta": 0.0087,
"percent_delta": 0.0458,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.319,
"after": 0.335,
"delta": 0.016,
"percent_delta": 0.0502,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.579,
"after": 0.5799,
"delta": 0.0009,
"percent_delta": 0.0016,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.56,
"after": 0.5409,
"delta": -0.0191,
"percent_delta": -0.0341,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.462,
"after": 0.4827,
"delta": 0.0207,
"percent_delta": 0.0448,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.463,
"after": 0.4964,
"delta": 0.0334,
"percent_delta": 0.0721,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 3,
"deboosted_metrics": 1,
"better_metrics": 3,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.462,
"after": 0.4827,
"delta": 0.0207,
"percent_delta": 0.0448,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.54,
"after": 4.2335,
"delta": -0.3065,
"percent_delta": -0.0675,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 121
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.23,
"predicted_3B": 0.0004,
"predicted_AB": 4.2335,
"predicted_AVG": 0.2541,
"predicted_BB": 0.4141,
"predicted_H": 1.0759,
"predicted_HBP": 0.011,
"predicted_HR": 0.1999,
"predicted_OBP": 0.3206,
"predicted_R": 0.5959,
"predicted_RBI": 0.5558,
"predicted_SLG": 0.4503,
"predicted_SO": 0.4914
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.23,
"after": 0.23,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0004,
"after": 0.0004,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.2335,
"after": 4.2335,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2521,
"after": 0.2541,
"delta": 0.002,
"percent_delta": 0.0079,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.41,
"after": 0.4141,
"delta": 0.0041,
"percent_delta": 0.01,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0609,
"after": 1.0759,
"delta": 0.015,
"percent_delta": 0.0141,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.011,
"after": 0.011,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1987,
"after": 0.1999,
"delta": 0.0012,
"percent_delta": 0.006,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.335,
"after": 0.3206,
"delta": -0.0144,
"percent_delta": -0.043,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.5799,
"after": 0.5959,
"delta": 0.016,
"percent_delta": 0.0276,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5409,
"after": 0.5558,
"delta": 0.0149,
"percent_delta": 0.0275,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4827,
"after": 0.4503,
"delta": -0.0324,
"percent_delta": -0.0671,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.4964,
"after": 0.4914,
"delta": -0.005,
"percent_delta": -0.0101,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.4827,
"after": 0.4503,
"delta": -0.0324,
"percent_delta": -0.0671,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=4.54), rates preserved: AVG=0.216 HR/AB=0.044",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.23,
"after": 0.0,
"delta": -0.23,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0004,
"after": 0.0,
"delta": -0.0004,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.2335,
"after": 4.0,
"delta": -0.2335,
"percent_delta": -0.0552,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.4141,
"after": 0.0,
"delta": -0.4141,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0759,
"after": 1.0,
"delta": -0.0759,
"percent_delta": -0.0705,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.011,
"after": 0.0,
"delta": -0.011,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1999,
"after": 0.0,
"delta": -0.1999,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.5558,
"after": 0.0,
"delta": -0.5558,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.4914,
"after": 0.0,
"delta": -0.4914,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 0,
"deboosted_metrics": 7,
"better_metrics": 1,
"worse_metrics": 6,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.5558,
"after": 0.0,
"delta": -0.5558,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.5959,
"after": 1.0,
"delta": 0.4041,
"percent_delta": 0.6781,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.5959,
"after": 1.0,
"delta": 0.4041,
"percent_delta": 0.6781,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1972,
"predicted_3B": 0.0063,
"predicted_BB": 0.379,
"predicted_H": 0.88,
"predicted_HR": 0.1796,
"predicted_RBI": 0.5366,
"predicted_SO": 0.5769
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1972,
"delta": 0.1972,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0063,
"delta": 0.0063,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.379,
"delta": 0.379,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.88,
"delta": -0.12,
"percent_delta": -0.12,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1796,
"delta": 0.1796,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.5366,
"delta": 0.5366,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.5769,
"delta": 0.5769,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 5,
"deboosted_metrics": 1,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.0,
"after": 0.5769,
"delta": 0.5769,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.88,
"delta": -0.12,
"percent_delta": -0.12,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 1.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1972,
"after": 1.0,
"delta": 0.8028,
"percent_delta": 4.071,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0063,
"after": 0.0,
"delta": -0.0063,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.379,
"after": 0.0,
"delta": -0.379,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.88,
"after": 1.0,
"delta": 0.12,
"percent_delta": 0.1364,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1796,
"after": 0.0,
"delta": -0.1796,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5366,
"after": 1.0,
"delta": 0.4634,
"percent_delta": 0.8636,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.5769,
"after": 0.0,
"delta": -0.5769,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 3,
"deboosted_metrics": 3,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_2B",
"before": 0.1972,
"after": 1.0,
"delta": 0.8028,
"percent_delta": 4.071,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 0.5769,
"after": 0.0,
"delta": -0.5769,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.225,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.299,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.417,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2541,
"after": 0.225,
"delta": -0.0291,
"percent_delta": -0.1145,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3206,
"after": 0.299,
"delta": -0.0216,
"percent_delta": -0.0674,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.4503,
"after": 0.417,
"delta": -0.0333,
"percent_delta": -0.074,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 0,
"deboosted_metrics": 5,
"better_metrics": 0,
"worse_metrics": 5,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_2B",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 2,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.2541,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3206,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.4503,
"predicted_SO": 1.0,
"predicted_SS": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.225,
"after": 0.2541,
"delta": 0.0291,
"percent_delta": 0.1295,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.299,
"after": 0.3206,
"delta": 0.0216,
"percent_delta": 0.0722,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.417,
"after": 0.4503,
"delta": 0.0333,
"percent_delta": 0.0798,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.417,
"after": 0.4503,
"delta": 0.0333,
"percent_delta": 0.0798,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.207,
"after": 0.0,
"delta": -0.207,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.54,
"after": 3.0,
"delta": -1.54,
"percent_delta": -0.3392,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.233,
"after": 0.2541,
"delta": 0.0211,
"percent_delta": 0.0906,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.364,
"after": 1.0,
"delta": 0.636,
"percent_delta": 1.7473,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.06,
"after": 0.0,
"delta": -1.06,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.19,
"after": 0.0,
"delta": -0.19,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.319,
"after": 0.3206,
"delta": 0.0016,
"percent_delta": 0.005,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.579,
"after": 1.0,
"delta": 0.421,
"percent_delta": 0.7271,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.56,
"after": 0.0,
"delta": -0.56,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.462,
"after": 0.4503,
"delta": -0.0117,
"percent_delta": -0.0253,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.463,
"after": 1.0,
"delta": 0.537,
"percent_delta": 1.1598,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 10,
"boosted_metrics": 4,
"deboosted_metrics": 6,
"better_metrics": 3,
"worse_metrics": 7,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.364,
"after": 1.0,
"delta": 0.636,
"percent_delta": 1.7473,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.54,
"after": 3.0,
"delta": -1.54,
"percent_delta": -0.3392,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.207 | - |
| predicted_3B | 0.000 | - |
| predicted_AB | 4.540 | - |
| predicted_AVG | 0.233 | - |
| predicted_BB | 0.364 | - |
| predicted_H | 1.060 | - |
| predicted_HR | 0.190 | - |
| predicted_OBP | 0.319 | - |
| predicted_R | 0.579 | - |
| predicted_RBI | 0.560 | - |
| predicted_SLG | 0.462 | - |
| predicted_SO | 0.463 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.230 | 0.023 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 4.234 | -0.306 |
| predicted_AVG | 0.252 | 0.019 |
| predicted_BB | 0.410 | 0.046 |
| predicted_H | 1.061 | 0.001 |
| predicted_HBP | 0.011 | - |
| predicted_HR | 0.199 | 0.009 |
| predicted_OBP | 0.335 | 0.016 |
| predicted_R | 0.580 | 0.001 |
| predicted_RBI | 0.541 | -0.019 |
| predicted_SLG | 0.483 | 0.021 |
| predicted_SO | 0.496 | 0.033 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.230 | 0.000 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 4.234 | 0.000 |
| predicted_AVG | 0.254 | 0.002 |
| predicted_BB | 0.414 | 0.004 |
| predicted_H | 1.076 | 0.015 |
| predicted_HBP | 0.011 | 0.000 |
| predicted_HR | 0.200 | 0.001 |
| predicted_OBP | 0.321 | -0.014 |
| predicted_R | 0.596 | 0.016 |
| predicted_RBI | 0.556 | 0.015 |
| predicted_SLG | 0.450 | -0.032 |
| predicted_SO | 0.491 | -0.005 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=4.54), rates preserved: AVG=0.216 HR/AB=0.044
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 0.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 0.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.197 | 0.197 |
| 3B | 0.006 | 0.006 |
| BB | 0.379 | 0.379 |
| H | 0.880 | -0.120 |
| HR | 0.180 | 0.180 |
| RBI | 0.537 | 0.537 |
| SO | 0.577 | 0.577 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 0.803 |
| 3B | 0.000 | -0.006 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -0.379 |
| H | 1.000 | 0.120 |
| HR | 0.000 | -0.180 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.463 |
| SO | 0.000 | -0.577 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.230 |
| predicted_3B | 0.000 | -0.000 |
| predicted_AB | 4.000 | -0.234 |
| predicted_AVG | 0.225 | -0.029 |
| predicted_BB | 0.000 | -0.414 |
| predicted_H | 1.000 | -0.076 |
| predicted_HR | 0.000 | -0.200 |
| predicted_OBP | 0.299 | -0.022 |
| predicted_R | 1.000 | 0.404 |
| predicted_RBI | 0.000 | -0.556 |
| predicted_SLG | 0.417 | -0.033 |
| predicted_SO | 0.000 | -0.491 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -1.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | -1.000 |
| BB | 1.000 | 1.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | -1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 1.000 | 0.000 |
| RBI | 0.000 | -1.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 18.000 | 4.000 | 1.000 | 0.000 | 1.000 | 1.000 | 2.000 | 3.000 | 4.000 | 0.2222 | 0.3333 | 0.4444 | 0.2222 | 0.0556 | 0.0556 | 0.1667 | 0.2222 |
| last_10 | 0.20 | 10 | - | 38.000 | 15.000 | 5.000 | 0.000 | 3.000 | 7.000 | 8.000 | 7.000 | 4.000 | 0.3947 | 0.4889 | 0.7632 | 0.3947 | 0.0790 | 0.1842 | 0.1842 | 0.1053 |
| season | 0.60 | 121 | - | 475.000 | 123.000 | 25.000 | 0.000 | 23.000 | 69.000 | 70.000 | 44.000 | 56.000 | 0.2589 | 0.3238 | 0.4568 | 0.2590 | 0.0484 | 0.1453 | 0.0926 | 0.1179 |
| Metric | Value |
|---|---|
| predicted_2B | 0.2600 |
| predicted_3B | 0.0010 |
| predicted_AB | 3.8340 |
| predicted_AVG | 0.2771 |
| predicted_BB | 0.4700 |
| predicted_H | 1.0620 |
| predicted_HBP | 0.0110 |
| predicted_HR | 0.2100 |
| predicted_OBP | 0.3558 |
| predicted_R | 0.5810 |
| predicted_RBI | 0.5160 |
| predicted_SLG | 0.5097 |
| predicted_SO | 0.5400 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.2070 | 0.2600 | 0.2300 | model_form_blend |
| predicted_3B | 0.0000 | 0.0010 | 0.0004 | model_form_blend |
| predicted_AB | 4.5400 | 3.8340 | 4.2335 | model_form_blend |
| predicted_AVG | 0.2330 | 0.2771 | 0.2521 | model_form_blend |
| predicted_BB | 0.3640 | 0.4700 | 0.4100 | model_form_blend |
| predicted_H | 1.0600 | 1.0620 | 1.0609 | model_form_blend |
| predicted_HBP | - | 0.0110 | 0.0110 | form_only |
| predicted_HR | 0.1900 | 0.2100 | 0.1987 | model_form_blend |
| predicted_OBP | 0.3190 | 0.3558 | 0.3350 | model_form_blend |
| predicted_R | 0.5790 | 0.5810 | 0.5799 | model_form_blend |
| predicted_RBI | 0.5600 | 0.5160 | 0.5409 | model_form_blend |
| predicted_SLG | 0.4620 | 0.5097 | 0.4827 | model_form_blend |
| predicted_SO | 0.4630 | 0.5400 | 0.4964 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 490 |
| Season rows before report date | 490 |
| Report year | 2026 |
| Profile rows used | 121 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 3 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 1 |
| RBI | 0 |
| BB | 1 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 2 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 2 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 2 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | SS |
| gameID | 20260927_LAD@SF |
| game_type | full |
| mlbID | 605141 |
| playerID | 605141 |
| playerName | Mookie Betts |
| pos | SS |
| started | True |
| startingPosition | SS |
| team | LAD |
| teamID | 14 |
| game_date | 2026-09-27 |
| sl_k_percent | 11.0 |
| sl_bb_percent | 8.9 |
| sl_woba | 0.338 |
| sl_xwoba | 0.339 |
| sl_xba | 0.278 |
| sl_xslg | 0.435 |
| sl_sweet_spot_percent | 40.4 |
| sl_barrel_batted_rate | 7.8 |
| sl_hard_hit_percent | 38.0 |
| sl_exit_velocity_avg | 90.2 |
| sl_launch_angle_avg | 17.9 |
| sl_whiff_percent | 12.5 |
| sl_swing_percent | 41.3 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.129 | 1.000 | 0.000 | Hitting_2B | 0.158 | 0.000 | 0.842 | 1.000 |
| predicted_3B | 0.000 | 0.000 | 0.000 | Hitting_3B | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_AB | 4.300 | 4.000 | 4.000 | Hitting_AB | 3.593 | 3.000 | 0.407 | 1.000 |
| predicted_AVG | 0.318 | 0.500 | 0.250 | Hitting_AVG | 0.253 | 0.333 | 0.247 | 0.167 |
| predicted_BB | 0.457 | 0.000 | 1.000 | Hitting_BB | 0.498 | 0.000 | -0.498 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_H | 1.370 | 2.000 | 1.000 | Hitting_H | 0.909 | 1.000 | 1.091 | 1.000 |
| predicted_HR | 0.210 | 1.000 | 0.000 | Hitting_HR | 0.123 | 0.000 | 0.877 | 1.000 |
| predicted_OBP | 0.394 | 0.500 | 0.400 | Hitting_OBP | 0.348 | 0.333 | 0.152 | 0.167 |
| predicted_R | 0.500 | 1.000 | 0.000 | Hitting_R | 0.538 | 1.000 | 0.462 | 0.000 |
| predicted_RBI | 0.610 | 2.000 | 0.000 | Hitting_RBI | 0.530 | 0.000 | 1.470 | 2.000 |
| predicted_SLG | 0.505 | 1.500 | 0.250 | Hitting_SLG | 0.399 | 0.333 | 1.101 | 1.167 |
| predicted_SO | 0.643 | 0.000 | 1.000 | Hitting_SO | 0.676 | 1.000 | -0.676 | -1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 8 |
| Boosted Metrics | 5 |
| Deboosted Metrics | 3 |
| Better Metrics | 6 |
| Worse Metrics | 2 |
| Biggest Boost | predicted_RBI: 0.6100 -> 2.0000 (boost 1.3900, better) |
| Biggest Deboost | predicted_SO: 0.6430 -> 0.0000 (deboost -0.6430, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 3 | 0 | 3 | 0 | 3 | - | predicted_AB: 4.3000 -> 3.8823 (deboost -0.4177, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 1 | 1 | 0 | 1 | 0 | predicted_AVG: 0.3151 -> 0.3203 (boost 0.0052, better) | - | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 2 | 5 | 1 | 6 | predicted_SO: 0.6641 -> 1.0000 (boost 0.3359, worse) | predicted_RBI: 0.5460 -> 0.0000 (deboost -0.5460, worse) | AB rounded to 4 (raw=4.30), rates preserved: AVG=0.264 HR/AB=0.046 |
| 6 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5138 -> 1.0000 (boost 0.4862, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 4 | 2 | 5 | 1 | predicted_RBI: 0.0000 -> 0.4681 (boost 0.4681, better) | predicted_SO: 1.0000 -> 0.8006 (deboost -0.1994, better) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 7 | 3 | 4 | 2 | 5 | predicted_BB: 0.4524 -> 1.0000 (boost 0.5476, better) | predicted_R: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 5 | 1 | 4 | 1 | 4 | predicted_R: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 5 | 4 | 1 | 5 | 0 | predicted_RBI: 0.0000 -> 2.0000 (boost 2.0000, better) | predicted_SO: 1.0000 -> 0.0000 (deboost -1.0000, better) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_SLG: 0.3860 -> 0.5071 (boost 0.1211, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "669257",
"player_name": "Will Smith",
"position": "C",
"team": "LAD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.129,
"predicted_3B": 0.0,
"predicted_AB": 4.3,
"predicted_AVG": 0.318,
"predicted_BB": 0.457,
"predicted_H": 1.37,
"predicted_HR": 0.21,
"predicted_OBP": 0.394,
"predicted_R": 0.5,
"predicted_RBI": 0.61,
"predicted_SLG": 0.505,
"predicted_SO": 0.643
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1248,
"predicted_3B": 0.0004,
"predicted_AB": 3.8823,
"predicted_AVG": 0.3151,
"predicted_BB": 0.4823,
"predicted_H": 1.2264,
"predicted_HBP": 0.026,
"predicted_HR": 0.1986,
"predicted_OBP": 0.398,
"predicted_R": 0.5,
"predicted_RBI": 0.5313,
"predicted_SLG": 0.5085,
"predicted_SO": 0.6708
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.129,
"after": 0.1248,
"delta": -0.0042,
"percent_delta": -0.0326,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0004,
"delta": 0.0004,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.3,
"after": 3.8823,
"delta": -0.4177,
"percent_delta": -0.0971,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.318,
"after": 0.3151,
"delta": -0.0029,
"percent_delta": -0.0091,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.457,
"after": 0.4823,
"delta": 0.0253,
"percent_delta": 0.0554,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.37,
"after": 1.2264,
"delta": -0.1436,
"percent_delta": -0.1048,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.21,
"after": 0.1986,
"delta": -0.0114,
"percent_delta": -0.0543,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.394,
"after": 0.398,
"delta": 0.004,
"percent_delta": 0.0102,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.5,
"after": 0.5,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.61,
"after": 0.5313,
"delta": -0.0787,
"percent_delta": -0.129,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.505,
"after": 0.5085,
"delta": 0.0035,
"percent_delta": 0.0069,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.643,
"after": 0.6708,
"delta": 0.0278,
"percent_delta": 0.0432,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.3,
"after": 3.8823,
"delta": -0.4177,
"percent_delta": -0.0971,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 70
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1248,
"predicted_3B": 0.0004,
"predicted_AB": 3.8823,
"predicted_AVG": 0.3203,
"predicted_BB": 0.4871,
"predicted_H": 1.2437,
"predicted_HBP": 0.026,
"predicted_HR": 0.1998,
"predicted_OBP": 0.3961,
"predicted_R": 0.5138,
"predicted_RBI": 0.546,
"predicted_SLG": 0.5071,
"predicted_SO": 0.6641
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1248,
"after": 0.1248,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0004,
"after": 0.0004,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.8823,
"after": 3.8823,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.3151,
"after": 0.3203,
"delta": 0.0052,
"percent_delta": 0.0165,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.4823,
"after": 0.4871,
"delta": 0.0048,
"percent_delta": 0.01,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.2264,
"after": 1.2437,
"delta": 0.0173,
"percent_delta": 0.0141,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.026,
"after": 0.026,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1986,
"after": 0.1998,
"delta": 0.0012,
"percent_delta": 0.006,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.398,
"after": 0.3961,
"delta": -0.0019,
"percent_delta": -0.0048,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.5,
"after": 0.5138,
"delta": 0.0138,
"percent_delta": 0.0276,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5313,
"after": 0.546,
"delta": 0.0147,
"percent_delta": 0.0277,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.5085,
"after": 0.5071,
"delta": -0.0014,
"percent_delta": -0.0028,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.6708,
"after": 0.6641,
"delta": -0.0067,
"percent_delta": -0.01,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_AVG",
"before": 0.3151,
"after": 0.3203,
"delta": 0.0052,
"percent_delta": 0.0165,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=4.30), rates preserved: AVG=0.264 HR/AB=0.046",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1248,
"after": 0.0,
"delta": -0.1248,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0004,
"after": 0.0,
"delta": -0.0004,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.8823,
"after": 4.0,
"delta": 0.1177,
"percent_delta": 0.0303,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.4871,
"after": 0.0,
"delta": -0.4871,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.2437,
"after": 1.0,
"delta": -0.2437,
"percent_delta": -0.1959,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.026,
"after": 0.0,
"delta": -0.026,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1998,
"after": 0.0,
"delta": -0.1998,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.546,
"after": 0.0,
"delta": -0.546,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.6641,
"after": 1.0,
"delta": 0.3359,
"percent_delta": 0.5058,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 2,
"deboosted_metrics": 5,
"better_metrics": 1,
"worse_metrics": 6,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.6641,
"after": 1.0,
"delta": 0.3359,
"percent_delta": 0.5058,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.546,
"after": 0.0,
"delta": -0.546,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.5138,
"after": 1.0,
"delta": 0.4862,
"percent_delta": 0.9463,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.5138,
"after": 1.0,
"delta": 0.4862,
"percent_delta": 0.9463,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.168,
"predicted_3B": 0.0072,
"predicted_BB": 0.4524,
"predicted_H": 0.8026,
"predicted_HR": 0.1435,
"predicted_RBI": 0.4681,
"predicted_SO": 0.8006
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.168,
"delta": 0.168,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0072,
"delta": 0.0072,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.4524,
"delta": 0.4524,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.8026,
"delta": -0.1974,
"percent_delta": -0.1974,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1435,
"delta": 0.1435,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.4681,
"delta": 0.4681,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.8006,
"delta": -0.1994,
"percent_delta": -0.1994,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 5,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.4681,
"delta": 0.4681,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 0.8006,
"delta": -0.1994,
"percent_delta": -0.1994,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.168,
"after": 0.0,
"delta": -0.168,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0072,
"after": 0.0,
"delta": -0.0072,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.4524,
"after": 1.0,
"delta": 0.5476,
"percent_delta": 1.2104,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8026,
"after": 1.0,
"delta": 0.1974,
"percent_delta": 0.246,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1435,
"after": 0.0,
"delta": -0.1435,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.4681,
"after": 0.0,
"delta": -0.4681,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.8006,
"after": 1.0,
"delta": 0.1994,
"percent_delta": 0.2491,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 3,
"deboosted_metrics": 4,
"better_metrics": 2,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.4524,
"after": 1.0,
"delta": 0.5476,
"percent_delta": 1.2104,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.219,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.31,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.386,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.3203,
"after": 0.219,
"delta": -0.1013,
"percent_delta": -0.3163,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3961,
"after": 0.31,
"delta": -0.0861,
"percent_delta": -0.2174,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.5071,
"after": 0.386,
"delta": -0.1211,
"percent_delta": -0.2388,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 1,
"deboosted_metrics": 4,
"better_metrics": 1,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 1.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 2.0,
"predicted_HBP": 0.0,
"predicted_HR": 1.0,
"predicted_R": 1.0,
"predicted_RBI": 2.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 2.0,
"delta": 2.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 4,
"deboosted_metrics": 1,
"better_metrics": 5,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 2.0,
"delta": 2.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 1.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.3203,
"predicted_BB": 0.0,
"predicted_C": 0.0,
"predicted_CS": 0.0,
"predicted_H": 2.0,
"predicted_HBP": 0.0,
"predicted_HR": 1.0,
"predicted_OBP": 0.3961,
"predicted_R": 1.0,
"predicted_RBI": 2.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.5071,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.219,
"after": 0.3203,
"delta": 0.1013,
"percent_delta": 0.4628,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"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_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.31,
"after": 0.3961,
"delta": 0.0861,
"percent_delta": 0.2778,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.386,
"after": 0.5071,
"delta": 0.1211,
"percent_delta": 0.3137,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.386,
"after": 0.5071,
"delta": 0.1211,
"percent_delta": 0.3137,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.129,
"after": 1.0,
"delta": 0.871,
"percent_delta": 6.7519,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.3,
"after": 4.0,
"delta": -0.3,
"percent_delta": -0.0698,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.318,
"after": 0.3203,
"delta": 0.0023,
"percent_delta": 0.0072,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.457,
"after": 0.0,
"delta": -0.457,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.37,
"after": 2.0,
"delta": 0.63,
"percent_delta": 0.4599,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.21,
"after": 1.0,
"delta": 0.79,
"percent_delta": 3.7619,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.394,
"after": 0.3961,
"delta": 0.0021,
"percent_delta": 0.0053,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.5,
"after": 1.0,
"delta": 0.5,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.61,
"after": 2.0,
"delta": 1.39,
"percent_delta": 2.2787,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.505,
"after": 0.5071,
"delta": 0.0021,
"percent_delta": 0.0042,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.643,
"after": 0.0,
"delta": -0.643,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 8,
"boosted_metrics": 5,
"deboosted_metrics": 3,
"better_metrics": 6,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.61,
"after": 2.0,
"delta": 1.39,
"percent_delta": 2.2787,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 0.643,
"after": 0.0,
"delta": -0.643,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.129 | - |
| predicted_3B | 0.000 | - |
| predicted_AB | 4.300 | - |
| predicted_AVG | 0.318 | - |
| predicted_BB | 0.457 | - |
| predicted_H | 1.370 | - |
| predicted_HR | 0.210 | - |
| predicted_OBP | 0.394 | - |
| predicted_R | 0.500 | - |
| predicted_RBI | 0.610 | - |
| predicted_SLG | 0.505 | - |
| predicted_SO | 0.643 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.125 | -0.004 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 3.882 | -0.418 |
| predicted_AVG | 0.315 | -0.003 |
| predicted_BB | 0.482 | 0.025 |
| predicted_H | 1.226 | -0.144 |
| predicted_HBP | 0.026 | - |
| predicted_HR | 0.199 | -0.011 |
| predicted_OBP | 0.398 | 0.004 |
| predicted_R | 0.500 | 0.000 |
| predicted_RBI | 0.531 | -0.079 |
| predicted_SLG | 0.508 | 0.003 |
| predicted_SO | 0.671 | 0.028 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.125 | 0.000 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 3.882 | 0.000 |
| predicted_AVG | 0.320 | 0.005 |
| predicted_BB | 0.487 | 0.005 |
| predicted_H | 1.244 | 0.017 |
| predicted_HBP | 0.026 | 0.000 |
| predicted_HR | 0.200 | 0.001 |
| predicted_OBP | 0.396 | -0.002 |
| predicted_R | 0.514 | 0.014 |
| predicted_RBI | 0.546 | 0.015 |
| predicted_SLG | 0.507 | -0.001 |
| predicted_SO | 0.664 | -0.007 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=4.30), rates preserved: AVG=0.264 HR/AB=0.046
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.168 | 0.168 |
| 3B | 0.007 | 0.007 |
| BB | 0.452 | 0.452 |
| H | 0.803 | -0.197 |
| HR | 0.143 | 0.143 |
| RBI | 0.468 | 0.468 |
| SO | 0.801 | -0.199 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.168 |
| 3B | 0.000 | -0.007 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 0.548 |
| H | 1.000 | 0.197 |
| HR | 0.000 | -0.143 |
| R | 0.000 | -1.000 |
| RBI | 0.000 | -0.468 |
| SO | 1.000 | 0.199 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.125 |
| predicted_3B | 0.000 | -0.000 |
| predicted_AB | 4.000 | 0.118 |
| predicted_AVG | 0.219 | -0.101 |
| predicted_BB | 0.000 | -0.487 |
| predicted_H | 1.000 | -0.244 |
| predicted_HR | 0.000 | -0.200 |
| predicted_OBP | 0.310 | -0.086 |
| predicted_R | 1.000 | 0.486 |
| predicted_RBI | 0.000 | -0.546 |
| predicted_SLG | 0.386 | -0.121 |
| predicted_SO | 1.000 | 0.336 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 1.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -1.000 |
| CS | 0.000 | 0.000 |
| H | 2.000 | 1.000 |
| HBP | 0.000 | 0.000 |
| HR | 1.000 | 1.000 |
| PA | 4.000 | - |
| R | 1.000 | 1.000 |
| RBI | 2.000 | 2.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 14.000 | 6.000 | 0.000 | 0.000 | 1.000 | 1.000 | 2.000 | 3.000 | 4.000 | 0.4286 | 0.5294 | 0.6429 | 0.4286 | 0.0714 | 0.0714 | 0.2143 | 0.2857 |
| last_10 | 0.20 | 10 | - | 34.000 | 13.000 | 2.000 | 0.000 | 3.000 | 5.000 | 6.000 | 7.000 | 7.000 | 0.3824 | 0.4878 | 0.7059 | 0.3824 | 0.0882 | 0.1471 | 0.2059 | 0.2059 |
| season | 0.60 | 70 | - | 235.000 | 61.000 | 9.000 | 0.000 | 10.000 | 33.000 | 35.000 | 32.000 | 45.000 | 0.2596 | 0.3516 | 0.4255 | 0.2596 | 0.0425 | 0.1404 | 0.1362 | 0.1915 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1190 |
| predicted_3B | 0.0010 |
| predicted_AB | 3.3080 |
| predicted_AVG | 0.3111 |
| predicted_BB | 0.5170 |
| predicted_H | 1.0290 |
| predicted_HBP | 0.0260 |
| predicted_HR | 0.1830 |
| predicted_OBP | 0.4036 |
| predicted_R | 0.5000 |
| predicted_RBI | 0.4230 |
| predicted_SLG | 0.5134 |
| predicted_SO | 0.7090 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1290 | 0.1190 | 0.1248 | model_form_blend |
| predicted_3B | 0.0000 | 0.0010 | 0.0004 | model_form_blend |
| predicted_AB | 4.3000 | 3.3080 | 3.8823 | model_form_blend |
| predicted_AVG | 0.3180 | 0.3111 | 0.3151 | model_form_blend |
| predicted_BB | 0.4570 | 0.5170 | 0.4823 | model_form_blend |
| predicted_H | 1.3700 | 1.0290 | 1.2264 | model_form_blend |
| predicted_HBP | - | 0.0260 | 0.0260 | form_only |
| predicted_HR | 0.2100 | 0.1830 | 0.1986 | model_form_blend |
| predicted_OBP | 0.3940 | 0.4036 | 0.3980 | model_form_blend |
| predicted_R | 0.5000 | 0.5000 | 0.5000 | model_form_blend |
| predicted_RBI | 0.6100 | 0.4230 | 0.5313 | model_form_blend |
| predicted_SLG | 0.5050 | 0.5134 | 0.5085 | model_form_blend |
| predicted_SO | 0.6430 | 0.7090 | 0.6708 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 253 |
| Season rows before report date | 253 |
| Report year | 2026 |
| Profile rows used | 70 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 2 |
| 2B | 1 |
| 3B | 0 |
| HR | 1 |
| R | 1 |
| RBI | 2 |
| BB | 0 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 3 |
| Hitting_AVG | 0.333 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 1 |
| Hitting_battingOrder | 3 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | C |
| gameID | 20260926_LAD@SF |
| game_type | full |
| mlbID | 669257 |
| playerID | 669257 |
| playerName | Will Smith |
| pos | C |
| started | True |
| startingPosition | C |
| team | LAD |
| teamID | 14 |
| game_date | 2026-09-26 |
| sl_k_percent | 16.3 |
| sl_bb_percent | 12.3 |
| sl_woba | 0.345 |
| sl_xwoba | 0.389 |
| sl_xba | 0.279 |
| sl_xslg | 0.502 |
| sl_sweet_spot_percent | 43.3 |
| sl_barrel_batted_rate | 12.4 |
| sl_hard_hit_percent | 41.2 |
| sl_exit_velocity_avg | 89.1 |
| sl_launch_angle_avg | 20.1 |
| sl_whiff_percent | 16.7 |
| sl_swing_percent | 41.6 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.211 | 0.000 | 0.000 | Hitting_2B | 0.229 | 0.000 | -0.229 | 0.000 |
| predicted_3B | 0.007 | 0.000 | 0.000 | Hitting_3B | 0.006 | 0.000 | -0.006 | 0.000 |
| predicted_AB | 3.890 | 3.000 | 4.000 | Hitting_AB | 3.806 | 3.000 | -0.806 | 0.000 |
| predicted_AVG | 0.238 | 0.667 | 0.250 | Hitting_AVG | 0.292 | 0.000 | 0.374 | 0.667 |
| predicted_BB | 0.434 | 1.000 | 0.000 | Hitting_BB | 0.492 | 0.000 | 0.508 | 1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_H | 0.930 | 2.000 | 1.000 | Hitting_H | 1.112 | 0.000 | 0.888 | 2.000 |
| predicted_HR | 0.110 | 0.000 | 0.000 | Hitting_HR | 0.111 | 0.000 | -0.111 | 0.000 |
| predicted_OBP | 0.284 | 0.750 | 0.250 | Hitting_OBP | 0.375 | 0.000 | 0.375 | 0.750 |
| predicted_R | 0.487 | 1.000 | 0.000 | Hitting_R | 0.538 | 0.000 | 0.462 | 1.000 |
| predicted_RBI | 0.480 | 1.000 | 0.000 | Hitting_RBI | 0.490 | 0.000 | 0.510 | 1.000 |
| predicted_SLG | 0.360 | 0.667 | 0.250 | Hitting_SLG | 0.443 | 0.000 | 0.224 | 0.667 |
| predicted_SO | 0.750 | 0.000 | 1.000 | Hitting_SO | 0.753 | 1.000 | -0.753 | -1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 11 |
| Boosted Metrics | 7 |
| Deboosted Metrics | 4 |
| Better Metrics | 8 |
| Worse Metrics | 3 |
| Biggest Boost | predicted_H: 0.9300 -> 2.0000 (boost 1.0700, better) |
| Biggest Deboost | predicted_AB: 3.8900 -> 3.0000 (deboost -0.8900, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 6 | 3 | 3 | 2 | 4 | predicted_SO: 0.7500 -> 0.8326 (boost 0.0826, worse) | predicted_BB: 0.4340 -> 0.3693 (deboost -0.0647, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 2 | 2 | 0 | 2 | 0 | predicted_OBP: 0.2911 -> 0.3141 (boost 0.0230, better) | - | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 6 | 2 | 4 | 1 | 5 | predicted_SO: 0.8243 -> 1.0000 (boost 0.1757, worse) | predicted_RBI: 0.4883 -> 0.0000 (deboost -0.4883, worse) | AB rounded to 4 (raw=3.89), rates preserved: AVG=0.227 HR/AB=0.024 |
| 6 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.4371 -> 0.0000 (deboost -0.4371, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 4 | 2 | 5 | 1 | predicted_RBI: 0.0000 -> 0.4635 (boost 0.4635, better) | predicted_SO: 1.0000 -> 0.8961 (deboost -0.1039, better) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 6 | 2 | 4 | 1 | 5 | predicted_SO: 0.8961 -> 1.0000 (boost 0.1039, worse) | predicted_RBI: 0.4635 -> 0.0000 (deboost -0.4635, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 2 | 1 | 1 | 1 | 1 | predicted_SLG: 0.3679 -> 0.3780 (boost 0.0101, better) | predicted_AVG: 0.2483 -> 0.2390 (deboost -0.0093, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 6 | 4 | 2 | 5 | 1 | predicted_BB: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_AB: 4.0000 -> 3.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 2 | 1 | 1 | 1 | 1 | predicted_AVG: 0.2390 -> 0.2483 (boost 0.0093, better) | predicted_SLG: 0.3780 -> 0.3679 (deboost -0.0101, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "518692",
"player_name": "Freddie Freeman",
"position": "1B",
"team": "LAD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.211,
"predicted_3B": 0.007,
"predicted_AB": 3.89,
"predicted_AVG": 0.238,
"predicted_BB": 0.434,
"predicted_H": 0.93,
"predicted_HR": 0.11,
"predicted_OBP": 0.284,
"predicted_R": 0.487,
"predicted_RBI": 0.48,
"predicted_SLG": 0.36,
"predicted_SO": 0.75
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1765,
"predicted_3B": 0.0061,
"predicted_AB": 3.8883,
"predicted_AVG": 0.2442,
"predicted_BB": 0.3693,
"predicted_H": 0.9519,
"predicted_HBP": 0.021,
"predicted_HR": 0.0916,
"predicted_OBP": 0.2911,
"predicted_R": 0.4254,
"predicted_RBI": 0.4752,
"predicted_SLG": 0.3517,
"predicted_SO": 0.8326
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.211,
"after": 0.1765,
"delta": -0.0345,
"percent_delta": -0.1635,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.007,
"after": 0.0061,
"delta": -0.0009,
"percent_delta": -0.1286,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.89,
"after": 3.8883,
"delta": -0.0017,
"percent_delta": -0.0004,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.238,
"after": 0.2442,
"delta": 0.0062,
"percent_delta": 0.0261,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.434,
"after": 0.3693,
"delta": -0.0647,
"percent_delta": -0.1491,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.93,
"after": 0.9519,
"delta": 0.0219,
"percent_delta": 0.0235,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.11,
"after": 0.0916,
"delta": -0.0184,
"percent_delta": -0.1673,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.284,
"after": 0.2911,
"delta": 0.0071,
"percent_delta": 0.025,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.487,
"after": 0.4254,
"delta": -0.0616,
"percent_delta": -0.1265,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.48,
"after": 0.4752,
"delta": -0.0048,
"percent_delta": -0.01,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.36,
"after": 0.3517,
"delta": -0.0083,
"percent_delta": -0.0231,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.75,
"after": 0.8326,
"delta": 0.0826,
"percent_delta": 0.1101,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 3,
"deboosted_metrics": 3,
"better_metrics": 2,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.75,
"after": 0.8326,
"delta": 0.0826,
"percent_delta": 0.1101,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.434,
"after": 0.3693,
"delta": -0.0647,
"percent_delta": -0.1491,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 152
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1765,
"predicted_3B": 0.0061,
"predicted_AB": 3.8883,
"predicted_AVG": 0.2483,
"predicted_BB": 0.373,
"predicted_H": 0.9653,
"predicted_HBP": 0.021,
"predicted_HR": 0.0921,
"predicted_OBP": 0.3141,
"predicted_R": 0.4371,
"predicted_RBI": 0.4883,
"predicted_SLG": 0.3679,
"predicted_SO": 0.8243
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1765,
"after": 0.1765,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0061,
"after": 0.0061,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.8883,
"after": 3.8883,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2442,
"after": 0.2483,
"delta": 0.0041,
"percent_delta": 0.0168,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.3693,
"after": 0.373,
"delta": 0.0037,
"percent_delta": 0.01,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.9519,
"after": 0.9653,
"delta": 0.0134,
"percent_delta": 0.0141,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.021,
"after": 0.021,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0916,
"after": 0.0921,
"delta": 0.0005,
"percent_delta": 0.0055,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.2911,
"after": 0.3141,
"delta": 0.023,
"percent_delta": 0.079,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.4254,
"after": 0.4371,
"delta": 0.0117,
"percent_delta": 0.0275,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.4752,
"after": 0.4883,
"delta": 0.0131,
"percent_delta": 0.0276,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3517,
"after": 0.3679,
"delta": 0.0162,
"percent_delta": 0.0461,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.8326,
"after": 0.8243,
"delta": -0.0083,
"percent_delta": -0.01,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_OBP",
"before": 0.2911,
"after": 0.3141,
"delta": 0.023,
"percent_delta": 0.079,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=3.89), rates preserved: AVG=0.227 HR/AB=0.024",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1765,
"after": 0.0,
"delta": -0.1765,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0061,
"after": 0.0,
"delta": -0.0061,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.8883,
"after": 4.0,
"delta": 0.1117,
"percent_delta": 0.0287,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.373,
"after": 0.0,
"delta": -0.373,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.9653,
"after": 1.0,
"delta": 0.0347,
"percent_delta": 0.0359,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.021,
"after": 0.0,
"delta": -0.021,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0921,
"after": 0.0,
"delta": -0.0921,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.4883,
"after": 0.0,
"delta": -0.4883,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.8243,
"after": 1.0,
"delta": 0.1757,
"percent_delta": 0.2132,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 2,
"deboosted_metrics": 4,
"better_metrics": 1,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.8243,
"after": 1.0,
"delta": 0.1757,
"percent_delta": 0.2132,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.4883,
"after": 0.0,
"delta": -0.4883,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.4371,
"after": 0.0,
"delta": -0.4371,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_R",
"before": 0.4371,
"after": 0.0,
"delta": -0.4371,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1728,
"predicted_3B": 0.0082,
"predicted_BB": 0.3667,
"predicted_H": 0.9,
"predicted_HR": 0.1114,
"predicted_RBI": 0.4635,
"predicted_SO": 0.8961
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1728,
"delta": 0.1728,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0082,
"delta": 0.0082,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.3667,
"delta": 0.3667,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.9,
"delta": -0.1,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1114,
"delta": 0.1114,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.4635,
"delta": 0.4635,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.8961,
"delta": -0.1039,
"percent_delta": -0.1039,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 5,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.4635,
"delta": 0.4635,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 0.8961,
"delta": -0.1039,
"percent_delta": -0.1039,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1728,
"after": 0.0,
"delta": -0.1728,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0082,
"after": 0.0,
"delta": -0.0082,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.3667,
"after": 0.0,
"delta": -0.3667,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.9,
"after": 1.0,
"delta": 0.1,
"percent_delta": 0.1111,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1114,
"after": 0.0,
"delta": -0.1114,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.4635,
"after": 0.0,
"delta": -0.4635,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.8961,
"after": 1.0,
"delta": 0.1039,
"percent_delta": 0.1159,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 2,
"deboosted_metrics": 4,
"better_metrics": 1,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.8961,
"after": 1.0,
"delta": 0.1039,
"percent_delta": 0.1159,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.4635,
"after": 0.0,
"delta": -0.4635,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.239,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.312,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.378,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2483,
"after": 0.239,
"delta": -0.0093,
"percent_delta": -0.0375,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3141,
"after": 0.312,
"delta": -0.0021,
"percent_delta": -0.0067,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3679,
"after": 0.378,
"delta": 0.0101,
"percent_delta": 0.0275,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.3679,
"after": 0.378,
"delta": 0.0101,
"percent_delta": 0.0275,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AVG",
"before": 0.2483,
"after": 0.239,
"delta": -0.0093,
"percent_delta": -0.0375,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 2.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 5,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.2483,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_FB": 0.0,
"predicted_H": 2.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3141,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.3679,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.239,
"after": 0.2483,
"delta": 0.0093,
"percent_delta": 0.0388,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"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_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.312,
"after": 0.3141,
"delta": 0.0021,
"percent_delta": 0.0066,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.378,
"after": 0.3679,
"delta": -0.0101,
"percent_delta": -0.0268,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_AVG",
"before": 0.239,
"after": 0.2483,
"delta": 0.0093,
"percent_delta": 0.0388,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.378,
"after": 0.3679,
"delta": -0.0101,
"percent_delta": -0.0268,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.211,
"after": 0.0,
"delta": -0.211,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.007,
"after": 0.0,
"delta": -0.007,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.89,
"after": 3.0,
"delta": -0.89,
"percent_delta": -0.2288,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.238,
"after": 0.2483,
"delta": 0.0103,
"percent_delta": 0.0433,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.434,
"after": 1.0,
"delta": 0.566,
"percent_delta": 1.3041,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.93,
"after": 2.0,
"delta": 1.07,
"percent_delta": 1.1505,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.11,
"after": 0.0,
"delta": -0.11,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.284,
"after": 0.3141,
"delta": 0.0301,
"percent_delta": 0.106,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.487,
"after": 1.0,
"delta": 0.513,
"percent_delta": 1.0534,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.48,
"after": 1.0,
"delta": 0.52,
"percent_delta": 1.0833,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.36,
"after": 0.3679,
"delta": 0.0079,
"percent_delta": 0.0219,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.75,
"after": 0.0,
"delta": -0.75,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 11,
"boosted_metrics": 7,
"deboosted_metrics": 4,
"better_metrics": 8,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.93,
"after": 2.0,
"delta": 1.07,
"percent_delta": 1.1505,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 3.89,
"after": 3.0,
"delta": -0.89,
"percent_delta": -0.2288,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.211 | - |
| predicted_3B | 0.007 | - |
| predicted_AB | 3.890 | - |
| predicted_AVG | 0.238 | - |
| predicted_BB | 0.434 | - |
| predicted_H | 0.930 | - |
| predicted_HR | 0.110 | - |
| predicted_OBP | 0.284 | - |
| predicted_R | 0.487 | - |
| predicted_RBI | 0.480 | - |
| predicted_SLG | 0.360 | - |
| predicted_SO | 0.750 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.176 | -0.035 |
| predicted_3B | 0.006 | -0.001 |
| predicted_AB | 3.888 | -0.002 |
| predicted_AVG | 0.244 | 0.006 |
| predicted_BB | 0.369 | -0.065 |
| predicted_H | 0.952 | 0.022 |
| predicted_HBP | 0.021 | - |
| predicted_HR | 0.092 | -0.018 |
| predicted_OBP | 0.291 | 0.007 |
| predicted_R | 0.425 | -0.062 |
| predicted_RBI | 0.475 | -0.005 |
| predicted_SLG | 0.352 | -0.008 |
| predicted_SO | 0.833 | 0.083 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.176 | 0.000 |
| predicted_3B | 0.006 | 0.000 |
| predicted_AB | 3.888 | 0.000 |
| predicted_AVG | 0.248 | 0.004 |
| predicted_BB | 0.373 | 0.004 |
| predicted_H | 0.965 | 0.013 |
| predicted_HBP | 0.021 | 0.000 |
| predicted_HR | 0.092 | 0.001 |
| predicted_OBP | 0.314 | 0.023 |
| predicted_R | 0.437 | 0.012 |
| predicted_RBI | 0.488 | 0.013 |
| predicted_SLG | 0.368 | 0.016 |
| predicted_SO | 0.824 | -0.008 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=3.89), rates preserved: AVG=0.227 HR/AB=0.024
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.173 | 0.173 |
| 3B | 0.008 | 0.008 |
| BB | 0.367 | 0.367 |
| H | 0.900 | -0.100 |
| HR | 0.111 | 0.111 |
| RBI | 0.464 | 0.464 |
| SO | 0.896 | -0.104 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.173 |
| 3B | 0.000 | -0.008 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -0.367 |
| H | 1.000 | 0.100 |
| HR | 0.000 | -0.111 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -0.464 |
| SO | 1.000 | 0.104 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.176 |
| predicted_3B | 0.000 | -0.006 |
| predicted_AB | 4.000 | 0.112 |
| predicted_AVG | 0.239 | -0.009 |
| predicted_BB | 0.000 | -0.373 |
| predicted_H | 1.000 | 0.035 |
| predicted_HR | 0.000 | -0.092 |
| predicted_OBP | 0.312 | -0.002 |
| predicted_R | 0.000 | -0.437 |
| predicted_RBI | 0.000 | -0.488 |
| predicted_SLG | 0.378 | 0.010 |
| predicted_SO | 1.000 | 0.176 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | -1.000 |
| BB | 1.000 | 1.000 |
| CS | 0.000 | 0.000 |
| H | 2.000 | 1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 1.000 | 1.000 |
| RBI | 1.000 | 1.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 20.000 | 4.000 | 0.000 | 0.000 | 0.000 | 3.000 | 0.000 | 0.000 | 6.000 | 0.2000 | 0.2000 | 0.2000 | 0.2000 | 0.0000 | 0.1500 | 0.0000 | 0.3000 |
| last_10 | 0.20 | 10 | - | 41.000 | 8.000 | 0.000 | 0.000 | 0.000 | 4.000 | 2.000 | 1.000 | 13.000 | 0.1951 | 0.2093 | 0.1951 | 0.1951 | 0.0000 | 0.0976 | 0.0244 | 0.3171 |
| season | 0.60 | 152 | - | 575.000 | 166.000 | 32.000 | 1.000 | 16.000 | 68.000 | 74.000 | 66.000 | 114.000 | 0.2887 | 0.3635 | 0.4313 | 0.2887 | 0.0278 | 0.1183 | 0.1148 | 0.1983 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1320 |
| predicted_3B | 0.0050 |
| predicted_AB | 3.8860 |
| predicted_AVG | 0.2521 |
| predicted_BB | 0.2860 |
| predicted_H | 0.9800 |
| predicted_HBP | 0.0210 |
| predicted_HR | 0.0680 |
| predicted_OBP | 0.3002 |
| predicted_R | 0.3460 |
| predicted_RBI | 0.4690 |
| predicted_SLG | 0.3409 |
| predicted_SO | 0.9390 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.2110 | 0.1320 | 0.1765 | model_form_blend |
| predicted_3B | 0.0070 | 0.0050 | 0.0061 | model_form_blend |
| predicted_AB | 3.8900 | 3.8860 | 3.8883 | model_form_blend |
| predicted_AVG | 0.2380 | 0.2521 | 0.2442 | model_form_blend |
| predicted_BB | 0.4340 | 0.2860 | 0.3693 | model_form_blend |
| predicted_H | 0.9300 | 0.9800 | 0.9519 | model_form_blend |
| predicted_HBP | - | 0.0210 | 0.0210 | form_only |
| predicted_HR | 0.1100 | 0.0680 | 0.0916 | model_form_blend |
| predicted_OBP | 0.2840 | 0.3002 | 0.2911 | model_form_blend |
| predicted_R | 0.4870 | 0.3460 | 0.4254 | model_form_blend |
| predicted_RBI | 0.4800 | 0.4690 | 0.4752 | model_form_blend |
| predicted_SLG | 0.3600 | 0.3409 | 0.3517 | model_form_blend |
| predicted_SO | 0.7500 | 0.9390 | 0.8326 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 624 |
| Season rows before report date | 624 |
| Report year | 2026 |
| Profile rows used | 152 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 3 |
| H | 2 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 1 |
| RBI | 1 |
| BB | 1 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 3 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 3 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | 1B |
| gameID | 20260927_LAD@SF |
| game_type | full |
| mlbID | 518692 |
| playerID | 518692 |
| playerName | Freddie Freeman |
| pos | 1B |
| started | True |
| startingPosition | 1B |
| team | LAD |
| teamID | 14 |
| game_date | 2026-09-27 |
| sl_k_percent | 17.7 |
| sl_bb_percent | 10.0 |
| sl_woba | 0.348 |
| sl_xwoba | 0.363 |
| sl_xba | 0.29 |
| sl_xslg | 0.463 |
| sl_sweet_spot_percent | 38.7 |
| sl_barrel_batted_rate | 8.1 |
| sl_hard_hit_percent | 41.3 |
| sl_exit_velocity_avg | 89.5 |
| sl_launch_angle_avg | 12.2 |
| sl_whiff_percent | 23.2 |
| sl_swing_percent | 50.1 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.177 | 0.000 | 0.000 | Hitting_2B | 0.176 | 1.000 | -0.176 | -1.000 |
| predicted_3B | 0.007 | 0.000 | 0.000 | Hitting_3B | 0.009 | 0.000 | -0.009 | 0.000 |
| predicted_AB | 3.330 | 4.000 | 3.000 | Hitting_AB | 3.525 | 3.000 | 0.475 | 1.000 |
| predicted_AVG | 0.264 | 0.000 | 0.000 | Hitting_AVG | 0.260 | 0.667 | -0.260 | -0.667 |
| predicted_BB | 0.435 | 0.000 | 0.000 | Hitting_BB | 0.488 | 2.000 | -0.488 | -2.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_H | 0.880 | 0.000 | 0.000 | Hitting_H | 0.916 | 2.000 | -0.916 | -2.000 |
| predicted_HR | 0.160 | 0.000 | 0.000 | Hitting_HR | 0.224 | 0.000 | -0.224 | 0.000 |
| predicted_OBP | 0.326 | 0.000 | 0.000 | Hitting_OBP | 0.358 | 0.800 | -0.358 | -0.800 |
| predicted_R | 0.544 | 0.000 | 0.000 | Hitting_R | 0.609 | 1.000 | -0.609 | -1.000 |
| predicted_RBI | 0.460 | 0.000 | 1.000 | Hitting_RBI | 0.587 | 0.000 | -0.587 | 0.000 |
| predicted_SLG | 0.459 | 0.000 | 0.000 | Hitting_SLG | 0.506 | 1.000 | -0.506 | -1.000 |
| predicted_SO | 0.952 | 2.000 | 1.000 | Hitting_SO | 1.019 | 0.000 | 0.981 | 2.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 11 |
| Boosted Metrics | 3 |
| Deboosted Metrics | 8 |
| Better Metrics | 2 |
| Worse Metrics | 9 |
| Biggest Boost | predicted_SO: 0.9520 -> 2.0000 (boost 1.0480, worse) |
| Biggest Deboost | predicted_H: 0.8800 -> 0.0000 (deboost -0.8800, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 3 | 0 | 3 | 0 | 3 | - | predicted_H: 0.8800 -> 0.8282 (deboost -0.0518, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 2 | 2 | 0 | 2 | 0 | predicted_OBP: 0.3223 -> 0.3360 (boost 0.0137, better) | - | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 2 | 5 | 1 | 6 | predicted_H: 0.8399 -> 1.0000 (boost 0.1601, better) | predicted_RBI: 0.4512 -> 0.0000 (deboost -0.4512, worse) | AB rounded to 3 (raw=3.33), rates preserved: AVG=0.230 HR/AB=0.045 |
| 6 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5161 -> 1.0000 (boost 0.4839, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 5 | 1 | 4 | 2 | predicted_RBI: 0.0000 -> 0.5124 (boost 0.5124, better) | predicted_H: 1.0000 -> 0.7470 (deboost -0.2530, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 7 | 1 | 6 | 2 | 5 | predicted_RBI: 0.5124 -> 1.0000 (boost 0.4876, better) | predicted_R: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 6 | 2 | 4 | 2 | 4 | predicted_H: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_RBI: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 4 | 2 | 2 | 1 | 3 | predicted_AB: 3.0000 -> 4.0000 (boost 1.0000, better) | predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_OBP: 0.3010 -> 0.3360 (boost 0.0350, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "571970",
"player_name": "Max Muncy",
"position": "3B",
"team": "LAD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.177,
"predicted_3B": 0.007,
"predicted_AB": 3.33,
"predicted_AVG": 0.264,
"predicted_BB": 0.435,
"predicted_H": 0.88,
"predicted_HR": 0.16,
"predicted_OBP": 0.326,
"predicted_R": 0.544,
"predicted_RBI": 0.46,
"predicted_SLG": 0.459,
"predicted_SO": 0.952
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1974,
"predicted_3B": 0.0061,
"predicted_AB": 3.3178,
"predicted_AVG": 0.2494,
"predicted_BB": 0.4098,
"predicted_H": 0.8282,
"predicted_HBP": 0.048,
"predicted_HR": 0.1504,
"predicted_OBP": 0.3223,
"predicted_R": 0.5022,
"predicted_RBI": 0.4391,
"predicted_SLG": 0.4446,
"predicted_SO": 0.9085
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.177,
"after": 0.1974,
"delta": 0.0204,
"percent_delta": 0.1153,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.007,
"after": 0.0061,
"delta": -0.0009,
"percent_delta": -0.1286,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.33,
"after": 3.3178,
"delta": -0.0122,
"percent_delta": -0.0037,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.264,
"after": 0.2494,
"delta": -0.0146,
"percent_delta": -0.0553,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.435,
"after": 0.4098,
"delta": -0.0252,
"percent_delta": -0.0579,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.88,
"after": 0.8282,
"delta": -0.0518,
"percent_delta": -0.0589,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.16,
"after": 0.1504,
"delta": -0.0096,
"percent_delta": -0.06,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.326,
"after": 0.3223,
"delta": -0.0037,
"percent_delta": -0.0113,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.544,
"after": 0.5022,
"delta": -0.0418,
"percent_delta": -0.0768,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.46,
"after": 0.4391,
"delta": -0.0209,
"percent_delta": -0.0454,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.459,
"after": 0.4446,
"delta": -0.0144,
"percent_delta": -0.0314,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.952,
"after": 0.9085,
"delta": -0.0435,
"percent_delta": -0.0457,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 0.88,
"after": 0.8282,
"delta": -0.0518,
"percent_delta": -0.0589,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 147
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1974,
"predicted_3B": 0.0061,
"predicted_AB": 3.3178,
"predicted_AVG": 0.2531,
"predicted_BB": 0.4139,
"predicted_H": 0.8399,
"predicted_HBP": 0.048,
"predicted_HR": 0.1513,
"predicted_OBP": 0.336,
"predicted_R": 0.5161,
"predicted_RBI": 0.4512,
"predicted_SLG": 0.4531,
"predicted_SO": 0.8994
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1974,
"after": 0.1974,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0061,
"after": 0.0061,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.3178,
"after": 3.3178,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2494,
"after": 0.2531,
"delta": 0.0037,
"percent_delta": 0.0148,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.4098,
"after": 0.4139,
"delta": 0.0041,
"percent_delta": 0.01,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.8282,
"after": 0.8399,
"delta": 0.0117,
"percent_delta": 0.0141,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.048,
"after": 0.048,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1504,
"after": 0.1513,
"delta": 0.0009,
"percent_delta": 0.006,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3223,
"after": 0.336,
"delta": 0.0137,
"percent_delta": 0.0425,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.5022,
"after": 0.5161,
"delta": 0.0139,
"percent_delta": 0.0277,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.4391,
"after": 0.4512,
"delta": 0.0121,
"percent_delta": 0.0276,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4446,
"after": 0.4531,
"delta": 0.0085,
"percent_delta": 0.0191,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.9085,
"after": 0.8994,
"delta": -0.0091,
"percent_delta": -0.01,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_OBP",
"before": 0.3223,
"after": 0.336,
"delta": 0.0137,
"percent_delta": 0.0425,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 3 (raw=3.33), rates preserved: AVG=0.230 HR/AB=0.045",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1974,
"after": 0.0,
"delta": -0.1974,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0061,
"after": 0.0,
"delta": -0.0061,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.3178,
"after": 3.0,
"delta": -0.3178,
"percent_delta": -0.0958,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.4139,
"after": 0.0,
"delta": -0.4139,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8399,
"after": 1.0,
"delta": 0.1601,
"percent_delta": 0.1906,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.048,
"after": 0.0,
"delta": -0.048,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1513,
"after": 0.0,
"delta": -0.1513,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.4512,
"after": 0.0,
"delta": -0.4512,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.8994,
"after": 1.0,
"delta": 0.1006,
"percent_delta": 0.1119,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 2,
"deboosted_metrics": 5,
"better_metrics": 1,
"worse_metrics": 6,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.8399,
"after": 1.0,
"delta": 0.1601,
"percent_delta": 0.1906,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.4512,
"after": 0.0,
"delta": -0.4512,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.5161,
"after": 1.0,
"delta": 0.4839,
"percent_delta": 0.9376,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.5161,
"after": 1.0,
"delta": 0.4839,
"percent_delta": 0.9376,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1525,
"predicted_3B": 0.0079,
"predicted_BB": 0.369,
"predicted_H": 0.747,
"predicted_HR": 0.1744,
"predicted_RBI": 0.5124,
"predicted_SO": 1.1331
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1525,
"delta": 0.1525,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0079,
"delta": 0.0079,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.369,
"delta": 0.369,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.747,
"delta": -0.253,
"percent_delta": -0.253,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1744,
"delta": 0.1744,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.5124,
"delta": 0.5124,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.1331,
"delta": 0.1331,
"percent_delta": 0.1331,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 5,
"deboosted_metrics": 1,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.5124,
"delta": 0.5124,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.747,
"delta": -0.253,
"percent_delta": -0.253,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1525,
"after": 0.0,
"delta": -0.1525,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0079,
"after": 0.0,
"delta": -0.0079,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.369,
"after": 0.0,
"delta": -0.369,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.747,
"after": 0.0,
"delta": -0.747,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1744,
"after": 0.0,
"delta": -0.1744,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.5124,
"after": 1.0,
"delta": 0.4876,
"percent_delta": 0.9516,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.1331,
"after": 1.0,
"delta": -0.1331,
"percent_delta": -0.1175,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 1,
"deboosted_metrics": 6,
"better_metrics": 2,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.5124,
"after": 1.0,
"delta": 0.4876,
"percent_delta": 0.9516,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.219,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.301,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.422,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2531,
"after": 0.219,
"delta": -0.0341,
"percent_delta": -0.1347,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_H",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_OBP",
"before": 0.336,
"after": 0.301,
"delta": -0.035,
"percent_delta": -0.1042,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.4531,
"after": 0.422,
"delta": -0.0311,
"percent_delta": -0.0686,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 2,
"deboosted_metrics": 4,
"better_metrics": 2,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 2,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.2531,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.336,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.4531,
"predicted_SO": 2.0,
"predicted_TB": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.219,
"after": 0.2531,
"delta": 0.0341,
"percent_delta": 0.1559,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.301,
"after": 0.336,
"delta": 0.035,
"percent_delta": 0.1162,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.422,
"after": 0.4531,
"delta": 0.0311,
"percent_delta": 0.0737,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_OBP",
"before": 0.301,
"after": 0.336,
"delta": 0.035,
"percent_delta": 0.1162,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.177,
"after": 0.0,
"delta": -0.177,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.007,
"after": 0.0,
"delta": -0.007,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.33,
"after": 4.0,
"delta": 0.67,
"percent_delta": 0.2012,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.264,
"after": 0.2531,
"delta": -0.0109,
"percent_delta": -0.0413,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.435,
"after": 0.0,
"delta": -0.435,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.88,
"after": 0.0,
"delta": -0.88,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.16,
"after": 0.0,
"delta": -0.16,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.326,
"after": 0.336,
"delta": 0.01,
"percent_delta": 0.0307,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.544,
"after": 0.0,
"delta": -0.544,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.46,
"after": 0.0,
"delta": -0.46,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.459,
"after": 0.4531,
"delta": -0.0059,
"percent_delta": -0.0129,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.952,
"after": 2.0,
"delta": 1.048,
"percent_delta": 1.1008,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 11,
"boosted_metrics": 3,
"deboosted_metrics": 8,
"better_metrics": 2,
"worse_metrics": 9,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.952,
"after": 2.0,
"delta": 1.048,
"percent_delta": 1.1008,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 0.88,
"after": 0.0,
"delta": -0.88,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.177 | - |
| predicted_3B | 0.007 | - |
| predicted_AB | 3.330 | - |
| predicted_AVG | 0.264 | - |
| predicted_BB | 0.435 | - |
| predicted_H | 0.880 | - |
| predicted_HR | 0.160 | - |
| predicted_OBP | 0.326 | - |
| predicted_R | 0.544 | - |
| predicted_RBI | 0.460 | - |
| predicted_SLG | 0.459 | - |
| predicted_SO | 0.952 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.197 | 0.020 |
| predicted_3B | 0.006 | -0.001 |
| predicted_AB | 3.318 | -0.012 |
| predicted_AVG | 0.249 | -0.015 |
| predicted_BB | 0.410 | -0.025 |
| predicted_H | 0.828 | -0.052 |
| predicted_HBP | 0.048 | - |
| predicted_HR | 0.150 | -0.010 |
| predicted_OBP | 0.322 | -0.004 |
| predicted_R | 0.502 | -0.042 |
| predicted_RBI | 0.439 | -0.021 |
| predicted_SLG | 0.445 | -0.014 |
| predicted_SO | 0.908 | -0.043 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.197 | 0.000 |
| predicted_3B | 0.006 | 0.000 |
| predicted_AB | 3.318 | 0.000 |
| predicted_AVG | 0.253 | 0.004 |
| predicted_BB | 0.414 | 0.004 |
| predicted_H | 0.840 | 0.012 |
| predicted_HBP | 0.048 | 0.000 |
| predicted_HR | 0.151 | 0.001 |
| predicted_OBP | 0.336 | 0.014 |
| predicted_R | 0.516 | 0.014 |
| predicted_RBI | 0.451 | 0.012 |
| predicted_SLG | 0.453 | 0.009 |
| predicted_SO | 0.899 | -0.009 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=3.33), rates preserved: AVG=0.230 HR/AB=0.045
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.152 | 0.152 |
| 3B | 0.008 | 0.008 |
| BB | 0.369 | 0.369 |
| H | 0.747 | -0.253 |
| HR | 0.174 | 0.174 |
| RBI | 0.512 | 0.512 |
| SO | 1.133 | 0.133 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.152 |
| 3B | 0.000 | -0.008 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | -0.369 |
| H | 0.000 | -0.747 |
| HR | 0.000 | -0.174 |
| R | 0.000 | -1.000 |
| RBI | 1.000 | 0.488 |
| SO | 1.000 | -0.133 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.197 |
| predicted_3B | 0.000 | -0.006 |
| predicted_AB | 3.000 | -0.318 |
| predicted_AVG | 0.219 | -0.034 |
| predicted_BB | 0.000 | -0.414 |
| predicted_H | 1.000 | 0.160 |
| predicted_HR | 0.000 | -0.151 |
| predicted_OBP | 0.301 | -0.035 |
| predicted_R | 1.000 | 0.484 |
| predicted_RBI | 0.000 | -0.451 |
| predicted_SLG | 0.422 | -0.031 |
| predicted_SO | 1.000 | 0.101 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 1.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -1.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 2.000 | 1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 16.000 | 2.000 | 1.000 | 0.000 | 0.000 | 0.000 | 1.000 | 2.000 | 4.000 | 0.1250 | 0.2222 | 0.1875 | 0.1250 | 0.0000 | 0.0000 | 0.1250 | 0.2500 |
| last_10 | 0.20 | 10 | - | 33.000 | 9.000 | 4.000 | 0.000 | 1.000 | 5.000 | 4.000 | 2.000 | 6.000 | 0.2727 | 0.3333 | 0.4848 | 0.2727 | 0.0303 | 0.1515 | 0.0606 | 0.1818 |
| season | 0.60 | 147 | - | 484.000 | 121.000 | 26.000 | 1.000 | 29.000 | 76.000 | 80.000 | 64.000 | 140.000 | 0.2500 | 0.3453 | 0.4876 | 0.2500 | 0.0599 | 0.1570 | 0.1322 | 0.2893 |
| Metric | Value |
|---|---|
| predicted_2B | 0.2240 |
| predicted_3B | 0.0050 |
| predicted_AB | 3.3020 |
| predicted_AVG | 0.2305 |
| predicted_BB | 0.3770 |
| predicted_H | 0.7610 |
| predicted_HBP | 0.0480 |
| predicted_HR | 0.1380 |
| predicted_OBP | 0.3176 |
| predicted_R | 0.4480 |
| predicted_RBI | 0.4120 |
| predicted_SLG | 0.4260 |
| predicted_SO | 0.8520 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1770 | 0.2240 | 0.1974 | model_form_blend |
| predicted_3B | 0.0070 | 0.0050 | 0.0061 | model_form_blend |
| predicted_AB | 3.3300 | 3.3020 | 3.3178 | model_form_blend |
| predicted_AVG | 0.2640 | 0.2305 | 0.2494 | model_form_blend |
| predicted_BB | 0.4350 | 0.3770 | 0.4098 | model_form_blend |
| predicted_H | 0.8800 | 0.7610 | 0.8282 | model_form_blend |
| predicted_HBP | - | 0.0480 | 0.0480 | form_only |
| predicted_HR | 0.1600 | 0.1380 | 0.1504 | model_form_blend |
| predicted_OBP | 0.3260 | 0.3176 | 0.3223 | model_form_blend |
| predicted_R | 0.5440 | 0.4480 | 0.5022 | model_form_blend |
| predicted_RBI | 0.4600 | 0.4120 | 0.4391 | model_form_blend |
| predicted_SLG | 0.4590 | 0.4260 | 0.4446 | model_form_blend |
| predicted_SO | 0.9520 | 0.8520 | 0.9085 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 535 |
| Season rows before report date | 535 |
| Report year | 2026 |
| Profile rows used | 147 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 2 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 1 |
| Hitting_3B | 0 |
| Hitting_AB | 3 |
| Hitting_AVG | 0.667 |
| Hitting_BB | 2 |
| Hitting_GIDP | 0 |
| Hitting_H | 2 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 1 |
| Hitting_R | 1 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 3 |
| Hitting_battingOrder | 6 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | 3B |
| gameID | 20260927_LAD@SF |
| game_type | full |
| mlbID | 571970 |
| playerID | 571970 |
| playerName | Max Muncy |
| pos | 3B |
| started | True |
| startingPosition | 3B |
| team | LAD |
| teamID | 14 |
| game_date | 2026-09-27 |
| sl_k_percent | 25.0 |
| sl_bb_percent | 11.6 |
| sl_woba | 0.361 |
| sl_xwoba | 0.349 |
| sl_xba | 0.242 |
| sl_xslg | 0.47 |
| sl_sweet_spot_percent | 35.8 |
| sl_barrel_batted_rate | 12.9 |
| sl_hard_hit_percent | 45.8 |
| sl_exit_velocity_avg | 89.9 |
| sl_launch_angle_avg | 17.5 |
| sl_whiff_percent | 29.2 |
| sl_swing_percent | 44.9 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.153 | 0.000 | 0.000 | Hitting_2B | 0.169 | 0.000 | -0.169 | 0.000 |
| predicted_3B | 0.027 | 0.000 | 0.000 | Hitting_3B | 0.030 | 0.000 | -0.030 | 0.000 |
| predicted_AB | 3.890 | 4.000 | 4.000 | Hitting_AB | 3.694 | 5.000 | 0.306 | -1.000 |
| predicted_AVG | 0.223 | 0.000 | 0.250 | Hitting_AVG | 0.239 | 0.200 | -0.239 | -0.200 |
| predicted_BB | 0.487 | 0.000 | 1.000 | Hitting_BB | 0.523 | 0.000 | -0.523 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_H | 0.870 | 0.000 | 1.000 | Hitting_H | 0.883 | 1.000 | -0.883 | -1.000 |
| predicted_HR | 0.140 | 0.000 | 0.000 | Hitting_HR | 0.120 | 0.000 | -0.120 | 0.000 |
| predicted_OBP | 0.309 | 0.000 | 0.400 | Hitting_OBP | 0.333 | 0.200 | -0.333 | -0.200 |
| predicted_R | 0.593 | 0.000 | 1.000 | Hitting_R | 0.632 | 1.000 | -0.632 | -1.000 |
| predicted_RBI | 0.370 | 0.000 | 0.000 | Hitting_RBI | 0.513 | 0.000 | -0.513 | 0.000 |
| predicted_SLG | 0.367 | 0.000 | 0.250 | Hitting_SLG | 0.399 | 0.200 | -0.399 | -0.200 |
| predicted_SO | 0.693 | 1.000 | 1.000 | Hitting_SO | 0.722 | 0.000 | 0.278 | 1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 11 |
| Boosted Metrics | 5 |
| Deboosted Metrics | 6 |
| Better Metrics | 4 |
| Worse Metrics | 7 |
| Biggest Boost | predicted_SO: 0.6930 -> 1.0000 (boost 0.3070, worse) |
| Biggest Deboost | predicted_H: 0.8700 -> 0.0000 (deboost -0.8700, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 3 | 2 | 1 | 2 | 1 | predicted_AVG: 0.2230 -> 0.2334 (boost 0.0104, better) | predicted_AB: 3.8900 -> 3.7927 (deboost -0.0973, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 1 | 1 | 0 | 1 | 0 | predicted_SLG: 0.3746 -> 0.3882 (boost 0.0136, better) | - | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 3 | 4 | 2 | 5 | predicted_SO: 0.6497 -> 1.0000 (boost 0.3503, worse) | predicted_BB: 0.4496 -> 0.0000 (deboost -0.4496, worse) | AB rounded to 4 (raw=3.89), rates preserved: AVG=0.211 HR/AB=0.033 |
| 6 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.6022 -> 1.0000 (boost 0.3978, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 4 | 2 | 5 | 1 | predicted_RBI: 0.0000 -> 0.4653 (boost 0.4653, better) | predicted_H: 1.0000 -> 0.7501 (deboost -0.2499, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 6 | 3 | 3 | 2 | 4 | predicted_BB: 0.3952 -> 1.0000 (boost 0.6048, better) | predicted_RBI: 0.4653 -> 0.0000 (deboost -0.4653, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 4 | 0 | 4 | 0 | 4 | - | predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 2 | 0 | 2 | 0 | 2 | - | predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_SLG: 0.3560 -> 0.3882 (boost 0.0322, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "663656",
"player_name": "Kyle Tucker",
"position": "RF",
"team": "LAD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.153,
"predicted_3B": 0.027,
"predicted_AB": 3.89,
"predicted_AVG": 0.223,
"predicted_BB": 0.487,
"predicted_H": 0.87,
"predicted_HR": 0.14,
"predicted_OBP": 0.309,
"predicted_R": 0.593,
"predicted_RBI": 0.37,
"predicted_SLG": 0.367,
"predicted_SO": 0.693
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.146,
"predicted_3B": 0.0222,
"predicted_AB": 3.7927,
"predicted_AVG": 0.2334,
"predicted_BB": 0.4451,
"predicted_H": 0.8853,
"predicted_HBP": 0.013,
"predicted_HR": 0.1273,
"predicted_OBP": 0.3135,
"predicted_R": 0.586,
"predicted_RBI": 0.3717,
"predicted_SLG": 0.3746,
"predicted_SO": 0.6563
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.153,
"after": 0.146,
"delta": -0.007,
"percent_delta": -0.0458,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.027,
"after": 0.0222,
"delta": -0.0048,
"percent_delta": -0.1778,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.89,
"after": 3.7927,
"delta": -0.0973,
"percent_delta": -0.025,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.223,
"after": 0.2334,
"delta": 0.0104,
"percent_delta": 0.0466,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.487,
"after": 0.4451,
"delta": -0.0419,
"percent_delta": -0.086,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.87,
"after": 0.8853,
"delta": 0.0153,
"percent_delta": 0.0176,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.14,
"after": 0.1273,
"delta": -0.0127,
"percent_delta": -0.0907,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.309,
"after": 0.3135,
"delta": 0.0045,
"percent_delta": 0.0146,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.593,
"after": 0.586,
"delta": -0.007,
"percent_delta": -0.0118,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.37,
"after": 0.3717,
"delta": 0.0017,
"percent_delta": 0.0046,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.367,
"after": 0.3746,
"delta": 0.0076,
"percent_delta": 0.0207,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.693,
"after": 0.6563,
"delta": -0.0367,
"percent_delta": -0.053,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 2,
"deboosted_metrics": 1,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_AVG",
"before": 0.223,
"after": 0.2334,
"delta": 0.0104,
"percent_delta": 0.0466,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 3.89,
"after": 3.7927,
"delta": -0.0973,
"percent_delta": -0.025,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 150
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.146,
"predicted_3B": 0.0222,
"predicted_AB": 3.7927,
"predicted_AVG": 0.2367,
"predicted_BB": 0.4496,
"predicted_H": 0.8978,
"predicted_HBP": 0.013,
"predicted_HR": 0.1281,
"predicted_OBP": 0.3176,
"predicted_R": 0.6022,
"predicted_RBI": 0.382,
"predicted_SLG": 0.3882,
"predicted_SO": 0.6497
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.146,
"after": 0.146,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0222,
"after": 0.0222,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.7927,
"after": 3.7927,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2334,
"after": 0.2367,
"delta": 0.0033,
"percent_delta": 0.0141,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.4451,
"after": 0.4496,
"delta": 0.0045,
"percent_delta": 0.0101,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.8853,
"after": 0.8978,
"delta": 0.0125,
"percent_delta": 0.0141,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.013,
"after": 0.013,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1273,
"after": 0.1281,
"delta": 0.0008,
"percent_delta": 0.0063,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3135,
"after": 0.3176,
"delta": 0.0041,
"percent_delta": 0.0131,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.586,
"after": 0.6022,
"delta": 0.0162,
"percent_delta": 0.0276,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.3717,
"after": 0.382,
"delta": 0.0103,
"percent_delta": 0.0277,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3746,
"after": 0.3882,
"delta": 0.0136,
"percent_delta": 0.0363,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.6563,
"after": 0.6497,
"delta": -0.0066,
"percent_delta": -0.0101,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.3746,
"after": 0.3882,
"delta": 0.0136,
"percent_delta": 0.0363,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=3.89), rates preserved: AVG=0.211 HR/AB=0.033",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.146,
"after": 0.0,
"delta": -0.146,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0222,
"after": 0.0,
"delta": -0.0222,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.7927,
"after": 4.0,
"delta": 0.2073,
"percent_delta": 0.0547,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.4496,
"after": 0.0,
"delta": -0.4496,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8978,
"after": 1.0,
"delta": 0.1022,
"percent_delta": 0.1138,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.013,
"after": 0.0,
"delta": -0.013,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1281,
"after": 0.0,
"delta": -0.1281,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.382,
"after": 0.0,
"delta": -0.382,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.6497,
"after": 1.0,
"delta": 0.3503,
"percent_delta": 0.5392,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 3,
"deboosted_metrics": 4,
"better_metrics": 2,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.6497,
"after": 1.0,
"delta": 0.3503,
"percent_delta": 0.5392,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.4496,
"after": 0.0,
"delta": -0.4496,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.6022,
"after": 1.0,
"delta": 0.3978,
"percent_delta": 0.6606,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.6022,
"after": 1.0,
"delta": 0.3978,
"percent_delta": 0.6606,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1461,
"predicted_3B": 0.0134,
"predicted_BB": 0.3952,
"predicted_H": 0.7501,
"predicted_HR": 0.1139,
"predicted_RBI": 0.4653,
"predicted_SO": 0.8186
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1461,
"delta": 0.1461,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0134,
"delta": 0.0134,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.3952,
"delta": 0.3952,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.7501,
"delta": -0.2499,
"percent_delta": -0.2499,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1139,
"delta": 0.1139,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.4653,
"delta": 0.4653,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.8186,
"delta": -0.1814,
"percent_delta": -0.1814,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 5,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.4653,
"delta": 0.4653,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.7501,
"delta": -0.2499,
"percent_delta": -0.2499,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1461,
"after": 0.0,
"delta": -0.1461,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0134,
"after": 0.0,
"delta": -0.0134,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.3952,
"after": 1.0,
"delta": 0.6048,
"percent_delta": 1.5304,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.7501,
"after": 1.0,
"delta": 0.2499,
"percent_delta": 0.3332,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1139,
"after": 0.0,
"delta": -0.1139,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.4653,
"after": 0.0,
"delta": -0.4653,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.8186,
"after": 1.0,
"delta": 0.1814,
"percent_delta": 0.2216,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 3,
"deboosted_metrics": 3,
"better_metrics": 2,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.3952,
"after": 1.0,
"delta": 0.6048,
"percent_delta": 1.5304,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.4653,
"after": 0.0,
"delta": -0.4653,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.211,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.296,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.356,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2367,
"after": 0.211,
"delta": -0.0257,
"percent_delta": -0.1086,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3176,
"after": 0.296,
"delta": -0.0216,
"percent_delta": -0.068,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3882,
"after": 0.356,
"delta": -0.0322,
"percent_delta": -0.0829,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 0,
"deboosted_metrics": 4,
"better_metrics": 0,
"worse_metrics": 4,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.2367,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3176,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_RF": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.3882,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.211,
"after": 0.2367,
"delta": 0.0257,
"percent_delta": 0.1219,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.296,
"after": 0.3176,
"delta": 0.0216,
"percent_delta": 0.073,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.356,
"after": 0.3882,
"delta": 0.0322,
"percent_delta": 0.0905,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.356,
"after": 0.3882,
"delta": 0.0322,
"percent_delta": 0.0905,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.153,
"after": 0.0,
"delta": -0.153,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.027,
"after": 0.0,
"delta": -0.027,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.89,
"after": 4.0,
"delta": 0.11,
"percent_delta": 0.0283,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.223,
"after": 0.2367,
"delta": 0.0137,
"percent_delta": 0.0614,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.487,
"after": 0.0,
"delta": -0.487,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.87,
"after": 0.0,
"delta": -0.87,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.14,
"after": 0.0,
"delta": -0.14,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.309,
"after": 0.3176,
"delta": 0.0086,
"percent_delta": 0.0278,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.593,
"after": 0.0,
"delta": -0.593,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.37,
"after": 0.0,
"delta": -0.37,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.367,
"after": 0.3882,
"delta": 0.0212,
"percent_delta": 0.0578,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.693,
"after": 1.0,
"delta": 0.307,
"percent_delta": 0.443,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 11,
"boosted_metrics": 5,
"deboosted_metrics": 6,
"better_metrics": 4,
"worse_metrics": 7,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.693,
"after": 1.0,
"delta": 0.307,
"percent_delta": 0.443,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 0.87,
"after": 0.0,
"delta": -0.87,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.153 | - |
| predicted_3B | 0.027 | - |
| predicted_AB | 3.890 | - |
| predicted_AVG | 0.223 | - |
| predicted_BB | 0.487 | - |
| predicted_H | 0.870 | - |
| predicted_HR | 0.140 | - |
| predicted_OBP | 0.309 | - |
| predicted_R | 0.593 | - |
| predicted_RBI | 0.370 | - |
| predicted_SLG | 0.367 | - |
| predicted_SO | 0.693 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.146 | -0.007 |
| predicted_3B | 0.022 | -0.005 |
| predicted_AB | 3.793 | -0.097 |
| predicted_AVG | 0.233 | 0.010 |
| predicted_BB | 0.445 | -0.042 |
| predicted_H | 0.885 | 0.015 |
| predicted_HBP | 0.013 | - |
| predicted_HR | 0.127 | -0.013 |
| predicted_OBP | 0.314 | 0.005 |
| predicted_R | 0.586 | -0.007 |
| predicted_RBI | 0.372 | 0.002 |
| predicted_SLG | 0.375 | 0.008 |
| predicted_SO | 0.656 | -0.037 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.146 | 0.000 |
| predicted_3B | 0.022 | 0.000 |
| predicted_AB | 3.793 | 0.000 |
| predicted_AVG | 0.237 | 0.003 |
| predicted_BB | 0.450 | 0.005 |
| predicted_H | 0.898 | 0.013 |
| predicted_HBP | 0.013 | 0.000 |
| predicted_HR | 0.128 | 0.001 |
| predicted_OBP | 0.318 | 0.004 |
| predicted_R | 0.602 | 0.016 |
| predicted_RBI | 0.382 | 0.010 |
| predicted_SLG | 0.388 | 0.014 |
| predicted_SO | 0.650 | -0.007 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=3.89), rates preserved: AVG=0.211 HR/AB=0.033
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.146 | 0.146 |
| 3B | 0.013 | 0.013 |
| BB | 0.395 | 0.395 |
| H | 0.750 | -0.250 |
| HR | 0.114 | 0.114 |
| RBI | 0.465 | 0.465 |
| SO | 0.819 | -0.181 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.146 |
| 3B | 0.000 | -0.013 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 0.605 |
| H | 1.000 | 0.250 |
| HR | 0.000 | -0.114 |
| R | 1.000 | 0.000 |
| RBI | 0.000 | -0.465 |
| SO | 1.000 | 0.181 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.146 |
| predicted_3B | 0.000 | -0.022 |
| predicted_AB | 4.000 | 0.207 |
| predicted_AVG | 0.211 | -0.026 |
| predicted_BB | 0.000 | -0.450 |
| predicted_H | 1.000 | 0.102 |
| predicted_HR | 0.000 | -0.128 |
| predicted_OBP | 0.296 | -0.022 |
| predicted_R | 1.000 | 0.398 |
| predicted_RBI | 0.000 | -0.382 |
| predicted_SLG | 0.356 | -0.032 |
| predicted_SO | 1.000 | 0.350 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -1.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | -1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | -1.000 |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 20.000 | 4.000 | 0.000 | 0.000 | 0.000 | 0.000 | 2.000 | 1.000 | 3.000 | 0.2000 | 0.2381 | 0.2000 | 0.2000 | 0.0000 | 0.0000 | 0.0500 | 0.1500 |
| last_10 | 0.20 | 10 | - | 36.000 | 12.000 | 2.000 | 0.000 | 2.000 | 4.000 | 7.000 | 3.000 | 3.000 | 0.3333 | 0.3846 | 0.5556 | 0.3333 | 0.0556 | 0.1111 | 0.0833 | 0.0833 |
| season | 0.60 | 150 | - | 535.000 | 125.000 | 23.000 | 4.000 | 17.000 | 70.000 | 89.000 | 73.000 | 104.000 | 0.2336 | 0.3258 | 0.3869 | 0.2336 | 0.0318 | 0.1308 | 0.1364 | 0.1944 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1370 |
| predicted_3B | 0.0160 |
| predicted_AB | 3.6670 |
| predicted_AVG | 0.2469 |
| predicted_BB | 0.3910 |
| predicted_H | 0.9050 |
| predicted_HBP | 0.0130 |
| predicted_HR | 0.1110 |
| predicted_OBP | 0.3193 |
| predicted_R | 0.5770 |
| predicted_RBI | 0.3740 |
| predicted_SLG | 0.3844 |
| predicted_SO | 0.6090 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1530 | 0.1370 | 0.1460 | model_form_blend |
| predicted_3B | 0.0270 | 0.0160 | 0.0222 | model_form_blend |
| predicted_AB | 3.8900 | 3.6670 | 3.7927 | model_form_blend |
| predicted_AVG | 0.2230 | 0.2469 | 0.2334 | model_form_blend |
| predicted_BB | 0.4870 | 0.3910 | 0.4451 | model_form_blend |
| predicted_H | 0.8700 | 0.9050 | 0.8853 | model_form_blend |
| predicted_HBP | - | 0.0130 | 0.0130 | form_only |
| predicted_HR | 0.1400 | 0.1110 | 0.1273 | model_form_blend |
| predicted_OBP | 0.3090 | 0.3193 | 0.3135 | model_form_blend |
| predicted_R | 0.5930 | 0.5770 | 0.5860 | model_form_blend |
| predicted_RBI | 0.3700 | 0.3740 | 0.3717 | model_form_blend |
| predicted_SLG | 0.3670 | 0.3844 | 0.3746 | model_form_blend |
| predicted_SO | 0.6930 | 0.6090 | 0.6563 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 598 |
| Season rows before report date | 598 |
| Report year | 2026 |
| Profile rows used | 150 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 5 |
| Hitting_AVG | 0.2 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 1 |
| Hitting_battingOrder | 4 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | RF |
| gameID | 20260927_LAD@SF |
| game_type | full |
| mlbID | 663656 |
| playerID | 663656 |
| playerName | Kyle Tucker |
| pos | RF |
| started | True |
| startingPosition | RF |
| team | LAD |
| teamID | 14 |
| game_date | 2026-09-27 |
| sl_k_percent | 16.7 |
| sl_bb_percent | 12.4 |
| sl_woba | 0.318 |
| sl_xwoba | 0.331 |
| sl_xba | 0.256 |
| sl_xslg | 0.393 |
| sl_sweet_spot_percent | 34.2 |
| sl_barrel_batted_rate | 6.4 |
| sl_hard_hit_percent | 36.3 |
| sl_exit_velocity_avg | 88.5 |
| sl_launch_angle_avg | 18.1 |
| sl_whiff_percent | 20.8 |
| sl_swing_percent | 48.5 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.150 | 0.000 | 0.000 | Hitting_2B | 0.160 | 1.000 | -0.160 | -1.000 |
| predicted_3B | 0.025 | 0.000 | 0.000 | Hitting_3B | 0.029 | 0.000 | -0.029 | 0.000 |
| predicted_AB | 3.800 | 2.000 | 3.000 | Hitting_AB | 3.723 | 3.000 | -1.723 | -1.000 |
| predicted_AVG | 0.247 | 0.000 | 0.000 | Hitting_AVG | 0.254 | 0.667 | -0.254 | -0.667 |
| predicted_BB | 0.262 | 1.000 | 0.000 | Hitting_BB | 0.287 | 1.000 | 0.713 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.036 | 0.000 | -0.036 | 0.000 |
| predicted_H | 0.940 | 0.000 | 0.000 | Hitting_H | 0.945 | 2.000 | -0.945 | -2.000 |
| predicted_HR | 0.140 | 0.000 | 0.000 | Hitting_HR | 0.101 | 0.000 | -0.101 | 0.000 |
| predicted_OBP | 0.315 | 0.333 | 0.000 | Hitting_OBP | 0.338 | 0.750 | -0.005 | -0.417 |
| predicted_R | 0.512 | 0.000 | 0.000 | Hitting_R | 0.570 | 0.000 | -0.570 | 0.000 |
| predicted_RBI | 0.590 | 0.000 | 0.000 | Hitting_RBI | 0.524 | 0.000 | -0.524 | 0.000 |
| predicted_SB | - | 0.000 | 0.000 | BaseRunning_SB | 0.091 | 1.000 | -0.091 | -1.000 |
| predicted_SLG | 0.403 | 0.000 | 0.000 | Hitting_SLG | 0.394 | 1.000 | -0.394 | -1.000 |
| predicted_SO | 0.825 | 2.000 | 1.000 | Hitting_SO | 0.857 | 0.000 | 1.143 | 2.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 10 |
| Boosted Metrics | 3 |
| Deboosted Metrics | 7 |
| Better Metrics | 2 |
| Worse Metrics | 8 |
| Biggest Boost | predicted_SO: 0.8250 -> 2.0000 (boost 1.1750, worse) |
| Biggest Deboost | predicted_AB: 3.8000 -> 2.0000 (deboost -1.8000, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 2 | 1 | 1 | 1 | 1 | predicted_SLG: 0.4030 -> 0.4081 (boost 0.0051, better) | predicted_AB: 3.8000 -> 3.6959 (deboost -0.1041, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 2 | 1 | 1 | 1 | 1 | predicted_SLG: 0.4081 -> 0.4166 (boost 0.0085, better) | predicted_OBP: 0.3161 -> 0.3028 (deboost -0.0133, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 8 | 3 | 5 | 2 | 6 | predicted_RBI: 0.6159 -> 1.0000 (boost 0.3841, better) | predicted_AB: 3.6959 -> 3.0000 (deboost -0.6959, worse) | AB rounded to 3 (raw=3.80), rates preserved: AVG=0.222 HR/AB=0.037 |
| 6 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5244 -> 1.0000 (boost 0.4756, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 3 | 3 | 4 | 2 | predicted_BB: 0.0000 -> 0.2766 (boost 0.2766, better) | predicted_RBI: 1.0000 -> 0.4410 (deboost -0.5590, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 7 | 1 | 6 | 0 | 7 | predicted_SO: 0.8809 -> 1.0000 (boost 0.1191, worse) | predicted_R: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 6 | 3 | 3 | 3 | 3 | predicted_H: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_SLG: 0.4166 -> 0.3650 (deboost -0.0516, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 6 | 2 | 4 | 1 | 5 | predicted_BB: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_AB: 3.0000 -> 2.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_SLG: 0.3650 -> 0.4166 (boost 0.0516, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "669242",
"player_name": "Tommy Edman",
"position": "2B",
"team": "LAD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.15,
"predicted_3B": 0.025,
"predicted_AB": 3.8,
"predicted_AVG": 0.247,
"predicted_BB": 0.262,
"predicted_H": 0.94,
"predicted_HR": 0.14,
"predicted_OBP": 0.315,
"predicted_R": 0.512,
"predicted_RBI": 0.59,
"predicted_SLG": 0.403,
"predicted_SO": 0.825
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1513,
"predicted_3B": 0.0207,
"predicted_AB": 3.6959,
"predicted_AVG": 0.2463,
"predicted_BB": 0.2765,
"predicted_H": 0.9115,
"predicted_HBP": 0.11,
"predicted_HR": 0.14,
"predicted_OBP": 0.3161,
"predicted_R": 0.5103,
"predicted_RBI": 0.5994,
"predicted_SLG": 0.4081,
"predicted_SO": 0.822
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.15,
"after": 0.1513,
"delta": 0.0013,
"percent_delta": 0.0087,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.025,
"after": 0.0207,
"delta": -0.0043,
"percent_delta": -0.172,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.8,
"after": 3.6959,
"delta": -0.1041,
"percent_delta": -0.0274,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.247,
"after": 0.2463,
"delta": -0.0007,
"percent_delta": -0.0028,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.262,
"after": 0.2765,
"delta": 0.0145,
"percent_delta": 0.0553,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.94,
"after": 0.9115,
"delta": -0.0285,
"percent_delta": -0.0303,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.14,
"after": 0.14,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.315,
"after": 0.3161,
"delta": 0.0011,
"percent_delta": 0.0035,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.512,
"after": 0.5103,
"delta": -0.0017,
"percent_delta": -0.0033,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.59,
"after": 0.5994,
"delta": 0.0094,
"percent_delta": 0.0159,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.403,
"after": 0.4081,
"delta": 0.0051,
"percent_delta": 0.0127,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.825,
"after": 0.822,
"delta": -0.003,
"percent_delta": -0.0036,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.403,
"after": 0.4081,
"delta": 0.0051,
"percent_delta": 0.0127,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 3.8,
"after": 3.6959,
"delta": -0.1041,
"percent_delta": -0.0274,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 80
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1513,
"predicted_3B": 0.0207,
"predicted_AB": 3.6959,
"predicted_AVG": 0.2501,
"predicted_BB": 0.2793,
"predicted_H": 0.9244,
"predicted_HBP": 0.11,
"predicted_HR": 0.1408,
"predicted_OBP": 0.3028,
"predicted_R": 0.5244,
"predicted_RBI": 0.6159,
"predicted_SLG": 0.4166,
"predicted_SO": 0.8138
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1513,
"after": 0.1513,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0207,
"after": 0.0207,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.6959,
"after": 3.6959,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2463,
"after": 0.2501,
"delta": 0.0038,
"percent_delta": 0.0154,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.2765,
"after": 0.2793,
"delta": 0.0028,
"percent_delta": 0.0101,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.9115,
"after": 0.9244,
"delta": 0.0129,
"percent_delta": 0.0142,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.11,
"after": 0.11,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.14,
"after": 0.1408,
"delta": 0.0008,
"percent_delta": 0.0057,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3161,
"after": 0.3028,
"delta": -0.0133,
"percent_delta": -0.0421,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.5103,
"after": 0.5244,
"delta": 0.0141,
"percent_delta": 0.0276,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5994,
"after": 0.6159,
"delta": 0.0165,
"percent_delta": 0.0275,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4081,
"after": 0.4166,
"delta": 0.0085,
"percent_delta": 0.0208,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.822,
"after": 0.8138,
"delta": -0.0082,
"percent_delta": -0.01,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.4081,
"after": 0.4166,
"delta": 0.0085,
"percent_delta": 0.0208,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.3161,
"after": 0.3028,
"delta": -0.0133,
"percent_delta": -0.0421,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 3 (raw=3.80), rates preserved: AVG=0.222 HR/AB=0.037",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1513,
"after": 0.0,
"delta": -0.1513,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0207,
"after": 0.0,
"delta": -0.0207,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.6959,
"after": 3.0,
"delta": -0.6959,
"percent_delta": -0.1883,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.2793,
"after": 0.0,
"delta": -0.2793,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.9244,
"after": 1.0,
"delta": 0.0756,
"percent_delta": 0.0818,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.11,
"after": 0.0,
"delta": -0.11,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1408,
"after": 0.0,
"delta": -0.1408,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.6159,
"after": 1.0,
"delta": 0.3841,
"percent_delta": 0.6236,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.8138,
"after": 1.0,
"delta": 0.1862,
"percent_delta": 0.2288,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 8,
"boosted_metrics": 3,
"deboosted_metrics": 5,
"better_metrics": 2,
"worse_metrics": 6,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.6159,
"after": 1.0,
"delta": 0.3841,
"percent_delta": 0.6236,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 3.6959,
"after": 3.0,
"delta": -0.6959,
"percent_delta": -0.1883,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.5244,
"after": 1.0,
"delta": 0.4756,
"percent_delta": 0.9069,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.5244,
"after": 1.0,
"delta": 0.4756,
"percent_delta": 0.9069,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1584,
"predicted_3B": 0.0102,
"predicted_BB": 0.2766,
"predicted_H": 0.7349,
"predicted_HR": 0.1077,
"predicted_RBI": 0.441,
"predicted_SO": 0.8809
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1584,
"delta": 0.1584,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0102,
"delta": 0.0102,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.2766,
"delta": 0.2766,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.7349,
"delta": -0.2651,
"percent_delta": -0.2651,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1077,
"delta": 0.1077,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.441,
"delta": -0.559,
"percent_delta": -0.559,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.8809,
"delta": -0.1191,
"percent_delta": -0.1191,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 3,
"deboosted_metrics": 3,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 0.2766,
"delta": 0.2766,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.441,
"delta": -0.559,
"percent_delta": -0.559,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1584,
"after": 0.0,
"delta": -0.1584,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0102,
"after": 0.0,
"delta": -0.0102,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.2766,
"after": 0.0,
"delta": -0.2766,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.7349,
"after": 0.0,
"delta": -0.7349,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1077,
"after": 0.0,
"delta": -0.1077,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.441,
"after": 0.0,
"delta": -0.441,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.8809,
"after": 1.0,
"delta": 0.1191,
"percent_delta": 0.1352,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 1,
"deboosted_metrics": 6,
"better_metrics": 0,
"worse_metrics": 7,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.8809,
"after": 1.0,
"delta": 0.1191,
"percent_delta": 0.1352,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.217,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.282,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SLG": 0.365,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2501,
"after": 0.217,
"delta": -0.0331,
"percent_delta": -0.1323,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_H",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_OBP",
"before": 0.3028,
"after": 0.282,
"delta": -0.0208,
"percent_delta": -0.0687,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.4166,
"after": 0.365,
"delta": -0.0516,
"percent_delta": -0.1239,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 3,
"deboosted_metrics": 3,
"better_metrics": 3,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.4166,
"after": 0.365,
"delta": -0.0516,
"percent_delta": -0.1239,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 2.0,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 2,
"deboosted_metrics": 4,
"better_metrics": 1,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 2.0,
"predicted_AVG": 0.2501,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3028,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.4166,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.217,
"after": 0.2501,
"delta": 0.0331,
"percent_delta": 0.1525,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.282,
"after": 0.3028,
"delta": 0.0208,
"percent_delta": 0.0737,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.365,
"after": 0.4166,
"delta": 0.0516,
"percent_delta": 0.1412,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.365,
"after": 0.4166,
"delta": 0.0516,
"percent_delta": 0.1412,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.15,
"after": 0.0,
"delta": -0.15,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.025,
"after": 0.0,
"delta": -0.025,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.8,
"after": 2.0,
"delta": -1.8,
"percent_delta": -0.4737,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.247,
"after": 0.2501,
"delta": 0.0031,
"percent_delta": 0.0126,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.262,
"after": 1.0,
"delta": 0.738,
"percent_delta": 2.8168,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.94,
"after": 0.0,
"delta": -0.94,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.14,
"after": 0.0,
"delta": -0.14,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.315,
"after": 0.3028,
"delta": -0.0122,
"percent_delta": -0.0387,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.512,
"after": 0.0,
"delta": -0.512,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.59,
"after": 0.0,
"delta": -0.59,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.403,
"after": 0.4166,
"delta": 0.0136,
"percent_delta": 0.0337,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.825,
"after": 2.0,
"delta": 1.175,
"percent_delta": 1.4242,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 10,
"boosted_metrics": 3,
"deboosted_metrics": 7,
"better_metrics": 2,
"worse_metrics": 8,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.825,
"after": 2.0,
"delta": 1.175,
"percent_delta": 1.4242,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 3.8,
"after": 2.0,
"delta": -1.8,
"percent_delta": -0.4737,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.150 | - |
| predicted_3B | 0.025 | - |
| predicted_AB | 3.800 | - |
| predicted_AVG | 0.247 | - |
| predicted_BB | 0.262 | - |
| predicted_H | 0.940 | - |
| predicted_HR | 0.140 | - |
| predicted_OBP | 0.315 | - |
| predicted_R | 0.512 | - |
| predicted_RBI | 0.590 | - |
| predicted_SLG | 0.403 | - |
| predicted_SO | 0.825 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.151 | 0.001 |
| predicted_3B | 0.021 | -0.004 |
| predicted_AB | 3.696 | -0.104 |
| predicted_AVG | 0.246 | -0.001 |
| predicted_BB | 0.277 | 0.015 |
| predicted_H | 0.911 | -0.028 |
| predicted_HBP | 0.110 | - |
| predicted_HR | 0.140 | 0.000 |
| predicted_OBP | 0.316 | 0.001 |
| predicted_R | 0.510 | -0.002 |
| predicted_RBI | 0.599 | 0.009 |
| predicted_SLG | 0.408 | 0.005 |
| predicted_SO | 0.822 | -0.003 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.151 | 0.000 |
| predicted_3B | 0.021 | 0.000 |
| predicted_AB | 3.696 | 0.000 |
| predicted_AVG | 0.250 | 0.004 |
| predicted_BB | 0.279 | 0.003 |
| predicted_H | 0.924 | 0.013 |
| predicted_HBP | 0.110 | 0.000 |
| predicted_HR | 0.141 | 0.001 |
| predicted_OBP | 0.303 | -0.013 |
| predicted_R | 0.524 | 0.014 |
| predicted_RBI | 0.616 | 0.016 |
| predicted_SLG | 0.417 | 0.009 |
| predicted_SO | 0.814 | -0.008 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=3.80), rates preserved: AVG=0.222 HR/AB=0.037
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.158 | 0.158 |
| 3B | 0.010 | 0.010 |
| BB | 0.277 | 0.277 |
| H | 0.735 | -0.265 |
| HR | 0.108 | 0.108 |
| RBI | 0.441 | -0.559 |
| SO | 0.881 | -0.119 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.158 |
| 3B | 0.000 | -0.010 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | -0.277 |
| H | 0.000 | -0.735 |
| HR | 0.000 | -0.108 |
| R | 0.000 | -1.000 |
| RBI | 0.000 | -0.441 |
| SO | 1.000 | 0.119 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.151 |
| predicted_3B | 0.000 | -0.021 |
| predicted_AB | 3.000 | -0.696 |
| predicted_AVG | 0.217 | -0.033 |
| predicted_BB | 0.000 | -0.279 |
| predicted_H | 1.000 | 0.076 |
| predicted_HR | 0.000 | -0.141 |
| predicted_OBP | 0.282 | -0.021 |
| predicted_R | 1.000 | 0.476 |
| predicted_RBI | 1.000 | 0.384 |
| predicted_SLG | 0.365 | -0.052 |
| predicted_SO | 1.000 | 0.186 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 2.000 | -1.000 |
| BB | 1.000 | 1.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 3.000 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 2.000 | 1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 17.000 | 5.000 | 1.000 | 0.000 | 1.000 | 4.000 | 3.000 | 2.000 | 4.000 | 0.2941 | 0.3500 | 0.5294 | 0.2941 | 0.0588 | 0.2353 | 0.1177 | 0.2353 |
| last_10 | 0.20 | 10 | - | 35.000 | 7.000 | 1.000 | 0.000 | 2.000 | 8.000 | 4.000 | 3.000 | 8.000 | 0.2000 | 0.2750 | 0.4000 | 0.2000 | 0.0571 | 0.2286 | 0.0857 | 0.2286 |
| season | 0.60 | 80 | - | 287.000 | 70.000 | 12.000 | 2.000 | 8.000 | 40.000 | 41.000 | 21.000 | 66.000 | 0.2439 | 0.3230 | 0.3833 | 0.2439 | 0.0279 | 0.1394 | 0.0732 | 0.2300 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1530 |
| predicted_3B | 0.0150 |
| predicted_AB | 3.5550 |
| predicted_AVG | 0.2454 |
| predicted_BB | 0.2960 |
| predicted_H | 0.8730 |
| predicted_HBP | 0.1100 |
| predicted_HR | 0.1400 |
| predicted_OBP | 0.3177 |
| predicted_R | 0.5080 |
| predicted_RBI | 0.6120 |
| predicted_SLG | 0.4151 |
| predicted_SO | 0.8180 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1500 | 0.1530 | 0.1513 | model_form_blend |
| predicted_3B | 0.0250 | 0.0150 | 0.0207 | model_form_blend |
| predicted_AB | 3.8000 | 3.5550 | 3.6959 | model_form_blend |
| predicted_AVG | 0.2470 | 0.2454 | 0.2463 | model_form_blend |
| predicted_BB | 0.2620 | 0.2960 | 0.2765 | model_form_blend |
| predicted_H | 0.9400 | 0.8730 | 0.9115 | model_form_blend |
| predicted_HBP | - | 0.1100 | 0.1100 | form_only |
| predicted_HR | 0.1400 | 0.1400 | 0.1400 | model_form_blend |
| predicted_OBP | 0.3150 | 0.3177 | 0.3161 | model_form_blend |
| predicted_R | 0.5120 | 0.5080 | 0.5103 | model_form_blend |
| predicted_RBI | 0.5900 | 0.6120 | 0.5994 | model_form_blend |
| predicted_SLG | 0.4030 | 0.4151 | 0.4081 | model_form_blend |
| predicted_SO | 0.8250 | 0.8180 | 0.8220 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 307 |
| Season rows before report date | 307 |
| Report year | 2026 |
| Profile rows used | 80 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 3 |
| AB | 2 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 1 |
| SO | 2 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 1 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 1 |
| Hitting_3B | 0 |
| Hitting_AB | 3 |
| Hitting_AVG | 0.667 |
| Hitting_BB | 1 |
| Hitting_GIDP | 0 |
| Hitting_H | 2 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 3 |
| Hitting_battingOrder | 9 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | 2B |
| gameID | 20260927_LAD@SF |
| game_type | full |
| mlbID | 669242 |
| playerID | 669242 |
| playerName | Tommy Edman |
| pos | 2B |
| started | True |
| startingPosition | 2B |
| team | LAD |
| teamID | 14 |
| game_date | 2026-09-27 |
| sl_k_percent | 20.2 |
| sl_bb_percent | 6.6 |
| sl_woba | 0.32 |
| sl_xwoba | 0.303 |
| sl_xba | 0.24 |
| sl_xslg | 0.347 |
| sl_sweet_spot_percent | 29.4 |
| sl_barrel_batted_rate | 5.3 |
| sl_hard_hit_percent | 32.0 |
| sl_exit_velocity_avg | 87.3 |
| sl_launch_angle_avg | 13.1 |
| sl_whiff_percent | 23.0 |
| sl_swing_percent | 46.4 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.189 | 0.000 | 0.000 | Hitting_2B | 0.199 | 0.000 | -0.199 | 0.000 |
| predicted_3B | 0.015 | 0.000 | 0.000 | Hitting_3B | 0.018 | 0.000 | -0.018 | 0.000 |
| predicted_AB | 4.630 | 4.000 | 3.000 | Hitting_AB | 3.959 | 3.000 | 0.041 | 1.000 |
| predicted_AVG | 0.261 | 0.500 | 0.333 | Hitting_AVG | 0.276 | 0.333 | 0.224 | 0.167 |
| predicted_BB | 0.371 | 0.000 | 0.000 | Hitting_BB | 0.381 | 1.000 | -0.381 | -1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.054 | 0.000 | -0.054 | 0.000 |
| predicted_H | 1.210 | 2.000 | 1.000 | Hitting_H | 1.092 | 1.000 | 0.908 | 1.000 |
| predicted_HR | 0.250 | 1.000 | 0.000 | Hitting_HR | 0.174 | 1.000 | 0.826 | 0.000 |
| predicted_OBP | 0.380 | 0.500 | 0.333 | Hitting_OBP | 0.343 | 0.400 | 0.157 | 0.100 |
| predicted_R | 0.568 | 1.000 | 1.000 | Hitting_R | 0.627 | 1.000 | 0.373 | 0.000 |
| predicted_RBI | 1.010 | 2.000 | 1.000 | Hitting_RBI | 0.655 | 4.000 | 1.345 | -2.000 |
| predicted_SLG | 0.497 | 1.250 | 0.333 | Hitting_SLG | 0.467 | 1.333 | 0.783 | -0.083 |
| predicted_SO | 0.841 | 0.000 | 1.000 | Hitting_SO | 0.838 | 1.000 | -0.838 | -1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 11 |
| Boosted Metrics | 6 |
| Deboosted Metrics | 5 |
| Better Metrics | 7 |
| Worse Metrics | 4 |
| Biggest Boost | predicted_RBI: 1.0100 -> 2.0000 (boost 0.9900, better) |
| Biggest Deboost | predicted_SO: 0.8410 -> 0.0000 (deboost -0.8410, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 4 | 2 | 2 | 2 | 2 | predicted_SLG: 0.4970 -> 0.5203 (boost 0.0233, better) | predicted_AB: 4.6300 -> 4.1877 (deboost -0.4423, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 2 | 0 | 2 | 0 | 2 | - | predicted_OBP: 0.3798 -> 0.3447 (deboost -0.0351, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 8 | 2 | 6 | 1 | 7 | predicted_SO: 0.8645 -> 1.0000 (boost 0.1355, worse) | predicted_AB: 4.1877 -> 3.0000 (deboost -1.1877, worse) | AB rounded to 3 (raw=4.63), rates preserved: AVG=0.232 HR/AB=0.052 |
| 6 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5707 -> 1.0000 (boost 0.4293, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 3 | 3 | 4 | 2 | predicted_BB: 0.0000 -> 0.3386 (boost 0.3386, better) | predicted_RBI: 1.0000 -> 0.5139 (deboost -0.4861, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 6 | 3 | 3 | 2 | 4 | predicted_RBI: 0.5139 -> 1.0000 (boost 0.4861, better) | predicted_BB: 0.3386 -> 0.0000 (deboost -0.3386, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 3 | 0 | 3 | 0 | 3 | - | predicted_SLG: 0.5056 -> 0.4140 (deboost -0.0916, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 5 | 4 | 1 | 5 | 0 | predicted_AB: 3.0000 -> 4.0000 (boost 1.0000, better) | predicted_SO: 1.0000 -> 0.0000 (deboost -1.0000, better) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_SLG: 0.4140 -> 0.5056 (boost 0.0916, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "681624",
"player_name": "Andy Pages",
"position": "CF",
"team": "LAD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.189,
"predicted_3B": 0.015,
"predicted_AB": 4.63,
"predicted_AVG": 0.261,
"predicted_BB": 0.371,
"predicted_H": 1.21,
"predicted_HR": 0.25,
"predicted_OBP": 0.38,
"predicted_R": 0.568,
"predicted_RBI": 1.01,
"predicted_SLG": 0.497,
"predicted_SO": 0.841
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1916,
"predicted_3B": 0.0124,
"predicted_AB": 4.1877,
"predicted_AVG": 0.2794,
"predicted_BB": 0.4028,
"predicted_H": 1.1604,
"predicted_HBP": 0.072,
"predicted_HR": 0.24,
"predicted_OBP": 0.3798,
"predicted_R": 0.5554,
"predicted_RBI": 0.8855,
"predicted_SLG": 0.5203,
"predicted_SO": 0.8732
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.189,
"after": 0.1916,
"delta": 0.0026,
"percent_delta": 0.0138,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.015,
"after": 0.0124,
"delta": -0.0026,
"percent_delta": -0.1733,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.63,
"after": 4.1877,
"delta": -0.4423,
"percent_delta": -0.0955,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.261,
"after": 0.2794,
"delta": 0.0184,
"percent_delta": 0.0705,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.371,
"after": 0.4028,
"delta": 0.0318,
"percent_delta": 0.0857,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.21,
"after": 1.1604,
"delta": -0.0496,
"percent_delta": -0.041,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.25,
"after": 0.24,
"delta": -0.01,
"percent_delta": -0.04,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.38,
"after": 0.3798,
"delta": -0.0002,
"percent_delta": -0.0005,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.568,
"after": 0.5554,
"delta": -0.0126,
"percent_delta": -0.0222,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.01,
"after": 0.8855,
"delta": -0.1245,
"percent_delta": -0.1233,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.497,
"after": 0.5203,
"delta": 0.0233,
"percent_delta": 0.0469,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.841,
"after": 0.8732,
"delta": 0.0322,
"percent_delta": 0.0383,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 2,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.497,
"after": 0.5203,
"delta": 0.0233,
"percent_delta": 0.0469,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.63,
"after": 4.1877,
"delta": -0.4423,
"percent_delta": -0.0955,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 132
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1916,
"predicted_3B": 0.0124,
"predicted_AB": 4.1877,
"predicted_AVG": 0.281,
"predicted_BB": 0.4068,
"predicted_H": 1.1768,
"predicted_HBP": 0.072,
"predicted_HR": 0.2414,
"predicted_OBP": 0.3447,
"predicted_R": 0.5707,
"predicted_RBI": 0.9099,
"predicted_SLG": 0.5056,
"predicted_SO": 0.8645
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1916,
"after": 0.1916,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0124,
"after": 0.0124,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.1877,
"after": 4.1877,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2794,
"after": 0.281,
"delta": 0.0016,
"percent_delta": 0.0057,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.4028,
"after": 0.4068,
"delta": 0.004,
"percent_delta": 0.0099,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.1604,
"after": 1.1768,
"delta": 0.0164,
"percent_delta": 0.0141,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.072,
"after": 0.072,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.24,
"after": 0.2414,
"delta": 0.0014,
"percent_delta": 0.0058,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3798,
"after": 0.3447,
"delta": -0.0351,
"percent_delta": -0.0924,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.5554,
"after": 0.5707,
"delta": 0.0153,
"percent_delta": 0.0275,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.8855,
"after": 0.9099,
"delta": 0.0244,
"percent_delta": 0.0276,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.5203,
"after": 0.5056,
"delta": -0.0147,
"percent_delta": -0.0283,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.8732,
"after": 0.8645,
"delta": -0.0087,
"percent_delta": -0.01,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.3798,
"after": 0.3447,
"delta": -0.0351,
"percent_delta": -0.0924,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 3 (raw=4.63), rates preserved: AVG=0.232 HR/AB=0.052",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1916,
"after": 0.0,
"delta": -0.1916,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0124,
"after": 0.0,
"delta": -0.0124,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.1877,
"after": 3.0,
"delta": -1.1877,
"percent_delta": -0.2836,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.4068,
"after": 0.0,
"delta": -0.4068,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.1768,
"after": 1.0,
"delta": -0.1768,
"percent_delta": -0.1502,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.072,
"after": 0.0,
"delta": -0.072,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.2414,
"after": 0.0,
"delta": -0.2414,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.9099,
"after": 1.0,
"delta": 0.0901,
"percent_delta": 0.099,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.8645,
"after": 1.0,
"delta": 0.1355,
"percent_delta": 0.1567,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 8,
"boosted_metrics": 2,
"deboosted_metrics": 6,
"better_metrics": 1,
"worse_metrics": 7,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.8645,
"after": 1.0,
"delta": 0.1355,
"percent_delta": 0.1567,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.1877,
"after": 3.0,
"delta": -1.1877,
"percent_delta": -0.2836,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.5707,
"after": 1.0,
"delta": 0.4293,
"percent_delta": 0.7522,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.5707,
"after": 1.0,
"delta": 0.4293,
"percent_delta": 0.7522,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.168,
"predicted_3B": 0.0086,
"predicted_BB": 0.3386,
"predicted_H": 0.7887,
"predicted_HR": 0.1487,
"predicted_RBI": 0.5139,
"predicted_SO": 0.8478
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.168,
"delta": 0.168,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0086,
"delta": 0.0086,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.3386,
"delta": 0.3386,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.7887,
"delta": -0.2113,
"percent_delta": -0.2113,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1487,
"delta": 0.1487,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.5139,
"delta": -0.4861,
"percent_delta": -0.4861,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.8478,
"delta": -0.1522,
"percent_delta": -0.1522,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 3,
"deboosted_metrics": 3,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 0.3386,
"delta": 0.3386,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.5139,
"delta": -0.4861,
"percent_delta": -0.4861,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.168,
"after": 0.0,
"delta": -0.168,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0086,
"after": 0.0,
"delta": -0.0086,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.3386,
"after": 0.0,
"delta": -0.3386,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.7887,
"after": 1.0,
"delta": 0.2113,
"percent_delta": 0.2679,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1487,
"after": 0.0,
"delta": -0.1487,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5139,
"after": 1.0,
"delta": 0.4861,
"percent_delta": 0.9459,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.8478,
"after": 1.0,
"delta": 0.1522,
"percent_delta": 0.1795,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 3,
"deboosted_metrics": 3,
"better_metrics": 2,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.5139,
"after": 1.0,
"delta": 0.4861,
"percent_delta": 0.9459,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.3386,
"after": 0.0,
"delta": -0.3386,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.23,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.305,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SLG": 0.414,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.281,
"after": 0.23,
"delta": -0.051,
"percent_delta": -0.1815,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3447,
"after": 0.305,
"delta": -0.0397,
"percent_delta": -0.1152,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.5056,
"after": 0.414,
"delta": -0.0916,
"percent_delta": -0.1812,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.5056,
"after": 0.414,
"delta": -0.0916,
"percent_delta": -0.1812,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 2.0,
"predicted_HBP": 0.0,
"predicted_HR": 1.0,
"predicted_R": 1.0,
"predicted_RBI": 2.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 4,
"deboosted_metrics": 1,
"better_metrics": 5,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.281,
"predicted_BB": 0.0,
"predicted_CF": 0.0,
"predicted_CS": 0.0,
"predicted_H": 2.0,
"predicted_HBP": 0.0,
"predicted_HR": 1.0,
"predicted_OBP": 0.3447,
"predicted_R": 1.0,
"predicted_RBI": 2.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.5056,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.23,
"after": 0.281,
"delta": 0.051,
"percent_delta": 0.2218,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"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_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.305,
"after": 0.3447,
"delta": 0.0397,
"percent_delta": 0.1301,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.414,
"after": 0.5056,
"delta": 0.0916,
"percent_delta": 0.2213,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.414,
"after": 0.5056,
"delta": 0.0916,
"percent_delta": 0.2213,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.189,
"after": 0.0,
"delta": -0.189,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.015,
"after": 0.0,
"delta": -0.015,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.63,
"after": 4.0,
"delta": -0.63,
"percent_delta": -0.1361,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.261,
"after": 0.281,
"delta": 0.02,
"percent_delta": 0.0766,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.371,
"after": 0.0,
"delta": -0.371,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.21,
"after": 2.0,
"delta": 0.79,
"percent_delta": 0.6529,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.25,
"after": 1.0,
"delta": 0.75,
"percent_delta": 3.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.38,
"after": 0.3447,
"delta": -0.0353,
"percent_delta": -0.0929,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.568,
"after": 1.0,
"delta": 0.432,
"percent_delta": 0.7606,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.01,
"after": 2.0,
"delta": 0.99,
"percent_delta": 0.9802,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.497,
"after": 0.5056,
"delta": 0.0086,
"percent_delta": 0.0173,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.841,
"after": 0.0,
"delta": -0.841,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 11,
"boosted_metrics": 6,
"deboosted_metrics": 5,
"better_metrics": 7,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 1.01,
"after": 2.0,
"delta": 0.99,
"percent_delta": 0.9802,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 0.841,
"after": 0.0,
"delta": -0.841,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.189 | - |
| predicted_3B | 0.015 | - |
| predicted_AB | 4.630 | - |
| predicted_AVG | 0.261 | - |
| predicted_BB | 0.371 | - |
| predicted_H | 1.210 | - |
| predicted_HR | 0.250 | - |
| predicted_OBP | 0.380 | - |
| predicted_R | 0.568 | - |
| predicted_RBI | 1.010 | - |
| predicted_SLG | 0.497 | - |
| predicted_SO | 0.841 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.192 | 0.003 |
| predicted_3B | 0.012 | -0.003 |
| predicted_AB | 4.188 | -0.442 |
| predicted_AVG | 0.279 | 0.018 |
| predicted_BB | 0.403 | 0.032 |
| predicted_H | 1.160 | -0.050 |
| predicted_HBP | 0.072 | - |
| predicted_HR | 0.240 | -0.010 |
| predicted_OBP | 0.380 | -0.000 |
| predicted_R | 0.555 | -0.013 |
| predicted_RBI | 0.885 | -0.125 |
| predicted_SLG | 0.520 | 0.023 |
| predicted_SO | 0.873 | 0.032 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.192 | 0.000 |
| predicted_3B | 0.012 | 0.000 |
| predicted_AB | 4.188 | 0.000 |
| predicted_AVG | 0.281 | 0.002 |
| predicted_BB | 0.407 | 0.004 |
| predicted_H | 1.177 | 0.016 |
| predicted_HBP | 0.072 | 0.000 |
| predicted_HR | 0.241 | 0.001 |
| predicted_OBP | 0.345 | -0.035 |
| predicted_R | 0.571 | 0.015 |
| predicted_RBI | 0.910 | 0.024 |
| predicted_SLG | 0.506 | -0.015 |
| predicted_SO | 0.865 | -0.009 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=4.63), rates preserved: AVG=0.232 HR/AB=0.052
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.168 | 0.168 |
| 3B | 0.009 | 0.009 |
| BB | 0.339 | 0.339 |
| H | 0.789 | -0.211 |
| HR | 0.149 | 0.149 |
| RBI | 0.514 | -0.486 |
| SO | 0.848 | -0.152 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.168 |
| 3B | 0.000 | -0.009 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | -0.339 |
| H | 1.000 | 0.211 |
| HR | 0.000 | -0.149 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.486 |
| SO | 1.000 | 0.152 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.192 |
| predicted_3B | 0.000 | -0.012 |
| predicted_AB | 3.000 | -1.188 |
| predicted_AVG | 0.230 | -0.051 |
| predicted_BB | 0.000 | -0.407 |
| predicted_H | 1.000 | -0.177 |
| predicted_HR | 0.000 | -0.241 |
| predicted_OBP | 0.305 | -0.040 |
| predicted_R | 1.000 | 0.429 |
| predicted_RBI | 1.000 | 0.090 |
| predicted_SLG | 0.414 | -0.092 |
| predicted_SO | 1.000 | 0.135 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 1.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 2.000 | 1.000 |
| HBP | 0.000 | 0.000 |
| HR | 1.000 | 1.000 |
| PA | 4.000 | - |
| R | 1.000 | 0.000 |
| RBI | 2.000 | 1.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 16.000 | 6.000 | 1.000 | 0.000 | 2.000 | 5.000 | 2.000 | 3.000 | 6.000 | 0.3750 | 0.4500 | 0.8125 | 0.3750 | 0.1250 | 0.3125 | 0.1875 | 0.3750 |
| last_10 | 0.20 | 10 | - | 33.000 | 11.000 | 2.000 | 0.000 | 2.000 | 7.000 | 6.000 | 5.000 | 8.000 | 0.3333 | 0.4390 | 0.5758 | 0.3333 | 0.0606 | 0.2121 | 0.1515 | 0.2424 |
| season | 0.60 | 132 | - | 507.000 | 139.000 | 25.000 | 2.000 | 23.000 | 84.000 | 75.000 | 49.000 | 111.000 | 0.2742 | 0.3427 | 0.4675 | 0.2742 | 0.0454 | 0.1657 | 0.0966 | 0.2189 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1950 |
| predicted_3B | 0.0090 |
| predicted_AB | 3.6140 |
| predicted_AVG | 0.3033 |
| predicted_BB | 0.4440 |
| predicted_H | 1.0960 |
| predicted_HBP | 0.0720 |
| predicted_HR | 0.2270 |
| predicted_OBP | 0.3795 |
| predicted_R | 0.5390 |
| predicted_RBI | 0.7240 |
| predicted_SLG | 0.5506 |
| predicted_SO | 0.9150 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1890 | 0.1950 | 0.1916 | model_form_blend |
| predicted_3B | 0.0150 | 0.0090 | 0.0124 | model_form_blend |
| predicted_AB | 4.6300 | 3.6140 | 4.1877 | model_form_blend |
| predicted_AVG | 0.2610 | 0.3033 | 0.2794 | model_form_blend |
| predicted_BB | 0.3710 | 0.4440 | 0.4028 | model_form_blend |
| predicted_H | 1.2100 | 1.0960 | 1.1604 | model_form_blend |
| predicted_HBP | - | 0.0720 | 0.0720 | form_only |
| predicted_HR | 0.2500 | 0.2270 | 0.2400 | model_form_blend |
| predicted_OBP | 0.3800 | 0.3795 | 0.3798 | model_form_blend |
| predicted_R | 0.5680 | 0.5390 | 0.5554 | model_form_blend |
| predicted_RBI | 1.0100 | 0.7240 | 0.8855 | model_form_blend |
| predicted_SLG | 0.4970 | 0.5506 | 0.5203 | model_form_blend |
| predicted_SO | 0.8410 | 0.9150 | 0.8732 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 557 |
| Season rows before report date | 557 |
| Report year | 2026 |
| Profile rows used | 132 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 2 |
| 2B | 0 |
| 3B | 0 |
| HR | 1 |
| R | 1 |
| RBI | 2 |
| BB | 0 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 3 |
| Hitting_AVG | 0.333 |
| Hitting_BB | 1 |
| Hitting_GIDP | 1 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 1 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 4 |
| Hitting_SAC | 0 |
| Hitting_SF | 1 |
| Hitting_SO | 1 |
| Hitting_TB | 4 |
| Hitting_battingOrder | 7 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | CF |
| gameID | 20260927_LAD@SF |
| game_type | full |
| mlbID | 681624 |
| playerID | 681624 |
| playerName | Andy Pages |
| pos | CF |
| started | True |
| startingPosition | CF |
| team | LAD |
| teamID | 14 |
| game_date | 2026-09-27 |
| sl_k_percent | 19.7 |
| sl_bb_percent | 8.5 |
| sl_woba | 0.352 |
| sl_xwoba | 0.343 |
| sl_xba | 0.274 |
| sl_xslg | 0.442 |
| sl_sweet_spot_percent | 37.4 |
| sl_barrel_batted_rate | 7.9 |
| sl_hard_hit_percent | 42.3 |
| sl_exit_velocity_avg | 88.9 |
| sl_launch_angle_avg | 15.7 |
| sl_whiff_percent | 22.1 |
| sl_swing_percent | 47.2 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 1.000 | 1.000 | 1.000 | Pitching_BB | 1.300 | 0.000 | -0.300 | 1.000 |
| predicted_ER | 1.000 | 1.000 | 1.000 | Pitching_ER | 1.800 | 0.000 | -0.800 | 1.000 |
| predicted_H | 5.000 | 5.000 | 5.000 | Pitching_H | 5.200 | 3.000 | -0.200 | 2.000 |
| predicted_IP | 6.100 | 6.100 | 6.100 | Pitching_InningsPitched | 6.130 | 7.000 | -0.030 | -0.900 |
| predicted_SO | 7.000 | 7.000 | 7.000 | Pitching_SO | 7.000 | 10.000 | 0.000 | -3.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_form_blend |
| To | current_json_final |
| Dominant Effect | neutral |
| Changed Metrics | 2 |
| Boosted Metrics | 1 |
| Deboosted Metrics | 1 |
| Better Metrics | 1 |
| Worse Metrics | 1 |
| Biggest Boost | predicted_SO: 5.0000 -> 7.0000 (boost 2.0000, better) |
| Biggest Deboost | predicted_IP: 6.3333 -> 6.1000 (deboost -0.2333, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 2 | pitcher_quality_guardrail | 2 | 1 | 1 | 1 | 1 | predicted_SO: 5.0000 -> 7.0000 (boost 2.0000, better) | predicted_IP: 6.3333 -> 6.1000 (deboost -0.2333, worse) | Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form. |
| 3 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "pitcher",
"player_id": "669373",
"player_name": "Tarik Skubal",
"position": "Starter",
"team": "LAD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.3333,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "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": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 5.0,
"after": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 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": 7.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.1,
"after": 6.1,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 7.0,
"after": 7.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 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": 5.0,
"after": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 7.0,
"delta": 2.0,
"percent_delta": 0.4,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 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"
}
}
}Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 1.000 | - |
| predicted_ER | 1.000 | - |
| predicted_H | 5.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 6.333 | - |
| predicted_SO | 5.000 | - |
Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 1.000 | 0.000 |
| predicted_ER | 1.000 | 0.000 |
| predicted_H | 5.000 | 0.000 |
| predicted_HR | 0.000 | 0.000 |
| predicted_IP | 6.100 | -0.233 |
| predicted_SO | 7.000 | 2.000 |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 32.000 | 8.000 | 28.000 | 6.000 | 33.000 | 2.000 | 2.2500 | 1.0625 | 0.2500 | 0.8750 | 0.1875 | 1.0312 | 0.0625 |
| last_10 | 0.35 | 10 | 62.000 | 18.000 | 52.000 | 13.000 | 70.000 | 4.000 | 2.6129 | 1.0484 | 0.2903 | 0.8387 | 0.2097 | 1.1290 | 0.0645 |
| season | 0.20 | 26 | 158.200 | 48.000 | 126.000 | 27.000 | 186.000 | 14.000 | 2.7227 | 0.9643 | 0.3025 | 0.7941 | 0.1702 | 1.1723 | 0.0882 |
| Metric | Value |
|---|---|
| predicted_BB | 1.3940 |
| predicted_ER | 1.9640 |
| predicted_ERA | 2.8164 |
| predicted_H | 5.4510 |
| predicted_HR | 0.5090 |
| predicted_IP | 6.1000 |
| predicted_SO | 6.7030 |
| predicted_WHIP | 1.0904 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 1.0000 | 1.3940 | 1.2292 | model_form_blend |
| predicted_ER | 1.0000 | 1.9640 | 1.5609 | model_form_blend |
| predicted_ERA | - | 2.8164 | 2.8164 | form_only |
| predicted_H | 5.0000 | 5.4510 | 5.2624 | model_form_blend |
| predicted_HR | 0.0000 | 0.5090 | 0.2962 | model_form_blend |
| predicted_IP | 6.1000 | 6.1000 | 6.1000 | model_form_blend |
| predicted_SO | 5.0000 | 6.7030 | 5.9909 | model_form_blend |
| predicted_WHIP | - | 1.0904 | 1.0904 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 10 |
| Season rows before report date | 10 |
| Report year | 2026 |
| Profile rows used | 26 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 6.1 |
| H | 5 |
| R | 1 |
| ER | 1 |
| BB | 1 |
| SO | 7 |
| HR | 0 |
| BF | 27 |
| Pitches | 111 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 23 |
| Pitching_ER | 0 |
| Pitching_ERA | 2.72 |
| Pitching_Flyouts | 3 |
| Pitching_Groundouts | 4 |
| Pitching_H | 3 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 7.0 |
| Pitching_Pitches | 75 |
| Pitching_R | 0 |
| Pitching_SO | 10 |
| Pitching_Strikes | 60 |
| Pitching_Wild Pitch | 0 |
| Pitching_decision | W |
| Pitching_pitchingOrder | 1 |
| allPositionsPlayed | P |
| gameID | 20260925_LAD@SF |
| game_type | full |
| mlbID | 669373 |
| playerID | 669373 |
| playerName | Tarik Skubal |
| pos | P |
| started | True |
| startingPosition | P |
| team | LAD |
| teamID | 14 |
| game_date | 2026-09-25 |
| sl_k_percent | 30.0 |
| sl_bb_percent | 4.4 |
| sl_woba | 0.264 |
| sl_xwoba | 0.266 |
| sl_sweet_spot_percent | 34.6 |
| sl_barrel_batted_rate | 6.7 |
| sl_hard_hit_percent | 34.8 |
| sl_whiff_percent | 31.7 |
| sl_swing_percent | 53.4 |
| sl_avg_best_speed | 75.355637897 |
| sl_avg_hyper_speed | 93.484764538 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 0.000 | 0.000 | 0.000 | Pitching_BB | 1.107 | 0.000 | -1.107 | 0.000 |
| predicted_ER | 0.000 | 0.000 | 0.000 | Pitching_ER | 2.036 | 0.000 | -2.036 | 0.000 |
| predicted_H | 1.000 | 1.000 | 1.000 | Pitching_H | 4.607 | 2.000 | -3.607 | -1.000 |
| predicted_IP | 1.100 | 1.100 | 1.100 | Pitching_InningsPitched | 4.925 | 2.000 | -3.825 | -0.900 |
| predicted_SO | 1.000 | 1.000 | 1.000 | Pitching_SO | 4.214 | 3.000 | -3.214 | -2.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_form_blend |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 1 |
| Boosted Metrics | 0 |
| Deboosted Metrics | 1 |
| Better Metrics | 0 |
| Worse Metrics | 1 |
| Biggest Boost | - |
| Biggest Deboost | predicted_IP: 1.3333 -> 1.1000 (deboost -0.2333, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 2 | current_json_final | 1 | 0 | 1 | 0 | 1 | - | predicted_IP: 1.3333 -> 1.1000 (deboost -0.2333, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "pitcher",
"player_id": "680736",
"player_name": "Justin Wrobleski",
"position": "Setup Man",
"team": "LAD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 1.3333,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 1.1,
"predicted_R": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 1.3333,
"after": 1.1,
"delta": -0.2333,
"percent_delta": -0.175,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 1.3333,
"after": 1.1,
"delta": -0.2333,
"percent_delta": -0.175,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 1.3333,
"after": 1.1,
"delta": -0.2333,
"percent_delta": -0.175,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 1.3333,
"after": 1.1,
"delta": -0.2333,
"percent_delta": -0.175,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 0.000 | - |
| predicted_ER | 0.000 | - |
| predicted_H | 1.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 1.333 | - |
| predicted_SO | 1.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 8.200 | 1.000 | 8.000 | 1.000 | 8.000 | 0.000 | 1.0385 | 1.0385 | 0.1154 | 0.9231 | 0.1154 | 0.9231 | 0.0000 |
| last_10 | 0.35 | 10 | 27.100 | 21.000 | 35.000 | 10.000 | 31.000 | 9.000 | 6.9146 | 1.6463 | 0.7683 | 1.2805 | 0.3659 | 1.1341 | 0.3293 |
| season | 0.20 | 28 | 140.000 | 57.000 | 129.000 | 31.000 | 118.000 | 21.000 | 3.6643 | 1.1429 | 0.4071 | 0.9214 | 0.2214 | 0.8429 | 0.1500 |
| Metric | Value |
|---|---|
| predicted_BB | 0.6140 |
| predicted_ER | 1.0380 |
| predicted_ERA | 3.7702 |
| predicted_H | 2.5740 |
| predicted_HR | 0.3610 |
| predicted_IP | 2.1000 |
| predicted_SO | 2.4140 |
| predicted_WHIP | 1.2860 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 0.0000 | 0.6140 | 0.3598 | model_form_blend |
| predicted_ER | 0.0000 | 1.0380 | 0.6083 | model_form_blend |
| predicted_ERA | - | 3.7702 | 3.7702 | form_only |
| predicted_H | 1.0000 | 2.5740 | 1.9224 | model_form_blend |
| predicted_HR | 0.0000 | 0.3610 | 0.2115 | model_form_blend |
| predicted_IP | 1.1000 | 2.1000 | 2.0000 | model_form_blend |
| predicted_SO | 1.0000 | 2.4140 | 1.8286 | model_form_blend |
| predicted_WHIP | - | 1.2860 | 1.2860 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 28 |
| Season rows before report date | 28 |
| Report year | 2026 |
| Profile rows used | 28 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 1.1 |
| H | 1 |
| R | 0 |
| ER | 0 |
| BB | 0 |
| SO | 1 |
| HR | 0 |
| BF | 5 |
| Pitches | 22 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 7 |
| Pitching_ER | 0 |
| Pitching_ERA | 3.66 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 2 |
| Pitching_H | 2 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 2.0 |
| Pitching_Pitches | 27 |
| Pitching_R | 0 |
| Pitching_SO | 3 |
| Pitching_Strikes | 18 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 2 |
| allPositionsPlayed | P |
| gameID | 20260927_LAD@SF |
| game_type | full |
| mlbID | 680736 |
| playerID | 680736 |
| playerName | Justin Wrobleski |
| pos | P |
| started | False |
| startingPosition | P |
| team | LAD |
| teamID | 14 |
| game_date | 2026-09-27 |
| sl_k_percent | 20.4 |
| sl_bb_percent | 5.4 |
| sl_woba | 0.299 |
| sl_xwoba | 0.326 |
| sl_sweet_spot_percent | 36.3 |
| sl_barrel_batted_rate | 9.4 |
| sl_hard_hit_percent | 43.9 |
| sl_whiff_percent | 20.7 |
| sl_swing_percent | 49.9 |
| sl_avg_best_speed | 79.53216181 |
| sl_avg_hyper_speed | 94.628612458 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 1.000 | 1.000 | 1.000 | Pitching_BB | 0.217 | 0.000 | 0.783 | 1.000 |
| predicted_ER | 2.000 | 2.000 | 2.000 | Pitching_ER | 0.275 | 0.000 | 1.725 | 2.000 |
| predicted_H | 1.000 | 1.000 | 1.000 | Pitching_H | 0.696 | 1.000 | 0.304 | 0.000 |
| predicted_IP | 1.000 | 1.000 | 1.000 | Pitching_InningsPitched | 0.845 | 1.000 | 0.155 | 0.000 |
| predicted_SO | 0.000 | 0.000 | 0.000 | Pitching_SO | 1.188 | 2.000 | -1.188 | -2.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_form_blend |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 1 |
| Boosted Metrics | 0 |
| Deboosted Metrics | 1 |
| Better Metrics | 0 |
| Worse Metrics | 1 |
| Biggest Boost | - |
| Biggest Deboost | predicted_SO: 2.0000 -> 0.0000 (deboost -2.0000, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 2 | current_json_final | 1 | 0 | 1 | 0 | 1 | - | predicted_SO: 2.0000 -> 0.0000 (deboost -2.0000, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "pitcher",
"player_id": "656945",
"player_name": "Tanner Scott",
"position": "Closer",
"team": "LAD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_IP": 1.0,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_IP": 1.0,
"predicted_R": 2.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 0.0,
"delta": -2.0,
"percent_delta": -1.0,
"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": 2.0,
"after": 0.0,
"delta": -2.0,
"percent_delta": -1.0,
"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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 0.0,
"delta": -2.0,
"percent_delta": -1.0,
"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": 2.0,
"after": 0.0,
"delta": -2.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 1.000 | - |
| predicted_ER | 2.000 | - |
| predicted_H | 1.000 | - |
| predicted_HR | 1.000 | - |
| predicted_IP | 1.000 | - |
| predicted_SO | 2.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 5.000 | 0.000 | 2.000 | 2.000 | 9.000 | 0.000 | 0.0000 | 0.8000 | 0.0000 | 0.4000 | 0.4000 | 1.8000 | 0.0000 |
| last_10 | 0.35 | 10 | 8.200 | 4.000 | 8.000 | 3.000 | 15.000 | 0.000 | 4.1538 | 1.2692 | 0.4615 | 0.9231 | 0.3462 | 1.7308 | 0.0000 |
| season | 0.20 | 69 | 63.200 | 19.000 | 48.000 | 15.000 | 82.000 | 4.000 | 2.6859 | 0.9895 | 0.2984 | 0.7539 | 0.2356 | 1.2880 | 0.0628 |
| Metric | Value |
|---|---|
| predicted_BB | 0.3570 |
| predicted_ER | 0.3010 |
| predicted_ERA | 2.7134 |
| predicted_H | 0.7450 |
| predicted_HR | 0.0500 |
| predicted_IP | 1.0000 |
| predicted_SO | 1.4690 |
| predicted_WHIP | 1.1018 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 1.0000 | 0.3570 | 0.6570 | model_form_blend |
| predicted_ER | 2.0000 | 0.3010 | 1.0937 | model_form_blend |
| predicted_ERA | - | 2.7134 | 2.7134 | form_only |
| predicted_H | 1.0000 | 0.7450 | 0.8640 | model_form_blend |
| predicted_HR | 1.0000 | 0.0500 | 0.4932 | model_form_blend |
| predicted_IP | 1.0000 | 1.0000 | 1.0000 | model_form_blend |
| predicted_SO | 2.0000 | 1.4690 | 1.7167 | model_form_blend |
| predicted_WHIP | - | 1.1018 | 1.1018 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 69 |
| Season rows before report date | 69 |
| Report year | 2026 |
| Profile rows used | 69 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 1.0 |
| H | 1 |
| R | 2 |
| ER | 2 |
| BB | 1 |
| SO | 0 |
| HR | 1 |
| BF | 5 |
| Pitches | 20 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 4 |
| Pitching_ER | 0 |
| Pitching_ERA | 2.69 |
| Pitching_Flyouts | 1 |
| Pitching_Groundouts | 0 |
| Pitching_H | 1 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 1.0 |
| Pitching_Pitches | 14 |
| Pitching_R | 0 |
| Pitching_SO | 2 |
| Pitching_Strikes | 12 |
| Pitching_Wild Pitch | 0 |
| Pitching_decision | S |
| Pitching_pitchingOrder | 6 |
| allPositionsPlayed | P |
| gameID | 20260926_LAD@SF |
| game_type | full |
| mlbID | 656945 |
| playerID | 656945 |
| playerName | Tanner Scott |
| pos | P |
| started | False |
| startingPosition | P |
| team | LAD |
| teamID | 14 |
| game_date | 2026-09-26 |
| sl_k_percent | 32.7 |
| sl_bb_percent | 6.0 |
| sl_woba | 0.25 |
| sl_xwoba | 0.27 |
| sl_sweet_spot_percent | 35.9 |
| sl_barrel_batted_rate | 6.5 |
| sl_hard_hit_percent | 34.6 |
| sl_whiff_percent | 35.5 |
| sl_swing_percent | 56.4 |
| sl_avg_best_speed | 77.9267356 |
| sl_avg_hyper_speed | 93.6064356 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 1.000 | 1.000 | 1.000 | Pitching_BB | 0.194 | 0.000 | 0.806 | 1.000 |
| predicted_ER | 1.000 | 1.000 | 1.000 | Pitching_ER | 0.323 | 0.000 | 0.677 | 1.000 |
| predicted_H | 2.000 | 2.000 | 2.000 | Pitching_H | 0.710 | 0.000 | 1.290 | 2.000 |
| predicted_IP | 0.100 | 0.100 | 0.100 | Pitching_InningsPitched | 0.726 | 1.000 | -0.626 | -0.900 |
| predicted_SO | 1.000 | 1.000 | 1.000 | Pitching_SO | 1.065 | 2.000 | -0.065 | -1.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_form_blend |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 1 |
| Boosted Metrics | 0 |
| Deboosted Metrics | 1 |
| Better Metrics | 0 |
| Worse Metrics | 1 |
| Biggest Boost | - |
| Biggest Deboost | predicted_IP: 0.3333 -> 0.1000 (deboost -0.2333, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 2 | current_json_final | 1 | 0 | 1 | 0 | 1 | - | predicted_IP: 0.3333 -> 0.1000 (deboost -0.2333, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "pitcher",
"player_id": "623465",
"player_name": "Evan Phillips",
"position": "Middle Reliever (High Leverage)",
"team": "LAD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 0.3333,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 0.1,
"predicted_R": 1.0,
"predicted_SO": 1.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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 0.3333,
"after": 0.1,
"delta": -0.2333,
"percent_delta": -0.7,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 0.3333,
"after": 0.1,
"delta": -0.2333,
"percent_delta": -0.7,
"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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 0.3333,
"after": 0.1,
"delta": -0.2333,
"percent_delta": -0.7,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 0.3333,
"after": 0.1,
"delta": -0.2333,
"percent_delta": -0.7,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 1.000 | - |
| predicted_ER | 1.000 | - |
| predicted_H | 2.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 0.333 | - |
| predicted_SO | 1.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 5.000 | 2.000 | 2.000 | 0.000 | 8.000 | 1.000 | 3.6000 | 0.4000 | 0.4000 | 0.4000 | 0.0000 | 1.6000 | 0.2000 |
| last_10 | 0.35 | 10 | 9.100 | 2.000 | 4.000 | 1.000 | 15.000 | 1.000 | 1.9286 | 0.5357 | 0.2143 | 0.4286 | 0.1071 | 1.6071 | 0.1071 |
| season | 0.20 | 31 | 26.000 | 10.000 | 22.000 | 6.000 | 33.000 | 5.000 | 3.4615 | 1.0769 | 0.3846 | 0.8461 | 0.2308 | 1.2692 | 0.1923 |
| Metric | Value |
|---|---|
| predicted_BB | 0.1540 |
| predicted_ER | 0.2840 |
| predicted_ERA | 3.7703 |
| predicted_H | 0.4970 |
| predicted_HR | 0.1070 |
| predicted_IP | 0.2000 |
| predicted_SO | 0.8450 |
| predicted_WHIP | 0.9597 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 1.0000 | 0.1540 | 0.6226 | model_form_blend |
| predicted_ER | 1.0000 | 0.2840 | 0.6806 | model_form_blend |
| predicted_ERA | - | 3.7703 | 3.7703 | form_only |
| predicted_H | 2.0000 | 0.4970 | 1.3296 | model_form_blend |
| predicted_HR | 0.0000 | 0.1070 | 0.0477 | model_form_blend |
| predicted_IP | 0.1000 | 0.2000 | 0.1000 | model_form_blend |
| predicted_SO | 1.0000 | 0.8450 | 0.9309 | model_form_blend |
| predicted_WHIP | - | 0.9597 | 0.9597 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 31 |
| Season rows before report date | 31 |
| Report year | 2026 |
| Profile rows used | 31 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 0.1 |
| H | 2 |
| R | 1 |
| ER | 1 |
| BB | 1 |
| SO | 1 |
| HR | 0 |
| BF | 4 |
| Pitches | 14 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 3 |
| Pitching_ER | 0 |
| Pitching_ERA | 3.46 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 1.0 |
| Pitching_Pitches | 14 |
| Pitching_R | 0 |
| Pitching_SO | 2 |
| Pitching_Strikes | 10 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 7 |
| allPositionsPlayed | P |
| gameID | 20260927_LAD@SF |
| game_type | full |
| mlbID | 623465 |
| playerID | 623465 |
| playerName | Evan Phillips |
| pos | P |
| started | False |
| startingPosition | P |
| team | LAD |
| teamID | 14 |
| game_date | 2026-09-27 |
| sl_k_percent | 31.1 |
| sl_bb_percent | 5.7 |
| sl_woba | 0.292 |
| sl_xwoba | 0.321 |
| sl_sweet_spot_percent | 33.3 |
| sl_barrel_batted_rate | 16.7 |
| sl_hard_hit_percent | 39.4 |
| sl_whiff_percent | 26.7 |
| sl_swing_percent | 48.7 |
| sl_avg_best_speed | 80.133585455 |
| sl_avg_hyper_speed | 95.348925152 |
| Layer | Score | Winner | Confidence | Source or usage | Synced or matches |
|---|---|---|---|---|---|
| Shipped prediction | CHW 4 - 2 CLE | CHW | 0.523 | enhanced_prediction.pre_simulation_target | True |
| Simulation draw | CHW 4 - 2 CLE | CHW | - | organic_simulation_realized_target | True |
The shipped score is reconciled to the final simulation score. The original model target remains visible as the pre-simulation audit layer.
This table distinguishes newly generated artifacts from older files. Missing trace data is shown as legacy/unavailable, never inferred.
| Priority | Change | Runtime status | Evidence |
|---|---|---|---|
| P1 | Empirical confidence blend | applied | raw=0.5101; empirical=0.5625; weight=0.5000; final=0.5363 |
| P1 | H2H margin as base feature | available | home net=-5; abs=5; home delta=-0.0288; away delta=0.0288 |
| P2 | Wider score distribution | implemented_above_requested_1.4x | variance multiplier=2.2500; floor=2.7500 |
| P2 | Simulation flip control | diagnostic_only_unless_independently_supported | candidate=False; trusted=False; published flip=False |
| P3 | Season edge + recent form | implemented | window=10; season edge=-0.2685; recent edge=0.0400; blended=- |
| P3 | Continuous calibration audit | trace emitted | Checked by CONFIDENCE_CALIBRATION_APPLIED and bucket_calibration_error in learning reports. |
| Process Layer | What It Does | Stored Field | Observed Value |
|---|---|---|---|
| 1. Historical model | Starts from trained game model output. | score_evolution.steps[historical_ml] | - |
| 2. Variance layer | Applies bounded game variance before enhanced corrections. | score_evolution.steps[variance_applied] | - |
| 3. Recent/team form | Uses latest team form, recent scoring, prevention, and streak state. | enhanced_prediction_analysis.recent_form | True |
| 4. Season quality | Uses season run differential and record quality guardrails. | season_run_differential_adjustment, season_quality_guardrail | True |
| 5. Savant hitters | Applies lineup-level Statcast xwOBA, xBA, xSLG, barrel, hard-hit, sweet-spot, EV, launch-angle, whiff, K and BB quality. | savant_batter_quality_adjustment | True |
| 6. Savant pitchers | Applies starter run prevention, strikeout, walk, HR and regression factors from xwOBA, wOBA, contact quality and whiff/command. | savant_pitcher_quality_adjustment | True |
| 7. Low-score analysis | Controls unrealistic totals and preserves the pre-sync low-score expected total. | low_score_analysis | 6.1000 |
| 8. Probability/governors | Applies win probability calibration, matchup guardrails, margin governor and confidence governor. | win_probability_calibration, margin_governor, confidence_governor | 0.5230 |
| 9. Simulation reconciliation | Reconciles final shipped score with the simulation box score while retaining the pre-simulation target. | simulation_reconciliation | organic_simulation_realized_target |
| 10. Score evolution rendered | 7 stored score steps are rendered below. | game.score_evolution.steps | true |
| Step | Layer | Away Runs | Home Runs | Confidence | Description |
|---|---|---|---|---|---|
| 1 | historical_ml | 4.879 | 3.620 | - | Base ML historical model prediction |
| 2 | variance_applied | 5 | 4 | - | Deterministic baseline target (variance factor 1.0) |
| 3 | enhanced_prediction | 4 | 3 | 0.5230 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by matchup_recency_guardrail) |
| 4 | embedded_savant_run_environment | 4 | 2 | - | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| 5 | fundamental_edge_target_review | 4 | 2 | - | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| 6 | capped_target | 4 | 2 | - | Capped at max 12 realistic runs |
| 7 | simulation_result | 4 | 2 | - | Final inning-by-inning simulation result |
{
"low_score_probability": 0.7872996420212852,
"base_low_score_probability": 0.42569964525029563,
"low_score_signal_threshold": 0.5056996452502956,
"low_score_signal_strength": 0.3615999967709896,
"confidence": 0.9,
"factors": {
"environmental": 1.1340000000000001,
"pitcher_form": 1.4520000000000002,
"team_form": 1.08,
"situational": 1.04,
"combined": 1.8494251776000006
},
"prediction": "low_scoring",
"expected_total_runs": 6,
"score_scale_mode": "control",
"pre_simulation_expected_total_runs": 6.1,
"low_score_model_expected_total_runs": 6.1,
"final_simulation_total_runs": 6,
"score_source": "enhanced_prediction.pre_simulation_target"
}{
"method": "monotone_reliability_shrinkage",
"policy": "shrink_toward_even_score_floor_v3",
"sample_size": 816,
"near_bucket_sample_size": 816,
"medium_bucket_sample_size": 889,
"wide_bucket_sample_size": 1088,
"global_sample_size": 1125,
"bucket_scope": "near_0.05",
"sparse_bucket": false,
"empirical_hit_rate": 0.5625,
"bayesian_hit_rate": 0.5612,
"prior_strength": 18.0,
"raw_pick_probability": 0.5439,
"raw_pick_probability_unclamped": 0.5439,
"score_probability_conflict": false,
"margin_implied_home_probability": 0.4927,
"margin_implied_pick_probability": 0.5073,
"score_blend_weight": 0.45,
"blended_raw_pick_probability": 0.5274,
"score_implied_floor_pick_probability": 0.5072,
"max_published_pick_probability": 0.9,
"uncapped_home_win_probability": 0.456061,
"uncapped_away_win_probability": 0.543939,
"calibrated_pick_probability": 0.5271,
"predicted_side": "away",
"reliability": 0.978417,
"shrink_floor": 0.35,
"empirical_penalty": 1.0,
"shrinkage_weight": 0.985971
}{
"method": "empirical_hit_rate_weighted_v1",
"applied": true,
"reason": "raw confidence blended with verified historical bucket hit rate",
"raw_confidence": 0.5101,
"sample_size": 816,
"empirical_hit_rate": 0.5625,
"empirical_weight": 0.5,
"blended_confidence": 0.5363,
"published_confidence": 0.522998,
"published_after_governors": true,
"governor_mode": "shrinkage_not_clamp"
}{
"method": "h2h_net_margin_monotonic_v1",
"available": true,
"sample_size": 5,
"sample_weight": 0.0577,
"home_net_margin": -5.0,
"absolute_net_margin": 5.0,
"home_average_margin": -1.0,
"home_run_delta": -0.0288,
"away_run_delta": 0.0288,
"evidence": [
{
"game_id": null,
"home_margin": 3.0
},
{
"game_id": null,
"home_margin": 1.0
},
{
"game_id": null,
"home_margin": -4.0
},
{
"game_id": null,
"home_margin": -2.0
},
{
"game_id": null,
"home_margin": -3.0
}
],
"adaptive_parameters": {
"h2h.history_limit": 5,
"h2h.maximum_weight": 0.15,
"h2h.prior_games": 8.0,
"h2h.maximum_total_shift": 0.65
}
}{
"applied": false,
"home": {
"team": "CLE",
"games": 162,
"wins": 85,
"losses": 77,
"win_pct": 0.5246913580246914,
"runs_scored": 678,
"runs_allowed": 667,
"run_differential": 11,
"run_differential_per_game": 0.06790123456790123,
"available": true
},
"away": {
"team": "CHW",
"games": 162,
"wins": 84,
"losses": 78,
"win_pct": 0.5185185185185185,
"runs_scored": 776,
"runs_allowed": 720,
"run_differential": 56,
"run_differential_per_game": 0.345679012345679,
"available": true
},
"run_differential_edge_per_game": -0.2778,
"win_pct_edge": 0.0062,
"quality_edge": -0.1605,
"season_quality_edge": -0.2685,
"recent_quality_blend": {
"method": "season_recent_quality_blend_v2_adaptive",
"recent_window": 10,
"season_quality_edge": -0.2685,
"recent_quality_edge": 0.04,
"season_weight": 0.65,
"recent_weight": 0.35,
"recent_reliability": 1.0,
"alignment": "conflict",
"blended_quality_edge": -0.1605
},
"margin_adjustment": 0.0,
"reason": "season quality edge below action threshold"
}{
"most_likely": [
{
"home_runs": 3,
"away_runs": 3,
"probability": 0.024123071990349864
},
{
"home_runs": 3,
"away_runs": 4,
"probability": 0.023947733670324038
},
{
"home_runs": 4,
"away_runs": 3,
"probability": 0.023626350419972117
},
{
"home_runs": 4,
"away_runs": 4,
"probability": 0.023454622515970646
},
{
"home_runs": 2,
"away_runs": 3,
"probability": 0.021564449350636655
}
],
"home_distribution": {
"0": 0.07527066869262464,
"1": 0.10984503663694313,
"2": 0.14034756752826408,
"3": 0.1569998111291837,
"4": 0.15376700592243828,
"5": 0.13185511270545647,
"6": 0.0989921094020718,
"7": 0.06506897582890725,
"8": 0.03744701042906975,
"9": 0.01886818476210655,
"10": 0.00832363211363857,
"11": 0.003214884849295648
},
"away_distribution": {
"0": 0.07239621156605851,
"1": 0.10585436186611731,
"2": 0.136034157903003,
"3": 0.15365032490708377,
"4": 0.1525335189774158,
"5": 0.13308937714838545,
"6": 0.1020628736012266,
"7": 0.06879208733811652,
"8": 0.04075261476169347,
"9": 0.021218699733757104,
"10": 0.009710203942530603,
"11": 0.003905568254611897
},
"model": "overdispersed_score_distribution",
"variance_multiplier": 2.25,
"variance_floor": 2.75,
"roadmap_status": "implemented_above_requested_1.4x"
}{
"applied": true,
"confidence_cap": 0.53,
"winner_flipped": false,
"reasons": [
"latest same-matchup result beat the predicted side",
"a prior same-side pick already missed against the actual result",
"latest-series evidence cleared the reversal bar; confidence capped and runs shifted, winner unchanged by design"
],
"signals": {
"predicted_team": "CHW",
"opponent_team": "CLE",
"h2h_net_margin": 0,
"opponent_breakout": false,
"opponent_blowout_win": false,
"split_recent_h2h": true,
"recent_h2h": [
{
"date": "2026-09-16",
"predicted_team_runs": 3,
"opponent_runs": 6,
"margin_for_predicted_team": -3,
"winner": "CLE"
},
{
"date": "2026-09-15",
"predicted_team_runs": 6,
"opponent_runs": 7,
"margin_for_predicted_team": -1,
"winner": "CLE"
},
{
"date": "2026-09-14",
"predicted_team_runs": 7,
"opponent_runs": 3,
"margin_for_predicted_team": 4,
"winner": "CHW"
}
],
"prediction_memory": {
"available": true,
"reason": "verified_prior_matchup_predictions_available",
"verification_policy": "pregame_artifact_matched_to_one_official_final",
"verified_outcome_count": 11,
"consecutive_same_pick_count": 0,
"same_pick_actual_loss_count": 3,
"same_pick_blowout_loss_count": 0,
"prior_predictions": [
{
"date": "20260916",
"away": "CHW",
"home": "CLE",
"game_number": 1,
"predicted_team": "CLE",
"actual_winner": "CLE",
"actual_margin": 3,
"raw_pick_probability": 0.556513,
"artifact": "20260916_CHW@CLE.json",
"verification": "pregame_official_final"
},
{
"date": "20260915",
"away": "CHW",
"home": "CLE",
"game_number": 1,
"predicted_team": "CHW",
"actual_winner": "CLE",
"actual_margin": 1,
"raw_pick_probability": 0.544573,
"artifact": "20260915_CHW@CLE.json",
"verification": "pregame_official_final"
},
{
"date": "20260914",
"away": "CHW",
"home": "CLE",
"game_number": 1,
"predicted_team": "CLE",
"actual_winner": "CHW",
"actual_margin": 4,
"raw_pick_probability": 0.505654,
"artifact": "20260914_CHW@CLE.json",
"verification": "pregame_official_final"
},
{
"date": "20260809",
"away": "CLE",
"home": "CHW",
"game_number": 1,
"predicted_team": "CHW",
"actual_winner": "CHW",
"actual_margin": 2,
"raw_pick_probability": 0.56,
"artifact": "20260809_CLE@CHW.json",
"verification": "pregame_official_final"
},
{
"date": "20260808",
"away": "CLE",
"home": "CHW",
"game_number": 1,
"predicted_team": "CHW",
"actual_winner": "CHW",
"actual_margin": 3,
"raw_pick_probability": 0.7,
"artifact": "20260808_CLE@CHW.json",
"verification": "pregame_official_final"
}
]
},
"guardrail_predicted_team": "CHW",
"guardrail_opponent_team": "CLE",
"output_pre_simulation_winner": "CHW",
"output_opponent_team": "CLE",
"simulation_score_winner": "CHW",
"final_score_winner": "CHW",
"pre_simulation_winner": "CHW",
"winner_flipped_by_simulation": false,
"simulation_would_flip_winner": false
},
"hard_flip_suppressed": true,
"flip_authority": "caps_confidence_and_shifts_runs_only",
"final_prediction_sync": {
"pre_simulation_score": {
"away_runs": 4,
"home_runs": 2,
"score_text": "CHW 4 - 2 CLE",
"winner": "CHW"
},
"final_simulation_score": {
"away_runs": 4,
"home_runs": 2,
"score_text": "CHW 4 - 2 CLE",
"winner": "CHW"
},
"winner_flipped_by_simulation": false,
"simulation_would_flip_winner": false,
"sim_flipped_pre_winner": false,
"sim_flip_trusted": false,
"sim_flip_policy": "diagnostic_only_unless_independently_supported",
"independent_margin_support": false,
"independent_margin_support_evidence": {
"pitcher_matchup_edge_home_minus_away": 0.0059,
"recent_form_edge_home_minus_away": -0.03,
"winner_direction": "away",
"thresholds": {
"pitcher_matchup": 0.35,
"recent_form": 0.75
}
},
"margin_widening_capped": false,
"simulation_winner_agrees": true,
"away_run_delta": 0,
"home_run_delta": 0,
"total_run_delta": 0,
"score_source": "enhanced_prediction.pre_simulation_target",
"simulation_usage": "organic_simulation_realized_target",
"final_prediction_source": "stable_final_prediction_policy",
"final_decision_policy": {
"policy_version": "model_target_authoritative_simulation_realizes_v3",
"away_runs": 4,
"home_runs": 2,
"winner": "CHW",
"model_winner": "CHW",
"simulation_winner": "CHW",
"simulation_winner_agrees": true,
"simulation_agreement_scope": "selected_draw_only",
"simulation_distribution_agreement": {
"available": true,
"draw_count": 3,
"published_winner": "CHW",
"published_winner_draw_share": 0.6667,
"draw_majority_team": "CHW",
"published_winner_is_draw_majority": true,
"sampling": "target_conditioned_selection",
"is_unbiased_probability_sample": false,
"note": "Draw shares are target-conditioned and diagnostic. A published winner holding a minority share is recorded, not suppressed."
},
"simulation_score_enabled": true,
"independent_margin_support": false,
"margin_widening_capped": false,
"model_margin": 2,
"simulation_margin": 2,
"simulation_usage": "organic_simulation_realized_target",
"score_source": "enhanced_prediction.pre_simulation_target",
"simulation_realized_target": true,
"model_score": {
"away_runs": 4,
"home_runs": 2
},
"simulation_score": {
"away_runs": 4,
"home_runs": 2
}
},
"final_margin_quality_review": {
"review_required": false,
"pre_margin": 2,
"final_margin": 2,
"winner_quality_edge": 0.1605,
"winner": "CHW",
"score_reviewed": {
"away_runs": 4,
"home_runs": 2,
"source": "enhanced_prediction.pre_simulation_target"
},
"reason": "published margin is directionally supported or within review threshold"
}
}
}{
"applied": false,
"confidence_cap": null,
"winner_flipped": false,
"hard_flip_suppressed": false,
"policy": "recency_uncertainty_shrinkage_v2",
"reasons": [],
"signals": {
"home": {
"team": "CLE",
"games": 162,
"wins": 85,
"losses": 77,
"win_pct": 0.5246913580246914,
"runs_scored": 678,
"runs_allowed": 667,
"run_differential": 11,
"run_differential_per_game": 0.06790123456790123,
"available": true
},
"away": {
"team": "CHW",
"games": 162,
"wins": 84,
"losses": 78,
"win_pct": 0.5185185185185185,
"runs_scored": 776,
"runs_allowed": 720,
"run_differential": 56,
"run_differential_per_game": 0.345679012345679,
"available": true
}
}
}{
"applied": false,
"raw_margin": -0.1,
"final_margin": -0.1,
"margin_cap": 1.5,
"season_quality_edge": 0.1605,
"reason": "raw target margin within supported range"
}{
"applied": true,
"policy": "align_to_calibrated_probability_v2",
"raw_confidence": 0.53,
"final_confidence": 0.5271,
"calibrated_pick_probability": 0.5271,
"shrinkage_weight": 0.985971,
"hard_maximum": 0.9,
"confidence_floor": 0.505,
"score_gap": 0.1,
"calibration_sample_size": 816,
"calibration_empirical_hit_rate": 0.5625,
"calibration_bayesian_hit_rate": 0.5612,
"calibration_sparse_bucket": false,
"season_quality_edge": 0.1605,
"reasons": [
"confidence aligned to the calibrated pick probability"
],
"score_coherence": {
"policy": "probability_follows_published_score_v1",
"published_score": {
"away_runs": 4,
"home_runs": 3
},
"margin": -1,
"probability_before": 0.472943,
"margin_implied_home_probability": 0.427612,
"shrinkage_weight": 0.985971,
"side_flipped": false,
"applied": false,
"magnitude_pull_suppressed": true,
"probability_after": 0.472943,
"aligned_pick_probability": 0.527057
},
"starter_experience": {
"applied": false,
"min_starter_games": 19,
"shrink_factor": 1.0
}
}{
"pre_simulation_score": {
"away_runs": 4,
"home_runs": 2,
"score_text": "CHW 4 - 2 CLE",
"winner": "CHW"
},
"final_simulation_score": {
"away_runs": 4,
"home_runs": 2,
"score_text": "CHW 4 - 2 CLE",
"winner": "CHW"
},
"winner_flipped_by_simulation": false,
"simulation_would_flip_winner": false,
"sim_flipped_pre_winner": false,
"sim_flip_trusted": false,
"sim_flip_policy": "diagnostic_only_unless_independently_supported",
"independent_margin_support": false,
"independent_margin_support_evidence": {
"pitcher_matchup_edge_home_minus_away": 0.0059,
"recent_form_edge_home_minus_away": -0.03,
"winner_direction": "away",
"thresholds": {
"pitcher_matchup": 0.35,
"recent_form": 0.75
}
},
"margin_widening_capped": false,
"simulation_winner_agrees": true,
"away_run_delta": 0,
"home_run_delta": 0,
"total_run_delta": 0,
"score_source": "enhanced_prediction.pre_simulation_target",
"simulation_usage": "organic_simulation_realized_target",
"final_prediction_source": "stable_final_prediction_policy",
"final_decision_policy": {
"policy_version": "model_target_authoritative_simulation_realizes_v3",
"away_runs": 4,
"home_runs": 2,
"winner": "CHW",
"model_winner": "CHW",
"simulation_winner": "CHW",
"simulation_winner_agrees": true,
"simulation_agreement_scope": "selected_draw_only",
"simulation_distribution_agreement": {
"available": true,
"draw_count": 3,
"published_winner": "CHW",
"published_winner_draw_share": 0.6667,
"draw_majority_team": "CHW",
"published_winner_is_draw_majority": true,
"sampling": "target_conditioned_selection",
"is_unbiased_probability_sample": false,
"note": "Draw shares are target-conditioned and diagnostic. A published winner holding a minority share is recorded, not suppressed."
},
"simulation_score_enabled": true,
"independent_margin_support": false,
"margin_widening_capped": false,
"model_margin": 2,
"simulation_margin": 2,
"simulation_usage": "organic_simulation_realized_target",
"score_source": "enhanced_prediction.pre_simulation_target",
"simulation_realized_target": true,
"model_score": {
"away_runs": 4,
"home_runs": 2
},
"simulation_score": {
"away_runs": 4,
"home_runs": 2
}
},
"final_margin_quality_review": {
"review_required": false,
"pre_margin": 2,
"final_margin": 2,
"winner_quality_edge": 0.1605,
"winner": "CHW",
"score_reviewed": {
"away_runs": 4,
"home_runs": 2,
"source": "enhanced_prediction.pre_simulation_target"
},
"reason": "published margin is directionally supported or within review threshold"
}
}{
"away_runs": 4,
"home_runs": 2,
"confidence": 0.52299845,
"home_win_probability": 0.47700155,
"away_win_probability": 0.52299845,
"predicted_score_text": "CHW 4 - 2 CLE",
"embedded_savant_score_adjustment": {
"applied": true,
"source": "all_players_stats.csv embedded temporal Savant features",
"feature_contract": {
"training_grain": "one player-game row after collapsing granular at-bat rows",
"temporal_rule": "all sl_/ab_/sv_ model features are shifted before the predicted game",
"hitter_signals": [
"xwoba",
"xba",
"xslg",
"barrel_batted_rate",
"hard_hit_percent",
"bat_speed",
"launch_quality",
"walk_rate",
"strikeout_rate"
],
"pitcher_signals": [
"xwoba_allowed",
"barrel_allowed",
"hard_hit_allowed",
"whiff_rate",
"command_score",
"movement_score",
"faced_est_woba",
"faced_strikeout_rate"
]
},
"away": {
"team": "CHW",
"original_runs": 4,
"run_delta": -0.1596,
"adjusted_runs": 4,
"lineup": {
"players_used": 9,
"total_weight": 32.0,
"quality": 0.15012565064004255,
"contact": 0.03818705229318174,
"power": 0.40829836619507615,
"discipline": -0.17267673561419725,
"xwoba": 0.31909375,
"recent_xwoba": 0.31909375,
"barrel": 10.103125,
"ab_hard_contact": 0.028931609615809144,
"ab_bat_speed": 70.58187312229255,
"ab_strikeout_rate": 0.3084544195481314,
"available_players": 9,
"top_players": [
{
"player_id": "808959",
"player_name": "Munetaka Murakami",
"position": "1B",
"weight": 4.0,
"quality": 0.8251337119487945,
"contact": 0.3690914698041476,
"power": 1.744684576630987,
"discipline": -0.08415373008476423,
"xwoba": 0.351,
"recent_xwoba": 0.351,
"barrel": 20.5,
"ab_hard_contact": 0.8125486754768769,
"ab_bat_speed": 73.14047844827586,
"ab_strikeout_rate": 0.3649014778325123,
"available": 1.0
},
{
"player_id": "678246",
"player_name": "Miguel Vargas",
"position": "3B",
"weight": 4.0,
"quality": 1.0139292538360514,
"contact": 0.9877073285077654,
"power": 1.1486229785712148,
"discipline": 0.9850138071916599,
"xwoba": 0.378,
"recent_xwoba": 0.378,
"barrel": 13.0,
"ab_hard_contact": 0.7661738571385865,
"ab_bat_speed": 72.6348808991158,
"ab_strikeout_rate": 0.18509108341323108,
"available": 1.0
},
{
"player_id": "545341",
"player_name": "Randal Grichuk",
"position": "LF",
"weight": 4.0,
"quality": 0.662444504513269,
"contact": 0.840071698393558,
"power": 1.0688092231755701,
"discipline": -0.577536348414989,
"xwoba": 0.335,
"recent_xwoba": 0.335,
"barrel": 11.199999999999998,
"ab_hard_contact": 0.7590416063685542,
"ab_bat_speed": 72.96851132686083,
"ab_strikeout_rate": 0.24449838187702266,
"available": 1.0
},
{
"player_id": "686668",
"player_name": "Brenton Doyle",
"position": "CF",
"weight": 4.0,
"quality": -0.7789800943293936,
"contact": -1.156698533355588,
"power": -0.5241189845969872,
"discipline": -1.089047124047124,
"xwoba": 0.245,
"recent_xwoba": 0.245,
"barrel": 6.7,
"ab_hard_contact": -0.8972368347968848,
"ab_bat_speed": 69.06285683760683,
"ab_strikeout_rate": 0.3717948717948718,
"available": 1.0
},
{
"player_id": "805367",
"player_name": "Chase Meidroth",
"position": "2B",
"weight": 4.0,
"quality": -0.3591627449468897,
"contact": -0.26600857513763165,
"power": -0.5507661808630593,
"discipline": 0.28802618690118703,
"xwoba": 0.301,
"recent_xwoba": 0.301,
"barrel": 4.6,
"ab_hard_contact": -0.6141807601183336,
"ab_bat_speed": 64.30609355709878,
"ab_strikeout_rate": 0.22379298941798942,
"available": 1.0
}
]
},
"opposing_starter": {
"available": true,
"player_id": "800048",
"player_name": "Parker Messick",
"quality": 0.5269711316073565,
"contact": 0.9023982464509372,
"command": 0.1612514447908795,
"movement": 0.10182963329186563,
"xwoba": 0.275,
"whiff": 25.5,
"faced_est_woba": 0.2648406655555556,
"faced_launch_speed": 83.79124666446208,
"faced_strikeout_rate": 0.2356947200176367,
"faced_run_exp": 0.006483162950047203
}
},
"home": {
"team": "CLE",
"original_runs": 3,
"run_delta": -0.5254,
"adjusted_runs": 2,
"lineup": {
"players_used": 9,
"total_weight": 32.0,
"quality": -0.08586278100560525,
"contact": -0.003909729046825315,
"power": -0.3162561999404254,
"discipline": 0.37319104360897226,
"xwoba": 0.31074999999999997,
"recent_xwoba": 0.31074999999999997,
"barrel": 5.153124999999999,
"ab_hard_contact": -0.20358828452279726,
"ab_bat_speed": 68.70502401302622,
"ab_strikeout_rate": 0.18799420413877554,
"available_players": 9,
"top_players": [
{
"player_id": "681807",
"player_name": "David Fry",
"position": "1B",
"weight": 3.0,
"quality": -0.6823681259915865,
"contact": -1.148764286323384,
"power": -0.7499963113196396,
"discipline": 0.17248584298584302,
"xwoba": 0.271,
"recent_xwoba": 0.271,
"barrel": 6.5,
"ab_hard_contact": -0.5846881311546949,
"ab_bat_speed": 69.22880898021309,
"ab_strikeout_rate": 0.32733333333333337,
"available": 1.0
},
{
"player_id": "595978",
"player_name": "Austin Hedges",
"position": "C",
"weight": 3.0,
"quality": -0.6138054423150437,
"contact": -0.6478844948041094,
"power": -0.8351291238468415,
"discipline": 0.33658108108108103,
"xwoba": 0.28,
"recent_xwoba": 0.28,
"barrel": 4.5,
"ab_hard_contact": -0.5863920007463519,
"ab_bat_speed": 66.4586746031746,
"ab_strikeout_rate": 0.19452380952380954,
"available": 1.0
},
{
"player_id": "800050",
"player_name": "Chase DeLauter",
"position": "RF",
"weight": 4.0,
"quality": 0.6866047161344385,
"contact": 1.0220868687127254,
"power": 0.41913689368068274,
"discipline": 0.8617363431859231,
"xwoba": 0.3459999999999999,
"recent_xwoba": 0.346,
"barrel": 6.3,
"ab_hard_contact": 0.44064263551841026,
"ab_bat_speed": 69.96645661597972,
"ab_strikeout_rate": 0.1463685474189676,
"available": 1.0
},
{
"player_id": "680757",
"player_name": "Steven Kwan",
"position": "CF",
"weight": 4.0,
"quality": -0.2603012899515539,
"contact": 0.09197404507159447,
"power": -1.2198700414869472,
"discipline": 1.6009949552727332,
"xwoba": 0.329,
"recent_xwoba": 0.329,
"barrel": 0.4,
"ab_hard_contact": -0.6785436868818142,
"ab_bat_speed": 61.13357732706252,
"ab_strikeout_rate": 0.09382422104644327,
"available": 1.0
},
{
"player_id": "677587",
"player_name": "Brayan Rocchio",
"position": "SS",
"weight": 3.0,
"quality": -0.43348181557596466,
"contact": -0.3084185973794254,
"power": -0.7248313408144617,
"discipline": 0.09285829196543487,
"xwoba": 0.294,
"recent_xwoba": 0.294,
"barrel": 2.9,
"ab_hard_contact": -0.5122458639082826,
"ab_bat_speed": 68.84742151360544,
"ab_strikeout_rate": 0.14203231292517007,
"available": 1.0
}
]
},
"opposing_starter": {
"available": true,
"player_id": "696146",
"player_name": "Hagen Smith",
"quality": 0.4132804165182447,
"contact": 1.61766630585316,
"command": 0.959822873362308,
"movement": 0.6109319213716821,
"xwoba": 0.243,
"whiff": 36.2,
"faced_est_woba": 0.2648406655555556,
"faced_launch_speed": 83.79124666446208,
"faced_strikeout_rate": 0.2356947200176367,
"faced_run_exp": 0.006483162950047203
}
}
},
"fundamental_edge_target_review": {
"applied": false,
"method": "post_score_adjustment_fundamental_edge_review_v1",
"previous_score": {
"away_runs": 4,
"home_runs": 2,
"winner_side": "away"
},
"adjusted_score": {
"away_runs": 4,
"home_runs": 2,
"winner_side": "away"
},
"signals": {
"season_quality_edge_home_minus_away": -0.1605,
"recent_form_edge_home_minus_away": -0.03,
"pitcher_matchup_edge_home_minus_away": 0.0059,
"composite_home_edge": -0.4428,
"existing_home_win_probability": 0.4729,
"refreshed_home_win_probability": 0.3,
"winner_support_before_review": 0.4428
},
"reasons": [
"target direction already matched refreshed fundamentals or margin was not fragile"
]
},
"uncapped_home_win_probability": 0.472943,
"uncapped_away_win_probability": 0.527057,
"confidence_shrinkage": {
"policy": "starter_quality_shrinkage_v3",
"staged_confidence": 0.527057,
"discount_factor": 0.85,
"published_confidence": 0.522998,
"guardrail_confidence_cap": 0.53,
"guardrail_cap_enforced": false,
"applied_discounts": [
{
"reason": "matchup_recency_guardrail",
"factor": 0.85
}
]
},
"score_probability_reconciliation": {
"policy": "published_probability_follows_published_score_v1",
"incoming_home_win_probability": 0.3,
"incoming_favoured_side": "away",
"score_winner_side": "away",
"published_home_win_probability": 0.477002,
"probability_side_reverted_by_score": false,
"note": "The probability and the projected score agree on the winner."
},
"confidence_note": "Probability shrunk toward even by starter-quality and guardrail discounts; no per-game clamp is applied. Discounts: matchup_recency_guardrail x0.85.",
"pre_simulation_target": {
"away_runs": 4,
"home_runs": 2,
"predicted_score_text": "CHW 4 - 2 CLE",
"confidence": 0.52299845,
"source": "enhanced_prediction_before_inning_simulation"
},
"score_source": "enhanced_prediction.pre_simulation_target",
"final_prediction_synced": true,
"final_prediction_source": "stable_final_prediction_policy",
"simulation_usage": "organic_simulation_realized_target",
"simulation_score_matches_prediction": true,
"simulation_reconciliation": {
"pre_simulation_score": {
"away_runs": 4,
"home_runs": 2,
"score_text": "CHW 4 - 2 CLE",
"winner": "CHW"
},
"final_simulation_score": {
"away_runs": 4,
"home_runs": 2,
"score_text": "CHW 4 - 2 CLE",
"winner": "CHW"
},
"winner_flipped_by_simulation": false,
"simulation_would_flip_winner": false,
"sim_flipped_pre_winner": false,
"sim_flip_trusted": false,
"sim_flip_policy": "diagnostic_only_unless_independently_supported",
"independent_margin_support": false,
"independent_margin_support_evidence": {
"pitcher_matchup_edge_home_minus_away": 0.0059,
"recent_form_edge_home_minus_away": -0.03,
"winner_direction": "away",
"thresholds": {
"pitcher_matchup": 0.35,
"recent_form": 0.75
}
},
"margin_widening_capped": false,
"simulation_winner_agrees": true,
"away_run_delta": 0,
"home_run_delta": 0,
"total_run_delta": 0,
"score_source": "enhanced_prediction.pre_simulation_target",
"simulation_usage": "organic_simulation_realized_target",
"final_prediction_source": "stable_final_prediction_policy",
"final_decision_policy": {
"policy_version": "model_target_authoritative_simulation_realizes_v3",
"away_runs": 4,
"home_runs": 2,
"winner": "CHW",
"model_winner": "CHW",
"simulation_winner": "CHW",
"simulation_winner_agrees": true,
"simulation_agreement_scope": "selected_draw_only",
"simulation_distribution_agreement": {
"available": true,
"draw_count": 3,
"published_winner": "CHW",
"published_winner_draw_share": 0.6667,
"draw_majority_team": "CHW",
"published_winner_is_draw_majority": true,
"sampling": "target_conditioned_selection",
"is_unbiased_probability_sample": false,
"note": "Draw shares are target-conditioned and diagnostic. A published winner holding a minority share is recorded, not suppressed."
},
"simulation_score_enabled": true,
"independent_margin_support": false,
"margin_widening_capped": false,
"model_margin": 2,
"simulation_margin": 2,
"simulation_usage": "organic_simulation_realized_target",
"score_source": "enhanced_prediction.pre_simulation_target",
"simulation_realized_target": true,
"model_score": {
"away_runs": 4,
"home_runs": 2
},
"simulation_score": {
"away_runs": 4,
"home_runs": 2
}
},
"final_margin_quality_review": {
"review_required": false,
"pre_margin": 2,
"final_margin": 2,
"winner_quality_edge": 0.1605,
"winner": "CHW",
"score_reviewed": {
"away_runs": 4,
"home_runs": 2,
"source": "enhanced_prediction.pre_simulation_target"
},
"reason": "published margin is directionally supported or within review threshold"
}
},
"decision_profile": {
"method": "priced_decision_profile_v2",
"winner": "CHW",
"display_confidence": 0.523,
"internal_signal_score": 0.5732,
"internal_signal_status": "ranking_signal_not_a_calibrated_fair_probability",
"model_pick_probability": 0.523,
"confidence_compression_detected": true,
"moneyline_fit": "unavailable_without_market_price",
"betting_status": "price_required_before_betting_analysis",
"market_context": null,
"margin_fit": "moneyline_preferred_over_margin",
"totals_fit": "low_total_lean",
"winner_accuracy_and_margin_accuracy_decoupled": true,
"signals": {
"final_margin": 2,
"winner_quality_edge": 0.1605,
"winner_recent_form_edge": -0.04,
"winner_pitcher_matchup_edge": -0.0059,
"winner_simulation_draw_rate": 0.6667,
"blowout_draw_rate_margin_4_plus": 0.0,
"high_total_draw_rate_11_plus": 0.0,
"low_total_draw_rate_6_or_less": 0.6667,
"total_runs_spread": {
"min": 4,
"median": 5,
"max": 7,
"range": 3
}
},
"interpretation": "The internal signal is diagnostic, not a sportsbook fair price. A bet cannot be evaluated without a source-labelled market price; model/market disagreements are a pass until independently validated."
}
}Source: data/all_players_stats.csv embedded Savant hitter features. It adjusts team offense through expected production and contact quality, then records coverage so missing hitters are visible.
| Team | Applied | Offense Factor | Raw Avg Factor | Coverage Weight | Covered | Missing |
|---|---|---|---|---|---|---|
| Away CHW | True | 1.0271 | 1.0271 | 1 | 9 | 0 |
| Home CLE | True | 1.0019 | 1.0019 | 1 | 9 | 0 |
| Pos | Player | ESPN Rank | Off Factor | Quality | Regression | xwOBA | xBA | xSLG | Barrel% | HardHit% | EV | LA | Whiff% | K% | BB% | Regression Edge |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| LF | Randal Grichuk | - | 1.0625 | 0.8328 | negative_batter_regression | 0.3350 | 0.2780 | 0.4780 | 11.20 | 49.80 | 91.30 | 17.10 | 24 | 21.80 | 3.90 | -1 |
| 1B | Munetaka Murakami | - | 1.0835 | 1.1131 | neutral | 0.3510 | 0.2040 | 0.4690 | 20.50 | 56.80 | 93.90 | 16.10 | 42.30 | 35.40 | 16.60 | -0.1429 |
| 2B | Chase Meidroth | - | 0.9823 | -0.2365 | negative_batter_regression | 0.3010 | 0.2390 | 0.3480 | 4.60 | 34.60 | 87.20 | 8.50 | 19.70 | 21.90 | 9.50 | -1.0857 |
| 3B | Miguel Vargas | - | 1.1095 | 1.4598 | neutral | 0.3780 | 0.2630 | 0.4960 | 13 | 43.80 | 90.10 | 20.50 | 21 | 17.90 | 14.30 | 0.4286 |
| RF | Braden Montgomery | - | 1.0305 | 0.4073 | neutral | 0.3250 | 0.2550 | 0.3920 | 4.40 | 40.90 | 88.90 | 3 | 30.10 | 19.70 | 10.40 | 0.7714 |
| CF | Brenton Doyle | - | 0.9413 | -0.7821 | negative_batter_regression | 0.2450 | 0.2030 | 0.3070 | 6.70 | 35.50 | 89.10 | 8.60 | 32.50 | 32.70 | 5.40 | -1 |
| DH | Tommy Pham | - | 1.0205 | 0.2733 | positive_batter_regression | 0.3170 | 0.2360 | 0.3540 | 5.30 | 52.60 | 93.60 | 12.70 | 34.50 | 31.40 | 14.30 | 2 |
| C | Kyle Teel | - | 1.0131 | 0.1752 | neutral | 0.3210 | 0.2110 | 0.3750 | 11.40 | 47.10 | 85.70 | 13.60 | 35.60 | 35.40 | 13.20 | 0.1143 |
| SS | Colson Montgomery | - | 1.0009 | 0.0126 | neutral | 0.2940 | 0.1990 | 0.3880 | 12 | 40.90 | 88.60 | 23.60 | 37.40 | 35.60 | 8.50 | -0.1714 |
| Pos | Player | ESPN Rank | Off Factor | Quality | Regression | xwOBA | xBA | xSLG | Barrel% | HardHit% | EV | LA | Whiff% | K% | BB% | Regression Edge |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| CF | Steven Kwan | - | 1.0018 | 0.0246 | neutral | 0.3290 | 0.2780 | 0.3430 | 0.40 | 10.50 | 83.90 | 12.80 | 8.20 | 9.70 | 13.30 | -0.1429 |
| DH | Jo Adell | - | 1.0538 | 0.7179 | neutral | 0.3290 | 0.2570 | 0.4440 | 8.90 | 44.90 | 90.40 | 16.20 | 28.20 | 23.80 | 5.20 | 0.6286 |
| 1B | David Fry | - | 0.9512 | -0.6501 | negative_batter_regression | 0.2710 | 0.1810 | 0.2940 | 6.50 | 34.40 | 86.30 | 19.20 | 28.90 | 27.60 | 13.10 | -0.9429 |
| 3B | José Ramírez | - | 1.0359 | 0.4788 | neutral | 0.3250 | 0.2660 | 0.3910 | 4.10 | 38.80 | 88.60 | 19 | 15.30 | 12.70 | 11 | 0.6857 |
| LF | Angel Martínez | - | 0.9984 | -0.0218 | neutral | 0.2990 | 0.2510 | 0.4010 | 7.20 | 35.50 | 87.50 | 14.80 | 20.70 | 21.90 | 3.10 | -0.7714 |
| RF | Chase DeLauter | - | 1.0602 | 0.8032 | neutral | 0.3460 | 0.2770 | 0.4270 | 6.30 | 46.30 | 91.40 | 11.80 | 15 | 14.70 | 10.70 | -0.3714 |
| 2B | Travis Bazzana | - | 0.9817 | -0.2433 | neutral | 0.2990 | 0.2240 | 0.3470 | 5.20 | 36.20 | 87.60 | 15.70 | 23.20 | 20.70 | 10.80 | -0.8286 |
| C | Austin Hedges | - | 0.9548 | -0.6020 | negative_batter_regression | 0.2800 | 0.2240 | 0.3140 | 4.50 | 32.40 | 85.80 | 12.40 | 24.10 | 18.20 | 10.10 | -0.9429 |
| SS | Brayan Rocchio | - | 0.9791 | -0.2783 | neutral | 0.2940 | 0.2460 | 0.3500 | 2.90 | 30 | 87 | 13.80 | 22.10 | 14.40 | 6.40 | -0.4857 |
{
"home": {
"applied": true,
"offense_factor": 1.0019,
"raw_average_factor": 1.0019,
"team_espn_average_rank": null,
"coverage_weight": 1.0,
"covered_batters": 9,
"missing_batters": 0,
"players": [
{
"position": "CF",
"player_id": "680757",
"player_name": "Steven Kwan",
"offense_factor": 1.0018,
"quality_score": 0.0246,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "680757",
"espn_rank": null
},
"metrics": {
"pa": 580.0,
"k_percent": 9.7,
"bb_percent": 13.3,
"woba": 0.334,
"xwoba": 0.329,
"xba": 0.278,
"xslg": 0.343,
"sweet_spot_percent": 40.6,
"barrel_batted_rate": 0.4,
"hard_hit_percent": 10.5,
"exit_velocity_avg": 83.9,
"launch_angle_avg": 12.8,
"whiff_percent": 8.2,
"swing_percent": 35.7
},
"components": {
"expected_quality": 0.0518,
"regression_edge": -0.1429,
"xwoba_edge": 0.8571,
"xba_edge": 1.2,
"xslg_edge": -0.2857,
"barrel_edge": -1.3778,
"hard_hit_edge": -2.5,
"exit_velocity_edge": -1.8,
"sweet_spot_edge": 1.2167,
"launch_angle_hr_bonus": 0.0
}
},
{
"position": "DH",
"player_id": "666176",
"player_name": "Jo Adell",
"offense_factor": 1.0538,
"quality_score": 0.7179,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "666176",
"espn_rank": null
},
"metrics": {
"pa": 605.0,
"k_percent": 23.8,
"bb_percent": 5.2,
"woba": 0.307,
"xwoba": 0.329,
"xba": 0.257,
"xslg": 0.444,
"sweet_spot_percent": 32.2,
"barrel_batted_rate": 8.9,
"hard_hit_percent": 44.9,
"exit_velocity_avg": 90.4,
"launch_angle_avg": 16.2,
"whiff_percent": 28.2,
"swing_percent": 53.2
},
"components": {
"expected_quality": 0.7325,
"regression_edge": 0.6286,
"xwoba_edge": 0.8571,
"xba_edge": 0.6,
"xslg_edge": 1.1571,
"barrel_edge": 0.5111,
"hard_hit_edge": 1.0429,
"exit_velocity_edge": 0.8,
"sweet_spot_edge": -0.1833,
"launch_angle_hr_bonus": 0.2
}
},
{
"position": "1B",
"player_id": "681807",
"player_name": "David Fry",
"offense_factor": 0.9512,
"quality_score": -0.6501,
"regression_flag": "negative_batter_regression",
"espn_rank": {
"available": false,
"player_id": "681807",
"espn_rank": null
},
"metrics": {
"pa": 185.0,
"k_percent": 27.6,
"bb_percent": 13.1,
"woba": 0.304,
"xwoba": 0.271,
"xba": 0.181,
"xslg": 0.294,
"sweet_spot_percent": 25.6,
"barrel_batted_rate": 6.5,
"hard_hit_percent": 34.4,
"exit_velocity_avg": 86.3,
"launch_angle_avg": 19.2,
"whiff_percent": 28.9,
"swing_percent": 43.8
},
"components": {
"expected_quality": -0.7454,
"regression_edge": -0.9429,
"xwoba_edge": -0.8,
"xba_edge": -1.5714,
"xslg_edge": -0.9857,
"barrel_edge": -0.0222,
"hard_hit_edge": -0.4571,
"exit_velocity_edge": -0.84,
"sweet_spot_edge": -1.2833,
"launch_angle_hr_bonus": 0.0
}
},
{
"position": "3B",
"player_id": "608070",
"player_name": "José Ramírez",
"offense_factor": 1.0359,
"quality_score": 0.4788,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "608070",
"espn_rank": null
},
"metrics": {
"pa": 486.0,
"k_percent": 12.7,
"bb_percent": 11.0,
"woba": 0.301,
"xwoba": 0.325,
"xba": 0.266,
"xslg": 0.391,
"sweet_spot_percent": 35.3,
"barrel_batted_rate": 4.1,
"hard_hit_percent": 38.8,
"exit_velocity_avg": 88.6,
"launch_angle_avg": 19.0,
"whiff_percent": 15.3,
"swing_percent": 45.4
},
"components": {
"expected_quality": 0.4451,
"regression_edge": 0.6857,
"xwoba_edge": 0.7429,
"xba_edge": 0.8571,
"xslg_edge": 0.4,
"barrel_edge": -0.5556,
"hard_hit_edge": 0.1714,
"exit_velocity_edge": 0.08,
"sweet_spot_edge": 0.3333,
"launch_angle_hr_bonus": 0.0
}
},
{
"position": "LF",
"player_id": "682657",
"player_name": "Angel Martínez",
"offense_factor": 0.9984,
"quality_score": -0.0218,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "682657",
"espn_rank": null
},
"metrics": {
"pa": 374.0,
"k_percent": 21.9,
"bb_percent": 3.1,
"woba": 0.326,
"xwoba": 0.299,
"xba": 0.251,
"xslg": 0.401,
"sweet_spot_percent": 35.1,
"barrel_batted_rate": 7.2,
"hard_hit_percent": 35.5,
"exit_velocity_avg": 87.5,
"launch_angle_avg": 14.8,
"whiff_percent": 20.7,
"swing_percent": 54.3
},
"components": {
"expected_quality": 0.1002,
"regression_edge": -0.7714,
"xwoba_edge": 0.0,
"xba_edge": 0.4286,
"xslg_edge": 0.5429,
"barrel_edge": 0.1333,
"hard_hit_edge": -0.3,
"exit_velocity_edge": -0.36,
"sweet_spot_edge": 0.3,
"launch_angle_hr_bonus": 0.0
}
},
{
"position": "RF",
"player_id": "800050",
"player_name": "Chase DeLauter",
"offense_factor": 1.0602,
"quality_score": 0.8032,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "800050",
"espn_rank": null
},
"metrics": {
"pa": 511.0,
"k_percent": 14.7,
"bb_percent": 10.7,
"woba": 0.359,
"xwoba": 0.346,
"xba": 0.277,
"xslg": 0.427,
"sweet_spot_percent": 35.1,
"barrel_batted_rate": 6.3,
"hard_hit_percent": 46.3,
"exit_velocity_avg": 91.4,
"launch_angle_avg": 11.8,
"whiff_percent": 15.0,
"swing_percent": 42.3
},
"components": {
"expected_quality": 0.9944,
"regression_edge": -0.3714,
"xwoba_edge": 1.3429,
"xba_edge": 1.1714,
"xslg_edge": 0.9143,
"barrel_edge": -0.0667,
"hard_hit_edge": 1.2429,
"exit_velocity_edge": 1.2,
"sweet_spot_edge": 0.3,
"launch_angle_hr_bonus": 0.2
}
},
{
"position": "2B",
"player_id": "683953",
"player_name": "Travis Bazzana",
"offense_factor": 0.9817,
"quality_score": -0.2433,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "683953",
"espn_rank": null
},
"metrics": {
"pa": 473.0,
"k_percent": 20.7,
"bb_percent": 10.8,
"woba": 0.328,
"xwoba": 0.299,
"xba": 0.224,
"xslg": 0.347,
"sweet_spot_percent": 30.0,
"barrel_batted_rate": 5.2,
"hard_hit_percent": 36.2,
"exit_velocity_avg": 87.6,
"launch_angle_avg": 15.7,
"whiff_percent": 23.2,
"swing_percent": 45.9
},
"components": {
"expected_quality": -0.1481,
"regression_edge": -0.8286,
"xwoba_edge": 0.0,
"xba_edge": -0.3429,
"xslg_edge": -0.2286,
"barrel_edge": -0.3111,
"hard_hit_edge": -0.2,
"exit_velocity_edge": -0.32,
"sweet_spot_edge": -0.55,
"launch_angle_hr_bonus": 0.0
}
},
{
"position": "C",
"player_id": "595978",
"player_name": "Austin Hedges",
"offense_factor": 0.9548,
"quality_score": -0.602,
"regression_flag": "negative_batter_regression",
"espn_rank": {
"available": false,
"player_id": "595978",
"espn_rank": null
},
"metrics": {
"pa": 228.0,
"k_percent": 18.2,
"bb_percent": 10.1,
"woba": 0.313,
"xwoba": 0.28,
"xba": 0.224,
"xslg": 0.314,
"sweet_spot_percent": 26.7,
"barrel_batted_rate": 4.5,
"hard_hit_percent": 32.4,
"exit_velocity_avg": 85.8,
"launch_angle_avg": 12.4,
"whiff_percent": 24.1,
"swing_percent": 44.5
},
"components": {
"expected_quality": -0.5465,
"regression_edge": -0.9429,
"xwoba_edge": -0.5429,
"xba_edge": -0.3429,
"xslg_edge": -0.7,
"barrel_edge": -0.4667,
"hard_hit_edge": -0.7429,
"exit_velocity_edge": -1.04,
"sweet_spot_edge": -1.1,
"launch_angle_hr_bonus": 0.0
}
},
{
"position": "SS",
"player_id": "677587",
"player_name": "Brayan Rocchio",
"offense_factor": 0.9791,
"quality_score": -0.2783,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "677587",
"espn_rank": null
},
"metrics": {
"pa": 548.0,
"k_percent": 14.4,
"bb_percent": 6.4,
"woba": 0.311,
"xwoba": 0.294,
"xba": 0.246,
"xslg": 0.35,
"sweet_spot_percent": 34.9,
"barrel_batted_rate": 2.9,
"hard_hit_percent": 30.0,
"exit_velocity_avg": 87.0,
"launch_angle_avg": 13.8,
"whiff_percent": 22.1,
"swing_percent": 50.0
},
"components": {
"expected_quality": -0.2445,
"regression_edge": -0.4857,
"xwoba_edge": -0.1429,
"xba_edge": 0.2857,
"xslg_edge": -0.1857,
"barrel_edge": -0.8222,
"hard_hit_edge": -1.0857,
"exit_velocity_edge": -0.56,
"sweet_spot_edge": 0.2667,
"launch_angle_hr_bonus": 0.0
}
}
],
"source": "all_players_stats.csv embedded Savant batter features"
},
"away": {
"applied": true,
"offense_factor": 1.0271,
"raw_average_factor": 1.0271,
"team_espn_average_rank": null,
"coverage_weight": 1.0,
"covered_batters": 9,
"missing_batters": 0,
"players": [
{
"position": "LF",
"player_id": "545341",
"player_name": "Randal Grichuk",
"offense_factor": 1.0625,
"quality_score": 0.8328,
"regression_flag": "negative_batter_regression",
"espn_rank": {
"available": false,
"player_id": "545341",
"espn_rank": null
},
"metrics": {
"pa": 246.0,
"k_percent": 21.8,
"bb_percent": 3.9,
"woba": 0.37,
"xwoba": 0.335,
"xba": 0.278,
"xslg": 0.478,
"sweet_spot_percent": 37.7,
"barrel_batted_rate": 11.2,
"hard_hit_percent": 49.8,
"exit_velocity_avg": 91.3,
"launch_angle_avg": 17.1,
"whiff_percent": 24.0,
"swing_percent": 53.0
},
"components": {
"expected_quality": 1.1312,
"regression_edge": -1.0,
"xwoba_edge": 1.0286,
"xba_edge": 1.2,
"xslg_edge": 1.6429,
"barrel_edge": 1.0222,
"hard_hit_edge": 1.7429,
"exit_velocity_edge": 1.16,
"sweet_spot_edge": 0.7333,
"launch_angle_hr_bonus": 0.2
}
},
{
"position": "1B",
"player_id": "808959",
"player_name": "Munetaka Murakami",
"offense_factor": 1.0835,
"quality_score": 1.1131,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "808959",
"espn_rank": null
},
"metrics": {
"pa": 491.0,
"k_percent": 35.4,
"bb_percent": 16.6,
"woba": 0.356,
"xwoba": 0.351,
"xba": 0.204,
"xslg": 0.469,
"sweet_spot_percent": 30.5,
"barrel_batted_rate": 20.5,
"hard_hit_percent": 56.8,
"exit_velocity_avg": 93.9,
"launch_angle_avg": 16.1,
"whiff_percent": 42.3,
"swing_percent": 40.7
},
"components": {
"expected_quality": 1.3175,
"regression_edge": -0.1429,
"xwoba_edge": 1.4857,
"xba_edge": -0.9143,
"xslg_edge": 1.5143,
"barrel_edge": 2.5,
"hard_hit_edge": 2.5,
"exit_velocity_edge": 2.2,
"sweet_spot_edge": -0.4667,
"launch_angle_hr_bonus": 0.2
}
},
{
"position": "2B",
"player_id": "805367",
"player_name": "Chase Meidroth",
"offense_factor": 0.9823,
"quality_score": -0.2365,
"regression_flag": "negative_batter_regression",
"espn_rank": {
"available": false,
"player_id": "805367",
"espn_rank": null
},
"metrics": {
"pa": 597.0,
"k_percent": 21.9,
"bb_percent": 9.5,
"woba": 0.339,
"xwoba": 0.301,
"xba": 0.239,
"xslg": 0.348,
"sweet_spot_percent": 34.1,
"barrel_batted_rate": 4.6,
"hard_hit_percent": 34.6,
"exit_velocity_avg": 87.2,
"launch_angle_avg": 8.5,
"whiff_percent": 19.7,
"swing_percent": 42.0
},
"components": {
"expected_quality": -0.0983,
"regression_edge": -1.0857,
"xwoba_edge": 0.0571,
"xba_edge": 0.0857,
"xslg_edge": -0.2143,
"barrel_edge": -0.4444,
"hard_hit_edge": -0.4286,
"exit_velocity_edge": -0.48,
"sweet_spot_edge": 0.1333,
"launch_angle_hr_bonus": 0.0
}
},
{
"position": "3B",
"player_id": "678246",
"player_name": "Miguel Vargas",
"offense_factor": 1.1095,
"quality_score": 1.4598,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "678246",
"espn_rank": null
},
"metrics": {
"pa": 651.0,
"k_percent": 17.9,
"bb_percent": 14.3,
"woba": 0.363,
"xwoba": 0.378,
"xba": 0.263,
"xslg": 0.496,
"sweet_spot_percent": 39.4,
"barrel_batted_rate": 13.0,
"hard_hit_percent": 43.8,
"exit_velocity_avg": 90.1,
"launch_angle_avg": 20.5,
"whiff_percent": 21.0,
"swing_percent": 43.9
},
"components": {
"expected_quality": 1.6277,
"regression_edge": 0.4286,
"xwoba_edge": 2.2571,
"xba_edge": 0.7714,
"xslg_edge": 1.9,
"barrel_edge": 1.4222,
"hard_hit_edge": 0.8857,
"exit_velocity_edge": 0.68,
"sweet_spot_edge": 1.0167,
"launch_angle_hr_bonus": 0.45
}
},
{
"position": "RF",
"player_id": "695731",
"player_name": "Braden Montgomery",
"offense_factor": 1.0305,
"quality_score": 0.4073,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "695731",
"espn_rank": null
},
"metrics": {
"pa": 332.0,
"k_percent": 19.7,
"bb_percent": 10.4,
"woba": 0.298,
"xwoba": 0.325,
"xba": 0.255,
"xslg": 0.392,
"sweet_spot_percent": 28.2,
"barrel_batted_rate": 4.4,
"hard_hit_percent": 40.9,
"exit_velocity_avg": 88.9,
"launch_angle_avg": 3.0,
"whiff_percent": 30.1,
"swing_percent": 50.4
},
"components": {
"expected_quality": 0.348,
"regression_edge": 0.7714,
"xwoba_edge": 0.7429,
"xba_edge": 0.5429,
"xslg_edge": 0.4143,
"barrel_edge": -0.4889,
"hard_hit_edge": 0.4714,
"exit_velocity_edge": 0.2,
"sweet_spot_edge": -0.85,
"launch_angle_hr_bonus": 0.0
}
},
{
"position": "CF",
"player_id": "686668",
"player_name": "Brenton Doyle",
"offense_factor": 0.9413,
"quality_score": -0.7821,
"regression_flag": "negative_batter_regression",
"espn_rank": {
"available": false,
"player_id": "686668",
"espn_rank": null
},
"metrics": {
"pa": 192.0,
"k_percent": 32.7,
"bb_percent": 5.4,
"woba": 0.28,
"xwoba": 0.245,
"xba": 0.203,
"xslg": 0.307,
"sweet_spot_percent": 26.8,
"barrel_batted_rate": 6.7,
"hard_hit_percent": 35.5,
"exit_velocity_avg": 89.1,
"launch_angle_avg": 8.6,
"whiff_percent": 32.5,
"swing_percent": 54.5
},
"components": {
"expected_quality": -0.8792,
"regression_edge": -1.0,
"xwoba_edge": -1.5429,
"xba_edge": -0.9429,
"xslg_edge": -0.8,
"barrel_edge": 0.0222,
"hard_hit_edge": -0.3,
"exit_velocity_edge": 0.28,
"sweet_spot_edge": -1.0833,
"launch_angle_hr_bonus": 0.0
}
},
{
"position": "DH",
"player_id": "502054",
"player_name": "Tommy Pham",
"offense_factor": 1.0205,
"quality_score": 0.2733,
"regression_flag": "positive_batter_regression",
"espn_rank": {
"available": false,
"player_id": "502054",
"espn_rank": null
},
"metrics": {
"pa": 21.0,
"k_percent": 31.4,
"bb_percent": 14.3,
"woba": 0.209,
"xwoba": 0.317,
"xba": 0.236,
"xslg": 0.354,
"sweet_spot_percent": 26.3,
"barrel_batted_rate": 5.3,
"hard_hit_percent": 52.6,
"exit_velocity_avg": 93.6,
"launch_angle_avg": 12.7,
"whiff_percent": 34.5,
"swing_percent": 41.7
},
"components": {
"expected_quality": 0.3805,
"regression_edge": 2.0,
"xwoba_edge": 0.5143,
"xba_edge": 0.0,
"xslg_edge": -0.1286,
"barrel_edge": -0.2889,
"hard_hit_edge": 2.1429,
"exit_velocity_edge": 2.08,
"sweet_spot_edge": -1.1667,
"launch_angle_hr_bonus": 0.2
}
},
{
"position": "C",
"player_id": "691019",
"player_name": "Kyle Teel",
"offense_factor": 1.0131,
"quality_score": 0.1752,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "691019",
"espn_rank": null
},
"metrics": {
"pa": 106.0,
"k_percent": 35.4,
"bb_percent": 13.2,
"woba": 0.317,
"xwoba": 0.321,
"xba": 0.211,
"xslg": 0.375,
"sweet_spot_percent": 41.4,
"barrel_batted_rate": 11.4,
"hard_hit_percent": 47.1,
"exit_velocity_avg": 85.7,
"launch_angle_avg": 13.6,
"whiff_percent": 35.6,
"swing_percent": 45.4
},
"components": {
"expected_quality": 0.4042,
"regression_edge": 0.1143,
"xwoba_edge": 0.6286,
"xba_edge": -0.7143,
"xslg_edge": 0.1714,
"barrel_edge": 1.0667,
"hard_hit_edge": 1.3571,
"exit_velocity_edge": -1.08,
"sweet_spot_edge": 1.35,
"launch_angle_hr_bonus": 0.0
}
},
{
"position": "SS",
"player_id": "695657",
"player_name": "Colson Montgomery",
"offense_factor": 1.0009,
"quality_score": 0.0126,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "695657",
"espn_rank": null
},
"metrics": {
"pa": 588.0,
"k_percent": 35.6,
"bb_percent": 8.5,
"woba": 0.3,
"xwoba": 0.294,
"xba": 0.199,
"xslg": 0.388,
"sweet_spot_percent": 32.9,
"barrel_batted_rate": 12.0,
"hard_hit_percent": 40.9,
"exit_velocity_avg": 88.6,
"launch_angle_avg": 23.6,
"whiff_percent": 37.4,
"swing_percent": 51.5
},
"components": {
"expected_quality": 0.0426,
"regression_edge": -0.1714,
"xwoba_edge": -0.1429,
"xba_edge": -1.0571,
"xslg_edge": 0.3571,
"barrel_edge": 1.2,
"hard_hit_edge": 0.4714,
"exit_velocity_edge": 0.08,
"sweet_spot_edge": -0.0667,
"launch_angle_hr_bonus": 0.0
}
}
],
"source": "all_players_stats.csv embedded Savant batter features"
},
"reason": "Baseball Savant hitter xwOBA, xBA, xSLG, exit velocity, launch angle, barrel, hard-hit, sweet-spot, whiff, K%, and BB% adjusted offense; ESPN rank is attached for reporting only"
}Source: data/all_players_stats.csv embedded Savant pitcher and movement features. Starter quality modifies opposing run scoring and pitcher strikeout/walk/homer expectations.
| Team | Pitcher | Available | ESPN Rank | Quality | Sample Wt | Run Prev | K Factor | BB Factor | HR Factor | Regression | xwOBA | wOBA | K% | BB% | Whiff% | Barrel% | HardHit% |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Away CHW | True | - | 0.4803 | 0.4500 | 0.9592 | 1.0674 | 1.0477 | 0.9210 | negative_pitcher_regression | 0.2430 | 0.2110 | 37.30 | 14.50 | 36.20 | 1.90 | 34 | |
| Home CLE | True | - | 0.5409 | 1 | 0.9540 | 1.0229 | 0.9480 | 0.9086 | neutral | 0.2750 | 0.2740 | 25.80 | 6.60 | 25.50 | 5 | 34.30 |
| Team | Pitcher | Movement Available | Primary Pitch | Pitches | Velo | Spin | Axis | HB | IVB | Drop | Rel X | Rel Z | Extension | Arm Angle | Movement Score |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Away CHW | True | None | 30 | 89.20 | 2397 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | -0.0374 | |
| Home CLE | True | None | 97 | 90.12 | 2107 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.0142 |
| Run Factor | Value |
|---|---|
| away_runs_vs_home_pitcher | 0.9748 |
| home_runs_vs_away_pitcher | 0.9907 |
| home_pitcher_starter_only_factor | 0.9540 |
| away_pitcher_starter_only_factor | 0.9816 |
| home_pitcher_workload_share | 0.6667 |
| away_pitcher_workload_share | 0.5556 |
| home_pitcher_quality_edge | 0.0938 |
{
"applied": true,
"home_pitcher": {
"available": true,
"pitcher_id": "800048",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 705.0,
"k_percent": 25.8,
"bb_percent": 6.6,
"woba": 0.274,
"xwoba": 0.275,
"sweet_spot_percent": 30.7,
"barrel_batted_rate": 5.0,
"hard_hit_percent": 34.3,
"avg_best_speed": 76.3542,
"avg_hyper_speed": 93.484,
"whiff_percent": 25.5,
"swing_percent": 48.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.7912,
"command_and_miss": 0.3829,
"regression_edge": -0.0286,
"xwoba_edge": 1.0571,
"barrel_edge": 0.4889,
"hard_hit_edge": 0.5143,
"whiff_edge": 0.0429,
"bb_edge": 0.65,
"pitch_design_score": 0.0142
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "800048",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 97,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 90.117481056101,
"release_spin_rate": 2107.0953611307837,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 90.117481056101,
"release_spin_rate": 2107.0953611307837,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 90.1175,
"release_spin_rate": 2107.0954,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0142,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.1013,
"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.5409,
"sample_weight": 1.0,
"run_prevention_factor": 0.954,
"strikeout_factor": 1.0229,
"walk_factor": 0.948,
"homer_factor": 0.9086,
"woba_minus_xwoba": -0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "800048",
"espn_rank": null
}
},
"away_pitcher": {
"available": true,
"pitcher_id": "696146",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 90.0,
"k_percent": 37.3,
"bb_percent": 14.5,
"woba": 0.211,
"xwoba": 0.243,
"sweet_spot_percent": 35.8,
"barrel_batted_rate": 1.9,
"hard_hit_percent": 34.0,
"avg_best_speed": 75.8598,
"avg_hyper_speed": 93.4182,
"whiff_percent": 36.2,
"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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.4885,
"command_and_miss": 1.2621,
"regression_edge": -0.9143,
"xwoba_edge": 1.9714,
"barrel_edge": 1.1778,
"hard_hit_edge": 0.5571,
"whiff_edge": 1.5714,
"bb_edge": -1.325,
"pitch_design_score": -0.0374
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "696146",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 30,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 30,
"pitch_usage": 0.0,
"release_speed": 89.19609326567674,
"release_spin_rate": 2396.9610928315874,
"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": 30,
"pitch_usage": 0.0,
"release_speed": 89.19609326567674,
"release_spin_rate": 2396.9610928315874,
"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.1961,
"release_spin_rate": 2396.9611,
"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.0374,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2672,
"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.4803,
"sample_weight": 0.45,
"run_prevention_factor": 0.9592,
"strikeout_factor": 1.0674,
"walk_factor": 1.0477,
"homer_factor": 0.921,
"woba_minus_xwoba": -0.032,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "696146",
"espn_rank": null
}
},
"run_factors": {
"away_runs_vs_home_pitcher": 0.9748,
"home_runs_vs_away_pitcher": 0.9907,
"home_pitcher_starter_only_factor": 0.954,
"away_pitcher_starter_only_factor": 0.9816,
"home_pitcher_workload_share": 0.6667,
"away_pitcher_workload_share": 0.5556,
"home_pitcher_quality_edge": 0.0938
},
"score_before": {
"away_runs": 4.0,
"home_runs": 3.0
},
"score_after": {
"away_runs": 3.8991,
"home_runs": 2.972,
"home_win_probability": 0.4229
},
"reason": "Baseball Savant xwOBA, barrel, hard-hit, sweet-spot, whiff, K%, and BB% adjusted starter run prevention"
}| Team | Last-10 W-L | Win % | R/G | RA/G | Run Diff | Streak | Offense | Defense |
|---|---|---|---|---|---|---|---|---|
| Away CHW | 7-3 | 0.700 | 6.50 | 4.30 | 22 | 1W | hot | average |
| Home CLE | 8-2 | 0.800 | 5.30 | 3.20 | 21 | 1L | hot | strong |
| Team | Record | Win % | Run Diff | RD/Game | Available |
|---|---|---|---|---|---|
| Away CHW | 84-78 | 0.519 | 56 | 0.346 | True |
| Home CLE | 85-77 | 0.525 | 11 | 0.068 | True |
| Signal | - | - | -0.278 | -0.161 | applied=False |
| Date | Matchup | Score | Winner | Margin | Type |
|---|---|---|---|---|---|
| 2026-09-16 | CHW @ CLE | 3 - 6 | CLE | 3 | blowout |
| 2026-09-15 | CHW @ CLE | 6 - 7 | CLE | 1 | close |
| 2026-09-14 | CHW @ CLE | 7 - 3 | CHW | 4 | blowout |
| 2026-08-09 | CLE @ CHW | 3 - 5 | CHW | 2 | close |
| 2026-08-08 | CLE @ CHW | 3 - 6 | CHW | 3 | blowout |
| Layer | AB | H | R | HR | RBI | BB | SO |
|---|---|---|---|---|---|---|---|
| Game target CHW | - | - | 4 | - | - | - | - |
| Game target CLE | - | - | 2 | - | - | - | - |
| Player finalized CHW | 32 | 7 | 5 | 1 | 4 | 3 | 11 |
| Player finalized CLE | 32 | 7 | 5 | 1 | 4 | 4 | 8 |
| Player model fractional CHW | 31.00 | 6.87 | 4.83 | 1.37 | 4.48 | 3.12 | 10.19 |
| Player model fractional CLE | 33.16 | 6.91 | 4.15 | 1.11 | 4.05 | 3.81 | 7.13 |
| Simulation box CHW | 37 | 7 | 4 | 0 | 4 | 3 | 5 |
| Simulation box CLE | 35 | 5 | 2 | 1 | 2 | 2 | 9 |
If player finalized rows and game target disagree, the report now exposes that gap instead of hiding it. Fractional model rows show the unrounded prop layer before box-score realization.
| Team | Role | Pitcher | Pre IP | Pre ER | Pre SO | Pre H | Pre BB | Weighted ERA | Weighted WHIP | Box Sync |
|---|---|---|---|---|---|---|---|---|---|---|
| Away CHW | Starter | Hagen Smith | 5 | 0 | 5 | 2 | 2 | 2.73 | 1.13 | True |
| Away CHW | Closer | Grant Taylor | 1.10 | 2 | 1 | 2 | 0 | 2.02 | 0.93 | True |
| Away CHW | Middle Reliever (High Leverage) | Sean Newcomb | 1.10 | 0 | 1 | 0 | 0 | 4.68 | 1.35 | True |
| Away CHW | Setup Man | Bryan Hudson | 1 | 0 | 0 | 0 | 0 | 3.44 | 1.26 | True |
| Away CHW | Middle Reliever (High Leverage) | Jordan Hicks | 0.10 | 0 | 1 | 0 | 0 | 5.07 | 1.49 | True |
| Away CHW | Middle Reliever | Huascar Brazobán | 0 | 0 | 1 | 1 | 0 | 2.56 | 0.87 | True |
| Home CLE | Starter | Parker Messick | 6 | 3 | 5 | 5 | 1 | 3.08 | 1.22 | True |
| Home CLE | Closer | Cade Smith | 1 | 0 | 0 | 0 | 0 | 1.43 | 0.70 | True |
| Home CLE | Middle Reliever (High Leverage) | Erik Sabrowski | 2 | 1 | 0 | 1 | 1 | 2.09 | 1.18 | True |
| Home CLE | Setup Man | Hunter Gaddis | 0 | 0 | 0 | 1 | 1 | 4.51 | 1.57 | True |
| Side | Team | Role | Pos | Player | Dominant | Changed | Boosted | Deboosted | Better | Worse | Largest Metric | Largest Delta | Direction | Effect |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| away | CHW | batter | LF | Randal Grichuk | better | 9 | 6 | 3 | 5 | 4 | predicted_AB | 2.5000 | boost | better |
| away | CHW | batter | CF | Brenton Doyle | worse | 10 | 1 | 9 | 1 | 9 | predicted_AB | 2.1390 | boost | better |
| away | CHW | batter | RF | Braden Montgomery | better | 11 | 8 | 3 | 9 | 2 | predicted_2B | 1.8300 | boost | better |
| away | CHW | batter | 1B | Munetaka Murakami | better | 11 | 5 | 6 | 6 | 5 | predicted_SO | -1.5580 | deboost | better |
| away | CHW | batter | SS | Colson Montgomery | worse | 11 | 1 | 10 | 2 | 9 | predicted_SO | -1.4840 | deboost | better |
| home | CLE | batter | CF | Steven Kwan | worse | 9 | 5 | 4 | 4 | 5 | predicted_AB | 1.3720 | boost | better |
| away | CHW | batter | 2B | Chase Meidroth | worse | 11 | 3 | 8 | 2 | 9 | predicted_H | -1.3600 | deboost | worse |
| away | CHW | batter | C | Kyle Teel | worse | 11 | 2 | 9 | 3 | 8 | predicted_SO | -1.3500 | deboost | better |
| home | CLE | batter | LF | Angel Martínez | better | 11 | 7 | 4 | 6 | 5 | predicted_RBI | 1.2600 | boost | better |
| home | CLE | batter | 1B | David Fry | worse | 10 | 5 | 5 | 4 | 6 | predicted_SO | 1.2030 | boost | worse |
| away | CHW | batter | 3B | Miguel Vargas | worse | 9 | 2 | 7 | 1 | 8 | predicted_SO | 1.1940 | boost | worse |
| home | CLE | batter | RF | Chase DeLauter | worse | 10 | 1 | 9 | 0 | 10 | predicted_H | -1.1000 | deboost | worse |
| home | CLE | batter | 2B | Travis Bazzana | deboosted | 10 | 4 | 6 | 5 | 5 | predicted_H | 1.0900 | boost | better |
| home | CLE | batter | SS | Brayan Rocchio | worse | 10 | 3 | 7 | 2 | 8 | predicted_H | -1.0600 | deboost | worse |
| away | CHW | batter | DH | Tommy Pham | better | 11 | 5 | 6 | 6 | 5 | predicted_SO | -1.0580 | deboost | better |
| home | CLE | pitcher | Starter | Parker Messick | better | 1 | 1 | 0 | 1 | 0 | predicted_SO | 1.0000 | boost | better |
| home | CLE | pitcher | Middle Reliever (High Leverage) | Erik Sabrowski | neutral | 2 | 1 | 1 | 1 | 1 | predicted_IP | 1.0000 | boost | better |
| home | CLE | batter | DH | Jo Adell | worse | 8 | 2 | 6 | 2 | 6 | predicted_H | -0.9110 | deboost | worse |
| away | CHW | pitcher | Middle Reliever | Huascar Brazobán | better | 1 | 1 | 0 | 1 | 0 | predicted_IP | 0.9000 | boost | better |
| home | CLE | batter | 3B | José Ramírez | worse | 10 | 1 | 9 | 2 | 8 | predicted_AB | -0.8300 | deboost | worse |
| home | CLE | batter | C | Austin Hedges | worse | 10 | 3 | 7 | 2 | 8 | predicted_BB | 0.6620 | boost | better |
| away | CHW | pitcher | Closer | Grant Taylor | worse | 1 | 0 | 1 | 0 | 1 | predicted_IP | -0.2333 | deboost | worse |
| away | CHW | pitcher | Middle Reliever (High Leverage) | Sean Newcomb | worse | 1 | 0 | 1 | 0 | 1 | predicted_IP | -0.2333 | deboost | worse |
| away | CHW | pitcher | Middle Reliever (High Leverage) | Jordan Hicks | worse | 1 | 0 | 1 | 0 | 1 | predicted_IP | -0.2333 | deboost | worse |
This table ranks players whose JSON evolution changed materially. Boost/deboost is numeric movement; better/worse is role-aware.
| Field | Value |
|---|---|
| Pitcher | Hagen Smith |
| Role | Starter |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 0.4803 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | -0.0374 |
| Avg Velo | 89.1961 |
| Avg Spin | 2396.9611 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 5 |
| Pre ER | 0 |
| Pre H | 2 |
| Pre BB | 2 |
| Pre SO | 5 |
| Season ERA | 0.8710 |
| Season WHIP | 0.9032 |
| Role Avg IP | 2.5000 |
| Recent Avg IP | 2.5000 |
| Last Start IP | 3 |
{
"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.0655,
"defense_index": 1.0115,
"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": "CLE",
"games": 162,
"wins": 85,
"losses": 77,
"win_pct": 0.5247,
"runs_scored": 678.0,
"runs_allowed": 667.0,
"run_differential": 11.0,
"run_differential_per_game": 0.0679,
"avg_runs_scored": 4.1852,
"avg_runs_allowed": 4.1173,
"offense_index": 0.9309,
"defense_index": 1.0919,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 3.2,
"run_differential": 21.0
},
"available": true,
"quality_score": 0.1343
},
"edges": {
"quality_edge": -0.0063,
"offense_edge": 0.0655,
"opponent_offense_edge": -0.0691,
"defense_strength": 0.0115,
"opponent_defense_weakness": -0.0919,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0029,
"run_prevention": 0.9881,
"strikeout": 1.0053
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "696146",
"profile": {
"available": true,
"pitcher_id": "696146",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 90.0,
"k_percent": 37.3,
"bb_percent": 14.5,
"woba": 0.211,
"xwoba": 0.243,
"sweet_spot_percent": 35.8,
"barrel_batted_rate": 1.9,
"hard_hit_percent": 34.0,
"avg_best_speed": 75.8598,
"avg_hyper_speed": 93.4182,
"whiff_percent": 36.2,
"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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.4885,
"command_and_miss": 1.2621,
"regression_edge": -0.9143,
"xwoba_edge": 1.9714,
"barrel_edge": 1.1778,
"hard_hit_edge": 0.5571,
"whiff_edge": 1.5714,
"bb_edge": -1.325,
"pitch_design_score": -0.0374
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "696146",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 30,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 30,
"pitch_usage": 0.0,
"release_speed": 89.19609326567674,
"release_spin_rate": 2396.9610928315874,
"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": 30,
"pitch_usage": 0.0,
"release_speed": 89.19609326567674,
"release_spin_rate": 2396.9610928315874,
"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.1961,
"release_spin_rate": 2396.9611,
"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.0374,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2672,
"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.4803,
"sample_weight": 0.45,
"run_prevention_factor": 0.9592,
"strikeout_factor": 1.0674,
"walk_factor": 1.0477,
"homer_factor": 0.921,
"woba_minus_xwoba": -0.032,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "696146",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9816,
"adjusted": 0
},
"predicted_H": {
"original": 3.0,
"factor": 0.9816,
"adjusted": 3
},
"predicted_BB": {
"original": 0.0,
"factor": 1.0215,
"adjusted": 0
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9645,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 1.0303,
"adjusted": 3
}
}
}
}{
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 18.0,
"ER": 3,
"H": 8,
"BB": 6,
"SO": 23,
"HR": 0,
"ERA": 1.5,
"WHIP": 0.7777777777777778,
"K9": 11.5,
"HR9": 0.0,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": true,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-29T00:00:00"
}{
"available": true,
"pitcher_id": "696146",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 30,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 30,
"pitch_usage": 0.0,
"release_speed": 89.19609326567674,
"release_spin_rate": 2396.9610928315874,
"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": 30,
"pitch_usage": 0.0,
"release_speed": 89.19609326567674,
"release_spin_rate": 2396.9610928315874,
"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.1961,
"release_spin_rate": 2396.9611,
"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.0374,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2672,
"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."
}{
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.389,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.561,
"prior_weight": 0.439
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "696146",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 18,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 7.1,
"ER": 1.0,
"R": 1.0,
"H": 4.0,
"BB": 4.0,
"SO": 8.0,
"HR": 0.0,
"BF": 30.0,
"Pitches": 127.0
},
"per_game": {
"IP": 1.1,
"ER": 0.2,
"R": 0.2,
"H": 0.8,
"BB": 0.8,
"SO": 1.6,
"HR": 0.0,
"BF": 6.0,
"Pitches": 25.4
},
"rates": {
"ERA": 1.2273,
"WHIP": 1.0909,
"ER_per_IP": 0.13636,
"H_per_IP": 0.54545,
"BB_per_IP": 0.54545,
"SO_per_IP": 1.09091,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 18.0,
"ER": 3.0,
"R": 3.0,
"H": 8.0,
"BB": 6.0,
"SO": 23.0,
"HR": 0.0,
"BF": 68.0,
"Pitches": 272.0
},
"per_game": {
"IP": 1.2,
"ER": 0.3,
"R": 0.3,
"H": 0.8,
"BB": 0.6,
"SO": 2.3,
"HR": 0.0,
"BF": 6.8,
"Pitches": 27.2
},
"rates": {
"ERA": 1.5,
"WHIP": 0.7778,
"ER_per_IP": 0.16667,
"H_per_IP": 0.44444,
"BB_per_IP": 0.33333,
"SO_per_IP": 1.27778,
"HR_per_IP": 0.0
}
},
"season": {
"games": 18,
"totals": {
"IP": 31.0,
"ER": 3.0,
"R": 3.0,
"H": 12.0,
"BB": 16.0,
"SO": 42.0,
"HR": 0.0,
"BF": 120.0,
"Pitches": 503.0
},
"per_game": {
"IP": 1.2,
"ER": 0.1667,
"R": 0.1667,
"H": 0.6667,
"BB": 0.8889,
"SO": 2.3333,
"HR": 0.0,
"BF": 6.6667,
"Pitches": 27.9444
},
"rates": {
"ERA": 0.871,
"WHIP": 0.9032,
"ER_per_IP": 0.09677,
"H_per_IP": 0.3871,
"BB_per_IP": 0.51613,
"SO_per_IP": 1.35484,
"HR_per_IP": 0.0
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 3.0,
"predicted_ER": 0.922,
"predicted_H": 2.134,
"predicted_BB": 1.302,
"predicted_SO": 3.314,
"predicted_HR": 0.197,
"predicted_ERA": 2.7256,
"predicted_WHIP": 1.1281
}
}{
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5355,
"form_weight": 0.4645,
"form_reliability": 0.561,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 6.389,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.561,
"prior_weight": 0.439
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 3.0,
"final": 4.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 0.922,
"final": 0.4283,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 2.134,
"final": 2.0622,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 2.0,
"form": 1.302,
"final": 1.6758,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 3.314,
"final": 4.2168,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.197,
"final": 0.0915,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.7256,
"final": 2.7256,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1281,
"final": 1.1281,
"source": "form_only"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | Grant Taylor |
| Role | Closer |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 0.5158 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | 0.1725 |
| Avg Velo | 92.9447 |
| Avg Spin | 2431.2963 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 1.1000 |
| Pre ER | 2 |
| Pre H | 2 |
| Pre BB | 0 |
| Pre SO | 1 |
| Season ERA | 2.3964 |
| Season WHIP | 1.0296 |
| Role Avg IP | 1.3870 |
| Recent Avg IP | 1.6000 |
| Last Start IP | 0 |
{
"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.0655,
"defense_index": 1.0115,
"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": "CLE",
"games": 162,
"wins": 85,
"losses": 77,
"win_pct": 0.5247,
"runs_scored": 678.0,
"runs_allowed": 667.0,
"run_differential": 11.0,
"run_differential_per_game": 0.0679,
"avg_runs_scored": 4.1852,
"avg_runs_allowed": 4.1173,
"offense_index": 0.9309,
"defense_index": 1.0919,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 3.2,
"run_differential": 21.0
},
"available": true,
"quality_score": 0.1343
},
"edges": {
"quality_edge": -0.0063,
"offense_edge": 0.0655,
"opponent_offense_edge": -0.0691,
"defense_strength": 0.0115,
"opponent_defense_weakness": -0.0919,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0029,
"run_prevention": 0.9881,
"strikeout": 1.0053
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "691799",
"profile": {
"available": true,
"pitcher_id": "691799",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 218.0,
"k_percent": 31.5,
"bb_percent": 8.9,
"woba": 0.26,
"xwoba": 0.267,
"sweet_spot_percent": 31.2,
"barrel_batted_rate": 7.6,
"hard_hit_percent": 41.2,
"avg_best_speed": 79.5796,
"avg_hyper_speed": 94.1935,
"whiff_percent": 29.4,
"swing_percent": 46.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.6824,
"command_and_miss": 0.8293,
"regression_edge": -0.2,
"xwoba_edge": 1.2857,
"barrel_edge": -0.0889,
"hard_hit_edge": -0.4714,
"whiff_edge": 0.6,
"bb_edge": 0.075,
"pitch_design_score": 0.1725
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "691799",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 20,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 20,
"pitch_usage": 0.0,
"release_speed": 92.94466504167202,
"release_spin_rate": 2431.296292552188,
"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": 20,
"pitch_usage": 0.0,
"release_speed": 92.94466504167202,
"release_spin_rate": 2431.296292552188,
"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.9447,
"release_spin_rate": 2431.2963,
"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.1725,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.2322,
"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.5158,
"sample_weight": 0.872,
"run_prevention_factor": 0.9562,
"strikeout_factor": 1.0678,
"walk_factor": 0.9948,
"homer_factor": 0.989,
"woba_minus_xwoba": -0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "691799",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9618,
"adjusted": 0
},
"predicted_H": {
"original": 1.0,
"factor": 0.9618,
"adjusted": 1
},
"predicted_BB": {
"original": 0.0,
"factor": 0.9955,
"adjusted": 0
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9904,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 1.0591,
"adjusted": 3
}
}
}
}{
"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": 15.0,
"ER": 2,
"H": 5,
"BB": 6,
"SO": 16,
"HR": 1,
"ERA": 1.2,
"WHIP": 0.7333333333333333,
"K9": 9.6,
"HR9": 0.6,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": true,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-02T00:00:00"
}{
"available": true,
"pitcher_id": "691799",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 20,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 20,
"pitch_usage": 0.0,
"release_speed": 92.94466504167202,
"release_spin_rate": 2431.296292552188,
"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": 20,
"pitch_usage": 0.0,
"release_speed": 92.94466504167202,
"release_spin_rate": 2431.296292552188,
"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.9447,
"release_spin_rate": 2431.2963,
"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.1725,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.2322,
"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."
}{
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 11.61,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.699,
"prior_weight": 0.301
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "691799",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 41,
"reference_playing_time": 1.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 8.0,
"ER": 0.0,
"R": 1.0,
"H": 4.0,
"BB": 1.0,
"SO": 9.0,
"HR": 0.0,
"BF": 27.0,
"Pitches": 102.0
},
"per_game": {
"IP": 1.2,
"ER": 0.0,
"R": 0.2,
"H": 0.8,
"BB": 0.2,
"SO": 1.8,
"HR": 0.0,
"BF": 5.4,
"Pitches": 20.4
},
"rates": {
"ERA": 0.0,
"WHIP": 0.625,
"ER_per_IP": 0.0,
"H_per_IP": 0.5,
"BB_per_IP": 0.125,
"SO_per_IP": 1.125,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 15.0,
"ER": 2.0,
"R": 3.0,
"H": 5.0,
"BB": 6.0,
"SO": 16.0,
"HR": 1.0,
"BF": 54.0,
"Pitches": 209.0
},
"per_game": {
"IP": 1.1,
"ER": 0.2,
"R": 0.3,
"H": 0.5,
"BB": 0.6,
"SO": 1.6,
"HR": 0.1,
"BF": 5.4,
"Pitches": 20.9
},
"rates": {
"ERA": 1.2,
"WHIP": 0.7333,
"ER_per_IP": 0.13333,
"H_per_IP": 0.33333,
"BB_per_IP": 0.4,
"SO_per_IP": 1.06667,
"HR_per_IP": 0.06667
}
},
"season": {
"games": 41,
"totals": {
"IP": 56.1,
"ER": 15.0,
"R": 21.0,
"H": 40.0,
"BB": 18.0,
"SO": 76.0,
"HR": 4.0,
"BF": 225.0,
"Pitches": 905.0
},
"per_game": {
"IP": 1.1,
"ER": 0.3659,
"R": 0.5122,
"H": 0.9756,
"BB": 0.439,
"SO": 1.8537,
"HR": 0.0976,
"BF": 5.4878,
"Pitches": 22.0732
},
"rates": {
"ERA": 2.3964,
"WHIP": 1.0296,
"ER_per_IP": 0.26627,
"H_per_IP": 0.71006,
"BB_per_IP": 0.31953,
"SO_per_IP": 1.34911,
"HR_per_IP": 0.07101
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 1.1,
"predicted_ER": 0.322,
"predicted_H": 0.912,
"predicted_BB": 0.426,
"predicted_SO": 1.56,
"predicted_HR": 0.102,
"predicted_ERA": 2.016,
"predicted_WHIP": 0.9304
}
}{
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4772,
"form_weight": 0.5228,
"form_reliability": 0.699,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 11.61,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.699,
"prior_weight": 0.301
},
"applied_metrics": {
"predicted_IP": {
"model": 1.1,
"form": 1.1,
"final": 1.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 0.322,
"final": 1.1227,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 0.912,
"final": 1.4312,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 0.426,
"final": 0.2227,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 1.56,
"final": 1.2928,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.102,
"final": 0.5305,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.016,
"final": 2.016,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9304,
"final": 0.9304,
"source": "form_only"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | Sean Newcomb |
| Role | Middle Reliever (High Leverage) |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | -0.0526 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | -0.0078 |
| Avg Velo | 89.7243 |
| Avg Spin | 2442.3558 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 1.1000 |
| Pre ER | 0 |
| Pre H | 0 |
| Pre BB | 0 |
| Pre SO | 1 |
| Season ERA | 2.7747 |
| Season WHIP | 1.1146 |
| Role Avg IP | 1.5560 |
| Recent Avg IP | 2.2000 |
| Last Start IP | 0 |
{
"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.0655,
"defense_index": 1.0115,
"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": "CLE",
"games": 162,
"wins": 85,
"losses": 77,
"win_pct": 0.5247,
"runs_scored": 678.0,
"runs_allowed": 667.0,
"run_differential": 11.0,
"run_differential_per_game": 0.0679,
"avg_runs_scored": 4.1852,
"avg_runs_allowed": 4.1173,
"offense_index": 0.9309,
"defense_index": 1.0919,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 3.2,
"run_differential": 21.0
},
"available": true,
"quality_score": 0.1343
},
"edges": {
"quality_edge": -0.0063,
"offense_edge": 0.0655,
"opponent_offense_edge": -0.0691,
"defense_strength": 0.0115,
"opponent_defense_weakness": -0.0919,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0029,
"run_prevention": 0.9881,
"strikeout": 1.0053
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "656794",
"profile": {
"available": true,
"pitcher_id": "656794",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 326.0,
"k_percent": 22.6,
"bb_percent": 9.1,
"woba": 0.285,
"xwoba": 0.317,
"sweet_spot_percent": 34.1,
"barrel_batted_rate": 6.5,
"hard_hit_percent": 38.6,
"avg_best_speed": 77.7324,
"avg_hyper_speed": 94.0135,
"whiff_percent": 23.9,
"swing_percent": 45.9
},
"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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.0834,
"command_and_miss": -0.0279,
"regression_edge": -0.9143,
"xwoba_edge": -0.1429,
"barrel_edge": 0.1556,
"hard_hit_edge": -0.1,
"whiff_edge": -0.1857,
"bb_edge": 0.025,
"pitch_design_score": -0.0078
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "656794",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 37,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 37,
"pitch_usage": 0.0,
"release_speed": 89.72425840830473,
"release_spin_rate": 2442.3557937668493,
"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": 37,
"pitch_usage": 0.0,
"release_speed": 89.72425840830473,
"release_spin_rate": 2442.3557937668493,
"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.7243,
"release_spin_rate": 2442.3558,
"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.0078,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.056,
"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.0526,
"sample_weight": 1.0,
"run_prevention_factor": 1.0045,
"strikeout_factor": 0.9954,
"walk_factor": 0.998,
"homer_factor": 0.9958,
"woba_minus_xwoba": -0.032,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "656794",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 1.0045,
"adjusted": 1
},
"predicted_H": {
"original": 2.0,
"factor": 1.0045,
"adjusted": 2
},
"predicted_BB": {
"original": 1.0,
"factor": 0.998,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9958,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 0.9954,
"adjusted": 3
}
}
}
}{
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 20.0,
"ER": 7,
"H": 16,
"BB": 7,
"SO": 18,
"HR": 0,
"ERA": 3.15,
"WHIP": 1.15,
"K9": 8.1,
"HR9": 0.0,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-12T00:00:00"
}{
"available": true,
"pitcher_id": "656794",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 37,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 37,
"pitch_usage": 0.0,
"release_speed": 89.72425840830473,
"release_spin_rate": 2442.3557937668493,
"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": 37,
"pitch_usage": 0.0,
"release_speed": 89.72425840830473,
"release_spin_rate": 2442.3557937668493,
"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.7243,
"release_spin_rate": 2442.3558,
"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.0078,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.056,
"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."
}{
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.381,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7766,
"prior_weight": 0.2234
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "656794",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 53,
"reference_playing_time": 1.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 9.1,
"ER": 7.0,
"R": 7.0,
"H": 12.0,
"BB": 3.0,
"SO": 10.0,
"HR": 0.0,
"BF": 43.0,
"Pitches": 176.0
},
"per_game": {
"IP": 2.0,
"ER": 1.4,
"R": 1.4,
"H": 2.4,
"BB": 0.6,
"SO": 2.0,
"HR": 0.0,
"BF": 8.6,
"Pitches": 35.2
},
"rates": {
"ERA": 6.75,
"WHIP": 1.6071,
"ER_per_IP": 0.75,
"H_per_IP": 1.28571,
"BB_per_IP": 0.32143,
"SO_per_IP": 1.07143,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 20.0,
"ER": 7.0,
"R": 7.0,
"H": 16.0,
"BB": 7.0,
"SO": 18.0,
"HR": 0.0,
"BF": 82.0,
"Pitches": 345.0
},
"per_game": {
"IP": 2.0,
"ER": 0.7,
"R": 0.7,
"H": 1.6,
"BB": 0.7,
"SO": 1.8,
"HR": 0.0,
"BF": 8.2,
"Pitches": 34.5
},
"rates": {
"ERA": 3.15,
"WHIP": 1.15,
"ER_per_IP": 0.35,
"H_per_IP": 0.8,
"BB_per_IP": 0.35,
"SO_per_IP": 0.9,
"HR_per_IP": 0.0
}
},
"season": {
"games": 53,
"totals": {
"IP": 84.1,
"ER": 26.0,
"R": 29.0,
"H": 64.0,
"BB": 30.0,
"SO": 78.0,
"HR": 2.0,
"BF": 343.0,
"Pitches": 1342.0
},
"per_game": {
"IP": 1.2,
"ER": 0.4906,
"R": 0.5472,
"H": 1.2075,
"BB": 0.566,
"SO": 1.4717,
"HR": 0.0377,
"BF": 6.4717,
"Pitches": 25.3208
},
"rates": {
"ERA": 2.7747,
"WHIP": 1.1146,
"ER_per_IP": 0.3083,
"H_per_IP": 0.75889,
"BB_per_IP": 0.35573,
"SO_per_IP": 0.9249,
"HR_per_IP": 0.02372
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 1.2,
"predicted_ER": 0.935,
"predicted_H": 1.807,
"predicted_BB": 0.625,
"predicted_SO": 1.748,
"predicted_HR": 0.066,
"predicted_ERA": 4.6758,
"predicted_WHIP": 1.352
}
}{
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4444,
"form_weight": 0.5556,
"form_reliability": 0.7766,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 17.381,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7766,
"prior_weight": 0.2234
},
"applied_metrics": {
"predicted_IP": {
"model": 1.1,
"form": 1.2,
"final": 1.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 0.935,
"final": 0.5195,
"source": "model_form_blend"
},
"predicted_H": {
"model": 0.0,
"form": 1.807,
"final": 1.004,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 0.625,
"final": 0.3473,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 1.748,
"final": 1.4156,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.066,
"final": 0.0367,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.6758,
"final": 4.6758,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.352,
"final": 1.352,
"source": "form_only"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | Bryan Hudson |
| Role | Setup Man |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 0.4091 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | -0.0787 |
| Avg Velo | 88.4591 |
| Avg Spin | 2154.7309 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 1 |
| Pre ER | 0 |
| Pre H | 0 |
| Pre BB | 0 |
| Pre SO | 0 |
| Season ERA | 2.6173 |
| Season WHIP | 1.1633 |
| Role Avg IP | 0.9600 |
| Recent Avg IP | 0.8670 |
| Last Start IP | 0 |
{
"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.0655,
"defense_index": 1.0115,
"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": "CLE",
"games": 162,
"wins": 85,
"losses": 77,
"win_pct": 0.5247,
"runs_scored": 678.0,
"runs_allowed": 667.0,
"run_differential": 11.0,
"run_differential_per_game": 0.0679,
"avg_runs_scored": 4.1852,
"avg_runs_allowed": 4.1173,
"offense_index": 0.9309,
"defense_index": 1.0919,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 3.2,
"run_differential": 21.0
},
"available": true,
"quality_score": 0.1343
},
"edges": {
"quality_edge": -0.0063,
"offense_edge": 0.0655,
"opponent_offense_edge": -0.0691,
"defense_strength": 0.0115,
"opponent_defense_weakness": -0.0919,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0029,
"run_prevention": 0.9881,
"strikeout": 1.0053
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663542",
"profile": {
"available": true,
"pitcher_id": "663542",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 256.0,
"k_percent": 20.9,
"bb_percent": 6.4,
"woba": 0.304,
"xwoba": 0.277,
"sweet_spot_percent": 29.5,
"barrel_batted_rate": 4.0,
"hard_hit_percent": 37.0,
"avg_best_speed": 77.039,
"avg_hyper_speed": 93.3019,
"whiff_percent": 23.1,
"swing_percent": 47.9
},
"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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.6236,
"command_and_miss": -0.0421,
"regression_edge": 0.7714,
"xwoba_edge": 1.0,
"barrel_edge": 0.7111,
"hard_hit_edge": 0.1286,
"whiff_edge": -0.3,
"bb_edge": 0.7,
"pitch_design_score": -0.0787
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663542",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 13,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 13,
"pitch_usage": 0.0,
"release_speed": 88.45909611346684,
"release_spin_rate": 2154.7309004103313,
"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": 13,
"pitch_usage": 0.0,
"release_speed": 88.45909611346684,
"release_spin_rate": 2154.7309004103313,
"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.4591,
"release_spin_rate": 2154.7309,
"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.0787,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.562,
"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.4091,
"sample_weight": 1.0,
"run_prevention_factor": 0.9652,
"strikeout_factor": 0.9811,
"walk_factor": 0.944,
"homer_factor": 0.908,
"woba_minus_xwoba": 0.027,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "663542",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9652,
"adjusted": 0
},
"predicted_H": {
"original": 1.0,
"factor": 0.9652,
"adjusted": 1
},
"predicted_BB": {
"original": 0.0,
"factor": 0.944,
"adjusted": 0
},
"predicted_HR": {
"original": 0.0,
"factor": 0.908,
"adjusted": 0
},
"predicted_SO": {
"original": 2.0,
"factor": 0.9811,
"adjusted": 2
}
}
}
}{
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 10.1,
"ER": 2,
"H": 11,
"BB": 0,
"SO": 7,
"HR": 1,
"ERA": 1.741935483870968,
"WHIP": 1.0645161290322582,
"K9": 6.096774193548388,
"HR9": 0.870967741935484,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-18T00:00:00"
}{
"available": true,
"pitcher_id": "663542",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 13,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 13,
"pitch_usage": 0.0,
"release_speed": 88.45909611346684,
"release_spin_rate": 2154.7309004103313,
"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": 13,
"pitch_usage": 0.0,
"release_speed": 88.45909611346684,
"release_spin_rate": 2154.7309004103313,
"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.4591,
"release_spin_rate": 2154.7309,
"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.0787,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.562,
"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."
}{
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.465,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7292,
"prior_weight": 0.2708
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663542",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 66,
"reference_playing_time": 1.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 4.1,
"ER": 2.0,
"R": 2.0,
"H": 6.0,
"BB": 0.0,
"SO": 2.0,
"HR": 1.0,
"BF": 16.0,
"Pitches": 58.0
},
"per_game": {
"IP": 1.0,
"ER": 0.4,
"R": 0.4,
"H": 1.2,
"BB": 0.0,
"SO": 0.4,
"HR": 0.2,
"BF": 3.2,
"Pitches": 11.6
},
"rates": {
"ERA": 4.1538,
"WHIP": 1.3846,
"ER_per_IP": 0.46154,
"H_per_IP": 1.38462,
"BB_per_IP": 0.0,
"SO_per_IP": 0.46154,
"HR_per_IP": 0.23077
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 10.1,
"ER": 2.0,
"R": 2.0,
"H": 11.0,
"BB": 0.0,
"SO": 7.0,
"HR": 1.0,
"BF": 38.0,
"Pitches": 129.0
},
"per_game": {
"IP": 1.0,
"ER": 0.2,
"R": 0.2,
"H": 1.1,
"BB": 0.0,
"SO": 0.7,
"HR": 0.1,
"BF": 3.8,
"Pitches": 12.9
},
"rates": {
"ERA": 1.7419,
"WHIP": 1.0645,
"ER_per_IP": 0.19355,
"H_per_IP": 1.06452,
"BB_per_IP": 0.0,
"SO_per_IP": 0.67742,
"HR_per_IP": 0.09677
}
},
"season": {
"games": 66,
"totals": {
"IP": 65.1,
"ER": 19.0,
"R": 21.0,
"H": 59.0,
"BB": 17.0,
"SO": 59.0,
"HR": 5.0,
"BF": 266.0,
"Pitches": 1003.0
},
"per_game": {
"IP": 1.0,
"ER": 0.2879,
"R": 0.3182,
"H": 0.8939,
"BB": 0.2576,
"SO": 0.8939,
"HR": 0.0758,
"BF": 4.0303,
"Pitches": 15.197
},
"rates": {
"ERA": 2.6173,
"WHIP": 1.1633,
"ER_per_IP": 0.29082,
"H_per_IP": 0.90306,
"BB_per_IP": 0.2602,
"SO_per_IP": 0.90306,
"HR_per_IP": 0.07653
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 1.0,
"predicted_ER": 0.382,
"predicted_H": 1.124,
"predicted_BB": 0.141,
"predicted_SO": 0.709,
"predicted_HR": 0.152,
"predicted_ERA": 3.4375,
"predicted_WHIP": 1.2649
}
}{
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4644,
"form_weight": 0.5356,
"form_reliability": 0.7292,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 13.465,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7292,
"prior_weight": 0.2708
},
"applied_metrics": {
"predicted_IP": {
"model": 1.0,
"form": 1.0,
"final": 1.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 0.382,
"final": 0.2046,
"source": "model_form_blend"
},
"predicted_H": {
"model": 0.0,
"form": 1.124,
"final": 0.602,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 0.141,
"final": 0.0755,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 0.0,
"form": 0.709,
"final": 0.3797,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.152,
"final": 0.0814,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.4375,
"final": 3.4375,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2649,
"final": 1.2649,
"source": "form_only"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | Jordan Hicks |
| Role | Middle Reliever (High Leverage) |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 0.4937 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | 0.2800 |
| Avg Velo | 94.9903 |
| Avg Spin | 2069.2367 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 0.1000 |
| Pre ER | 0 |
| Pre H | 0 |
| Pre BB | 0 |
| Pre SO | 1 |
| Season ERA | 3.8250 |
| Season WHIP | 1.5000 |
| Role Avg IP | 0.9510 |
| Recent Avg IP | 1.2000 |
| Last Start IP | 0 |
{
"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.0655,
"defense_index": 1.0115,
"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": "CLE",
"games": 162,
"wins": 85,
"losses": 77,
"win_pct": 0.5247,
"runs_scored": 678.0,
"runs_allowed": 667.0,
"run_differential": 11.0,
"run_differential_per_game": 0.0679,
"avg_runs_scored": 4.1852,
"avg_runs_allowed": 4.1173,
"offense_index": 0.9309,
"defense_index": 1.0919,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 3.2,
"run_differential": 21.0
},
"available": true,
"quality_score": 0.1343
},
"edges": {
"quality_edge": -0.0063,
"offense_edge": 0.0655,
"opponent_offense_edge": -0.0691,
"defense_strength": 0.0115,
"opponent_defense_weakness": -0.0919,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0029,
"run_prevention": 0.9881,
"strikeout": 1.0053
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "663855",
"profile": {
"available": true,
"pitcher_id": "663855",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 164.0,
"k_percent": 29.6,
"bb_percent": 15.3,
"woba": 0.309,
"xwoba": 0.262,
"sweet_spot_percent": 27.1,
"barrel_batted_rate": 1.7,
"hard_hit_percent": 33.1,
"avg_best_speed": 78.2319,
"avg_hyper_speed": 93.4981,
"whiff_percent": 28.2,
"swing_percent": 44.3
},
"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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.9121,
"command_and_miss": 0.3271,
"regression_edge": 1.3429,
"xwoba_edge": 1.4286,
"barrel_edge": 1.2222,
"hard_hit_edge": 0.6857,
"whiff_edge": 0.4286,
"bb_edge": -1.525,
"pitch_design_score": 0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "663855",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 19,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 19,
"pitch_usage": 0.0,
"release_speed": 94.99032641703893,
"release_spin_rate": 2069.2367121559296,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 19,
"pitch_usage": 0.0,
"release_speed": 94.99032641703893,
"release_spin_rate": 2069.2367121559296,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 94.9903,
"release_spin_rate": 2069.2367,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.28,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 2.0,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 0.4937,
"sample_weight": 0.656,
"run_prevention_factor": 0.958,
"strikeout_factor": 1.0394,
"walk_factor": 1.08,
"homer_factor": 0.8898,
"woba_minus_xwoba": 0.047,
"regression_flag": "positive_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "663855",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9724,
"adjusted": 0
},
"predicted_H": {
"original": 1.0,
"factor": 0.9724,
"adjusted": 1
},
"predicted_BB": {
"original": 1.0,
"factor": 1.0525,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9277,
"adjusted": 0
},
"predicted_SO": {
"original": 2.0,
"factor": 1.0258,
"adjusted": 2
}
}
}
}{
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 10.0,
"ER": 6,
"H": 13,
"BB": 4,
"SO": 14,
"HR": 2,
"ERA": 5.4,
"WHIP": 1.7,
"K9": 12.6,
"HR9": 1.8,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-25T00:00:00"
}{
"available": true,
"pitcher_id": "663855",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 19,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 19,
"pitch_usage": 0.0,
"release_speed": 94.99032641703893,
"release_spin_rate": 2069.2367121559296,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 19,
"pitch_usage": 0.0,
"release_speed": 94.99032641703893,
"release_spin_rate": 2069.2367121559296,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 94.9903,
"release_spin_rate": 2069.2367,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.28,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 2.0,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
}{
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.244,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6225,
"prior_weight": 0.3775
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "663855",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 42,
"reference_playing_time": 0.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 6.0,
"ER": 4.0,
"R": 4.0,
"H": 6.0,
"BB": 3.0,
"SO": 9.0,
"HR": 1.0,
"BF": 27.0,
"Pitches": 103.0
},
"per_game": {
"IP": 1.1,
"ER": 0.8,
"R": 0.8,
"H": 1.2,
"BB": 0.6,
"SO": 1.8,
"HR": 0.2,
"BF": 5.4,
"Pitches": 20.6
},
"rates": {
"ERA": 6.0,
"WHIP": 1.5,
"ER_per_IP": 0.66667,
"H_per_IP": 1.0,
"BB_per_IP": 0.5,
"SO_per_IP": 1.5,
"HR_per_IP": 0.16667
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 10.0,
"ER": 6.0,
"R": 6.0,
"H": 13.0,
"BB": 4.0,
"SO": 14.0,
"HR": 2.0,
"BF": 47.0,
"Pitches": 183.0
},
"per_game": {
"IP": 1.0,
"ER": 0.6,
"R": 0.6,
"H": 1.3,
"BB": 0.4,
"SO": 1.4,
"HR": 0.2,
"BF": 4.7,
"Pitches": 18.3
},
"rates": {
"ERA": 5.4,
"WHIP": 1.7,
"ER_per_IP": 0.6,
"H_per_IP": 1.3,
"BB_per_IP": 0.4,
"SO_per_IP": 1.4,
"HR_per_IP": 0.2
}
},
"season": {
"games": 42,
"totals": {
"IP": 40.0,
"ER": 17.0,
"R": 17.0,
"H": 35.0,
"BB": 25.0,
"SO": 49.0,
"HR": 3.0,
"BF": 178.0,
"Pitches": 695.0
},
"per_game": {
"IP": 1.0,
"ER": 0.4048,
"R": 0.4048,
"H": 0.8333,
"BB": 0.5952,
"SO": 1.1667,
"HR": 0.0714,
"BF": 4.2381,
"Pitches": 16.5476
},
"rates": {
"ERA": 3.825,
"WHIP": 1.5,
"ER_per_IP": 0.425,
"H_per_IP": 0.875,
"BB_per_IP": 0.625,
"SO_per_IP": 1.225,
"HR_per_IP": 0.075
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 1.0,
"predicted_ER": 0.474,
"predicted_H": 0.879,
"predicted_BB": 0.377,
"predicted_SO": 1.035,
"predicted_HR": 0.131,
"predicted_ERA": 5.0736,
"predicted_WHIP": 1.4921
}
}{
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.5095,
"form_weight": 0.4905,
"form_reliability": 0.6225,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.244,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6225,
"prior_weight": 0.3775
},
"applied_metrics": {
"predicted_IP": {
"model": 0.1,
"form": 1.0,
"final": 0.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 0.474,
"final": 0.2325,
"source": "model_form_blend"
},
"predicted_H": {
"model": 0.0,
"form": 0.879,
"final": 0.4312,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 0.377,
"final": 0.1849,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 1.035,
"final": 1.0172,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.131,
"final": 0.0643,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.0736,
"final": 5.0736,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4921,
"final": 1.4921,
"source": "form_only"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | Huascar Brazobán |
| Role | Middle Reliever |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 0.2843 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | 0.2189 |
| Avg Velo | 93.7728 |
| Avg Spin | 2192.8769 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 0 |
| Pre ER | 0 |
| Pre H | 1 |
| Pre BB | 0 |
| Pre SO | 1 |
| Season ERA | 2.5633 |
| Season WHIP | 1.0063 |
| Role Avg IP | 1.1420 |
| Recent Avg IP | 1 |
| Last Start IP | 0 |
{
"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.0655,
"defense_index": 1.0115,
"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": "CLE",
"games": 162,
"wins": 85,
"losses": 77,
"win_pct": 0.5247,
"runs_scored": 678.0,
"runs_allowed": 667.0,
"run_differential": 11.0,
"run_differential_per_game": 0.0679,
"avg_runs_scored": 4.1852,
"avg_runs_allowed": 4.1173,
"offense_index": 0.9309,
"defense_index": 1.0919,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 3.2,
"run_differential": 21.0
},
"available": true,
"quality_score": 0.1343
},
"edges": {
"quality_edge": -0.0063,
"offense_edge": 0.0655,
"opponent_offense_edge": -0.0691,
"defense_strength": 0.0115,
"opponent_defense_weakness": -0.0919,
"recent_win_pct_edge": -0.1
},
"player_factors": {
"ip": 1.0029,
"run_prevention": 0.9881,
"strikeout": 1.0053
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "623211",
"profile": {
"available": true,
"pitcher_id": "623211",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 200.0,
"k_percent": 21.0,
"bb_percent": 10.9,
"woba": 0.271,
"xwoba": 0.289,
"sweet_spot_percent": 27.6,
"barrel_batted_rate": 5.0,
"hard_hit_percent": 30.9,
"avg_best_speed": 74.7875,
"avg_hyper_speed": 92.9636,
"whiff_percent": 25.6,
"swing_percent": 49.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.7582,
"command_and_miss": -0.1357,
"regression_edge": -0.5143,
"xwoba_edge": 0.6571,
"barrel_edge": 0.4889,
"hard_hit_edge": 1.0,
"whiff_edge": 0.0571,
"bb_edge": -0.425,
"pitch_design_score": 0.2189
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "623211",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 13,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 13,
"pitch_usage": 0.0,
"release_speed": 93.77278348658143,
"release_spin_rate": 2192.876921548624,
"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": 13,
"pitch_usage": 0.0,
"release_speed": 93.77278348658143,
"release_spin_rate": 2192.876921548624,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 93.7728,
"release_spin_rate": 2192.8769,
"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.2189,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.5635,
"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.2843,
"sample_weight": 0.8,
"run_prevention_factor": 0.9758,
"strikeout_factor": 0.9968,
"walk_factor": 1.0272,
"homer_factor": 0.9209,
"woba_minus_xwoba": -0.018,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "623211",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9806,
"adjusted": 0
},
"predicted_H": {
"original": 0.0,
"factor": 0.9806,
"adjusted": 0
},
"predicted_BB": {
"original": 0.0,
"factor": 1.0218,
"adjusted": 0
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9367,
"adjusted": 0
},
"predicted_SO": {
"original": 2.0,
"factor": 0.9974,
"adjusted": 2
}
}
}
}{
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 10.2,
"ER": 1,
"H": 4,
"BB": 4,
"SO": 10,
"HR": 0,
"ERA": 0.84375,
"WHIP": 0.75,
"K9": 8.4375,
"HR9": 0.0,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": true,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-08-02T00:00:00"
}{
"available": true,
"pitcher_id": "623211",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 13,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 13,
"pitch_usage": 0.0,
"release_speed": 93.77278348658143,
"release_spin_rate": 2192.876921548624,
"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": 13,
"pitch_usage": 0.0,
"release_speed": 93.77278348658143,
"release_spin_rate": 2192.876921548624,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 93.7728,
"release_spin_rate": 2192.8769,
"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.2189,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.5635,
"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."
}{
"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": 10.854,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6846,
"prior_weight": 0.3154
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "623211",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 46,
"reference_playing_time": 0.1,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 5.0,
"ER": 1.0,
"R": 1.0,
"H": 1.0,
"BB": 1.0,
"SO": 3.0,
"HR": 0.0,
"BF": 16.0,
"Pitches": 71.0
},
"per_game": {
"IP": 1.0,
"ER": 0.2,
"R": 0.2,
"H": 0.2,
"BB": 0.2,
"SO": 0.6,
"HR": 0.0,
"BF": 3.2,
"Pitches": 14.2
},
"rates": {
"ERA": 1.8,
"WHIP": 0.4,
"ER_per_IP": 0.2,
"H_per_IP": 0.2,
"BB_per_IP": 0.2,
"SO_per_IP": 0.6,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 10.2,
"ER": 1.0,
"R": 1.0,
"H": 4.0,
"BB": 4.0,
"SO": 10.0,
"HR": 0.0,
"BF": 38.0,
"Pitches": 165.0
},
"per_game": {
"IP": 1.0,
"ER": 0.1,
"R": 0.1,
"H": 0.4,
"BB": 0.4,
"SO": 1.0,
"HR": 0.0,
"BF": 3.8,
"Pitches": 16.5
},
"rates": {
"ERA": 0.8438,
"WHIP": 0.75,
"ER_per_IP": 0.09375,
"H_per_IP": 0.375,
"BB_per_IP": 0.375,
"SO_per_IP": 0.9375,
"HR_per_IP": 0.0
}
},
"season": {
"games": 46,
"totals": {
"IP": 52.2,
"ER": 15.0,
"R": 16.0,
"H": 30.0,
"BB": 23.0,
"SO": 49.0,
"HR": 3.0,
"BF": 207.0,
"Pitches": 815.0
},
"per_game": {
"IP": 1.0,
"ER": 0.3261,
"R": 0.3478,
"H": 0.6522,
"BB": 0.5,
"SO": 1.0652,
"HR": 0.0652,
"BF": 4.5,
"Pitches": 17.7174
},
"rates": {
"ERA": 2.5633,
"WHIP": 1.0063,
"ER_per_IP": 0.28481,
"H_per_IP": 0.56962,
"BB_per_IP": 0.43671,
"SO_per_IP": 0.93038,
"HR_per_IP": 0.05696
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 0.2,
"predicted_ER": 0.225,
"predicted_H": 0.426,
"predicted_BB": 0.261,
"predicted_SO": 0.656,
"predicted_HR": 0.043,
"predicted_ERA": 2.5615,
"predicted_WHIP": 0.8708
}
}{
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4833,
"form_weight": 0.5167,
"form_reliability": 0.6846,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 10.854,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6846,
"prior_weight": 0.3154
},
"applied_metrics": {
"predicted_IP": {
"model": 0.1,
"form": 0.2,
"final": 0.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 0.225,
"final": 0.1163,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 0.426,
"final": 0.7034,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 0.261,
"final": 0.1349,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 0.656,
"final": 0.8222,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.043,
"final": 0.0222,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.5615,
"final": 2.5615,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.8708,
"final": 0.8708,
"source": "form_only"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.239 | 1.000 | 1.000 | Hitting_2B | 0.283 | 0.000 | 0.717 | 1.000 |
| predicted_3B | 0.019 | 0.000 | 0.000 | Hitting_3B | 0.031 | 0.000 | -0.031 | 0.000 |
| predicted_AB | 2.500 | 5.000 | 4.000 | Hitting_AB | 2.796 | 4.000 | 2.204 | 1.000 |
| predicted_AVG | 0.286 | 0.400 | 0.250 | Hitting_AVG | 0.310 | 0.000 | 0.090 | 0.400 |
| predicted_BB | 0.105 | 0.000 | 0.000 | Hitting_BB | 0.119 | 1.000 | -0.119 | -1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_H | 0.716 | 2.000 | 1.000 | Hitting_H | 0.867 | 0.000 | 1.133 | 2.000 |
| predicted_HR | 0.134 | 0.000 | 0.000 | Hitting_HR | 0.159 | 0.000 | -0.159 | 0.000 |
| predicted_OBP | 0.315 | 0.400 | 0.250 | Hitting_OBP | 0.341 | 0.200 | 0.059 | 0.200 |
| predicted_R | 0.372 | 1.000 | 0.000 | Hitting_R | 0.389 | 0.000 | 0.611 | 1.000 |
| predicted_RBI | 0.420 | 2.000 | 1.000 | Hitting_RBI | 0.531 | 1.000 | 1.469 | 1.000 |
| predicted_SLG | 0.557 | 0.600 | 0.500 | Hitting_SLG | 0.604 | 0.000 | -0.004 | 0.600 |
| predicted_SO | 0.582 | 1.000 | 1.000 | Hitting_SO | 0.602 | 1.000 | 0.398 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 9 |
| Boosted Metrics | 6 |
| Deboosted Metrics | 3 |
| Better Metrics | 5 |
| Worse Metrics | 4 |
| Biggest Boost | predicted_AB: 2.5000 -> 5.0000 (boost 2.5000, better) |
| Biggest Deboost | predicted_HR: 0.1340 -> 0.0000 (deboost -0.1340, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 3 | 2 | 1 | 2 | 1 | predicted_AB: 2.5000 -> 2.6509 (boost 0.1509, better) | predicted_SLG: 0.5570 -> 0.5507 (deboost -0.0063, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 0 | 0 | 0 | 0 | 0 | - | - | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 4 | 3 | 3 | 4 | predicted_AB: 2.6509 -> 4.0000 (boost 1.3491, better) | predicted_2B: 0.2457 -> 0.0000 (deboost -0.2457, worse) | AB rounded to 4 (raw=2.65), rates preserved: AVG=0.272 HR/AB=0.051 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=12.0, weight=0.114, BvP AVG=0.417) |
| 7 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.4166 -> 0.0000 (deboost -0.4166, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 4 | 3 | 1 | 3 | 1 | predicted_2B: 0.0000 -> 0.2612 (boost 0.2612, better) | predicted_RBI: 1.0000 -> 0.5055 (deboost -0.4945, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 9 | lineup_integer_allocation | 4 | 2 | 2 | 2 | 2 | predicted_2B: 0.2612 -> 1.0000 (boost 0.7388, better) | predicted_BB: 0.2185 -> 0.0000 (deboost -0.2185, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 10 | embedded_savant_player_context | 4 | 0 | 4 | 0 | 4 | - | predicted_2B: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | simulation_box_score_reference | 5 | 5 | 0 | 5 | 0 | predicted_2B: 0.0000 -> 1.0000 (boost 1.0000, better) | - | Attached simulation box score without overwriting model prediction |
| 12 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_SLG: 0.4620 -> 0.5493 (boost 0.0873, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "545341",
"player_name": "Randal Grichuk",
"position": "LF",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.239,
"predicted_3B": 0.019,
"predicted_AB": 2.5,
"predicted_AVG": 0.286,
"predicted_BB": 0.105,
"predicted_H": 0.716,
"predicted_HR": 0.134,
"predicted_OBP": 0.315,
"predicted_R": 0.372,
"predicted_RBI": 0.42,
"predicted_SLG": 0.557,
"predicted_SO": 0.582
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.2457,
"predicted_3B": 0.0228,
"predicted_AB": 2.6509,
"predicted_AVG": 0.2865,
"predicted_BB": 0.1223,
"predicted_H": 0.7602,
"predicted_HBP": 0.008,
"predicted_HR": 0.1361,
"predicted_OBP": 0.3153,
"predicted_R": 0.4192,
"predicted_RBI": 0.4727,
"predicted_SLG": 0.5507,
"predicted_SO": 0.5668
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.239,
"after": 0.2457,
"delta": 0.0067,
"percent_delta": 0.028,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.019,
"after": 0.0228,
"delta": 0.0038,
"percent_delta": 0.2,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.5,
"after": 2.6509,
"delta": 0.1509,
"percent_delta": 0.0604,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.286,
"after": 0.2865,
"delta": 0.0005,
"percent_delta": 0.0017,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.105,
"after": 0.1223,
"delta": 0.0173,
"percent_delta": 0.1648,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.716,
"after": 0.7602,
"delta": 0.0442,
"percent_delta": 0.0617,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.134,
"after": 0.1361,
"delta": 0.0021,
"percent_delta": 0.0157,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.315,
"after": 0.3153,
"delta": 0.0003,
"percent_delta": 0.001,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.372,
"after": 0.4192,
"delta": 0.0472,
"percent_delta": 0.1269,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.42,
"after": 0.4727,
"delta": 0.0527,
"percent_delta": 0.1255,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.557,
"after": 0.5507,
"delta": -0.0063,
"percent_delta": -0.0113,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.582,
"after": 0.5668,
"delta": -0.0152,
"percent_delta": -0.0261,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 2,
"deboosted_metrics": 1,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_AB",
"before": 2.5,
"after": 2.6509,
"delta": 0.1509,
"percent_delta": 0.0604,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.557,
"after": 0.5507,
"delta": -0.0063,
"percent_delta": -0.0113,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 111
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.2457,
"predicted_3B": 0.0228,
"predicted_AB": 2.6509,
"predicted_AVG": 0.2856,
"predicted_BB": 0.1226,
"predicted_H": 0.7571,
"predicted_HBP": 0.008,
"predicted_HR": 0.1359,
"predicted_OBP": 0.3172,
"predicted_R": 0.4166,
"predicted_RBI": 0.4698,
"predicted_SLG": 0.5493,
"predicted_SO": 0.5654
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.2457,
"after": 0.2457,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0228,
"after": 0.0228,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.6509,
"after": 2.6509,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2865,
"after": 0.2856,
"delta": -0.0009,
"percent_delta": -0.0031,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.1223,
"after": 0.1226,
"delta": 0.0003,
"percent_delta": 0.0025,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.7602,
"after": 0.7571,
"delta": -0.0031,
"percent_delta": -0.0041,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.008,
"after": 0.008,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1361,
"after": 0.1359,
"delta": -0.0002,
"percent_delta": -0.0015,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3153,
"after": 0.3172,
"delta": 0.0019,
"percent_delta": 0.006,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.4192,
"after": 0.4166,
"delta": -0.0026,
"percent_delta": -0.0062,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.4727,
"after": 0.4698,
"delta": -0.0029,
"percent_delta": -0.0061,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.5507,
"after": 0.5493,
"delta": -0.0014,
"percent_delta": -0.0025,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.5668,
"after": 0.5654,
"delta": -0.0014,
"percent_delta": -0.0025,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=2.65), rates preserved: AVG=0.272 HR/AB=0.051",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.2457,
"after": 0.0,
"delta": -0.2457,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0228,
"after": 0.0,
"delta": -0.0228,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.6509,
"after": 4.0,
"delta": 1.3491,
"percent_delta": 0.5089,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.1226,
"after": 0.0,
"delta": -0.1226,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.7571,
"after": 1.0,
"delta": 0.2429,
"percent_delta": 0.3208,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.008,
"after": 0.0,
"delta": -0.008,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1359,
"after": 0.0,
"delta": -0.1359,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.4698,
"after": 1.0,
"delta": 0.5302,
"percent_delta": 1.1286,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.5654,
"after": 1.0,
"delta": 0.4346,
"percent_delta": 0.7687,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 4,
"deboosted_metrics": 3,
"better_metrics": 3,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_AB",
"before": 2.6509,
"after": 4.0,
"delta": 1.3491,
"percent_delta": 0.5089,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_2B",
"before": 0.2457,
"after": 0.0,
"delta": -0.2457,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "bvp_blend",
"description": "Sample-size BvP blend (BvP AB=12.0, weight=0.114, BvP AVG=0.417)",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {
"model_expectation": 0.8857,
"bvp": 0.1143
},
"window_games": {}
},
{
"index": 7,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.4166,
"after": 0.0,
"delta": -0.4166,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_R",
"before": 0.4166,
"after": 0.0,
"delta": -0.4166,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.2612,
"predicted_3B": 0.0198,
"predicted_BB": 0.2185,
"predicted_H": 0.9769,
"predicted_HR": 0.1417,
"predicted_RBI": 0.5055,
"predicted_SO": 0.958
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.2612,
"delta": 0.2612,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0198,
"delta": 0.0198,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.2185,
"delta": 0.2185,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.9769,
"delta": -0.0231,
"percent_delta": -0.0231,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1417,
"delta": 0.1417,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.5055,
"delta": -0.4945,
"percent_delta": -0.4945,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.958,
"delta": -0.042,
"percent_delta": -0.042,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 3,
"deboosted_metrics": 1,
"better_metrics": 3,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_2B",
"before": 0.0,
"after": 0.2612,
"delta": 0.2612,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.5055,
"delta": -0.4945,
"percent_delta": -0.4945,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 1.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.2612,
"after": 1.0,
"delta": 0.7388,
"percent_delta": 2.8285,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0198,
"after": 0.0,
"delta": -0.0198,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.2185,
"after": 0.0,
"delta": -0.2185,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.9769,
"after": 1.0,
"delta": 0.0231,
"percent_delta": 0.0236,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1417,
"after": 0.0,
"delta": -0.1417,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5055,
"after": 1.0,
"delta": 0.4945,
"percent_delta": 0.9782,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.958,
"after": 1.0,
"delta": 0.042,
"percent_delta": 0.0438,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 2,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_2B",
"before": 0.2612,
"after": 1.0,
"delta": 0.7388,
"percent_delta": 2.8285,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.2185,
"after": 0.0,
"delta": -0.2185,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.265,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.312,
"predicted_R": 0.0,
"predicted_RBI": 1.0,
"predicted_SLG": 0.462,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2856,
"after": 0.265,
"delta": -0.0206,
"percent_delta": -0.0721,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3172,
"after": 0.312,
"delta": -0.0052,
"percent_delta": -0.0164,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.5493,
"after": 0.462,
"delta": -0.0873,
"percent_delta": -0.1589,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 0,
"deboosted_metrics": 4,
"better_metrics": 0,
"worse_metrics": 4,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_2B",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 1.0,
"predicted_3B": 0.0,
"predicted_AB": 5.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 2.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 2.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 5,
"deboosted_metrics": 0,
"better_metrics": 5,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_2B",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 12,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 1.0,
"predicted_3B": 0.0,
"predicted_AB": 5.0,
"predicted_AVG": 0.2856,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 2.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_LF": 0.0,
"predicted_OBP": 0.3172,
"predicted_R": 1.0,
"predicted_RBI": 2.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.5493,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.265,
"after": 0.2856,
"delta": 0.0206,
"percent_delta": 0.0777,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"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_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.312,
"after": 0.3172,
"delta": 0.0052,
"percent_delta": 0.0166,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.462,
"after": 0.5493,
"delta": 0.0873,
"percent_delta": 0.1889,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.462,
"after": 0.5493,
"delta": 0.0873,
"percent_delta": 0.1889,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.239,
"after": 1.0,
"delta": 0.761,
"percent_delta": 3.1841,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.019,
"after": 0.0,
"delta": -0.019,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.5,
"after": 5.0,
"delta": 2.5,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.286,
"after": 0.2856,
"delta": -0.0004,
"percent_delta": -0.0014,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.105,
"after": 0.0,
"delta": -0.105,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.716,
"after": 2.0,
"delta": 1.284,
"percent_delta": 1.7933,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.134,
"after": 0.0,
"delta": -0.134,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.315,
"after": 0.3172,
"delta": 0.0022,
"percent_delta": 0.007,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.372,
"after": 1.0,
"delta": 0.628,
"percent_delta": 1.6882,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.42,
"after": 2.0,
"delta": 1.58,
"percent_delta": 3.7619,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.557,
"after": 0.5493,
"delta": -0.0077,
"percent_delta": -0.0138,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.582,
"after": 1.0,
"delta": 0.418,
"percent_delta": 0.7182,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 9,
"boosted_metrics": 6,
"deboosted_metrics": 3,
"better_metrics": 5,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_AB",
"before": 2.5,
"after": 5.0,
"delta": 2.5,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_HR",
"before": 0.134,
"after": 0.0,
"delta": -0.134,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.239 | - |
| predicted_3B | 0.019 | - |
| predicted_AB | 2.500 | - |
| predicted_AVG | 0.286 | - |
| predicted_BB | 0.105 | - |
| predicted_H | 0.716 | - |
| predicted_HR | 0.134 | - |
| predicted_OBP | 0.315 | - |
| predicted_R | 0.372 | - |
| predicted_RBI | 0.420 | - |
| predicted_SLG | 0.557 | - |
| predicted_SO | 0.582 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.246 | 0.007 |
| predicted_3B | 0.023 | 0.004 |
| predicted_AB | 2.651 | 0.151 |
| predicted_AVG | 0.286 | 0.001 |
| predicted_BB | 0.122 | 0.017 |
| predicted_H | 0.760 | 0.044 |
| predicted_HBP | 0.008 | - |
| predicted_HR | 0.136 | 0.002 |
| predicted_OBP | 0.315 | 0.000 |
| predicted_R | 0.419 | 0.047 |
| predicted_RBI | 0.473 | 0.053 |
| predicted_SLG | 0.551 | -0.006 |
| predicted_SO | 0.567 | -0.015 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.246 | 0.000 |
| predicted_3B | 0.023 | 0.000 |
| predicted_AB | 2.651 | 0.000 |
| predicted_AVG | 0.286 | -0.001 |
| predicted_BB | 0.123 | 0.000 |
| predicted_H | 0.757 | -0.003 |
| predicted_HBP | 0.008 | 0.000 |
| predicted_HR | 0.136 | -0.000 |
| predicted_OBP | 0.317 | 0.002 |
| predicted_R | 0.417 | -0.003 |
| predicted_RBI | 0.470 | -0.003 |
| predicted_SLG | 0.549 | -0.001 |
| predicted_SO | 0.565 | -0.001 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=2.65), rates preserved: AVG=0.272 HR/AB=0.051
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=12.0, weight=0.114, BvP AVG=0.417)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.261 | 0.261 |
| 3B | 0.020 | 0.020 |
| BB | 0.218 | 0.218 |
| H | 0.977 | -0.023 |
| HR | 0.142 | 0.142 |
| RBI | 0.505 | -0.495 |
| SO | 0.958 | -0.042 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 0.739 |
| 3B | 0.000 | -0.020 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -0.218 |
| H | 1.000 | 0.023 |
| HR | 0.000 | -0.142 |
| R | 0.000 | 0.000 |
| RBI | 1.000 | 0.495 |
| SO | 1.000 | 0.042 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.246 |
| predicted_3B | 0.000 | -0.023 |
| predicted_AB | 4.000 | 1.349 |
| predicted_AVG | 0.265 | -0.021 |
| predicted_BB | 0.000 | -0.123 |
| predicted_H | 1.000 | 0.243 |
| predicted_HR | 0.000 | -0.136 |
| predicted_OBP | 0.312 | -0.005 |
| predicted_R | 0.000 | -0.417 |
| predicted_RBI | 1.000 | 0.530 |
| predicted_SLG | 0.462 | -0.087 |
| predicted_SO | 1.000 | 0.435 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 5.000 | 1.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 2.000 | 1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | - |
| R | 1.000 | 1.000 |
| RBI | 2.000 | 1.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 16.000 | 5.000 | 2.000 | 0.000 | 1.000 | 5.000 | 4.000 | 1.000 | 2.000 | 0.3125 | 0.3333 | 0.6250 | 0.3125 | 0.0625 | 0.3125 | 0.0625 | 0.1250 |
| last_10 | 0.20 | 10 | - | 35.000 | 10.000 | 2.000 | 1.000 | 1.000 | 6.000 | 6.000 | 2.000 | 4.000 | 0.2857 | 0.3077 | 0.4857 | 0.2857 | 0.0286 | 0.1714 | 0.0571 | 0.1143 |
| season | 0.60 | 111 | - | 262.000 | 75.000 | 25.000 | 2.000 | 14.000 | 44.000 | 39.000 | 11.000 | 61.000 | 0.2863 | 0.3141 | 0.5573 | 0.2863 | 0.0534 | 0.1679 | 0.0420 | 0.2328 |
| Metric | Value |
|---|---|
| predicted_2B | 0.2550 |
| predicted_3B | 0.0280 |
| predicted_AB | 2.8580 |
| predicted_AVG | 0.2872 |
| predicted_BB | 0.1460 |
| predicted_H | 0.8210 |
| predicted_HBP | 0.0080 |
| predicted_HR | 0.1390 |
| predicted_OBP | 0.3156 |
| predicted_R | 0.4840 |
| predicted_RBI | 0.5450 |
| predicted_SLG | 0.5420 |
| predicted_SO | 0.5460 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.2390 | 0.2550 | 0.2457 | model_form_blend |
| predicted_3B | 0.0190 | 0.0280 | 0.0228 | model_form_blend |
| predicted_AB | 2.5000 | 2.8580 | 2.6509 | model_form_blend |
| predicted_AVG | 0.2860 | 0.2872 | 0.2865 | model_form_blend |
| predicted_BB | 0.1050 | 0.1460 | 0.1223 | model_form_blend |
| predicted_H | 0.7160 | 0.8210 | 0.7602 | model_form_blend |
| predicted_HBP | - | 0.0080 | 0.0080 | form_only |
| predicted_HR | 0.1340 | 0.1390 | 0.1361 | model_form_blend |
| predicted_OBP | 0.3150 | 0.3156 | 0.3153 | model_form_blend |
| predicted_R | 0.3720 | 0.4840 | 0.4192 | model_form_blend |
| predicted_RBI | 0.4200 | 0.5450 | 0.4727 | model_form_blend |
| predicted_SLG | 0.5570 | 0.5420 | 0.5507 | model_form_blend |
| predicted_SO | 0.5820 | 0.5460 | 0.5668 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 226 |
| Season rows before report date | 226 |
| Report year | 2026 |
| Profile rows used | 111 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 5 |
| AB | 5 |
| H | 2 |
| 2B | 1 |
| 3B | 0 |
| HR | 0 |
| R | 1 |
| RBI | 2 |
| BB | 0 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 1 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 1 |
| Hitting_R | 0 |
| Hitting_RBI | 1 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 3 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | LF-RF |
| gameID | 20260926_COL@CHW |
| game_type | full |
| mlbID | 545341 |
| playerID | 545341 |
| playerName | Randal Grichuk |
| pos | DH |
| started | True |
| startingPosition | LF |
| team | CHW |
| teamID | 6 |
| game_date | 2026-09-26 |
| sl_k_percent | 21.8 |
| sl_bb_percent | 3.9 |
| sl_woba | 0.37 |
| sl_xwoba | 0.335 |
| sl_xba | 0.278 |
| sl_xslg | 0.478 |
| sl_sweet_spot_percent | 37.7 |
| sl_barrel_batted_rate | 11.2 |
| sl_hard_hit_percent | 49.8 |
| sl_exit_velocity_avg | 91.3 |
| sl_launch_angle_avg | 17.1 |
| sl_whiff_percent | 24.0 |
| sl_swing_percent | 53.0 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.124 | 0.000 | 0.000 | Hitting_2B | 0.132 | 0.000 | -0.132 | 0.000 |
| predicted_3B | 0.008 | 0.000 | 0.000 | Hitting_3B | 0.008 | 0.000 | -0.008 | 0.000 |
| predicted_AB | 3.581 | 5.000 | 4.000 | Hitting_AB | 3.683 | 5.000 | 1.317 | 0.000 |
| predicted_AVG | 0.206 | 0.400 | 0.250 | Hitting_AVG | 0.210 | 0.000 | 0.190 | 0.400 |
| predicted_BB | 0.721 | 0.000 | 1.000 | Hitting_BB | 0.781 | 0.000 | -0.781 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.025 | 0.000 | -0.025 | 0.000 |
| predicted_H | 0.736 | 2.000 | 1.000 | Hitting_H | 0.775 | 0.000 | 1.225 | 2.000 |
| predicted_HR | 0.271 | 0.000 | 1.000 | Hitting_HR | 0.291 | 0.000 | -0.291 | 0.000 |
| predicted_OBP | 0.339 | 0.400 | 0.400 | Hitting_OBP | 0.354 | 0.000 | 0.046 | 0.400 |
| predicted_R | 0.651 | 1.000 | 1.000 | Hitting_R | 0.711 | 0.000 | 0.289 | 1.000 |
| predicted_RBI | 0.605 | 0.000 | 1.000 | Hitting_RBI | 0.619 | 0.000 | -0.619 | 0.000 |
| predicted_SLG | 0.472 | 0.400 | 1.000 | Hitting_SLG | 0.488 | 0.000 | -0.088 | 0.400 |
| predicted_SO | 1.558 | 0.000 | 2.000 | Hitting_SO | 1.579 | 3.000 | -1.579 | -3.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 11 |
| Boosted Metrics | 5 |
| Deboosted Metrics | 6 |
| Better Metrics | 6 |
| Worse Metrics | 5 |
| Biggest Boost | predicted_AB: 3.5810 -> 5.0000 (boost 1.4190, better) |
| Biggest Deboost | predicted_SO: 1.5580 -> 0.0000 (deboost -1.5580, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 5 | 3 | 2 | 3 | 2 | predicted_AB: 3.5810 -> 3.6554 (boost 0.0744, better) | predicted_BB: 0.7210 -> 0.6557 (deboost -0.0653, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 0 | 0 | 0 | 0 | 0 | - | - | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 8 | 5 | 3 | 4 | 4 | predicted_SO: 1.5625 -> 2.0000 (boost 0.4375, worse) | predicted_HR: 0.2802 -> 0.0000 (deboost -0.2802, worse) | AB rounded to 4 (raw=3.66), rates preserved: AVG=0.201 HR/AB=0.077 |
| 6 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.6743 -> 1.0000 (boost 0.3257, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 2 | 4 | 3 | 3 | predicted_HR: 0.0000 -> 0.1922 (boost 0.1922, better) | predicted_BB: 1.0000 -> 0.5336 (deboost -0.4664, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 6 | 5 | 1 | 4 | 2 | predicted_HR: 0.1922 -> 1.0000 (boost 0.8078, better) | predicted_2B: 0.1472 -> 0.0000 (deboost -0.1472, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 3 | 0 | 3 | 0 | 3 | - | predicted_HR: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 5 | 2 | 3 | 3 | 2 | predicted_AB: 4.0000 -> 5.0000 (boost 1.0000, better) | predicted_SO: 2.0000 -> 0.0000 (deboost -2.0000, better) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 2 | 2 | 0 | 2 | 0 | predicted_SLG: 0.4090 -> 0.4822 (boost 0.0732, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "808959",
"player_name": "Munetaka Murakami",
"position": "1B",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.124,
"predicted_3B": 0.008,
"predicted_AB": 3.581,
"predicted_AVG": 0.206,
"predicted_BB": 0.721,
"predicted_H": 0.736,
"predicted_HR": 0.271,
"predicted_OBP": 0.339,
"predicted_R": 0.651,
"predicted_RBI": 0.605,
"predicted_SLG": 0.472,
"predicted_SO": 1.558
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1371,
"predicted_3B": 0.0067,
"predicted_AB": 3.6554,
"predicted_AVG": 0.212,
"predicted_BB": 0.6557,
"predicted_H": 0.7747,
"predicted_HBP": 0.067,
"predicted_HR": 0.2806,
"predicted_OBP": 0.3339,
"predicted_R": 0.6784,
"predicted_RBI": 0.6498,
"predicted_SLG": 0.4833,
"predicted_SO": 1.5663
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.124,
"after": 0.1371,
"delta": 0.0131,
"percent_delta": 0.1056,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.008,
"after": 0.0067,
"delta": -0.0013,
"percent_delta": -0.1625,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.581,
"after": 3.6554,
"delta": 0.0744,
"percent_delta": 0.0208,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.206,
"after": 0.212,
"delta": 0.006,
"percent_delta": 0.0291,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.721,
"after": 0.6557,
"delta": -0.0653,
"percent_delta": -0.0906,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.736,
"after": 0.7747,
"delta": 0.0387,
"percent_delta": 0.0526,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.271,
"after": 0.2806,
"delta": 0.0096,
"percent_delta": 0.0354,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.339,
"after": 0.3339,
"delta": -0.0051,
"percent_delta": -0.015,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.651,
"after": 0.6784,
"delta": 0.0274,
"percent_delta": 0.0421,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.605,
"after": 0.6498,
"delta": 0.0448,
"percent_delta": 0.074,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.472,
"after": 0.4833,
"delta": 0.0113,
"percent_delta": 0.0239,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.558,
"after": 1.5663,
"delta": 0.0083,
"percent_delta": 0.0053,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 3,
"deboosted_metrics": 2,
"better_metrics": 3,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.581,
"after": 3.6554,
"delta": 0.0744,
"percent_delta": 0.0208,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.721,
"after": 0.6557,
"delta": -0.0653,
"percent_delta": -0.0906,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 129
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1371,
"predicted_3B": 0.0067,
"predicted_AB": 3.6554,
"predicted_AVG": 0.2111,
"predicted_BB": 0.6573,
"predicted_H": 0.7715,
"predicted_HBP": 0.067,
"predicted_HR": 0.2802,
"predicted_OBP": 0.3313,
"predicted_R": 0.6743,
"predicted_RBI": 0.6458,
"predicted_SLG": 0.4822,
"predicted_SO": 1.5625
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1371,
"after": 0.1371,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0067,
"after": 0.0067,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.6554,
"after": 3.6554,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.212,
"after": 0.2111,
"delta": -0.0009,
"percent_delta": -0.0042,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.6557,
"after": 0.6573,
"delta": 0.0016,
"percent_delta": 0.0024,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.7747,
"after": 0.7715,
"delta": -0.0032,
"percent_delta": -0.0041,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.067,
"after": 0.067,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.2806,
"after": 0.2802,
"delta": -0.0004,
"percent_delta": -0.0014,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3339,
"after": 0.3313,
"delta": -0.0026,
"percent_delta": -0.0078,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.6784,
"after": 0.6743,
"delta": -0.0041,
"percent_delta": -0.006,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.6498,
"after": 0.6458,
"delta": -0.004,
"percent_delta": -0.0062,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4833,
"after": 0.4822,
"delta": -0.0011,
"percent_delta": -0.0023,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.5663,
"after": 1.5625,
"delta": -0.0038,
"percent_delta": -0.0024,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=3.66), rates preserved: AVG=0.201 HR/AB=0.077",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1371,
"after": 0.0,
"delta": -0.1371,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0067,
"after": 0.0,
"delta": -0.0067,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.6554,
"after": 4.0,
"delta": 0.3446,
"percent_delta": 0.0943,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.6573,
"after": 1.0,
"delta": 0.3427,
"percent_delta": 0.5214,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.7715,
"after": 1.0,
"delta": 0.2285,
"percent_delta": 0.2962,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.067,
"after": 0.0,
"delta": -0.067,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.2802,
"after": 0.0,
"delta": -0.2802,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.6458,
"after": 1.0,
"delta": 0.3542,
"percent_delta": 0.5485,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.5625,
"after": 2.0,
"delta": 0.4375,
"percent_delta": 0.28,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 8,
"boosted_metrics": 5,
"deboosted_metrics": 3,
"better_metrics": 4,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.5625,
"after": 2.0,
"delta": 0.4375,
"percent_delta": 0.28,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_HR",
"before": 0.2802,
"after": 0.0,
"delta": -0.2802,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.6743,
"after": 1.0,
"delta": 0.3257,
"percent_delta": 0.483,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.6743,
"after": 1.0,
"delta": 0.3257,
"percent_delta": 0.483,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1472,
"predicted_3B": 0.013,
"predicted_BB": 0.5336,
"predicted_H": 0.7902,
"predicted_HR": 0.1922,
"predicted_RBI": 0.557,
"predicted_SO": 1.7013
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1472,
"delta": 0.1472,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.013,
"delta": 0.013,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 1.0,
"after": 0.5336,
"delta": -0.4664,
"percent_delta": -0.4664,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.7902,
"delta": -0.2098,
"percent_delta": -0.2098,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1922,
"delta": 0.1922,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.557,
"delta": -0.443,
"percent_delta": -0.443,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 1.7013,
"delta": -0.2987,
"percent_delta": -0.1493,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 2,
"deboosted_metrics": 4,
"better_metrics": 3,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1922,
"delta": 0.1922,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 1.0,
"after": 0.5336,
"delta": -0.4664,
"percent_delta": -0.4664,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1472,
"after": 0.0,
"delta": -0.1472,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.013,
"after": 0.0,
"delta": -0.013,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.5336,
"after": 1.0,
"delta": 0.4664,
"percent_delta": 0.8741,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.7902,
"after": 1.0,
"delta": 0.2098,
"percent_delta": 0.2655,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1922,
"after": 1.0,
"delta": 0.8078,
"percent_delta": 4.2029,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.557,
"after": 1.0,
"delta": 0.443,
"percent_delta": 0.7953,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.7013,
"after": 2.0,
"delta": 0.2987,
"percent_delta": 0.1756,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 5,
"deboosted_metrics": 1,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_HR",
"before": 0.1922,
"after": 1.0,
"delta": 0.8078,
"percent_delta": 4.2029,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_2B",
"before": 0.1472,
"after": 0.0,
"delta": -0.1472,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.21,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.313,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SLG": 0.409,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2111,
"after": 0.21,
"delta": -0.0011,
"percent_delta": -0.0052,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.3313,
"after": 0.313,
"delta": -0.0183,
"percent_delta": -0.0552,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4822,
"after": 0.409,
"delta": -0.0732,
"percent_delta": -0.1518,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_HR",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 5.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 2.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 0.0,
"delta": -2.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 2,
"deboosted_metrics": 3,
"better_metrics": 3,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_AB",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 0.0,
"delta": -2.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 5.0,
"predicted_AVG": 0.2111,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_FB": 0.0,
"predicted_H": 2.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3313,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.4822,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.21,
"after": 0.2111,
"delta": 0.0011,
"percent_delta": 0.0051,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_CS",
"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_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.313,
"after": 0.3313,
"delta": 0.0183,
"percent_delta": 0.0585,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.409,
"after": 0.4822,
"delta": 0.0732,
"percent_delta": 0.1789,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.409,
"after": 0.4822,
"delta": 0.0732,
"percent_delta": 0.1789,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.124,
"after": 0.0,
"delta": -0.124,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.008,
"after": 0.0,
"delta": -0.008,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.581,
"after": 5.0,
"delta": 1.419,
"percent_delta": 0.3963,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.206,
"after": 0.2111,
"delta": 0.0051,
"percent_delta": 0.0248,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.721,
"after": 0.0,
"delta": -0.721,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.736,
"after": 2.0,
"delta": 1.264,
"percent_delta": 1.7174,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.271,
"after": 0.0,
"delta": -0.271,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.339,
"after": 0.3313,
"delta": -0.0077,
"percent_delta": -0.0227,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.651,
"after": 1.0,
"delta": 0.349,
"percent_delta": 0.5361,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.605,
"after": 0.0,
"delta": -0.605,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.472,
"after": 0.4822,
"delta": 0.0102,
"percent_delta": 0.0216,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.558,
"after": 0.0,
"delta": -1.558,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 11,
"boosted_metrics": 5,
"deboosted_metrics": 6,
"better_metrics": 6,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.581,
"after": 5.0,
"delta": 1.419,
"percent_delta": 0.3963,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.558,
"after": 0.0,
"delta": -1.558,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.124 | - |
| predicted_3B | 0.008 | - |
| predicted_AB | 3.581 | - |
| predicted_AVG | 0.206 | - |
| predicted_BB | 0.721 | - |
| predicted_H | 0.736 | - |
| predicted_HR | 0.271 | - |
| predicted_OBP | 0.339 | - |
| predicted_R | 0.651 | - |
| predicted_RBI | 0.605 | - |
| predicted_SLG | 0.472 | - |
| predicted_SO | 1.558 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.137 | 0.013 |
| predicted_3B | 0.007 | -0.001 |
| predicted_AB | 3.655 | 0.074 |
| predicted_AVG | 0.212 | 0.006 |
| predicted_BB | 0.656 | -0.065 |
| predicted_H | 0.775 | 0.039 |
| predicted_HBP | 0.067 | - |
| predicted_HR | 0.281 | 0.010 |
| predicted_OBP | 0.334 | -0.005 |
| predicted_R | 0.678 | 0.027 |
| predicted_RBI | 0.650 | 0.045 |
| predicted_SLG | 0.483 | 0.011 |
| predicted_SO | 1.566 | 0.008 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.137 | 0.000 |
| predicted_3B | 0.007 | 0.000 |
| predicted_AB | 3.655 | 0.000 |
| predicted_AVG | 0.211 | -0.001 |
| predicted_BB | 0.657 | 0.002 |
| predicted_H | 0.771 | -0.003 |
| predicted_HBP | 0.067 | 0.000 |
| predicted_HR | 0.280 | -0.000 |
| predicted_OBP | 0.331 | -0.003 |
| predicted_R | 0.674 | -0.004 |
| predicted_RBI | 0.646 | -0.004 |
| predicted_SLG | 0.482 | -0.001 |
| predicted_SO | 1.562 | -0.004 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=3.66), rates preserved: AVG=0.201 HR/AB=0.077
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 1.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 2.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 2.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.147 | 0.147 |
| 3B | 0.013 | 0.013 |
| BB | 0.534 | -0.466 |
| H | 0.790 | -0.210 |
| HR | 0.192 | 0.192 |
| RBI | 0.557 | -0.443 |
| SO | 1.701 | -0.299 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.147 |
| 3B | 0.000 | -0.013 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 0.466 |
| H | 1.000 | 0.210 |
| HR | 1.000 | 0.808 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.443 |
| SO | 2.000 | 0.299 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.137 |
| predicted_3B | 0.000 | -0.007 |
| predicted_AB | 4.000 | 0.345 |
| predicted_AVG | 0.210 | -0.001 |
| predicted_BB | 1.000 | 0.343 |
| predicted_H | 1.000 | 0.229 |
| predicted_HR | 0.000 | -0.280 |
| predicted_OBP | 0.313 | -0.018 |
| predicted_R | 1.000 | 0.326 |
| predicted_RBI | 1.000 | 0.354 |
| predicted_SLG | 0.409 | -0.073 |
| predicted_SO | 2.000 | 0.438 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 5.000 | 1.000 |
| BB | 0.000 | -1.000 |
| CS | 0.000 | 0.000 |
| H | 2.000 | 1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | -1.000 |
| PA | 5.000 | - |
| R | 1.000 | 0.000 |
| RBI | 0.000 | -1.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -2.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 21.000 | 5.000 | 1.000 | 0.000 | 2.000 | 4.000 | 5.000 | 1.000 | 9.000 | 0.2381 | 0.2609 | 0.5714 | 0.2381 | 0.0952 | 0.1905 | 0.0476 | 0.4286 |
| last_10 | 0.20 | 10 | - | 38.000 | 9.000 | 2.000 | 0.000 | 3.000 | 10.000 | 7.000 | 5.000 | 16.000 | 0.2368 | 0.3478 | 0.5263 | 0.2368 | 0.0790 | 0.2632 | 0.1316 | 0.4210 |
| season | 0.60 | 129 | - | 462.000 | 95.000 | 16.000 | 1.000 | 35.000 | 78.000 | 84.000 | 93.000 | 201.000 | 0.2056 | 0.3446 | 0.4719 | 0.2056 | 0.0758 | 0.1688 | 0.2013 | 0.4351 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1540 |
| predicted_3B | 0.0050 |
| predicted_AB | 3.7520 |
| predicted_AVG | 0.2199 |
| predicted_BB | 0.5710 |
| predicted_H | 0.8250 |
| predicted_HBP | 0.0670 |
| predicted_HR | 0.2930 |
| predicted_OBP | 0.3273 |
| predicted_R | 0.7140 |
| predicted_RBI | 0.7080 |
| predicted_SLG | 0.4979 |
| predicted_SO | 1.5770 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1240 | 0.1540 | 0.1371 | model_form_blend |
| predicted_3B | 0.0080 | 0.0050 | 0.0067 | model_form_blend |
| predicted_AB | 3.5810 | 3.7520 | 3.6554 | model_form_blend |
| predicted_AVG | 0.2060 | 0.2199 | 0.2120 | model_form_blend |
| predicted_BB | 0.7210 | 0.5710 | 0.6557 | model_form_blend |
| predicted_H | 0.7360 | 0.8250 | 0.7747 | model_form_blend |
| predicted_HBP | - | 0.0670 | 0.0670 | form_only |
| predicted_HR | 0.2710 | 0.2930 | 0.2806 | model_form_blend |
| predicted_OBP | 0.3390 | 0.3273 | 0.3339 | model_form_blend |
| predicted_R | 0.6510 | 0.7140 | 0.6784 | model_form_blend |
| predicted_RBI | 0.6050 | 0.7080 | 0.6498 | model_form_blend |
| predicted_SLG | 0.4720 | 0.4979 | 0.4833 | model_form_blend |
| predicted_SO | 1.5580 | 1.5770 | 1.5663 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 515 |
| Season rows before report date | 515 |
| Report year | 2026 |
| Profile rows used | 129 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 5 |
| AB | 5 |
| H | 2 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 1 |
| RBI | 0 |
| BB | 0 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 5 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 3 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 4 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | 1B |
| gameID | 20260930_CHW@HOU |
| game_type | full |
| mlbID | 808959 |
| playerID | 808959 |
| playerName | Munetaka Murakami |
| pos | IF |
| started | True |
| startingPosition | 1B |
| team | CHW |
| teamID | 6 |
| game_date | 2026-09-30 |
| sl_k_percent | 35.4 |
| sl_bb_percent | 16.6 |
| sl_woba | 0.356 |
| sl_xwoba | 0.351 |
| sl_xba | 0.204 |
| sl_xslg | 0.469 |
| sl_sweet_spot_percent | 30.5 |
| sl_barrel_batted_rate | 20.5 |
| sl_hard_hit_percent | 56.8 |
| sl_exit_velocity_avg | 93.9 |
| sl_launch_angle_avg | 16.1 |
| sl_whiff_percent | 42.3 |
| sl_swing_percent | 40.7 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.200 | 0.000 | 1.000 | Hitting_2B | 0.204 | 0.000 | -0.204 | 0.000 |
| predicted_3B | 0.000 | 0.000 | 0.000 | Hitting_3B | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_AB | 4.080 | 5.000 | 4.000 | Hitting_AB | 3.772 | 3.000 | 1.228 | 2.000 |
| predicted_AVG | 0.332 | 0.000 | 0.250 | Hitting_AVG | 0.279 | 0.667 | -0.279 | -0.667 |
| predicted_BB | 0.394 | 0.000 | 1.000 | Hitting_BB | 0.436 | 1.000 | -0.436 | -1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.010 | 0.000 | -0.010 | 0.000 |
| predicted_H | 1.360 | 0.000 | 1.000 | Hitting_H | 1.051 | 2.000 | -1.051 | -2.000 |
| predicted_HR | 0.240 | 0.000 | 0.000 | Hitting_HR | 0.114 | 1.000 | -0.114 | -1.000 |
| predicted_OBP | 0.410 | 0.000 | 0.400 | Hitting_OBP | 0.357 | 0.750 | -0.357 | -0.750 |
| predicted_R | 0.594 | 0.000 | 1.000 | Hitting_R | 0.627 | 1.000 | -0.627 | -1.000 |
| predicted_RBI | 0.840 | 0.000 | 0.000 | Hitting_RBI | 0.434 | 3.000 | -0.434 | -3.000 |
| predicted_SB | - | 0.000 | 0.000 | BaseRunning_SB | 0.026 | 0.000 | -0.026 | 0.000 |
| predicted_SLG | 0.567 | 0.000 | 0.500 | Hitting_SLG | 0.424 | 1.667 | -0.424 | -1.667 |
| predicted_SO | 0.910 | 1.000 | 1.000 | Hitting_SO | 0.936 | 0.000 | 0.064 | 1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 11 |
| Boosted Metrics | 3 |
| Deboosted Metrics | 8 |
| Better Metrics | 2 |
| Worse Metrics | 9 |
| Biggest Boost | predicted_AB: 4.0800 -> 5.0000 (boost 0.9200, better) |
| Biggest Deboost | predicted_H: 1.3600 -> 0.0000 (deboost -1.3600, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 4 | 1 | 3 | 2 | 2 | predicted_AVG: 0.3320 -> 0.3431 (boost 0.0111, better) | predicted_AB: 4.0800 -> 3.8484 (deboost -0.2316, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 2 | 0 | 2 | 0 | 2 | - | predicted_OBP: 0.4138 -> 0.3989 (deboost -0.0149, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 3 | 4 | 2 | 5 | predicted_RBI: 0.7511 -> 1.0000 (boost 0.2489, better) | predicted_BB: 0.3669 -> 0.0000 (deboost -0.3669, worse) | AB rounded to 4 (raw=4.08), rates preserved: AVG=0.307 HR/AB=0.051 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=15.0, weight=0.133, BvP AVG=0.267) |
| 7 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.6164 -> 1.0000 (boost 0.3836, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 5 | 3 | 2 | 3 | 2 | predicted_BB: 0.0000 -> 0.3804 (boost 0.3804, better) | predicted_RBI: 1.0000 -> 0.3879 (deboost -0.6121, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 9 | lineup_integer_allocation | 5 | 3 | 2 | 3 | 2 | predicted_2B: 0.2037 -> 1.0000 (boost 0.7963, better) | predicted_RBI: 0.3879 -> 0.0000 (deboost -0.3879, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 10 | embedded_savant_player_context | 6 | 1 | 5 | 1 | 5 | predicted_RBI: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_2B: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | simulation_box_score_reference | 4 | 1 | 3 | 1 | 3 | predicted_AB: 4.0000 -> 5.0000 (boost 1.0000, better) | predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 12 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_SLG: 0.3890 -> 0.5608 (boost 0.1718, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "805367",
"player_name": "Chase Meidroth",
"position": "2B",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.2,
"predicted_3B": 0.0,
"predicted_AB": 4.08,
"predicted_AVG": 0.332,
"predicted_BB": 0.394,
"predicted_H": 1.36,
"predicted_HR": 0.24,
"predicted_OBP": 0.41,
"predicted_R": 0.594,
"predicted_RBI": 0.84,
"predicted_SLG": 0.567,
"predicted_SO": 0.91
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.2184,
"predicted_3B": 0.0004,
"predicted_AB": 3.8484,
"predicted_AVG": 0.3431,
"predicted_BB": 0.366,
"predicted_H": 1.3198,
"predicted_HBP": 0.043,
"predicted_HR": 0.2085,
"predicted_OBP": 0.4138,
"predicted_R": 0.6202,
"predicted_RBI": 0.7557,
"predicted_SLG": 0.5674,
"predicted_SO": 0.8361
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.2,
"after": 0.2184,
"delta": 0.0184,
"percent_delta": 0.092,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0004,
"delta": 0.0004,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.08,
"after": 3.8484,
"delta": -0.2316,
"percent_delta": -0.0568,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.332,
"after": 0.3431,
"delta": 0.0111,
"percent_delta": 0.0334,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.394,
"after": 0.366,
"delta": -0.028,
"percent_delta": -0.0711,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.36,
"after": 1.3198,
"delta": -0.0402,
"percent_delta": -0.0296,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.24,
"after": 0.2085,
"delta": -0.0315,
"percent_delta": -0.1313,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.41,
"after": 0.4138,
"delta": 0.0038,
"percent_delta": 0.0093,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.594,
"after": 0.6202,
"delta": 0.0262,
"percent_delta": 0.0441,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.84,
"after": 0.7557,
"delta": -0.0843,
"percent_delta": -0.1004,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.567,
"after": 0.5674,
"delta": 0.0004,
"percent_delta": 0.0007,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.91,
"after": 0.8361,
"delta": -0.0739,
"percent_delta": -0.0812,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 1,
"deboosted_metrics": 3,
"better_metrics": 2,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_AVG",
"before": 0.332,
"after": 0.3431,
"delta": 0.0111,
"percent_delta": 0.0334,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.08,
"after": 3.8484,
"delta": -0.2316,
"percent_delta": -0.0568,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 155
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.2184,
"predicted_3B": 0.0004,
"predicted_AB": 3.8484,
"predicted_AVG": 0.3415,
"predicted_BB": 0.3669,
"predicted_H": 1.3144,
"predicted_HBP": 0.043,
"predicted_HR": 0.2082,
"predicted_OBP": 0.3989,
"predicted_R": 0.6164,
"predicted_RBI": 0.7511,
"predicted_SLG": 0.5608,
"predicted_SO": 0.8341
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.2184,
"after": 0.2184,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0004,
"after": 0.0004,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.8484,
"after": 3.8484,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.3431,
"after": 0.3415,
"delta": -0.0016,
"percent_delta": -0.0047,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.366,
"after": 0.3669,
"delta": 0.0009,
"percent_delta": 0.0025,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.3198,
"after": 1.3144,
"delta": -0.0054,
"percent_delta": -0.0041,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.043,
"after": 0.043,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.2085,
"after": 0.2082,
"delta": -0.0003,
"percent_delta": -0.0014,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.4138,
"after": 0.3989,
"delta": -0.0149,
"percent_delta": -0.036,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.6202,
"after": 0.6164,
"delta": -0.0038,
"percent_delta": -0.0061,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.7557,
"after": 0.7511,
"delta": -0.0046,
"percent_delta": -0.0061,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.5674,
"after": 0.5608,
"delta": -0.0066,
"percent_delta": -0.0116,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.8361,
"after": 0.8341,
"delta": -0.002,
"percent_delta": -0.0024,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.4138,
"after": 0.3989,
"delta": -0.0149,
"percent_delta": -0.036,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=4.08), rates preserved: AVG=0.307 HR/AB=0.051",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.2184,
"after": 0.0,
"delta": -0.2184,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0004,
"after": 0.0,
"delta": -0.0004,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.8484,
"after": 4.0,
"delta": 0.1516,
"percent_delta": 0.0394,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.3669,
"after": 0.0,
"delta": -0.3669,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.3144,
"after": 1.0,
"delta": -0.3144,
"percent_delta": -0.2392,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.043,
"after": 0.0,
"delta": -0.043,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.2082,
"after": 0.0,
"delta": -0.2082,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.7511,
"after": 1.0,
"delta": 0.2489,
"percent_delta": 0.3314,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.8341,
"after": 1.0,
"delta": 0.1659,
"percent_delta": 0.1989,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 3,
"deboosted_metrics": 4,
"better_metrics": 2,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.7511,
"after": 1.0,
"delta": 0.2489,
"percent_delta": 0.3314,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.3669,
"after": 0.0,
"delta": -0.3669,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "bvp_blend",
"description": "Sample-size BvP blend (BvP AB=15.0, weight=0.133, BvP AVG=0.267)",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {
"model_expectation": 0.8667,
"bvp": 0.1333
},
"window_games": {}
},
{
"index": 7,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.6164,
"after": 1.0,
"delta": 0.3836,
"percent_delta": 0.6223,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.6164,
"after": 1.0,
"delta": 0.3836,
"percent_delta": 0.6223,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.2037,
"predicted_3B": 0.0077,
"predicted_BB": 0.3804,
"predicted_H": 0.9469,
"predicted_HR": 0.0956,
"predicted_RBI": 0.3879,
"predicted_SO": 0.9979
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.2037,
"delta": 0.2037,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0077,
"delta": 0.0077,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.3804,
"delta": 0.3804,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.9469,
"delta": -0.0531,
"percent_delta": -0.0531,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0956,
"delta": 0.0956,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.3879,
"delta": -0.6121,
"percent_delta": -0.6121,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.9979,
"delta": -0.0021,
"percent_delta": -0.0021,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 3,
"deboosted_metrics": 2,
"better_metrics": 3,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 0.3804,
"delta": 0.3804,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.3879,
"delta": -0.6121,
"percent_delta": -0.6121,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 1.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.2037,
"after": 1.0,
"delta": 0.7963,
"percent_delta": 3.9092,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0077,
"after": 0.0,
"delta": -0.0077,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.3804,
"after": 1.0,
"delta": 0.6196,
"percent_delta": 1.6288,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.9469,
"after": 1.0,
"delta": 0.0531,
"percent_delta": 0.0561,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0956,
"after": 0.0,
"delta": -0.0956,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.3879,
"after": 0.0,
"delta": -0.3879,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.9979,
"after": 1.0,
"delta": 0.0021,
"percent_delta": 0.0021,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 3,
"deboosted_metrics": 2,
"better_metrics": 3,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_2B",
"before": 0.2037,
"after": 1.0,
"delta": 0.7963,
"percent_delta": 3.9092,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.3879,
"after": 0.0,
"delta": -0.3879,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.254,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.328,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SLG": 0.389,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.3415,
"after": 0.254,
"delta": -0.0875,
"percent_delta": -0.2562,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3989,
"after": 0.328,
"delta": -0.0709,
"percent_delta": -0.1777,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.5608,
"after": 0.389,
"delta": -0.1718,
"percent_delta": -0.3063,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 1,
"deboosted_metrics": 5,
"better_metrics": 1,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_2B",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 5.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 1,
"deboosted_metrics": 3,
"better_metrics": 1,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_AB",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 12,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 5.0,
"predicted_AVG": 0.3415,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3989,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.5608,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.254,
"after": 0.3415,
"delta": 0.0875,
"percent_delta": 0.3447,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.328,
"after": 0.3989,
"delta": 0.0709,
"percent_delta": 0.216,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.389,
"after": 0.5608,
"delta": 0.1718,
"percent_delta": 0.4416,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.389,
"after": 0.5608,
"delta": 0.1718,
"percent_delta": 0.4416,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.2,
"after": 0.0,
"delta": -0.2,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.08,
"after": 5.0,
"delta": 0.92,
"percent_delta": 0.2255,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.332,
"after": 0.3415,
"delta": 0.0095,
"percent_delta": 0.0286,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.394,
"after": 0.0,
"delta": -0.394,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.36,
"after": 0.0,
"delta": -1.36,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.24,
"after": 0.0,
"delta": -0.24,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.41,
"after": 0.3989,
"delta": -0.0111,
"percent_delta": -0.0271,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.594,
"after": 0.0,
"delta": -0.594,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.84,
"after": 0.0,
"delta": -0.84,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.567,
"after": 0.5608,
"delta": -0.0062,
"percent_delta": -0.0109,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.91,
"after": 1.0,
"delta": 0.09,
"percent_delta": 0.0989,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 11,
"boosted_metrics": 3,
"deboosted_metrics": 8,
"better_metrics": 2,
"worse_metrics": 9,
"biggest_boost": {
"metric": "predicted_AB",
"before": 4.08,
"after": 5.0,
"delta": 0.92,
"percent_delta": 0.2255,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.36,
"after": 0.0,
"delta": -1.36,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.200 | - |
| predicted_3B | 0.000 | - |
| predicted_AB | 4.080 | - |
| predicted_AVG | 0.332 | - |
| predicted_BB | 0.394 | - |
| predicted_H | 1.360 | - |
| predicted_HR | 0.240 | - |
| predicted_OBP | 0.410 | - |
| predicted_R | 0.594 | - |
| predicted_RBI | 0.840 | - |
| predicted_SLG | 0.567 | - |
| predicted_SO | 0.910 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.218 | 0.018 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 3.848 | -0.232 |
| predicted_AVG | 0.343 | 0.011 |
| predicted_BB | 0.366 | -0.028 |
| predicted_H | 1.320 | -0.040 |
| predicted_HBP | 0.043 | - |
| predicted_HR | 0.208 | -0.032 |
| predicted_OBP | 0.414 | 0.004 |
| predicted_R | 0.620 | 0.026 |
| predicted_RBI | 0.756 | -0.084 |
| predicted_SLG | 0.567 | 0.000 |
| predicted_SO | 0.836 | -0.074 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.218 | 0.000 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 3.848 | 0.000 |
| predicted_AVG | 0.342 | -0.002 |
| predicted_BB | 0.367 | 0.001 |
| predicted_H | 1.314 | -0.005 |
| predicted_HBP | 0.043 | 0.000 |
| predicted_HR | 0.208 | -0.000 |
| predicted_OBP | 0.399 | -0.015 |
| predicted_R | 0.616 | -0.004 |
| predicted_RBI | 0.751 | -0.005 |
| predicted_SLG | 0.561 | -0.007 |
| predicted_SO | 0.834 | -0.002 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=4.08), rates preserved: AVG=0.307 HR/AB=0.051
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=15.0, weight=0.133, BvP AVG=0.267)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.204 | 0.204 |
| 3B | 0.008 | 0.008 |
| BB | 0.380 | 0.380 |
| H | 0.947 | -0.053 |
| HR | 0.096 | 0.096 |
| RBI | 0.388 | -0.612 |
| SO | 0.998 | -0.002 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 0.796 |
| 3B | 0.000 | -0.008 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 0.620 |
| H | 1.000 | 0.053 |
| HR | 0.000 | -0.096 |
| R | 1.000 | 0.000 |
| RBI | 0.000 | -0.388 |
| SO | 1.000 | 0.002 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.218 |
| predicted_3B | 0.000 | -0.000 |
| predicted_AB | 4.000 | 0.152 |
| predicted_AVG | 0.254 | -0.088 |
| predicted_BB | 0.000 | -0.367 |
| predicted_H | 1.000 | -0.314 |
| predicted_HR | 0.000 | -0.208 |
| predicted_OBP | 0.328 | -0.071 |
| predicted_R | 1.000 | 0.384 |
| predicted_RBI | 1.000 | 0.249 |
| predicted_SLG | 0.389 | -0.172 |
| predicted_SO | 1.000 | 0.166 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -1.000 |
| 3B | 0.000 | 0.000 |
| AB | 5.000 | 1.000 |
| BB | 0.000 | -1.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | -1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | - |
| R | 0.000 | -1.000 |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 16.000 | 9.000 | 2.000 | 0.000 | 1.000 | 4.000 | 3.000 | 1.000 | 2.000 | 0.5625 | 0.5882 | 0.8750 | 0.5625 | 0.0625 | 0.2500 | 0.0625 | 0.1250 |
| last_10 | 0.20 | 10 | - | 34.000 | 14.000 | 2.000 | 0.000 | 3.000 | 11.000 | 9.000 | 3.000 | 6.000 | 0.4118 | 0.4737 | 0.7353 | 0.4118 | 0.0882 | 0.3235 | 0.0882 | 0.1765 |
| season | 0.60 | 155 | - | 573.000 | 160.000 | 31.000 | 0.000 | 17.000 | 67.000 | 92.000 | 61.000 | 141.000 | 0.2792 | 0.3525 | 0.4223 | 0.2792 | 0.0297 | 0.1169 | 0.1065 | 0.2461 |
| Metric | Value |
|---|---|
| predicted_2B | 0.2420 |
| predicted_3B | 0.0010 |
| predicted_AB | 3.5500 |
| predicted_AVG | 0.3573 |
| predicted_BB | 0.3300 |
| predicted_H | 1.2680 |
| predicted_HBP | 0.0430 |
| predicted_HR | 0.1680 |
| predicted_OBP | 0.4186 |
| predicted_R | 0.6540 |
| predicted_RBI | 0.6470 |
| predicted_SLG | 0.5680 |
| predicted_SO | 0.7410 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.2000 | 0.2420 | 0.2184 | model_form_blend |
| predicted_3B | 0.0000 | 0.0010 | 0.0004 | model_form_blend |
| predicted_AB | 4.0800 | 3.5500 | 3.8484 | model_form_blend |
| predicted_AVG | 0.3320 | 0.3573 | 0.3431 | model_form_blend |
| predicted_BB | 0.3940 | 0.3300 | 0.3660 | model_form_blend |
| predicted_H | 1.3600 | 1.2680 | 1.3198 | model_form_blend |
| predicted_HBP | - | 0.0430 | 0.0430 | form_only |
| predicted_HR | 0.2400 | 0.1680 | 0.2085 | model_form_blend |
| predicted_OBP | 0.4100 | 0.4186 | 0.4138 | model_form_blend |
| predicted_R | 0.5940 | 0.6540 | 0.6202 | model_form_blend |
| predicted_RBI | 0.8400 | 0.6470 | 0.7557 | model_form_blend |
| predicted_SLG | 0.5670 | 0.5680 | 0.5674 | model_form_blend |
| predicted_SO | 0.9100 | 0.7410 | 0.8361 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 622 |
| Season rows before report date | 622 |
| Report year | 2026 |
| Profile rows used | 155 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 5 |
| AB | 5 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 3 |
| Hitting_AVG | 0.667 |
| Hitting_BB | 1 |
| Hitting_GIDP | 0 |
| Hitting_H | 2 |
| Hitting_HBP | 0 |
| Hitting_HR | 1 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 3 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 5 |
| Hitting_battingOrder | 7 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | 2B |
| gameID | 20260930_CHW@HOU |
| game_type | full |
| mlbID | 805367 |
| playerID | 805367 |
| playerName | Chase Meidroth |
| pos | 2B |
| started | True |
| startingPosition | 2B |
| team | CHW |
| teamID | 6 |
| game_date | 2026-09-30 |
| sl_k_percent | 21.9 |
| sl_bb_percent | 9.5 |
| sl_woba | 0.339 |
| sl_xwoba | 0.301 |
| sl_xba | 0.239 |
| sl_xslg | 0.348 |
| sl_sweet_spot_percent | 34.1 |
| sl_barrel_batted_rate | 4.6 |
| sl_hard_hit_percent | 34.6 |
| sl_exit_velocity_avg | 87.2 |
| sl_launch_angle_avg | 8.5 |
| sl_whiff_percent | 19.7 |
| sl_swing_percent | 42.0 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.194 | 0.000 | 0.000 | Hitting_2B | 0.210 | 0.000 | -0.210 | 0.000 |
| predicted_3B | 0.006 | 0.000 | 0.000 | Hitting_3B | 0.006 | 0.000 | -0.006 | 0.000 |
| predicted_AB | 4.770 | 4.000 | 4.000 | Hitting_AB | 3.816 | 5.000 | 0.184 | -1.000 |
| predicted_AVG | 0.214 | 0.000 | 0.250 | Hitting_AVG | 0.252 | 0.000 | -0.252 | 0.000 |
| predicted_BB | 0.631 | 1.000 | 1.000 | Hitting_BB | 0.639 | 0.000 | 0.361 | 1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.015 | 0.000 | -0.015 | 0.000 |
| predicted_H | 1.020 | 0.000 | 1.000 | Hitting_H | 0.961 | 0.000 | -0.961 | 0.000 |
| predicted_HR | 0.200 | 0.000 | 0.000 | Hitting_HR | 0.217 | 0.000 | -0.217 | 0.000 |
| predicted_OBP | 0.331 | 0.200 | 0.400 | Hitting_OBP | 0.363 | 0.000 | -0.163 | 0.200 |
| predicted_R | 0.669 | 0.000 | 1.000 | Hitting_R | 0.709 | 1.000 | -0.709 | -1.000 |
| predicted_RBI | 0.730 | 0.000 | 0.000 | Hitting_RBI | 0.588 | 0.000 | -0.588 | 0.000 |
| predicted_SLG | 0.385 | 0.000 | 0.250 | Hitting_SLG | 0.481 | 0.000 | -0.481 | 0.000 |
| predicted_SO | 0.806 | 2.000 | 1.000 | Hitting_SO | 0.814 | 2.000 | 1.186 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 9 |
| Boosted Metrics | 2 |
| Deboosted Metrics | 7 |
| Better Metrics | 1 |
| Worse Metrics | 8 |
| Biggest Boost | predicted_SO: 0.8060 -> 2.0000 (boost 1.1940, worse) |
| Biggest Deboost | predicted_H: 1.0200 -> 0.0000 (deboost -1.0200, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 5 | 3 | 2 | 2 | 3 | predicted_BB: 0.6310 -> 0.6959 (boost 0.0649, better) | predicted_AB: 4.7700 -> 4.3108 (deboost -0.4592, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 1 | 0 | 1 | 0 | 1 | - | predicted_OBP: 0.3385 -> 0.3229 (deboost -0.0156, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 3 | 4 | 2 | 5 | predicted_RBI: 0.6881 -> 1.0000 (boost 0.3119, better) | predicted_BB: 0.6976 -> 0.0000 (deboost -0.6976, worse) | AB rounded to 4 (raw=4.77), rates preserved: AVG=0.184 HR/AB=0.038 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=14.0, weight=0.127, BvP AVG=0.143) |
| 7 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.7089 -> 1.0000 (boost 0.2911, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 3 | 3 | 4 | 2 | predicted_BB: 0.0000 -> 0.5533 (boost 0.5533, better) | predicted_RBI: 1.0000 -> 0.4893 (deboost -0.5107, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 9 | lineup_integer_allocation | 6 | 3 | 3 | 2 | 4 | predicted_BB: 0.5533 -> 1.0000 (boost 0.4467, better) | predicted_RBI: 0.4893 -> 0.0000 (deboost -0.4893, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 10 | embedded_savant_player_context | 4 | 3 | 1 | 3 | 1 | predicted_RBI: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | simulation_box_score_reference | 5 | 2 | 3 | 1 | 4 | predicted_BB: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 12 | current_json_final | 2 | 0 | 2 | 0 | 2 | - | predicted_SLG: 0.4050 -> 0.3827 (deboost -0.0223, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "678246",
"player_name": "Miguel Vargas",
"position": "3B",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.194,
"predicted_3B": 0.006,
"predicted_AB": 4.77,
"predicted_AVG": 0.214,
"predicted_BB": 0.631,
"predicted_H": 1.02,
"predicted_HR": 0.2,
"predicted_OBP": 0.331,
"predicted_R": 0.669,
"predicted_RBI": 0.73,
"predicted_SLG": 0.385,
"predicted_SO": 0.806
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1695,
"predicted_3B": 0.0051,
"predicted_AB": 4.3108,
"predicted_AVG": 0.2143,
"predicted_BB": 0.6959,
"predicted_H": 0.9232,
"predicted_HBP": 0.026,
"predicted_HR": 0.1838,
"predicted_OBP": 0.3385,
"predicted_R": 0.7133,
"predicted_RBI": 0.6923,
"predicted_SLG": 0.3853,
"predicted_SO": 0.8638
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.194,
"after": 0.1695,
"delta": -0.0245,
"percent_delta": -0.1263,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.006,
"after": 0.0051,
"delta": -0.0009,
"percent_delta": -0.15,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.77,
"after": 4.3108,
"delta": -0.4592,
"percent_delta": -0.0963,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.214,
"after": 0.2143,
"delta": 0.0003,
"percent_delta": 0.0014,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.631,
"after": 0.6959,
"delta": 0.0649,
"percent_delta": 0.1029,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.02,
"after": 0.9232,
"delta": -0.0968,
"percent_delta": -0.0949,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.2,
"after": 0.1838,
"delta": -0.0162,
"percent_delta": -0.081,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.331,
"after": 0.3385,
"delta": 0.0075,
"percent_delta": 0.0227,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.669,
"after": 0.7133,
"delta": 0.0443,
"percent_delta": 0.0662,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.73,
"after": 0.6923,
"delta": -0.0377,
"percent_delta": -0.0516,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.385,
"after": 0.3853,
"delta": 0.0003,
"percent_delta": 0.0008,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.806,
"after": 0.8638,
"delta": 0.0578,
"percent_delta": 0.0717,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 3,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.631,
"after": 0.6959,
"delta": 0.0649,
"percent_delta": 0.1029,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.77,
"after": 4.3108,
"delta": -0.4592,
"percent_delta": -0.0963,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 160
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1695,
"predicted_3B": 0.0051,
"predicted_AB": 4.3108,
"predicted_AVG": 0.2133,
"predicted_BB": 0.6976,
"predicted_H": 0.9194,
"predicted_HBP": 0.026,
"predicted_HR": 0.1835,
"predicted_OBP": 0.3229,
"predicted_R": 0.7089,
"predicted_RBI": 0.6881,
"predicted_SLG": 0.3827,
"predicted_SO": 0.8617
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1695,
"after": 0.1695,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0051,
"after": 0.0051,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.3108,
"after": 4.3108,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2143,
"after": 0.2133,
"delta": -0.001,
"percent_delta": -0.0047,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.6959,
"after": 0.6976,
"delta": 0.0017,
"percent_delta": 0.0024,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.9232,
"after": 0.9194,
"delta": -0.0038,
"percent_delta": -0.0041,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.026,
"after": 0.026,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1838,
"after": 0.1835,
"delta": -0.0003,
"percent_delta": -0.0016,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3385,
"after": 0.3229,
"delta": -0.0156,
"percent_delta": -0.0461,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.7133,
"after": 0.7089,
"delta": -0.0044,
"percent_delta": -0.0062,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.6923,
"after": 0.6881,
"delta": -0.0042,
"percent_delta": -0.0061,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3853,
"after": 0.3827,
"delta": -0.0026,
"percent_delta": -0.0067,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.8638,
"after": 0.8617,
"delta": -0.0021,
"percent_delta": -0.0024,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.3385,
"after": 0.3229,
"delta": -0.0156,
"percent_delta": -0.0461,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=4.77), rates preserved: AVG=0.184 HR/AB=0.038",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1695,
"after": 0.0,
"delta": -0.1695,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0051,
"after": 0.0,
"delta": -0.0051,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.3108,
"after": 4.0,
"delta": -0.3108,
"percent_delta": -0.0721,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.6976,
"after": 0.0,
"delta": -0.6976,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.9194,
"after": 1.0,
"delta": 0.0806,
"percent_delta": 0.0877,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.026,
"after": 0.0,
"delta": -0.026,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1835,
"after": 0.0,
"delta": -0.1835,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.6881,
"after": 1.0,
"delta": 0.3119,
"percent_delta": 0.4533,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.8617,
"after": 1.0,
"delta": 0.1383,
"percent_delta": 0.1605,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 3,
"deboosted_metrics": 4,
"better_metrics": 2,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.6881,
"after": 1.0,
"delta": 0.3119,
"percent_delta": 0.4533,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.6976,
"after": 0.0,
"delta": -0.6976,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "bvp_blend",
"description": "Sample-size BvP blend (BvP AB=14.0, weight=0.127, BvP AVG=0.143)",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {
"model_expectation": 0.8727,
"bvp": 0.1273
},
"window_games": {}
},
{
"index": 7,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.7089,
"after": 1.0,
"delta": 0.2911,
"percent_delta": 0.4106,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.7089,
"after": 1.0,
"delta": 0.2911,
"percent_delta": 0.4106,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1771,
"predicted_3B": 0.0097,
"predicted_BB": 0.5533,
"predicted_H": 0.8371,
"predicted_HR": 0.1678,
"predicted_RBI": 0.4893,
"predicted_SO": 0.8633
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1771,
"delta": 0.1771,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0097,
"delta": 0.0097,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.5533,
"delta": 0.5533,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.8371,
"delta": -0.1629,
"percent_delta": -0.1629,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1678,
"delta": 0.1678,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.4893,
"delta": -0.5107,
"percent_delta": -0.5107,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.8633,
"delta": -0.1367,
"percent_delta": -0.1367,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 3,
"deboosted_metrics": 3,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 0.5533,
"delta": 0.5533,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.4893,
"delta": -0.5107,
"percent_delta": -0.5107,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1771,
"after": 0.0,
"delta": -0.1771,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0097,
"after": 0.0,
"delta": -0.0097,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.5533,
"after": 1.0,
"delta": 0.4467,
"percent_delta": 0.8073,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8371,
"after": 1.0,
"delta": 0.1629,
"percent_delta": 0.1946,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1678,
"after": 0.0,
"delta": -0.1678,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.4893,
"after": 0.0,
"delta": -0.4893,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.8633,
"after": 1.0,
"delta": 0.1367,
"percent_delta": 0.1583,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 3,
"deboosted_metrics": 3,
"better_metrics": 2,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.5533,
"after": 1.0,
"delta": 0.4467,
"percent_delta": 0.8073,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.4893,
"after": 0.0,
"delta": -0.4893,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.221,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.325,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SLG": 0.405,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2133,
"after": 0.221,
"delta": 0.0077,
"percent_delta": 0.0361,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3229,
"after": 0.325,
"delta": 0.0021,
"percent_delta": 0.0065,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.3827,
"after": 0.405,
"delta": 0.0223,
"percent_delta": 0.0583,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 3,
"deboosted_metrics": 1,
"better_metrics": 3,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 2,
"deboosted_metrics": 3,
"better_metrics": 1,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 12,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.2133,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3229,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.3827,
"predicted_SO": 2.0,
"predicted_TB": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.221,
"after": 0.2133,
"delta": -0.0077,
"percent_delta": -0.0349,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.325,
"after": 0.3229,
"delta": -0.0021,
"percent_delta": -0.0066,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.405,
"after": 0.3827,
"delta": -0.0223,
"percent_delta": -0.0551,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.405,
"after": 0.3827,
"delta": -0.0223,
"percent_delta": -0.0551,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.194,
"after": 0.0,
"delta": -0.194,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.006,
"after": 0.0,
"delta": -0.006,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.77,
"after": 4.0,
"delta": -0.77,
"percent_delta": -0.1614,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.214,
"after": 0.2133,
"delta": -0.0007,
"percent_delta": -0.0033,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.631,
"after": 1.0,
"delta": 0.369,
"percent_delta": 0.5848,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.02,
"after": 0.0,
"delta": -1.02,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.2,
"after": 0.0,
"delta": -0.2,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.331,
"after": 0.3229,
"delta": -0.0081,
"percent_delta": -0.0245,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.669,
"after": 0.0,
"delta": -0.669,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.73,
"after": 0.0,
"delta": -0.73,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.385,
"after": 0.3827,
"delta": -0.0023,
"percent_delta": -0.006,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.806,
"after": 2.0,
"delta": 1.194,
"percent_delta": 1.4814,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 9,
"boosted_metrics": 2,
"deboosted_metrics": 7,
"better_metrics": 1,
"worse_metrics": 8,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.806,
"after": 2.0,
"delta": 1.194,
"percent_delta": 1.4814,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.02,
"after": 0.0,
"delta": -1.02,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.194 | - |
| predicted_3B | 0.006 | - |
| predicted_AB | 4.770 | - |
| predicted_AVG | 0.214 | - |
| predicted_BB | 0.631 | - |
| predicted_H | 1.020 | - |
| predicted_HR | 0.200 | - |
| predicted_OBP | 0.331 | - |
| predicted_R | 0.669 | - |
| predicted_RBI | 0.730 | - |
| predicted_SLG | 0.385 | - |
| predicted_SO | 0.806 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.170 | -0.024 |
| predicted_3B | 0.005 | -0.001 |
| predicted_AB | 4.311 | -0.459 |
| predicted_AVG | 0.214 | 0.000 |
| predicted_BB | 0.696 | 0.065 |
| predicted_H | 0.923 | -0.097 |
| predicted_HBP | 0.026 | - |
| predicted_HR | 0.184 | -0.016 |
| predicted_OBP | 0.339 | 0.008 |
| predicted_R | 0.713 | 0.044 |
| predicted_RBI | 0.692 | -0.038 |
| predicted_SLG | 0.385 | 0.000 |
| predicted_SO | 0.864 | 0.058 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.170 | 0.000 |
| predicted_3B | 0.005 | 0.000 |
| predicted_AB | 4.311 | 0.000 |
| predicted_AVG | 0.213 | -0.001 |
| predicted_BB | 0.698 | 0.002 |
| predicted_H | 0.919 | -0.004 |
| predicted_HBP | 0.026 | 0.000 |
| predicted_HR | 0.183 | -0.000 |
| predicted_OBP | 0.323 | -0.016 |
| predicted_R | 0.709 | -0.004 |
| predicted_RBI | 0.688 | -0.004 |
| predicted_SLG | 0.383 | -0.003 |
| predicted_SO | 0.862 | -0.002 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=4.77), rates preserved: AVG=0.184 HR/AB=0.038
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=14.0, weight=0.127, BvP AVG=0.143)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.177 | 0.177 |
| 3B | 0.010 | 0.010 |
| BB | 0.553 | 0.553 |
| H | 0.837 | -0.163 |
| HR | 0.168 | 0.168 |
| RBI | 0.489 | -0.511 |
| SO | 0.863 | -0.137 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.177 |
| 3B | 0.000 | -0.010 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 0.447 |
| H | 1.000 | 0.163 |
| HR | 0.000 | -0.168 |
| R | 1.000 | 0.000 |
| RBI | 0.000 | -0.489 |
| SO | 1.000 | 0.137 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.170 |
| predicted_3B | 0.000 | -0.005 |
| predicted_AB | 4.000 | -0.311 |
| predicted_AVG | 0.221 | 0.008 |
| predicted_BB | 0.000 | -0.698 |
| predicted_H | 1.000 | 0.081 |
| predicted_HR | 0.000 | -0.183 |
| predicted_OBP | 0.325 | 0.002 |
| predicted_R | 1.000 | 0.291 |
| predicted_RBI | 1.000 | 0.312 |
| predicted_SLG | 0.405 | 0.022 |
| predicted_SO | 1.000 | 0.138 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | -1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | - |
| R | 0.000 | -1.000 |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 2.000 | 1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 19.000 | 2.000 | 0.000 | 0.000 | 0.000 | 3.000 | 5.000 | 5.000 | 7.000 | 0.1053 | 0.2800 | 0.1053 | 0.1053 | 0.0000 | 0.1579 | 0.2632 | 0.3684 |
| last_10 | 0.20 | 10 | - | 36.000 | 8.000 | 1.000 | 0.000 | 2.000 | 9.000 | 9.000 | 11.000 | 9.000 | 0.2222 | 0.3958 | 0.4167 | 0.2222 | 0.0556 | 0.2500 | 0.3056 | 0.2500 |
| season | 0.60 | 160 | - | 597.000 | 147.000 | 31.000 | 1.000 | 33.000 | 93.000 | 107.000 | 101.000 | 129.000 | 0.2462 | 0.3581 | 0.4673 | 0.2462 | 0.0553 | 0.1558 | 0.1692 | 0.2161 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1380 |
| predicted_3B | 0.0040 |
| predicted_AB | 3.7220 |
| predicted_AVG | 0.2146 |
| predicted_BB | 0.7790 |
| predicted_H | 0.7990 |
| predicted_HBP | 0.0260 |
| predicted_HR | 0.1630 |
| predicted_OBP | 0.3482 |
| predicted_R | 0.7700 |
| predicted_RBI | 0.6440 |
| predicted_SLG | 0.3857 |
| predicted_SO | 0.9380 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1940 | 0.1380 | 0.1695 | model_form_blend |
| predicted_3B | 0.0060 | 0.0040 | 0.0051 | model_form_blend |
| predicted_AB | 4.7700 | 3.7220 | 4.3108 | model_form_blend |
| predicted_AVG | 0.2140 | 0.2146 | 0.2143 | model_form_blend |
| predicted_BB | 0.6310 | 0.7790 | 0.6959 | model_form_blend |
| predicted_H | 1.0200 | 0.7990 | 0.9232 | model_form_blend |
| predicted_HBP | - | 0.0260 | 0.0260 | form_only |
| predicted_HR | 0.2000 | 0.1630 | 0.1838 | model_form_blend |
| predicted_OBP | 0.3310 | 0.3482 | 0.3385 | model_form_blend |
| predicted_R | 0.6690 | 0.7700 | 0.7133 | model_form_blend |
| predicted_RBI | 0.7300 | 0.6440 | 0.6923 | model_form_blend |
| predicted_SLG | 0.3850 | 0.3857 | 0.3853 | model_form_blend |
| predicted_SO | 0.8060 | 0.9380 | 0.8638 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 673 |
| Season rows before report date | 673 |
| Report year | 2026 |
| Profile rows used | 160 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 5 |
| AB | 4 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 1 |
| SO | 2 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 5 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 2 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 3 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | 3B |
| gameID | 20260930_CHW@HOU |
| game_type | full |
| mlbID | 678246 |
| playerID | 678246 |
| playerName | Miguel Vargas |
| pos | 3B |
| started | True |
| startingPosition | 3B |
| team | CHW |
| teamID | 6 |
| game_date | 2026-09-30 |
| sl_k_percent | 17.9 |
| sl_bb_percent | 14.3 |
| sl_woba | 0.363 |
| sl_xwoba | 0.378 |
| sl_xba | 0.263 |
| sl_xslg | 0.496 |
| sl_sweet_spot_percent | 39.4 |
| sl_barrel_batted_rate | 13.0 |
| sl_hard_hit_percent | 43.8 |
| sl_exit_velocity_avg | 90.1 |
| sl_launch_angle_avg | 20.5 |
| sl_whiff_percent | 21.0 |
| sl_swing_percent | 43.9 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.170 | 2.000 | 0.000 | Hitting_2B | 0.161 | 0.000 | 1.839 | 2.000 |
| predicted_3B | 0.032 | 0.000 | 0.000 | Hitting_3B | 0.040 | 0.000 | -0.040 | 0.000 |
| predicted_AB | 3.521 | 4.000 | 3.000 | Hitting_AB | 3.646 | 4.000 | 0.354 | 0.000 |
| predicted_AVG | 0.227 | 0.500 | 0.333 | Hitting_AVG | 0.217 | 0.000 | 0.283 | 0.500 |
| predicted_BB | 0.404 | 0.000 | 0.000 | Hitting_BB | 0.484 | 0.000 | -0.484 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.037 | 0.000 | -0.037 | 0.000 |
| predicted_H | 0.798 | 2.000 | 1.000 | Hitting_H | 0.790 | 0.000 | 1.210 | 2.000 |
| predicted_HR | 0.064 | 0.000 | 0.000 | Hitting_HR | 0.075 | 0.000 | -0.075 | 0.000 |
| predicted_OBP | 0.306 | 0.500 | 0.333 | Hitting_OBP | 0.313 | 0.000 | 0.187 | 0.500 |
| predicted_R | 0.500 | 1.000 | 1.000 | Hitting_R | 0.553 | 0.000 | 0.447 | 1.000 |
| predicted_RBI | 0.404 | 1.000 | 0.000 | Hitting_RBI | 0.481 | 0.000 | 0.519 | 1.000 |
| predicted_SLG | 0.347 | 1.000 | 0.333 | Hitting_SLG | 0.345 | 0.000 | 0.655 | 1.000 |
| predicted_SO | 0.798 | 0.000 | 1.000 | Hitting_SO | 0.827 | 1.000 | -0.827 | -1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 11 |
| Boosted Metrics | 8 |
| Deboosted Metrics | 3 |
| Better Metrics | 9 |
| Worse Metrics | 2 |
| Biggest Boost | predicted_2B: 0.1700 -> 2.0000 (boost 1.8300, better) |
| Biggest Deboost | predicted_SO: 0.7980 -> 0.0000 (deboost -0.7980, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 6 | 4 | 2 | 4 | 2 | predicted_H: 0.7980 -> 0.8669 (boost 0.0689, better) | predicted_BB: 0.4040 -> 0.3342 (deboost -0.0698, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 0 | 0 | 0 | 0 | 0 | - | - | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 2 | 5 | 1 | 6 | predicted_SO: 0.7833 -> 1.0000 (boost 0.2167, worse) | predicted_AB: 3.5107 -> 3.0000 (deboost -0.5107, worse) | AB rounded to 3 (raw=3.52), rates preserved: AVG=0.234 HR/AB=0.016 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=6.0, weight=0.067, BvP AVG=0.333) |
| 7 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5212 -> 1.0000 (boost 0.4788, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 4 | 2 | 5 | 1 | predicted_RBI: 0.0000 -> 0.3765 (boost 0.3765, better) | predicted_H: 1.0000 -> 0.7614 (deboost -0.2386, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 9 | lineup_integer_allocation | 6 | 2 | 4 | 1 | 5 | predicted_H: 0.7614 -> 1.0000 (boost 0.2386, better) | predicted_RBI: 0.3765 -> 0.0000 (deboost -0.3765, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 10 | embedded_savant_player_context | 2 | 1 | 1 | 1 | 1 | predicted_SLG: 0.3554 -> 0.3620 (boost 0.0066, better) | predicted_AVG: 0.2459 -> 0.2290 (deboost -0.0169, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | simulation_box_score_reference | 5 | 4 | 1 | 5 | 0 | predicted_2B: 0.0000 -> 2.0000 (boost 2.0000, better) | predicted_SO: 1.0000 -> 0.0000 (deboost -1.0000, better) | Attached simulation box score without overwriting model prediction |
| 12 | current_json_final | 2 | 1 | 1 | 1 | 1 | predicted_AVG: 0.2290 -> 0.2459 (boost 0.0169, better) | predicted_SLG: 0.3620 -> 0.3554 (deboost -0.0066, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "695731",
"player_name": "Braden Montgomery",
"position": "RF",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.17,
"predicted_3B": 0.032,
"predicted_AB": 3.521,
"predicted_AVG": 0.227,
"predicted_BB": 0.404,
"predicted_H": 0.798,
"predicted_HR": 0.064,
"predicted_OBP": 0.306,
"predicted_R": 0.5,
"predicted_RBI": 0.404,
"predicted_SLG": 0.347,
"predicted_SO": 0.798
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1657,
"predicted_3B": 0.0264,
"predicted_AB": 3.5107,
"predicted_AVG": 0.2472,
"predicted_BB": 0.3342,
"predicted_H": 0.8669,
"predicted_HBP": 0.02,
"predicted_HR": 0.0554,
"predicted_OBP": 0.3143,
"predicted_R": 0.5244,
"predicted_RBI": 0.3483,
"predicted_SLG": 0.3562,
"predicted_SO": 0.7852
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.17,
"after": 0.1657,
"delta": -0.0043,
"percent_delta": -0.0253,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.032,
"after": 0.0264,
"delta": -0.0056,
"percent_delta": -0.175,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.521,
"after": 3.5107,
"delta": -0.0103,
"percent_delta": -0.0029,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.227,
"after": 0.2472,
"delta": 0.0202,
"percent_delta": 0.089,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.404,
"after": 0.3342,
"delta": -0.0698,
"percent_delta": -0.1728,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.798,
"after": 0.8669,
"delta": 0.0689,
"percent_delta": 0.0863,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.064,
"after": 0.0554,
"delta": -0.0086,
"percent_delta": -0.1344,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.306,
"after": 0.3143,
"delta": 0.0083,
"percent_delta": 0.0271,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.5,
"after": 0.5244,
"delta": 0.0244,
"percent_delta": 0.0488,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.404,
"after": 0.3483,
"delta": -0.0557,
"percent_delta": -0.1379,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.347,
"after": 0.3562,
"delta": 0.0092,
"percent_delta": 0.0265,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.798,
"after": 0.7852,
"delta": -0.0128,
"percent_delta": -0.016,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.798,
"after": 0.8669,
"delta": 0.0689,
"percent_delta": 0.0863,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.404,
"after": 0.3342,
"delta": -0.0698,
"percent_delta": -0.1728,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 94
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1657,
"predicted_3B": 0.0264,
"predicted_AB": 3.5107,
"predicted_AVG": 0.2459,
"predicted_BB": 0.335,
"predicted_H": 0.8633,
"predicted_HBP": 0.02,
"predicted_HR": 0.0553,
"predicted_OBP": 0.3116,
"predicted_R": 0.5212,
"predicted_RBI": 0.3462,
"predicted_SLG": 0.3554,
"predicted_SO": 0.7833
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1657,
"after": 0.1657,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0264,
"after": 0.0264,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.5107,
"after": 3.5107,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2472,
"after": 0.2459,
"delta": -0.0013,
"percent_delta": -0.0053,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.3342,
"after": 0.335,
"delta": 0.0008,
"percent_delta": 0.0024,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.8669,
"after": 0.8633,
"delta": -0.0036,
"percent_delta": -0.0042,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.02,
"after": 0.02,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0554,
"after": 0.0553,
"delta": -0.0001,
"percent_delta": -0.0018,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3143,
"after": 0.3116,
"delta": -0.0027,
"percent_delta": -0.0086,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.5244,
"after": 0.5212,
"delta": -0.0032,
"percent_delta": -0.0061,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.3483,
"after": 0.3462,
"delta": -0.0021,
"percent_delta": -0.006,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3562,
"after": 0.3554,
"delta": -0.0008,
"percent_delta": -0.0022,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.7852,
"after": 0.7833,
"delta": -0.0019,
"percent_delta": -0.0024,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 3 (raw=3.52), rates preserved: AVG=0.234 HR/AB=0.016",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1657,
"after": 0.0,
"delta": -0.1657,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0264,
"after": 0.0,
"delta": -0.0264,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.5107,
"after": 3.0,
"delta": -0.5107,
"percent_delta": -0.1455,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.335,
"after": 0.0,
"delta": -0.335,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8633,
"after": 1.0,
"delta": 0.1367,
"percent_delta": 0.1583,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.02,
"after": 0.0,
"delta": -0.02,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0553,
"after": 0.0,
"delta": -0.0553,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.3462,
"after": 0.0,
"delta": -0.3462,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.7833,
"after": 1.0,
"delta": 0.2167,
"percent_delta": 0.2767,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 2,
"deboosted_metrics": 5,
"better_metrics": 1,
"worse_metrics": 6,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.7833,
"after": 1.0,
"delta": 0.2167,
"percent_delta": 0.2767,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 3.5107,
"after": 3.0,
"delta": -0.5107,
"percent_delta": -0.1455,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "bvp_blend",
"description": "Sample-size BvP blend (BvP AB=6.0, weight=0.067, BvP AVG=0.333)",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {
"model_expectation": 0.9333,
"bvp": 0.0667
},
"window_games": {}
},
{
"index": 7,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.5212,
"after": 1.0,
"delta": 0.4788,
"percent_delta": 0.9186,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.5212,
"after": 1.0,
"delta": 0.4788,
"percent_delta": 0.9186,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1579,
"predicted_3B": 0.0162,
"predicted_BB": 0.3564,
"predicted_H": 0.7614,
"predicted_HR": 0.0845,
"predicted_RBI": 0.3765,
"predicted_SO": 0.8919
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1579,
"delta": 0.1579,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0162,
"delta": 0.0162,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.3564,
"delta": 0.3564,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.7614,
"delta": -0.2386,
"percent_delta": -0.2386,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0845,
"delta": 0.0845,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.3765,
"delta": 0.3765,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.8919,
"delta": -0.1081,
"percent_delta": -0.1081,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 5,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.3765,
"delta": 0.3765,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.7614,
"delta": -0.2386,
"percent_delta": -0.2386,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1579,
"after": 0.0,
"delta": -0.1579,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0162,
"after": 0.0,
"delta": -0.0162,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.3564,
"after": 0.0,
"delta": -0.3564,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.7614,
"after": 1.0,
"delta": 0.2386,
"percent_delta": 0.3134,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0845,
"after": 0.0,
"delta": -0.0845,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.3765,
"after": 0.0,
"delta": -0.3765,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.8919,
"after": 1.0,
"delta": 0.1081,
"percent_delta": 0.1212,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 2,
"deboosted_metrics": 4,
"better_metrics": 1,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.7614,
"after": 1.0,
"delta": 0.2386,
"percent_delta": 0.3134,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.3765,
"after": 0.0,
"delta": -0.3765,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.229,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.309,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.362,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2459,
"after": 0.229,
"delta": -0.0169,
"percent_delta": -0.0687,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3116,
"after": 0.309,
"delta": -0.0026,
"percent_delta": -0.0083,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3554,
"after": 0.362,
"delta": 0.0066,
"percent_delta": 0.0186,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.3554,
"after": 0.362,
"delta": 0.0066,
"percent_delta": 0.0186,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AVG",
"before": 0.2459,
"after": 0.229,
"delta": -0.0169,
"percent_delta": -0.0687,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 2.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 2.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 2.0,
"delta": 2.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 4,
"deboosted_metrics": 1,
"better_metrics": 5,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_2B",
"before": 0.0,
"after": 2.0,
"delta": 2.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 12,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 2.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.2459,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 2.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3116,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_RF": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.3554,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.229,
"after": 0.2459,
"delta": 0.0169,
"percent_delta": 0.0739,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"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_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.309,
"after": 0.3116,
"delta": 0.0026,
"percent_delta": 0.0084,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.362,
"after": 0.3554,
"delta": -0.0066,
"percent_delta": -0.0182,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_AVG",
"before": 0.229,
"after": 0.2459,
"delta": 0.0169,
"percent_delta": 0.0739,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.362,
"after": 0.3554,
"delta": -0.0066,
"percent_delta": -0.0182,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.17,
"after": 2.0,
"delta": 1.83,
"percent_delta": 10.7647,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.032,
"after": 0.0,
"delta": -0.032,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.521,
"after": 4.0,
"delta": 0.479,
"percent_delta": 0.136,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.227,
"after": 0.2459,
"delta": 0.0189,
"percent_delta": 0.0833,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.404,
"after": 0.0,
"delta": -0.404,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.798,
"after": 2.0,
"delta": 1.202,
"percent_delta": 1.5063,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.064,
"after": 0.0,
"delta": -0.064,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.306,
"after": 0.3116,
"delta": 0.0056,
"percent_delta": 0.0183,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.5,
"after": 1.0,
"delta": 0.5,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.404,
"after": 1.0,
"delta": 0.596,
"percent_delta": 1.4752,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.347,
"after": 0.3554,
"delta": 0.0084,
"percent_delta": 0.0242,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.798,
"after": 0.0,
"delta": -0.798,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 11,
"boosted_metrics": 8,
"deboosted_metrics": 3,
"better_metrics": 9,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_2B",
"before": 0.17,
"after": 2.0,
"delta": 1.83,
"percent_delta": 10.7647,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 0.798,
"after": 0.0,
"delta": -0.798,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.170 | - |
| predicted_3B | 0.032 | - |
| predicted_AB | 3.521 | - |
| predicted_AVG | 0.227 | - |
| predicted_BB | 0.404 | - |
| predicted_H | 0.798 | - |
| predicted_HR | 0.064 | - |
| predicted_OBP | 0.306 | - |
| predicted_R | 0.500 | - |
| predicted_RBI | 0.404 | - |
| predicted_SLG | 0.347 | - |
| predicted_SO | 0.798 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.166 | -0.004 |
| predicted_3B | 0.026 | -0.006 |
| predicted_AB | 3.511 | -0.010 |
| predicted_AVG | 0.247 | 0.020 |
| predicted_BB | 0.334 | -0.070 |
| predicted_H | 0.867 | 0.069 |
| predicted_HBP | 0.020 | - |
| predicted_HR | 0.055 | -0.009 |
| predicted_OBP | 0.314 | 0.008 |
| predicted_R | 0.524 | 0.024 |
| predicted_RBI | 0.348 | -0.056 |
| predicted_SLG | 0.356 | 0.009 |
| predicted_SO | 0.785 | -0.013 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.166 | 0.000 |
| predicted_3B | 0.026 | 0.000 |
| predicted_AB | 3.511 | 0.000 |
| predicted_AVG | 0.246 | -0.001 |
| predicted_BB | 0.335 | 0.001 |
| predicted_H | 0.863 | -0.004 |
| predicted_HBP | 0.020 | 0.000 |
| predicted_HR | 0.055 | -0.000 |
| predicted_OBP | 0.312 | -0.003 |
| predicted_R | 0.521 | -0.003 |
| predicted_RBI | 0.346 | -0.002 |
| predicted_SLG | 0.355 | -0.001 |
| predicted_SO | 0.783 | -0.002 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=3.52), rates preserved: AVG=0.234 HR/AB=0.016
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=6.0, weight=0.067, BvP AVG=0.333)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.158 | 0.158 |
| 3B | 0.016 | 0.016 |
| BB | 0.356 | 0.356 |
| H | 0.761 | -0.239 |
| HR | 0.085 | 0.085 |
| RBI | 0.377 | 0.377 |
| SO | 0.892 | -0.108 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.158 |
| 3B | 0.000 | -0.016 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | -0.356 |
| H | 1.000 | 0.239 |
| HR | 0.000 | -0.085 |
| R | 1.000 | 0.000 |
| RBI | 0.000 | -0.377 |
| SO | 1.000 | 0.108 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.166 |
| predicted_3B | 0.000 | -0.026 |
| predicted_AB | 3.000 | -0.511 |
| predicted_AVG | 0.229 | -0.017 |
| predicted_BB | 0.000 | -0.335 |
| predicted_H | 1.000 | 0.137 |
| predicted_HR | 0.000 | -0.055 |
| predicted_OBP | 0.309 | -0.003 |
| predicted_R | 1.000 | 0.479 |
| predicted_RBI | 0.000 | -0.346 |
| predicted_SLG | 0.362 | 0.007 |
| predicted_SO | 1.000 | 0.217 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 2.000 | 2.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 1.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 2.000 | 1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 1.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 16.000 | 5.000 | 0.000 | 0.000 | 0.000 | 0.000 | 3.000 | 0.000 | 4.000 | 0.3125 | 0.3125 | 0.3125 | 0.3125 | 0.0000 | 0.0000 | 0.0000 | 0.2500 |
| last_10 | 0.20 | 10 | - | 36.000 | 14.000 | 3.000 | 0.000 | 0.000 | 1.000 | 7.000 | 0.000 | 6.000 | 0.3889 | 0.3889 | 0.4722 | 0.3889 | 0.0000 | 0.0278 | 0.0000 | 0.1667 |
| season | 0.60 | 94 | - | 331.000 | 75.000 | 16.000 | 3.000 | 6.000 | 38.000 | 47.000 | 38.000 | 75.000 | 0.2266 | 0.3110 | 0.3474 | 0.2266 | 0.0181 | 0.1148 | 0.1148 | 0.2266 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1600 |
| predicted_3B | 0.0190 |
| predicted_AB | 3.4970 |
| predicted_AVG | 0.2742 |
| predicted_BB | 0.2410 |
| predicted_H | 0.9590 |
| predicted_HBP | 0.0200 |
| predicted_HR | 0.0440 |
| predicted_OBP | 0.3253 |
| predicted_R | 0.5570 |
| predicted_RBI | 0.2740 |
| predicted_SLG | 0.3685 |
| predicted_SO | 0.7680 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1700 | 0.1600 | 0.1657 | model_form_blend |
| predicted_3B | 0.0320 | 0.0190 | 0.0264 | model_form_blend |
| predicted_AB | 3.5210 | 3.4970 | 3.5107 | model_form_blend |
| predicted_AVG | 0.2270 | 0.2742 | 0.2472 | model_form_blend |
| predicted_BB | 0.4040 | 0.2410 | 0.3342 | model_form_blend |
| predicted_H | 0.7980 | 0.9590 | 0.8669 | model_form_blend |
| predicted_HBP | - | 0.0200 | 0.0200 | form_only |
| predicted_HR | 0.0640 | 0.0440 | 0.0554 | model_form_blend |
| predicted_OBP | 0.3060 | 0.3253 | 0.3143 | model_form_blend |
| predicted_R | 0.5000 | 0.5570 | 0.5244 | model_form_blend |
| predicted_RBI | 0.4040 | 0.2740 | 0.3483 | model_form_blend |
| predicted_SLG | 0.3470 | 0.3685 | 0.3562 | model_form_blend |
| predicted_SO | 0.7980 | 0.7680 | 0.7852 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 347 |
| Season rows before report date | 347 |
| Report year | 2026 |
| Profile rows used | 94 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 2 |
| 2B | 2 |
| 3B | 0 |
| HR | 0 |
| R | 1 |
| RBI | 1 |
| BB | 0 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 8 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | RF |
| gameID | 20260930_CHW@HOU |
| game_type | full |
| mlbID | 695731 |
| playerID | 695731 |
| playerName | Braden Montgomery |
| pos | OF |
| started | True |
| startingPosition | RF |
| team | CHW |
| teamID | 6 |
| game_date | 2026-09-30 |
| sl_k_percent | 19.7 |
| sl_bb_percent | 10.4 |
| sl_woba | 0.298 |
| sl_xwoba | 0.325 |
| sl_xba | 0.255 |
| sl_xslg | 0.392 |
| sl_sweet_spot_percent | 28.2 |
| sl_barrel_batted_rate | 4.4 |
| sl_hard_hit_percent | 40.9 |
| sl_exit_velocity_avg | 88.9 |
| sl_launch_angle_avg | 3.0 |
| sl_whiff_percent | 30.1 |
| sl_swing_percent | 50.4 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.097 | 0.000 | 0.000 | Hitting_2B | 0.072 | 0.000 | -0.072 | 0.000 |
| predicted_3B | 0.014 | 0.000 | 0.000 | Hitting_3B | 0.012 | 0.000 | -0.012 | 0.000 |
| predicted_AB | 2.861 | 5.000 | 4.000 | Hitting_AB | 2.916 | 2.000 | 2.084 | 3.000 |
| predicted_AVG | 0.292 | 0.000 | 0.250 | Hitting_AVG | 0.269 | 0.500 | -0.269 | -0.500 |
| predicted_BB | 0.167 | 0.000 | 0.000 | Hitting_BB | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.036 | 0.000 | -0.036 | 0.000 |
| predicted_H | 0.650 | 0.000 | 1.000 | Hitting_H | 0.783 | 1.000 | -0.783 | -1.000 |
| predicted_HR | 0.110 | 0.000 | 0.000 | Hitting_HR | 0.108 | 1.000 | -0.108 | -1.000 |
| predicted_OBP | 0.303 | 0.000 | 0.250 | Hitting_OBP | 0.269 | 0.500 | -0.269 | -0.500 |
| predicted_R | 0.444 | 0.000 | 0.000 | Hitting_R | 0.265 | 1.000 | -0.265 | -1.000 |
| predicted_RBI | 0.240 | 0.000 | 0.000 | Hitting_RBI | 0.373 | 1.000 | -0.373 | -1.000 |
| predicted_SLG | 0.478 | 0.000 | 0.250 | Hitting_SLG | 0.413 | 2.000 | -0.413 | -2.000 |
| predicted_SO | 1.000 | 1.000 | 1.000 | Hitting_SO | 0.904 | 0.000 | 0.096 | 1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 10 |
| Boosted Metrics | 1 |
| Deboosted Metrics | 9 |
| Better Metrics | 1 |
| Worse Metrics | 9 |
| Biggest Boost | predicted_AB: 2.8610 -> 5.0000 (boost 2.1390, better) |
| Biggest Deboost | predicted_H: 0.6500 -> 0.0000 (deboost -0.6500, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 4 | 2 | 2 | 2 | 2 | predicted_AB: 2.8610 -> 2.9651 (boost 0.1041, better) | predicted_AVG: 0.2920 -> 0.2814 (deboost -0.0106, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 3 | 0 | 3 | 0 | 3 | - | predicted_SLG: 0.4710 -> 0.4173 (deboost -0.0537, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 6 | 2 | 4 | 2 | 4 | predicted_AB: 2.9651 -> 4.0000 (boost 1.0349, better) | predicted_RBI: 0.2472 -> 0.0000 (deboost -0.2472, worse) | AB rounded to 4 (raw=2.97), rates preserved: AVG=0.232 HR/AB=0.043 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=6.0, weight=0.067, BvP AVG=0.167) |
| 7 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.4879 -> 0.0000 (deboost -0.4879, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 5 | 1 | 4 | 2 | predicted_SO: 1.0000 -> 1.3692 (boost 0.3692, worse) | predicted_H: 1.0000 -> 0.8186 (deboost -0.1814, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 9 | lineup_integer_allocation | 6 | 1 | 5 | 2 | 4 | predicted_H: 0.8186 -> 1.0000 (boost 0.1814, better) | predicted_SO: 1.3692 -> 1.0000 (deboost -0.3692, better) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 10 | embedded_savant_player_context | 3 | 1 | 2 | 1 | 2 | predicted_OBP: 0.2794 -> 0.2900 (boost 0.0106, better) | predicted_SLG: 0.4173 -> 0.3640 (deboost -0.0533, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | simulation_box_score_reference | 2 | 1 | 1 | 1 | 1 | predicted_AB: 4.0000 -> 5.0000 (boost 1.0000, better) | predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 12 | current_json_final | 3 | 2 | 1 | 2 | 1 | predicted_SLG: 0.3640 -> 0.4173 (boost 0.0533, better) | predicted_OBP: 0.2900 -> 0.2794 (deboost -0.0106, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "686668",
"player_name": "Brenton Doyle",
"position": "CF",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.097,
"predicted_3B": 0.014,
"predicted_AB": 2.861,
"predicted_AVG": 0.292,
"predicted_BB": 0.167,
"predicted_H": 0.65,
"predicted_HR": 0.11,
"predicted_OBP": 0.303,
"predicted_R": 0.444,
"predicted_RBI": 0.24,
"predicted_SLG": 0.478,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.0941,
"predicted_3B": 0.019,
"predicted_AB": 2.9651,
"predicted_AVG": 0.2814,
"predicted_BB": 0.1483,
"predicted_H": 0.7242,
"predicted_HBP": 0.003,
"predicted_HR": 0.1282,
"predicted_OBP": 0.2999,
"predicted_R": 0.4909,
"predicted_RBI": 0.2487,
"predicted_SLG": 0.471,
"predicted_SO": 0.9905
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.097,
"after": 0.0941,
"delta": -0.0029,
"percent_delta": -0.0299,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.014,
"after": 0.019,
"delta": 0.005,
"percent_delta": 0.3571,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.861,
"after": 2.9651,
"delta": 0.1041,
"percent_delta": 0.0364,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.292,
"after": 0.2814,
"delta": -0.0106,
"percent_delta": -0.0363,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.167,
"after": 0.1483,
"delta": -0.0187,
"percent_delta": -0.112,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.65,
"after": 0.7242,
"delta": 0.0742,
"percent_delta": 0.1142,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.11,
"after": 0.1282,
"delta": 0.0182,
"percent_delta": 0.1655,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.303,
"after": 0.2999,
"delta": -0.0031,
"percent_delta": -0.0102,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.444,
"after": 0.4909,
"delta": 0.0469,
"percent_delta": 0.1056,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.24,
"after": 0.2487,
"delta": 0.0087,
"percent_delta": 0.0363,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.478,
"after": 0.471,
"delta": -0.007,
"percent_delta": -0.0146,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.9905,
"delta": -0.0095,
"percent_delta": -0.0095,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 2,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_AB",
"before": 2.861,
"after": 2.9651,
"delta": 0.1041,
"percent_delta": 0.0364,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AVG",
"before": 0.292,
"after": 0.2814,
"delta": -0.0106,
"percent_delta": -0.0363,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 72
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.0941,
"predicted_3B": 0.019,
"predicted_AB": 2.9651,
"predicted_AVG": 0.2432,
"predicted_BB": 0.1487,
"predicted_H": 0.7212,
"predicted_HBP": 0.003,
"predicted_HR": 0.128,
"predicted_OBP": 0.2794,
"predicted_R": 0.4879,
"predicted_RBI": 0.2472,
"predicted_SLG": 0.4173,
"predicted_SO": 0.9881
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0941,
"after": 0.0941,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.019,
"after": 0.019,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.9651,
"after": 2.9651,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2814,
"after": 0.2432,
"delta": -0.0382,
"percent_delta": -0.1357,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.1483,
"after": 0.1487,
"delta": 0.0004,
"percent_delta": 0.0027,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.7242,
"after": 0.7212,
"delta": -0.003,
"percent_delta": -0.0041,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.003,
"after": 0.003,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1282,
"after": 0.128,
"delta": -0.0002,
"percent_delta": -0.0016,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.2999,
"after": 0.2794,
"delta": -0.0205,
"percent_delta": -0.0684,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.4909,
"after": 0.4879,
"delta": -0.003,
"percent_delta": -0.0061,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.2487,
"after": 0.2472,
"delta": -0.0015,
"percent_delta": -0.006,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.471,
"after": 0.4173,
"delta": -0.0537,
"percent_delta": -0.114,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.9905,
"after": 0.9881,
"delta": -0.0024,
"percent_delta": -0.0024,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.471,
"after": 0.4173,
"delta": -0.0537,
"percent_delta": -0.114,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=2.97), rates preserved: AVG=0.232 HR/AB=0.043",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0941,
"after": 0.0,
"delta": -0.0941,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.019,
"after": 0.0,
"delta": -0.019,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.9651,
"after": 4.0,
"delta": 1.0349,
"percent_delta": 0.349,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.1487,
"after": 0.0,
"delta": -0.1487,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.7212,
"after": 1.0,
"delta": 0.2788,
"percent_delta": 0.3866,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.003,
"after": 0.0,
"delta": -0.003,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.128,
"after": 0.0,
"delta": -0.128,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.2472,
"after": 0.0,
"delta": -0.2472,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.9881,
"after": 1.0,
"delta": 0.0119,
"percent_delta": 0.012,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 2,
"deboosted_metrics": 4,
"better_metrics": 2,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_AB",
"before": 2.9651,
"after": 4.0,
"delta": 1.0349,
"percent_delta": 0.349,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.2472,
"after": 0.0,
"delta": -0.2472,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "bvp_blend",
"description": "Sample-size BvP blend (BvP AB=6.0, weight=0.067, BvP AVG=0.167)",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {
"model_expectation": 0.9333,
"bvp": 0.0667
},
"window_games": {}
},
{
"index": 7,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.4879,
"after": 0.0,
"delta": -0.4879,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_R",
"before": 0.4879,
"after": 0.0,
"delta": -0.4879,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1603,
"predicted_3B": 0.0135,
"predicted_BB": 0.256,
"predicted_H": 0.8186,
"predicted_HR": 0.092,
"predicted_RBI": 0.3178,
"predicted_SO": 1.3692
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1603,
"delta": 0.1603,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0135,
"delta": 0.0135,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.256,
"delta": 0.256,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.8186,
"delta": -0.1814,
"percent_delta": -0.1814,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.092,
"delta": 0.092,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.3178,
"delta": 0.3178,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.3692,
"delta": 0.3692,
"percent_delta": 0.3692,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 5,
"deboosted_metrics": 1,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 1.3692,
"delta": 0.3692,
"percent_delta": 0.3692,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.8186,
"delta": -0.1814,
"percent_delta": -0.1814,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1603,
"after": 0.0,
"delta": -0.1603,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0135,
"after": 0.0,
"delta": -0.0135,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.256,
"after": 0.0,
"delta": -0.256,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8186,
"after": 1.0,
"delta": 0.1814,
"percent_delta": 0.2216,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.092,
"after": 0.0,
"delta": -0.092,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.3178,
"after": 0.0,
"delta": -0.3178,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.3692,
"after": 1.0,
"delta": -0.3692,
"percent_delta": -0.2696,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 1,
"deboosted_metrics": 5,
"better_metrics": 2,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.8186,
"after": 1.0,
"delta": 0.1814,
"percent_delta": 0.2216,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.3692,
"after": 1.0,
"delta": -0.3692,
"percent_delta": -0.2696,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.232,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.29,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.364,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2432,
"after": 0.232,
"delta": -0.0112,
"percent_delta": -0.0461,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.2794,
"after": 0.29,
"delta": 0.0106,
"percent_delta": 0.0379,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4173,
"after": 0.364,
"delta": -0.0533,
"percent_delta": -0.1277,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_OBP",
"before": 0.2794,
"after": 0.29,
"delta": 0.0106,
"percent_delta": 0.0379,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.4173,
"after": 0.364,
"delta": -0.0533,
"percent_delta": -0.1277,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 5.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_AB",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 12,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 5.0,
"predicted_AVG": 0.2432,
"predicted_BB": 0.0,
"predicted_CF": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.2794,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.4173,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.232,
"after": 0.2432,
"delta": 0.0112,
"percent_delta": 0.0484,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.29,
"after": 0.2794,
"delta": -0.0106,
"percent_delta": -0.0367,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.364,
"after": 0.4173,
"delta": 0.0533,
"percent_delta": 0.1464,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 2,
"deboosted_metrics": 1,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.364,
"after": 0.4173,
"delta": 0.0533,
"percent_delta": 0.1464,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.29,
"after": 0.2794,
"delta": -0.0106,
"percent_delta": -0.0367,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.097,
"after": 0.0,
"delta": -0.097,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.014,
"after": 0.0,
"delta": -0.014,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.861,
"after": 5.0,
"delta": 2.139,
"percent_delta": 0.7476,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.292,
"after": 0.2432,
"delta": -0.0488,
"percent_delta": -0.1671,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.167,
"after": 0.0,
"delta": -0.167,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.65,
"after": 0.0,
"delta": -0.65,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.11,
"after": 0.0,
"delta": -0.11,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.303,
"after": 0.2794,
"delta": -0.0236,
"percent_delta": -0.0779,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.444,
"after": 0.0,
"delta": -0.444,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.24,
"after": 0.0,
"delta": -0.24,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.478,
"after": 0.4173,
"delta": -0.0607,
"percent_delta": -0.127,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 10,
"boosted_metrics": 1,
"deboosted_metrics": 9,
"better_metrics": 1,
"worse_metrics": 9,
"biggest_boost": {
"metric": "predicted_AB",
"before": 2.861,
"after": 5.0,
"delta": 2.139,
"percent_delta": 0.7476,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 0.65,
"after": 0.0,
"delta": -0.65,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.097 | - |
| predicted_3B | 0.014 | - |
| predicted_AB | 2.861 | - |
| predicted_AVG | 0.292 | - |
| predicted_BB | 0.167 | - |
| predicted_H | 0.650 | - |
| predicted_HR | 0.110 | - |
| predicted_OBP | 0.303 | - |
| predicted_R | 0.444 | - |
| predicted_RBI | 0.240 | - |
| predicted_SLG | 0.478 | - |
| predicted_SO | 1.000 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.094 | -0.003 |
| predicted_3B | 0.019 | 0.005 |
| predicted_AB | 2.965 | 0.104 |
| predicted_AVG | 0.281 | -0.011 |
| predicted_BB | 0.148 | -0.019 |
| predicted_H | 0.724 | 0.074 |
| predicted_HBP | 0.003 | - |
| predicted_HR | 0.128 | 0.018 |
| predicted_OBP | 0.300 | -0.003 |
| predicted_R | 0.491 | 0.047 |
| predicted_RBI | 0.249 | 0.009 |
| predicted_SLG | 0.471 | -0.007 |
| predicted_SO | 0.991 | -0.009 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.094 | 0.000 |
| predicted_3B | 0.019 | 0.000 |
| predicted_AB | 2.965 | 0.000 |
| predicted_AVG | 0.243 | -0.038 |
| predicted_BB | 0.149 | 0.000 |
| predicted_H | 0.721 | -0.003 |
| predicted_HBP | 0.003 | 0.000 |
| predicted_HR | 0.128 | -0.000 |
| predicted_OBP | 0.279 | -0.021 |
| predicted_R | 0.488 | -0.003 |
| predicted_RBI | 0.247 | -0.002 |
| predicted_SLG | 0.417 | -0.054 |
| predicted_SO | 0.988 | -0.002 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=2.97), rates preserved: AVG=0.232 HR/AB=0.043
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=6.0, weight=0.067, BvP AVG=0.167)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.160 | 0.160 |
| 3B | 0.013 | 0.013 |
| BB | 0.256 | 0.256 |
| H | 0.819 | -0.181 |
| HR | 0.092 | 0.092 |
| RBI | 0.318 | 0.318 |
| SO | 1.369 | 0.369 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.160 |
| 3B | 0.000 | -0.013 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -0.256 |
| H | 1.000 | 0.181 |
| HR | 0.000 | -0.092 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -0.318 |
| SO | 1.000 | -0.369 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.094 |
| predicted_3B | 0.000 | -0.019 |
| predicted_AB | 4.000 | 1.035 |
| predicted_AVG | 0.232 | -0.011 |
| predicted_BB | 0.000 | -0.149 |
| predicted_H | 1.000 | 0.279 |
| predicted_HR | 0.000 | -0.128 |
| predicted_OBP | 0.290 | 0.011 |
| predicted_R | 0.000 | -0.488 |
| predicted_RBI | 0.000 | -0.247 |
| predicted_SLG | 0.364 | -0.053 |
| predicted_SO | 1.000 | 0.012 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 5.000 | 1.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | -1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 16.000 | 5.000 | 0.000 | 0.000 | 2.000 | 2.000 | 4.000 | 0.000 | 4.000 | 0.3125 | 0.3125 | 0.6875 | 0.3125 | 0.1250 | 0.1250 | 0.0000 | 0.2500 |
| last_10 | 0.20 | 10 | - | 33.000 | 11.000 | 1.000 | 1.000 | 2.000 | 2.000 | 7.000 | 0.000 | 11.000 | 0.3333 | 0.3333 | 0.6061 | 0.3333 | 0.0606 | 0.0606 | 0.0000 | 0.3333 |
| season | 0.60 | 72 | - | 206.000 | 48.000 | 7.000 | 1.000 | 5.000 | 14.000 | 32.000 | 12.000 | 72.000 | 0.2330 | 0.2752 | 0.3495 | 0.2330 | 0.0243 | 0.0680 | 0.0583 | 0.3495 |
| Metric | Value |
|---|---|
| predicted_2B | 0.0900 |
| predicted_3B | 0.0260 |
| predicted_AB | 3.1120 |
| predicted_AVG | 0.2665 |
| predicted_BB | 0.1220 |
| predicted_H | 0.8290 |
| predicted_HBP | 0.0030 |
| predicted_HR | 0.1540 |
| predicted_OBP | 0.2956 |
| predicted_R | 0.5570 |
| predicted_RBI | 0.2610 |
| predicted_SLG | 0.4611 |
| predicted_SO | 0.9770 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.0970 | 0.0900 | 0.0941 | model_form_blend |
| predicted_3B | 0.0140 | 0.0260 | 0.0190 | model_form_blend |
| predicted_AB | 2.8610 | 3.1120 | 2.9651 | model_form_blend |
| predicted_AVG | 0.2920 | 0.2665 | 0.2814 | model_form_blend |
| predicted_BB | 0.1670 | 0.1220 | 0.1483 | model_form_blend |
| predicted_H | 0.6500 | 0.8290 | 0.7242 | model_form_blend |
| predicted_HBP | - | 0.0030 | 0.0030 | form_only |
| predicted_HR | 0.1100 | 0.1540 | 0.1282 | model_form_blend |
| predicted_OBP | 0.3030 | 0.2956 | 0.2999 | model_form_blend |
| predicted_R | 0.4440 | 0.5570 | 0.4909 | model_form_blend |
| predicted_RBI | 0.2400 | 0.2610 | 0.2487 | model_form_blend |
| predicted_SLG | 0.4780 | 0.4611 | 0.4710 | model_form_blend |
| predicted_SO | 1.0000 | 0.9770 | 0.9905 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 83 |
| Season rows before report date | 83 |
| Report year | 2026 |
| Profile rows used | 72 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 5 |
| AB | 5 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 2 |
| Hitting_AVG | 0.5 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 1 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 1 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 4 |
| Hitting_battingOrder | 5 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | CF |
| gameID | 20260926_COL@CHW |
| game_type | full |
| mlbID | 686668 |
| playerID | 686668 |
| playerName | Brenton Doyle |
| pos | CF |
| started | True |
| startingPosition | CF |
| team | CHW |
| teamID | 6 |
| game_date | 2026-09-26 |
| sl_k_percent | 32.7 |
| sl_bb_percent | 5.4 |
| sl_woba | 0.28 |
| sl_xwoba | 0.245 |
| sl_xba | 0.203 |
| sl_xslg | 0.307 |
| sl_sweet_spot_percent | 26.8 |
| sl_barrel_batted_rate | 6.7 |
| sl_hard_hit_percent | 35.5 |
| sl_exit_velocity_avg | 89.1 |
| sl_launch_angle_avg | 8.6 |
| sl_whiff_percent | 32.5 |
| sl_swing_percent | 54.5 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.000 | 1.000 | 0.000 | Hitting_2B | 0.000 | 0.000 | 1.000 | 1.000 |
| predicted_3B | 0.000 | 0.000 | 0.000 | Hitting_3B | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_AB | 2.500 | 2.000 | 3.000 | Hitting_AB | 2.417 | 2.000 | -0.417 | 0.000 |
| predicted_AVG | 0.247 | 0.500 | 0.000 | Hitting_AVG | 0.207 | 0.000 | 0.293 | 0.500 |
| predicted_BB | 0.385 | 1.000 | 0.000 | Hitting_BB | 0.500 | 0.000 | 0.500 | 1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_H | 0.260 | 1.000 | 0.000 | Hitting_H | 0.500 | 0.000 | 0.500 | 1.000 |
| predicted_HR | 0.060 | 0.000 | 0.000 | Hitting_HR | 0.333 | 0.000 | -0.333 | 0.000 |
| predicted_OBP | 0.329 | 0.800 | 0.000 | Hitting_OBP | 0.343 | 0.000 | 0.457 | 0.800 |
| predicted_R | 0.385 | 1.000 | 0.000 | Hitting_R | 0.583 | 0.000 | 0.417 | 1.000 |
| predicted_RBI | 0.170 | 1.000 | 0.000 | Hitting_RBI | 1.000 | 0.000 | 0.000 | 1.000 |
| predicted_SLG | 0.313 | 1.000 | 0.000 | Hitting_SLG | 0.621 | 0.000 | 0.379 | 1.000 |
| predicted_SO | 1.058 | 0.000 | 1.000 | Hitting_SO | 0.917 | 1.000 | -0.917 | -1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 11 |
| Boosted Metrics | 5 |
| Deboosted Metrics | 6 |
| Better Metrics | 6 |
| Worse Metrics | 5 |
| Biggest Boost | predicted_2B: 0.0000 -> 1.0000 (boost 1.0000, better) |
| Biggest Deboost | predicted_SO: 1.0580 -> 0.0000 (deboost -1.0580, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 5 | 3 | 2 | 3 | 2 | predicted_AB: 2.5000 -> 2.6066 (boost 0.1066, better) | predicted_AVG: 0.2470 -> 0.2326 (deboost -0.0144, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 3 | 0 | 3 | 0 | 3 | - | predicted_AVG: 0.2326 -> 0.1352 (deboost -0.0974, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 5 | 1 | 4 | 1 | 4 | predicted_AB: 2.6066 -> 3.0000 (boost 0.3934, better) | predicted_BB: 0.4006 -> 0.0000 (deboost -0.4006, worse) | AB rounded to 3 (raw=2.61), rates preserved: AVG=0.129 HR/AB=0.027 |
| 6 | consistency_constraints | 2 | 1 | 1 | 1 | 1 | predicted_H: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_R: 0.4132 -> 0.0000 (deboost -0.4132, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 5 | 4 | 1 | 4 | 1 | predicted_RBI: 0.0000 -> 0.3594 (boost 0.3594, better) | predicted_H: 1.0000 -> 0.6922 (deboost -0.3078, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 5 | 0 | 5 | 0 | 5 | - | predicted_H: 0.6922 -> 0.0000 (deboost -0.6922, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 4 | 4 | 0 | 4 | 0 | predicted_H: 0.0000 -> 1.0000 (boost 1.0000, better) | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 7 | 5 | 2 | 6 | 1 | predicted_HBP: 0.0000 -> 2.0000 (boost 2.0000, better) | predicted_AB: 3.0000 -> 2.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 3 | 0 | 3 | 0 | 3 | - | predicted_SLG: 0.3760 -> 0.2262 (deboost -0.1498, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "502054",
"player_name": "Tommy Pham",
"position": "DH",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 2.5,
"predicted_AVG": 0.247,
"predicted_BB": 0.385,
"predicted_H": 0.26,
"predicted_HR": 0.06,
"predicted_OBP": 0.329,
"predicted_R": 0.385,
"predicted_RBI": 0.17,
"predicted_SLG": 0.313,
"predicted_SO": 1.058
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.0204,
"predicted_3B": 0.0018,
"predicted_AB": 2.6066,
"predicted_AVG": 0.2326,
"predicted_BB": 0.3996,
"predicted_H": 0.3539,
"predicted_HBP": 0.012,
"predicted_HR": 0.0712,
"predicted_OBP": 0.3212,
"predicted_R": 0.4157,
"predicted_RBI": 0.2168,
"predicted_SLG": 0.318,
"predicted_SO": 1.0121
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0204,
"delta": 0.0204,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0018,
"delta": 0.0018,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.5,
"after": 2.6066,
"delta": 0.1066,
"percent_delta": 0.0426,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.247,
"after": 0.2326,
"delta": -0.0144,
"percent_delta": -0.0583,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.385,
"after": 0.3996,
"delta": 0.0146,
"percent_delta": 0.0379,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.26,
"after": 0.3539,
"delta": 0.0939,
"percent_delta": 0.3612,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.06,
"after": 0.0712,
"delta": 0.0112,
"percent_delta": 0.1867,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.329,
"after": 0.3212,
"delta": -0.0078,
"percent_delta": -0.0237,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.385,
"after": 0.4157,
"delta": 0.0307,
"percent_delta": 0.0797,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.17,
"after": 0.2168,
"delta": 0.0468,
"percent_delta": 0.2753,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.313,
"after": 0.318,
"delta": 0.005,
"percent_delta": 0.016,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.058,
"after": 1.0121,
"delta": -0.0459,
"percent_delta": -0.0434,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 3,
"deboosted_metrics": 2,
"better_metrics": 3,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_AB",
"before": 2.5,
"after": 2.6066,
"delta": 0.1066,
"percent_delta": 0.0426,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AVG",
"before": 0.247,
"after": 0.2326,
"delta": -0.0144,
"percent_delta": -0.0583,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 13
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.0204,
"predicted_3B": 0.0018,
"predicted_AB": 2.6066,
"predicted_AVG": 0.1352,
"predicted_BB": 0.4006,
"predicted_H": 0.3524,
"predicted_HBP": 0.012,
"predicted_HR": 0.0711,
"predicted_OBP": 0.2504,
"predicted_R": 0.4132,
"predicted_RBI": 0.2155,
"predicted_SLG": 0.2262,
"predicted_SO": 1.0097
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0204,
"after": 0.0204,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0018,
"after": 0.0018,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.6066,
"after": 2.6066,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2326,
"after": 0.1352,
"delta": -0.0974,
"percent_delta": -0.4187,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.3996,
"after": 0.4006,
"delta": 0.001,
"percent_delta": 0.0025,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.3539,
"after": 0.3524,
"delta": -0.0015,
"percent_delta": -0.0042,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.012,
"after": 0.012,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0712,
"after": 0.0711,
"delta": -0.0001,
"percent_delta": -0.0014,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3212,
"after": 0.2504,
"delta": -0.0708,
"percent_delta": -0.2204,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.4157,
"after": 0.4132,
"delta": -0.0025,
"percent_delta": -0.006,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.2168,
"after": 0.2155,
"delta": -0.0013,
"percent_delta": -0.006,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.318,
"after": 0.2262,
"delta": -0.0918,
"percent_delta": -0.2887,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0121,
"after": 1.0097,
"delta": -0.0024,
"percent_delta": -0.0024,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_AVG",
"before": 0.2326,
"after": 0.1352,
"delta": -0.0974,
"percent_delta": -0.4187,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 3 (raw=2.61), rates preserved: AVG=0.129 HR/AB=0.027",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0204,
"after": 0.0,
"delta": -0.0204,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0018,
"after": 0.0,
"delta": -0.0018,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.6066,
"after": 3.0,
"delta": 0.3934,
"percent_delta": 0.1509,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.4006,
"after": 0.0,
"delta": -0.4006,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.3524,
"after": 0.0,
"delta": -0.3524,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.012,
"after": 0.0,
"delta": -0.012,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0711,
"after": 0.0,
"delta": -0.0711,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.2155,
"after": 0.0,
"delta": -0.2155,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0097,
"after": 1.0,
"delta": -0.0097,
"percent_delta": -0.0096,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 1,
"deboosted_metrics": 4,
"better_metrics": 1,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_AB",
"before": 2.6066,
"after": 3.0,
"delta": 0.3934,
"percent_delta": 0.1509,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.4006,
"after": 0.0,
"delta": -0.4006,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.4132,
"after": 0.0,
"delta": -0.4132,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_R",
"before": 0.4132,
"after": 0.0,
"delta": -0.4132,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1453,
"predicted_3B": 0.0112,
"predicted_BB": 0.3181,
"predicted_H": 0.6922,
"predicted_HR": 0.0941,
"predicted_RBI": 0.3594,
"predicted_SO": 1.0252
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1453,
"delta": 0.1453,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0112,
"delta": 0.0112,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.3181,
"delta": 0.3181,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.6922,
"delta": -0.3078,
"percent_delta": -0.3078,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0941,
"delta": 0.0941,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.3594,
"delta": 0.3594,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0252,
"delta": 0.0252,
"percent_delta": 0.0252,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 4,
"deboosted_metrics": 1,
"better_metrics": 4,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.3594,
"delta": 0.3594,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.6922,
"delta": -0.3078,
"percent_delta": -0.3078,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1453,
"after": 0.0,
"delta": -0.1453,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0112,
"after": 0.0,
"delta": -0.0112,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.3181,
"after": 0.0,
"delta": -0.3181,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.6922,
"after": 0.0,
"delta": -0.6922,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0941,
"after": 0.0,
"delta": -0.0941,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.3594,
"after": 0.0,
"delta": -0.3594,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0252,
"after": 1.0,
"delta": -0.0252,
"percent_delta": -0.0246,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 0,
"deboosted_metrics": 5,
"better_metrics": 0,
"worse_metrics": 5,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 0.6922,
"after": 0.0,
"delta": -0.6922,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.228,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.306,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.376,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.1352,
"after": 0.228,
"delta": 0.0928,
"percent_delta": 0.6864,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_H",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_OBP",
"before": 0.2504,
"after": 0.306,
"delta": 0.0556,
"percent_delta": 0.222,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.2262,
"after": 0.376,
"delta": 0.1498,
"percent_delta": 0.6622,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 4,
"deboosted_metrics": 0,
"better_metrics": 4,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 1.0,
"predicted_3B": 0.0,
"predicted_AB": 2.0,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 2.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 2.0,
"delta": 2.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_R",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 5,
"deboosted_metrics": 2,
"better_metrics": 6,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_HBP",
"before": 0.0,
"after": 2.0,
"delta": 2.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 1.0,
"predicted_3B": 0.0,
"predicted_AB": 2.0,
"predicted_AVG": 0.1352,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_DH": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 2.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.2504,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.2262,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.228,
"after": 0.1352,
"delta": -0.0928,
"percent_delta": -0.407,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"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_OBP",
"before": 0.306,
"after": 0.2504,
"delta": -0.0556,
"percent_delta": -0.1817,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.376,
"after": 0.2262,
"delta": -0.1498,
"percent_delta": -0.3983,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.376,
"after": 0.2262,
"delta": -0.1498,
"percent_delta": -0.3983,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.5,
"after": 2.0,
"delta": -0.5,
"percent_delta": -0.2,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.247,
"after": 0.1352,
"delta": -0.1118,
"percent_delta": -0.4526,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.385,
"after": 1.0,
"delta": 0.615,
"percent_delta": 1.5974,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.26,
"after": 1.0,
"delta": 0.74,
"percent_delta": 2.8462,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.06,
"after": 0.0,
"delta": -0.06,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.329,
"after": 0.2504,
"delta": -0.0786,
"percent_delta": -0.2389,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.385,
"after": 1.0,
"delta": 0.615,
"percent_delta": 1.5974,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.17,
"after": 1.0,
"delta": 0.83,
"percent_delta": 4.8824,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.313,
"after": 0.2262,
"delta": -0.0868,
"percent_delta": -0.2773,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.058,
"after": 0.0,
"delta": -1.058,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 11,
"boosted_metrics": 5,
"deboosted_metrics": 6,
"better_metrics": 6,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_2B",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.058,
"after": 0.0,
"delta": -1.058,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | - |
| predicted_3B | 0.000 | - |
| predicted_AB | 2.500 | - |
| predicted_AVG | 0.247 | - |
| predicted_BB | 0.385 | - |
| predicted_H | 0.260 | - |
| predicted_HR | 0.060 | - |
| predicted_OBP | 0.329 | - |
| predicted_R | 0.385 | - |
| predicted_RBI | 0.170 | - |
| predicted_SLG | 0.313 | - |
| predicted_SO | 1.058 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.020 | 0.020 |
| predicted_3B | 0.002 | 0.002 |
| predicted_AB | 2.607 | 0.107 |
| predicted_AVG | 0.233 | -0.014 |
| predicted_BB | 0.400 | 0.015 |
| predicted_H | 0.354 | 0.094 |
| predicted_HBP | 0.012 | - |
| predicted_HR | 0.071 | 0.011 |
| predicted_OBP | 0.321 | -0.008 |
| predicted_R | 0.416 | 0.031 |
| predicted_RBI | 0.217 | 0.047 |
| predicted_SLG | 0.318 | 0.005 |
| predicted_SO | 1.012 | -0.046 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.020 | 0.000 |
| predicted_3B | 0.002 | 0.000 |
| predicted_AB | 2.607 | 0.000 |
| predicted_AVG | 0.135 | -0.097 |
| predicted_BB | 0.401 | 0.001 |
| predicted_H | 0.352 | -0.002 |
| predicted_HBP | 0.012 | 0.000 |
| predicted_HR | 0.071 | -0.000 |
| predicted_OBP | 0.250 | -0.071 |
| predicted_R | 0.413 | -0.003 |
| predicted_RBI | 0.215 | -0.001 |
| predicted_SLG | 0.226 | -0.092 |
| predicted_SO | 1.010 | -0.002 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=2.61), rates preserved: AVG=0.129 HR/AB=0.027
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 0.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.145 | 0.145 |
| 3B | 0.011 | 0.011 |
| BB | 0.318 | 0.318 |
| H | 0.692 | -0.308 |
| HR | 0.094 | 0.094 |
| RBI | 0.359 | 0.359 |
| SO | 1.025 | 0.025 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.145 |
| 3B | 0.000 | -0.011 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | -0.318 |
| H | 0.000 | -0.692 |
| HR | 0.000 | -0.094 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -0.359 |
| SO | 1.000 | -0.025 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.020 |
| predicted_3B | 0.000 | -0.002 |
| predicted_AB | 3.000 | 0.393 |
| predicted_AVG | 0.228 | 0.093 |
| predicted_BB | 0.000 | -0.401 |
| predicted_H | 1.000 | 0.648 |
| predicted_HR | 0.000 | -0.071 |
| predicted_OBP | 0.306 | 0.056 |
| predicted_R | 0.000 | -0.413 |
| predicted_RBI | 0.000 | -0.215 |
| predicted_SLG | 0.376 | 0.150 |
| predicted_SO | 1.000 | -0.010 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 1.000 |
| 3B | 0.000 | 0.000 |
| AB | 2.000 | -1.000 |
| BB | 1.000 | 1.000 |
| CS | 0.000 | 0.000 |
| H | 1.000 | 1.000 |
| HBP | 2.000 | 2.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | - |
| R | 1.000 | 1.000 |
| RBI | 1.000 | 1.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 8.000 | 2.000 | 0.000 | 0.000 | 0.000 | 0.000 | 3.000 | 4.000 | 3.000 | 0.2500 | 0.5000 | 0.2500 | 0.2500 | 0.0000 | 0.0000 | 0.5000 | 0.3750 |
| last_10 | 0.20 | 10 | - | 19.000 | 3.000 | 0.000 | 0.000 | 1.000 | 3.000 | 4.000 | 4.000 | 8.000 | 0.1579 | 0.3043 | 0.3158 | 0.1579 | 0.0526 | 0.1579 | 0.2105 | 0.4210 |
| season | 0.60 | 13 | - | 26.000 | 3.000 | 0.000 | 0.000 | 1.000 | 3.000 | 4.000 | 4.000 | 11.000 | 0.1154 | 0.2333 | 0.2308 | 0.1154 | 0.0385 | 0.1154 | 0.1538 | 0.4231 |
| Metric | Value |
|---|---|
| predicted_2B | 0.0670 |
| predicted_3B | 0.0060 |
| predicted_AB | 2.8510 |
| predicted_AVG | 0.1995 |
| predicted_BB | 0.4330 |
| predicted_H | 0.5690 |
| predicted_HBP | 0.0120 |
| predicted_HR | 0.0970 |
| predicted_OBP | 0.3032 |
| predicted_R | 0.4860 |
| predicted_RBI | 0.3240 |
| predicted_SLG | 0.3296 |
| predicted_SO | 0.9070 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.0000 | 0.0670 | 0.0204 | model_form_blend |
| predicted_3B | 0.0000 | 0.0060 | 0.0018 | model_form_blend |
| predicted_AB | 2.5000 | 2.8510 | 2.6066 | model_form_blend |
| predicted_AVG | 0.2470 | 0.1995 | 0.2326 | model_form_blend |
| predicted_BB | 0.3850 | 0.4330 | 0.3996 | model_form_blend |
| predicted_H | 0.2600 | 0.5690 | 0.3539 | model_form_blend |
| predicted_HBP | - | 0.0120 | 0.0120 | form_only |
| predicted_HR | 0.0600 | 0.0970 | 0.0712 | model_form_blend |
| predicted_OBP | 0.3290 | 0.3032 | 0.3212 | model_form_blend |
| predicted_R | 0.3850 | 0.4860 | 0.4157 | model_form_blend |
| predicted_RBI | 0.1700 | 0.3240 | 0.2168 | model_form_blend |
| predicted_SLG | 0.3130 | 0.3296 | 0.3180 | model_form_blend |
| predicted_SO | 1.0580 | 0.9070 | 1.0121 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 12 |
| Season rows before report date | 12 |
| Report year | 2026 |
| Profile rows used | 13 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 5 |
| AB | 2 |
| H | 1 |
| 2B | 1 |
| 3B | 0 |
| HR | 0 |
| R | 1 |
| RBI | 1 |
| BB | 1 |
| SO | 0 |
| SF | 0 |
| HBP | 2 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 2 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 2 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | DH |
| gameID | 20260926_COL@CHW |
| game_type | full |
| mlbID | 502054 |
| playerID | 502054 |
| playerName | Tommy Pham |
| pos | DH |
| started | True |
| startingPosition | DH |
| team | CHW |
| teamID | 6 |
| game_date | 2026-09-26 |
| sl_k_percent | 31.4 |
| sl_bb_percent | 14.3 |
| sl_woba | 0.209 |
| sl_xwoba | 0.317 |
| sl_xba | 0.236 |
| sl_xslg | 0.354 |
| sl_sweet_spot_percent | 26.3 |
| sl_barrel_batted_rate | 5.3 |
| sl_hard_hit_percent | 52.6 |
| sl_exit_velocity_avg | 93.6 |
| sl_launch_angle_avg | 12.7 |
| sl_whiff_percent | 34.5 |
| sl_swing_percent | 41.7 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.075 | 0.000 | 0.000 | Hitting_2B | 0.128 | 0.000 | -0.128 | 0.000 |
| predicted_3B | 0.000 | 0.000 | 0.000 | Hitting_3B | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_AB | 3.990 | 3.000 | 3.000 | Hitting_AB | 3.530 | 5.000 | -0.530 | -2.000 |
| predicted_AVG | 0.240 | 0.000 | 0.333 | Hitting_AVG | 0.208 | 0.400 | -0.208 | -0.400 |
| predicted_BB | 0.425 | 1.000 | 0.000 | Hitting_BB | 0.556 | 0.000 | 0.444 | 1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_H | 0.960 | 0.000 | 1.000 | Hitting_H | 0.735 | 2.000 | -0.735 | -2.000 |
| predicted_HR | 0.140 | 0.000 | 0.000 | Hitting_HR | 0.171 | 0.000 | -0.171 | 0.000 |
| predicted_OBP | 0.355 | 0.250 | 0.333 | Hitting_OBP | 0.326 | 0.400 | -0.076 | -0.150 |
| predicted_R | 0.525 | 0.000 | 1.000 | Hitting_R | 0.598 | 1.000 | -0.598 | -1.000 |
| predicted_RBI | 0.720 | 0.000 | 1.000 | Hitting_RBI | 0.872 | 1.000 | -0.872 | -1.000 |
| predicted_SLG | 0.395 | 0.000 | 0.333 | Hitting_SLG | 0.390 | 0.400 | -0.390 | -0.400 |
| predicted_SO | 1.350 | 0.000 | 1.000 | Hitting_SO | 1.530 | 3.000 | -1.530 | -3.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 11 |
| Boosted Metrics | 2 |
| Deboosted Metrics | 9 |
| Better Metrics | 3 |
| Worse Metrics | 8 |
| Biggest Boost | predicted_BB: 0.4250 -> 1.0000 (boost 0.5750, better) |
| Biggest Deboost | predicted_SO: 1.3500 -> 0.0000 (deboost -1.3500, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 3 | 1 | 2 | 2 | 1 | predicted_AVG: 0.2400 -> 0.2501 (boost 0.0101, better) | predicted_AB: 3.9900 -> 3.7916 (deboost -0.1984, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 2 | 0 | 2 | 0 | 2 | - | predicted_OBP: 0.3554 -> 0.3207 (deboost -0.0347, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 8 | 2 | 6 | 3 | 5 | predicted_RBI: 0.6968 -> 1.0000 (boost 0.3032, better) | predicted_AB: 3.7916 -> 3.0000 (deboost -0.7916, worse) | AB rounded to 3 (raw=3.99), rates preserved: AVG=0.225 HR/AB=0.034 |
| 6 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5681 -> 1.0000 (boost 0.4319, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 4 | 2 | 3 | 3 | predicted_SO: 1.0000 -> 1.4065 (boost 0.4065, worse) | predicted_RBI: 1.0000 -> 0.5260 (deboost -0.4740, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 6 | 2 | 4 | 3 | 3 | predicted_RBI: 0.5260 -> 1.0000 (boost 0.4740, better) | predicted_SO: 1.4065 -> 1.0000 (deboost -0.4065, better) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 3 | 0 | 3 | 0 | 3 | - | predicted_AVG: 0.2487 -> 0.2290 (deboost -0.0197, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 5 | 1 | 4 | 2 | 3 | predicted_BB: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_AVG: 0.2290 -> 0.2487 (boost 0.0197, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "691019",
"player_name": "Kyle Teel",
"position": "C",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.075,
"predicted_3B": 0.0,
"predicted_AB": 3.99,
"predicted_AVG": 0.24,
"predicted_BB": 0.425,
"predicted_H": 0.96,
"predicted_HR": 0.14,
"predicted_OBP": 0.355,
"predicted_R": 0.525,
"predicted_RBI": 0.72,
"predicted_SLG": 0.395,
"predicted_SO": 1.35
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.0722,
"predicted_3B": 0.0008,
"predicted_AB": 3.7916,
"predicted_AVG": 0.2501,
"predicted_BB": 0.4009,
"predicted_H": 0.9467,
"predicted_HBP": 0.168,
"predicted_HR": 0.1376,
"predicted_OBP": 0.3554,
"predicted_R": 0.5716,
"predicted_RBI": 0.7011,
"predicted_SLG": 0.3975,
"predicted_SO": 1.2978
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.075,
"after": 0.0722,
"delta": -0.0028,
"percent_delta": -0.0373,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0008,
"delta": 0.0008,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.99,
"after": 3.7916,
"delta": -0.1984,
"percent_delta": -0.0497,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.24,
"after": 0.2501,
"delta": 0.0101,
"percent_delta": 0.0421,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.425,
"after": 0.4009,
"delta": -0.0241,
"percent_delta": -0.0567,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.96,
"after": 0.9467,
"delta": -0.0133,
"percent_delta": -0.0139,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.14,
"after": 0.1376,
"delta": -0.0024,
"percent_delta": -0.0171,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.355,
"after": 0.3554,
"delta": 0.0004,
"percent_delta": 0.0011,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.525,
"after": 0.5716,
"delta": 0.0466,
"percent_delta": 0.0888,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.72,
"after": 0.7011,
"delta": -0.0189,
"percent_delta": -0.0263,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.395,
"after": 0.3975,
"delta": 0.0025,
"percent_delta": 0.0063,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.35,
"after": 1.2978,
"delta": -0.0522,
"percent_delta": -0.0387,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_AVG",
"before": 0.24,
"after": 0.2501,
"delta": 0.0101,
"percent_delta": 0.0421,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 3.99,
"after": 3.7916,
"delta": -0.1984,
"percent_delta": -0.0497,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 40
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.0722,
"predicted_3B": 0.0008,
"predicted_AB": 3.7916,
"predicted_AVG": 0.2487,
"predicted_BB": 0.4019,
"predicted_H": 0.9428,
"predicted_HBP": 0.168,
"predicted_HR": 0.1374,
"predicted_OBP": 0.3207,
"predicted_R": 0.5681,
"predicted_RBI": 0.6968,
"predicted_SLG": 0.3768,
"predicted_SO": 1.2947
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0722,
"after": 0.0722,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0008,
"after": 0.0008,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.7916,
"after": 3.7916,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2501,
"after": 0.2487,
"delta": -0.0014,
"percent_delta": -0.0056,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.4009,
"after": 0.4019,
"delta": 0.001,
"percent_delta": 0.0025,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.9467,
"after": 0.9428,
"delta": -0.0039,
"percent_delta": -0.0041,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.168,
"after": 0.168,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1376,
"after": 0.1374,
"delta": -0.0002,
"percent_delta": -0.0015,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3554,
"after": 0.3207,
"delta": -0.0347,
"percent_delta": -0.0976,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.5716,
"after": 0.5681,
"delta": -0.0035,
"percent_delta": -0.0061,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.7011,
"after": 0.6968,
"delta": -0.0043,
"percent_delta": -0.0061,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3975,
"after": 0.3768,
"delta": -0.0207,
"percent_delta": -0.0521,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.2978,
"after": 1.2947,
"delta": -0.0031,
"percent_delta": -0.0024,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.3554,
"after": 0.3207,
"delta": -0.0347,
"percent_delta": -0.0976,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 3 (raw=3.99), rates preserved: AVG=0.225 HR/AB=0.034",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0722,
"after": 0.0,
"delta": -0.0722,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0008,
"after": 0.0,
"delta": -0.0008,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.7916,
"after": 3.0,
"delta": -0.7916,
"percent_delta": -0.2088,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.4019,
"after": 0.0,
"delta": -0.4019,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.9428,
"after": 1.0,
"delta": 0.0572,
"percent_delta": 0.0607,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.168,
"after": 0.0,
"delta": -0.168,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1374,
"after": 0.0,
"delta": -0.1374,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.6968,
"after": 1.0,
"delta": 0.3032,
"percent_delta": 0.4351,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.2947,
"after": 1.0,
"delta": -0.2947,
"percent_delta": -0.2276,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 8,
"boosted_metrics": 2,
"deboosted_metrics": 6,
"better_metrics": 3,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.6968,
"after": 1.0,
"delta": 0.3032,
"percent_delta": 0.4351,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 3.7916,
"after": 3.0,
"delta": -0.7916,
"percent_delta": -0.2088,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.5681,
"after": 1.0,
"delta": 0.4319,
"percent_delta": 0.7603,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.5681,
"after": 1.0,
"delta": 0.4319,
"percent_delta": 0.7603,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1367,
"predicted_3B": 0.0123,
"predicted_BB": 0.316,
"predicted_H": 0.7642,
"predicted_HR": 0.1025,
"predicted_RBI": 0.526,
"predicted_SO": 1.4065
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1367,
"delta": 0.1367,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0123,
"delta": 0.0123,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.316,
"delta": 0.316,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.7642,
"delta": -0.2358,
"percent_delta": -0.2358,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1025,
"delta": 0.1025,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.526,
"delta": -0.474,
"percent_delta": -0.474,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.4065,
"delta": 0.4065,
"percent_delta": 0.4065,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 3,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 1.4065,
"delta": 0.4065,
"percent_delta": 0.4065,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.526,
"delta": -0.474,
"percent_delta": -0.474,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1367,
"after": 0.0,
"delta": -0.1367,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0123,
"after": 0.0,
"delta": -0.0123,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.316,
"after": 0.0,
"delta": -0.316,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.7642,
"after": 1.0,
"delta": 0.2358,
"percent_delta": 0.3086,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1025,
"after": 0.0,
"delta": -0.1025,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.526,
"after": 1.0,
"delta": 0.474,
"percent_delta": 0.9011,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.4065,
"after": 1.0,
"delta": -0.4065,
"percent_delta": -0.289,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 2,
"deboosted_metrics": 4,
"better_metrics": 3,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.526,
"after": 1.0,
"delta": 0.474,
"percent_delta": 0.9011,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.4065,
"after": 1.0,
"delta": -0.4065,
"percent_delta": -0.289,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.229,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.302,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SLG": 0.37,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2487,
"after": 0.229,
"delta": -0.0197,
"percent_delta": -0.0792,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3207,
"after": 0.302,
"delta": -0.0187,
"percent_delta": -0.0583,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3768,
"after": 0.37,
"delta": -0.0068,
"percent_delta": -0.018,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_AVG",
"before": 0.2487,
"after": 0.229,
"delta": -0.0197,
"percent_delta": -0.0792,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 1,
"deboosted_metrics": 4,
"better_metrics": 2,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.2487,
"predicted_BB": 1.0,
"predicted_C": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3207,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.3768,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.229,
"after": 0.2487,
"delta": 0.0197,
"percent_delta": 0.0859,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.302,
"after": 0.3207,
"delta": 0.0187,
"percent_delta": 0.0618,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.37,
"after": 0.3768,
"delta": 0.0068,
"percent_delta": 0.0184,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_AVG",
"before": 0.229,
"after": 0.2487,
"delta": 0.0197,
"percent_delta": 0.0859,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.075,
"after": 0.0,
"delta": -0.075,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.99,
"after": 3.0,
"delta": -0.99,
"percent_delta": -0.2481,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.24,
"after": 0.2487,
"delta": 0.0087,
"percent_delta": 0.0363,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.425,
"after": 1.0,
"delta": 0.575,
"percent_delta": 1.3529,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.96,
"after": 0.0,
"delta": -0.96,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.14,
"after": 0.0,
"delta": -0.14,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.355,
"after": 0.3207,
"delta": -0.0343,
"percent_delta": -0.0966,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.525,
"after": 0.0,
"delta": -0.525,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.72,
"after": 0.0,
"delta": -0.72,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.395,
"after": 0.3768,
"delta": -0.0182,
"percent_delta": -0.0461,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.35,
"after": 0.0,
"delta": -1.35,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 11,
"boosted_metrics": 2,
"deboosted_metrics": 9,
"better_metrics": 3,
"worse_metrics": 8,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.425,
"after": 1.0,
"delta": 0.575,
"percent_delta": 1.3529,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.35,
"after": 0.0,
"delta": -1.35,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.075 | - |
| predicted_3B | 0.000 | - |
| predicted_AB | 3.990 | - |
| predicted_AVG | 0.240 | - |
| predicted_BB | 0.425 | - |
| predicted_H | 0.960 | - |
| predicted_HR | 0.140 | - |
| predicted_OBP | 0.355 | - |
| predicted_R | 0.525 | - |
| predicted_RBI | 0.720 | - |
| predicted_SLG | 0.395 | - |
| predicted_SO | 1.350 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.072 | -0.003 |
| predicted_3B | 0.001 | 0.001 |
| predicted_AB | 3.792 | -0.198 |
| predicted_AVG | 0.250 | 0.010 |
| predicted_BB | 0.401 | -0.024 |
| predicted_H | 0.947 | -0.013 |
| predicted_HBP | 0.168 | - |
| predicted_HR | 0.138 | -0.002 |
| predicted_OBP | 0.355 | 0.000 |
| predicted_R | 0.572 | 0.047 |
| predicted_RBI | 0.701 | -0.019 |
| predicted_SLG | 0.398 | 0.003 |
| predicted_SO | 1.298 | -0.052 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.072 | 0.000 |
| predicted_3B | 0.001 | 0.000 |
| predicted_AB | 3.792 | 0.000 |
| predicted_AVG | 0.249 | -0.001 |
| predicted_BB | 0.402 | 0.001 |
| predicted_H | 0.943 | -0.004 |
| predicted_HBP | 0.168 | 0.000 |
| predicted_HR | 0.137 | -0.000 |
| predicted_OBP | 0.321 | -0.035 |
| predicted_R | 0.568 | -0.003 |
| predicted_RBI | 0.697 | -0.004 |
| predicted_SLG | 0.377 | -0.021 |
| predicted_SO | 1.295 | -0.003 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=3.99), rates preserved: AVG=0.225 HR/AB=0.034
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.137 | 0.137 |
| 3B | 0.012 | 0.012 |
| BB | 0.316 | 0.316 |
| H | 0.764 | -0.236 |
| HR | 0.102 | 0.102 |
| RBI | 0.526 | -0.474 |
| SO | 1.407 | 0.407 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.137 |
| 3B | 0.000 | -0.012 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | -0.316 |
| H | 1.000 | 0.236 |
| HR | 0.000 | -0.102 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.474 |
| SO | 1.000 | -0.407 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.072 |
| predicted_3B | 0.000 | -0.001 |
| predicted_AB | 3.000 | -0.792 |
| predicted_AVG | 0.229 | -0.020 |
| predicted_BB | 0.000 | -0.402 |
| predicted_H | 1.000 | 0.057 |
| predicted_HR | 0.000 | -0.137 |
| predicted_OBP | 0.302 | -0.019 |
| predicted_R | 1.000 | 0.432 |
| predicted_RBI | 1.000 | 0.303 |
| predicted_SLG | 0.370 | -0.007 |
| predicted_SO | 1.000 | -0.295 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 1.000 | 1.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | -1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | -1.000 |
| RBI | 0.000 | -1.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 19.000 | 8.000 | 0.000 | 0.000 | 1.000 | 4.000 | 5.000 | 1.000 | 5.000 | 0.4211 | 0.4783 | 0.5789 | 0.4210 | 0.0526 | 0.2105 | 0.0526 | 0.2632 |
| last_10 | 0.20 | 10 | - | 37.000 | 10.000 | 0.000 | 0.000 | 1.000 | 7.000 | 8.000 | 4.000 | 13.000 | 0.2703 | 0.3778 | 0.3514 | 0.2703 | 0.0270 | 0.1892 | 0.1081 | 0.3513 |
| season | 0.60 | 40 | - | 129.000 | 28.000 | 3.000 | 0.000 | 5.000 | 27.000 | 21.000 | 17.000 | 54.000 | 0.2171 | 0.3245 | 0.3566 | 0.2170 | 0.0388 | 0.2093 | 0.1318 | 0.4186 |
| Metric | Value |
|---|---|
| predicted_2B | 0.0680 |
| predicted_3B | 0.0020 |
| predicted_AB | 3.4960 |
| predicted_AVG | 0.2652 |
| predicted_BB | 0.3650 |
| predicted_H | 0.9270 |
| predicted_HBP | 0.1680 |
| predicted_HR | 0.1340 |
| predicted_OBP | 0.3559 |
| predicted_R | 0.6410 |
| predicted_RBI | 0.6730 |
| predicted_SLG | 0.4013 |
| predicted_SO | 1.2200 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.0750 | 0.0680 | 0.0722 | model_form_blend |
| predicted_3B | 0.0000 | 0.0020 | 0.0008 | model_form_blend |
| predicted_AB | 3.9900 | 3.4960 | 3.7916 | model_form_blend |
| predicted_AVG | 0.2400 | 0.2652 | 0.2501 | model_form_blend |
| predicted_BB | 0.4250 | 0.3650 | 0.4009 | model_form_blend |
| predicted_H | 0.9600 | 0.9270 | 0.9467 | model_form_blend |
| predicted_HBP | - | 0.1680 | 0.1680 | form_only |
| predicted_HR | 0.1400 | 0.1340 | 0.1376 | model_form_blend |
| predicted_OBP | 0.3550 | 0.3559 | 0.3554 | model_form_blend |
| predicted_R | 0.5250 | 0.6410 | 0.5716 | model_form_blend |
| predicted_RBI | 0.7200 | 0.6730 | 0.7011 | model_form_blend |
| predicted_SLG | 0.3950 | 0.4013 | 0.3975 | model_form_blend |
| predicted_SO | 1.3500 | 1.2200 | 1.2978 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 117 |
| Season rows before report date | 117 |
| Report year | 2026 |
| Profile rows used | 40 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 3 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 1 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 5 |
| Hitting_AVG | 0.4 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 2 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 1 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 3 |
| Hitting_TB | 2 |
| Hitting_battingOrder | 2 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | C |
| gameID | 20260930_CHW@HOU |
| game_type | full |
| mlbID | 691019 |
| playerID | 691019 |
| playerName | Kyle Teel |
| pos | C |
| started | True |
| startingPosition | C |
| team | CHW |
| teamID | 6 |
| game_date | 2026-09-30 |
| sl_k_percent | 35.4 |
| sl_bb_percent | 13.2 |
| sl_woba | 0.317 |
| sl_xwoba | 0.321 |
| sl_xba | 0.211 |
| sl_xslg | 0.375 |
| sl_sweet_spot_percent | 41.4 |
| sl_barrel_batted_rate | 11.4 |
| sl_hard_hit_percent | 47.1 |
| sl_exit_velocity_avg | 85.7 |
| sl_launch_angle_avg | 13.6 |
| sl_whiff_percent | 35.6 |
| sl_swing_percent | 45.4 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.155 | 0.000 | 0.000 | Hitting_2B | 0.173 | 0.000 | -0.173 | 0.000 |
| predicted_3B | 0.000 | 0.000 | 0.000 | Hitting_3B | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_AB | 3.780 | 4.000 | 3.000 | Hitting_AB | 3.820 | 3.000 | 0.180 | 1.000 |
| predicted_AVG | 0.161 | 0.000 | 0.000 | Hitting_AVG | 0.206 | 0.000 | -0.206 | 0.000 |
| predicted_BB | 0.355 | 0.000 | 0.000 | Hitting_BB | 0.374 | 1.000 | -0.374 | -1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.007 | 0.000 | -0.007 | 0.000 |
| predicted_H | 0.610 | 0.000 | 0.000 | Hitting_H | 0.786 | 0.000 | -0.786 | 0.000 |
| predicted_HR | 0.160 | 0.000 | 0.000 | Hitting_HR | 0.219 | 0.000 | -0.219 | 0.000 |
| predicted_OBP | 0.241 | 0.000 | 0.000 | Hitting_OBP | 0.292 | 0.250 | -0.292 | -0.250 |
| predicted_R | 0.465 | 0.000 | 0.000 | Hitting_R | 0.507 | 0.000 | -0.507 | 0.000 |
| predicted_RBI | 0.440 | 0.000 | 1.000 | Hitting_RBI | 0.618 | 0.000 | -0.618 | 0.000 |
| predicted_SLG | 0.343 | 0.000 | 0.000 | Hitting_SLG | 0.423 | 0.000 | -0.423 | 0.000 |
| predicted_SO | 1.484 | 0.000 | 2.000 | Hitting_SO | 1.505 | 2.000 | -1.505 | -2.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 11 |
| Boosted Metrics | 1 |
| Deboosted Metrics | 10 |
| Better Metrics | 2 |
| Worse Metrics | 9 |
| Biggest Boost | predicted_AB: 3.7800 -> 4.0000 (boost 0.2200, better) |
| Biggest Deboost | predicted_SO: 1.4840 -> 0.0000 (deboost -1.4840, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 3 | 0 | 3 | 0 | 3 | - | predicted_AB: 3.7800 -> 3.6642 (deboost -0.1158, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 2 | 0 | 2 | 0 | 2 | - | predicted_OBP: 0.2405 -> 0.2259 (deboost -0.0146, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 8 | 0 | 8 | 1 | 7 | - | predicted_AB: 3.6642 -> 3.0000 (deboost -0.6642, worse) | AB rounded to 3 (raw=3.78), rates preserved: AVG=0.143 HR/AB=0.045 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=10.0, weight=0.100, BvP AVG=0.200) |
| 7 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.4239 -> 0.0000 (deboost -0.4239, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 6 | 0 | 5 | 1 | predicted_H: 0.0000 -> 0.6875 (boost 0.6875, better) | - | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 9 | lineup_integer_allocation | 6 | 2 | 4 | 1 | 5 | predicted_RBI: 0.4906 -> 1.0000 (boost 0.5094, better) | predicted_H: 0.6875 -> 0.0000 (deboost -0.6875, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 10 | embedded_savant_player_context | 5 | 3 | 2 | 4 | 1 | predicted_AVG: 0.1551 -> 0.2120 (boost 0.0569, better) | predicted_RBI: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | simulation_box_score_reference | 2 | 1 | 1 | 2 | 0 | predicted_AB: 3.0000 -> 4.0000 (boost 1.0000, better) | predicted_SO: 1.0000 -> 0.0000 (deboost -1.0000, better) | Attached simulation box score without overwriting model prediction |
| 12 | current_json_final | 3 | 0 | 3 | 0 | 3 | - | predicted_AVG: 0.2120 -> 0.1551 (deboost -0.0569, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "695657",
"player_name": "Colson Montgomery",
"position": "SS",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.155,
"predicted_3B": 0.0,
"predicted_AB": 3.78,
"predicted_AVG": 0.161,
"predicted_BB": 0.355,
"predicted_H": 0.61,
"predicted_HR": 0.16,
"predicted_OBP": 0.241,
"predicted_R": 0.465,
"predicted_RBI": 0.44,
"predicted_SLG": 0.343,
"predicted_SO": 1.484
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1275,
"predicted_3B": 0.0004,
"predicted_AB": 3.6642,
"predicted_AVG": 0.1553,
"predicted_BB": 0.3345,
"predicted_H": 0.5707,
"predicted_HBP": 0.119,
"predicted_HR": 0.1696,
"predicted_OBP": 0.2405,
"predicted_R": 0.4265,
"predicted_RBI": 0.4195,
"predicted_SLG": 0.3373,
"predicted_SO": 1.4875
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.155,
"after": 0.1275,
"delta": -0.0275,
"percent_delta": -0.1774,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0004,
"delta": 0.0004,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.78,
"after": 3.6642,
"delta": -0.1158,
"percent_delta": -0.0306,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.161,
"after": 0.1553,
"delta": -0.0057,
"percent_delta": -0.0354,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.355,
"after": 0.3345,
"delta": -0.0205,
"percent_delta": -0.0577,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.61,
"after": 0.5707,
"delta": -0.0393,
"percent_delta": -0.0644,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.16,
"after": 0.1696,
"delta": 0.0096,
"percent_delta": 0.06,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.241,
"after": 0.2405,
"delta": -0.0005,
"percent_delta": -0.0021,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.465,
"after": 0.4265,
"delta": -0.0385,
"percent_delta": -0.0828,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.44,
"after": 0.4195,
"delta": -0.0205,
"percent_delta": -0.0466,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.343,
"after": 0.3373,
"delta": -0.0057,
"percent_delta": -0.0166,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.484,
"after": 1.4875,
"delta": 0.0035,
"percent_delta": 0.0024,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_AB",
"before": 3.78,
"after": 3.6642,
"delta": -0.1158,
"percent_delta": -0.0306,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 155
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1275,
"predicted_3B": 0.0004,
"predicted_AB": 3.6642,
"predicted_AVG": 0.1551,
"predicted_BB": 0.3353,
"predicted_H": 0.5684,
"predicted_HBP": 0.119,
"predicted_HR": 0.1693,
"predicted_OBP": 0.2259,
"predicted_R": 0.4239,
"predicted_RBI": 0.4169,
"predicted_SLG": 0.3288,
"predicted_SO": 1.4839
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1275,
"after": 0.1275,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0004,
"after": 0.0004,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.6642,
"after": 3.6642,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.1553,
"after": 0.1551,
"delta": -0.0002,
"percent_delta": -0.0013,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.3345,
"after": 0.3353,
"delta": 0.0008,
"percent_delta": 0.0024,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.5707,
"after": 0.5684,
"delta": -0.0023,
"percent_delta": -0.004,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.119,
"after": 0.119,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1696,
"after": 0.1693,
"delta": -0.0003,
"percent_delta": -0.0018,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.2405,
"after": 0.2259,
"delta": -0.0146,
"percent_delta": -0.0607,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.4265,
"after": 0.4239,
"delta": -0.0026,
"percent_delta": -0.0061,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.4195,
"after": 0.4169,
"delta": -0.0026,
"percent_delta": -0.0062,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3373,
"after": 0.3288,
"delta": -0.0085,
"percent_delta": -0.0252,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.4875,
"after": 1.4839,
"delta": -0.0036,
"percent_delta": -0.0024,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.2405,
"after": 0.2259,
"delta": -0.0146,
"percent_delta": -0.0607,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 3 (raw=3.78), rates preserved: AVG=0.143 HR/AB=0.045",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1275,
"after": 0.0,
"delta": -0.1275,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0004,
"after": 0.0,
"delta": -0.0004,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.6642,
"after": 3.0,
"delta": -0.6642,
"percent_delta": -0.1813,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.3353,
"after": 0.0,
"delta": -0.3353,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.5684,
"after": 0.0,
"delta": -0.5684,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.119,
"after": 0.0,
"delta": -0.119,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1693,
"after": 0.0,
"delta": -0.1693,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.4169,
"after": 0.0,
"delta": -0.4169,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.4839,
"after": 1.0,
"delta": -0.4839,
"percent_delta": -0.3261,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 8,
"boosted_metrics": 0,
"deboosted_metrics": 8,
"better_metrics": 1,
"worse_metrics": 7,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_AB",
"before": 3.6642,
"after": 3.0,
"delta": -0.6642,
"percent_delta": -0.1813,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "bvp_blend",
"description": "Sample-size BvP blend (BvP AB=10.0, weight=0.100, BvP AVG=0.200)",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {
"model_expectation": 0.9,
"bvp": 0.1
},
"window_games": {}
},
{
"index": 7,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.4239,
"after": 0.0,
"delta": -0.4239,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_R",
"before": 0.4239,
"after": 0.0,
"delta": -0.4239,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1493,
"predicted_3B": 0.0077,
"predicted_BB": 0.2601,
"predicted_H": 0.6875,
"predicted_HR": 0.1319,
"predicted_RBI": 0.4906,
"predicted_SO": 1.5057
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1493,
"delta": 0.1493,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0077,
"delta": 0.0077,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.2601,
"delta": 0.2601,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.6875,
"delta": 0.6875,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1319,
"delta": 0.1319,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.4906,
"delta": 0.4906,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.5057,
"delta": 0.5057,
"percent_delta": 0.5057,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 6,
"deboosted_metrics": 0,
"better_metrics": 5,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.0,
"after": 0.6875,
"delta": 0.6875,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 1.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1493,
"after": 0.0,
"delta": -0.1493,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0077,
"after": 0.0,
"delta": -0.0077,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.2601,
"after": 0.0,
"delta": -0.2601,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.6875,
"after": 0.0,
"delta": -0.6875,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1319,
"after": 0.0,
"delta": -0.1319,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.4906,
"after": 1.0,
"delta": 0.5094,
"percent_delta": 1.0383,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.5057,
"after": 2.0,
"delta": 0.4943,
"percent_delta": 0.3283,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 2,
"deboosted_metrics": 4,
"better_metrics": 1,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.4906,
"after": 1.0,
"delta": 0.5094,
"percent_delta": 1.0383,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 0.6875,
"after": 0.0,
"delta": -0.6875,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.212,
"predicted_BB": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.276,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.385,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.1551,
"after": 0.212,
"delta": 0.0569,
"percent_delta": 0.3669,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.2259,
"after": 0.276,
"delta": 0.0501,
"percent_delta": 0.2218,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.3288,
"after": 0.385,
"delta": 0.0562,
"percent_delta": 0.1709,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 3,
"deboosted_metrics": 2,
"better_metrics": 4,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_AVG",
"before": 0.1551,
"after": 0.212,
"delta": 0.0569,
"percent_delta": 0.3669,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 12,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.1551,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.2259,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.3288,
"predicted_SO": 0.0,
"predicted_SS": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.212,
"after": 0.1551,
"delta": -0.0569,
"percent_delta": -0.2683,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.276,
"after": 0.2259,
"delta": -0.0501,
"percent_delta": -0.1814,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.385,
"after": 0.3288,
"delta": -0.0562,
"percent_delta": -0.1461,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_AVG",
"before": 0.212,
"after": 0.1551,
"delta": -0.0569,
"percent_delta": -0.2683,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.155,
"after": 0.0,
"delta": -0.155,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.78,
"after": 4.0,
"delta": 0.22,
"percent_delta": 0.0582,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.161,
"after": 0.1551,
"delta": -0.0059,
"percent_delta": -0.0366,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.355,
"after": 0.0,
"delta": -0.355,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.61,
"after": 0.0,
"delta": -0.61,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.16,
"after": 0.0,
"delta": -0.16,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.241,
"after": 0.2259,
"delta": -0.0151,
"percent_delta": -0.0627,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.465,
"after": 0.0,
"delta": -0.465,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.44,
"after": 0.0,
"delta": -0.44,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.343,
"after": 0.3288,
"delta": -0.0142,
"percent_delta": -0.0414,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.484,
"after": 0.0,
"delta": -1.484,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 11,
"boosted_metrics": 1,
"deboosted_metrics": 10,
"better_metrics": 2,
"worse_metrics": 9,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.78,
"after": 4.0,
"delta": 0.22,
"percent_delta": 0.0582,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.484,
"after": 0.0,
"delta": -1.484,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.155 | - |
| predicted_3B | 0.000 | - |
| predicted_AB | 3.780 | - |
| predicted_AVG | 0.161 | - |
| predicted_BB | 0.355 | - |
| predicted_H | 0.610 | - |
| predicted_HR | 0.160 | - |
| predicted_OBP | 0.241 | - |
| predicted_R | 0.465 | - |
| predicted_RBI | 0.440 | - |
| predicted_SLG | 0.343 | - |
| predicted_SO | 1.484 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.128 | -0.027 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 3.664 | -0.116 |
| predicted_AVG | 0.155 | -0.006 |
| predicted_BB | 0.335 | -0.020 |
| predicted_H | 0.571 | -0.039 |
| predicted_HBP | 0.119 | - |
| predicted_HR | 0.170 | 0.010 |
| predicted_OBP | 0.240 | -0.001 |
| predicted_R | 0.426 | -0.039 |
| predicted_RBI | 0.419 | -0.021 |
| predicted_SLG | 0.337 | -0.006 |
| predicted_SO | 1.488 | 0.004 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.128 | 0.000 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 3.664 | 0.000 |
| predicted_AVG | 0.155 | -0.000 |
| predicted_BB | 0.335 | 0.001 |
| predicted_H | 0.568 | -0.002 |
| predicted_HBP | 0.119 | 0.000 |
| predicted_HR | 0.169 | -0.000 |
| predicted_OBP | 0.226 | -0.015 |
| predicted_R | 0.424 | -0.003 |
| predicted_RBI | 0.417 | -0.003 |
| predicted_SLG | 0.329 | -0.009 |
| predicted_SO | 1.484 | -0.004 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=3.78), rates preserved: AVG=0.143 HR/AB=0.045
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 0.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=10.0, weight=0.100, BvP AVG=0.200)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 0.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.149 | 0.149 |
| 3B | 0.008 | 0.008 |
| BB | 0.260 | 0.260 |
| H | 0.688 | 0.688 |
| HR | 0.132 | 0.132 |
| RBI | 0.491 | 0.491 |
| SO | 1.506 | 0.506 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.149 |
| 3B | 0.000 | -0.008 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | -0.260 |
| H | 0.000 | -0.688 |
| HR | 0.000 | -0.132 |
| R | 0.000 | 0.000 |
| RBI | 1.000 | 0.509 |
| SO | 2.000 | 0.494 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.128 |
| predicted_3B | 0.000 | -0.000 |
| predicted_AB | 3.000 | -0.664 |
| predicted_AVG | 0.212 | 0.057 |
| predicted_BB | 0.000 | -0.335 |
| predicted_H | 0.000 | -0.568 |
| predicted_HR | 0.000 | -0.169 |
| predicted_OBP | 0.276 | 0.050 |
| predicted_R | 0.000 | -0.424 |
| predicted_RBI | 0.000 | -0.417 |
| predicted_SLG | 0.385 | 0.056 |
| predicted_SO | 1.000 | -0.484 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 1.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -1.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -2.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 15.000 | 1.000 | 0.000 | 0.000 | 1.000 | 1.000 | 1.000 | 1.000 | 7.000 | 0.0667 | 0.1765 | 0.2667 | 0.0667 | 0.0667 | 0.0667 | 0.0667 | 0.4667 |
| last_10 | 0.20 | 10 | - | 34.000 | 2.000 | 0.000 | 0.000 | 1.000 | 1.000 | 3.000 | 3.000 | 17.000 | 0.0588 | 0.1579 | 0.1471 | 0.0588 | 0.0294 | 0.0294 | 0.0882 | 0.5000 |
| season | 0.60 | 155 | - | 574.000 | 113.000 | 24.000 | 0.000 | 32.000 | 88.000 | 72.000 | 55.000 | 230.000 | 0.1969 | 0.2833 | 0.4059 | 0.1969 | 0.0558 | 0.1533 | 0.0958 | 0.4007 |
| Metric | Value |
|---|---|
| predicted_2B | 0.0920 |
| predicted_3B | 0.0010 |
| predicted_AB | 3.5150 |
| predicted_AVG | 0.1479 |
| predicted_BB | 0.3080 |
| predicted_H | 0.5200 |
| predicted_HBP | 0.1190 |
| predicted_HR | 0.1820 |
| predicted_OBP | 0.2399 |
| predicted_R | 0.3770 |
| predicted_RBI | 0.3930 |
| predicted_SLG | 0.3299 |
| predicted_SO | 1.4920 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1550 | 0.0920 | 0.1275 | model_form_blend |
| predicted_3B | 0.0000 | 0.0010 | 0.0004 | model_form_blend |
| predicted_AB | 3.7800 | 3.5150 | 3.6642 | model_form_blend |
| predicted_AVG | 0.1610 | 0.1479 | 0.1553 | model_form_blend |
| predicted_BB | 0.3550 | 0.3080 | 0.3345 | model_form_blend |
| predicted_H | 0.6100 | 0.5200 | 0.5707 | model_form_blend |
| predicted_HBP | - | 0.1190 | 0.1190 | form_only |
| predicted_HR | 0.1600 | 0.1820 | 0.1696 | model_form_blend |
| predicted_OBP | 0.2410 | 0.2399 | 0.2405 | model_form_blend |
| predicted_R | 0.4650 | 0.3770 | 0.4265 | model_form_blend |
| predicted_RBI | 0.4400 | 0.3930 | 0.4195 | model_form_blend |
| predicted_SLG | 0.3430 | 0.3299 | 0.3373 | model_form_blend |
| predicted_SO | 1.4840 | 1.4920 | 1.4875 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 612 |
| Season rows before report date | 612 |
| Report year | 2026 |
| Profile rows used | 155 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 3 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 1 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 2 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 9 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | SS |
| gameID | 20260930_CHW@HOU |
| game_type | full |
| mlbID | 695657 |
| playerID | 695657 |
| playerName | Colson Montgomery |
| pos | SS |
| started | True |
| startingPosition | SS |
| team | CHW |
| teamID | 6 |
| game_date | 2026-09-30 |
| sl_k_percent | 35.6 |
| sl_bb_percent | 8.5 |
| sl_woba | 0.3 |
| sl_xwoba | 0.294 |
| sl_xba | 0.199 |
| sl_xslg | 0.388 |
| sl_sweet_spot_percent | 32.9 |
| sl_barrel_batted_rate | 12.0 |
| sl_hard_hit_percent | 40.9 |
| sl_exit_velocity_avg | 88.6 |
| sl_launch_angle_avg | 23.6 |
| sl_whiff_percent | 37.4 |
| sl_swing_percent | 51.5 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 2.000 | 2.000 | 2.000 | Pitching_BB | 0.842 | 0.000 | 1.158 | 2.000 |
| predicted_ER | 0.000 | 0.000 | 0.000 | Pitching_ER | 0.211 | 0.000 | -0.211 | 0.000 |
| predicted_H | 2.000 | 2.000 | 2.000 | Pitching_H | 0.684 | 2.000 | 1.316 | 0.000 |
| predicted_IP | 5.000 | 5.000 | 5.000 | Pitching_InningsPitched | 1.484 | 3.000 | 3.516 | 2.000 |
| predicted_SO | 5.000 | 5.000 | 5.000 | Pitching_SO | 2.211 | 1.000 | 2.789 | 4.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_form_blend |
| To | current_json_final |
| Dominant Effect | neutral |
| Changed Metrics | 0 |
| Boosted Metrics | 0 |
| Deboosted Metrics | 0 |
| Better Metrics | 0 |
| Worse Metrics | 0 |
| Biggest Boost | - |
| Biggest Deboost | - |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 2 | pitcher_quality_guardrail | 0 | 0 | 0 | 0 | 0 | - | - | Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form. |
| 3 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "pitcher",
"player_id": "696146",
"player_name": "Hagen Smith",
"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": 2.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 2.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 5.0,
"predicted_R": 0.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
}Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 2.000 | - |
| predicted_ER | 0.000 | - |
| predicted_H | 2.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 5.000 | - |
| predicted_SO | 5.000 | - |
Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 2.000 | 0.000 |
| predicted_ER | 0.000 | 0.000 |
| predicted_H | 2.000 | 0.000 |
| predicted_HR | 0.000 | 0.000 |
| predicted_IP | 5.000 | 0.000 |
| predicted_SO | 5.000 | 0.000 |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 7.100 | 1.000 | 4.000 | 4.000 | 8.000 | 0.000 | 1.2273 | 1.0909 | 0.1364 | 0.5454 | 0.5454 | 1.0909 | 0.0000 |
| last_10 | 0.35 | 10 | 18.000 | 3.000 | 8.000 | 6.000 | 23.000 | 0.000 | 1.5000 | 0.7778 | 0.1667 | 0.4444 | 0.3333 | 1.2778 | 0.0000 |
| season | 0.20 | 18 | 31.000 | 3.000 | 12.000 | 16.000 | 42.000 | 0.000 | 0.8710 | 0.9032 | 0.0968 | 0.3871 | 0.5161 | 1.3548 | 0.0000 |
| Metric | Value |
|---|---|
| predicted_BB | 1.3020 |
| predicted_ER | 0.9220 |
| predicted_ERA | 2.7256 |
| predicted_H | 2.1340 |
| predicted_HR | 0.1970 |
| predicted_IP | 3.0000 |
| predicted_SO | 3.3140 |
| predicted_WHIP | 1.1281 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 2.0000 | 1.3020 | 1.6758 | model_form_blend |
| predicted_ER | 0.0000 | 0.9220 | 0.4283 | model_form_blend |
| predicted_ERA | - | 2.7256 | 2.7256 | form_only |
| predicted_H | 2.0000 | 2.1340 | 2.0622 | model_form_blend |
| predicted_HR | 0.0000 | 0.1970 | 0.0915 | model_form_blend |
| predicted_IP | 5.0000 | 3.0000 | 4.1000 | model_form_blend |
| predicted_SO | 5.0000 | 3.3140 | 4.2168 | model_form_blend |
| predicted_WHIP | - | 1.1281 | 1.1281 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 19 |
| Season rows before report date | 19 |
| Report year | 2026 |
| Profile rows used | 18 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 5.0 |
| H | 2 |
| R | 0 |
| ER | 0 |
| BB | 2 |
| SO | 5 |
| HR | 0 |
| BF | 19 |
| Pitches | 77 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 11 |
| Pitching_ER | 0 |
| Pitching_ERA | 0.00 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 7 |
| Pitching_H | 2 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 3.0 |
| Pitching_Pitches | 38 |
| Pitching_R | 0 |
| Pitching_SO | 1 |
| Pitching_Strikes | 28 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 1 |
| allPositionsPlayed | P |
| gameID | 20260929_CHW@HOU |
| game_type | full |
| mlbID | 696146 |
| playerID | 696146 |
| playerName | Hagen Smith |
| pos | P |
| started | True |
| startingPosition | P |
| team | CHW |
| teamID | 6 |
| game_date | 2026-09-29 |
| sl_k_percent | 37.3 |
| sl_bb_percent | 14.5 |
| sl_woba | 0.211 |
| sl_xwoba | 0.243 |
| sl_sweet_spot_percent | 35.8 |
| sl_barrel_batted_rate | 1.9 |
| sl_hard_hit_percent | 34.0 |
| sl_whiff_percent | 36.2 |
| sl_swing_percent | 42.4 |
| sl_avg_best_speed | 75.859778846 |
| sl_avg_hyper_speed | 93.418211538 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 0.000 | 0.000 | 0.000 | Pitching_BB | 0.439 | 0.000 | -0.439 | 0.000 |
| predicted_ER | 2.000 | 2.000 | 2.000 | Pitching_ER | 0.366 | 0.000 | 1.634 | 2.000 |
| predicted_H | 2.000 | 2.000 | 2.000 | Pitching_H | 0.976 | 2.000 | 1.024 | 0.000 |
| predicted_IP | 1.100 | 1.100 | 1.100 | Pitching_InningsPitched | 1.266 | 1.200 | -0.166 | -0.100 |
| predicted_SO | 1.000 | 1.000 | 1.000 | Pitching_SO | 1.854 | 1.000 | -0.854 | 0.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_form_blend |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 1 |
| Boosted Metrics | 0 |
| Deboosted Metrics | 1 |
| Better Metrics | 0 |
| Worse Metrics | 1 |
| Biggest Boost | - |
| Biggest Deboost | predicted_IP: 1.3333 -> 1.1000 (deboost -0.2333, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 2 | current_json_final | 1 | 0 | 1 | 0 | 1 | - | predicted_IP: 1.3333 -> 1.1000 (deboost -0.2333, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "pitcher",
"player_id": "691799",
"player_name": "Grant Taylor",
"position": "Closer",
"team": "CHW",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 1.3333,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 2.0,
"predicted_HR": 1.0,
"predicted_IP": 1.1,
"predicted_R": 2.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 1.3333,
"after": 1.1,
"delta": -0.2333,
"percent_delta": -0.175,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 1.3333,
"after": 1.1,
"delta": -0.2333,
"percent_delta": -0.175,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 1.3333,
"after": 1.1,
"delta": -0.2333,
"percent_delta": -0.175,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 1.3333,
"after": 1.1,
"delta": -0.2333,
"percent_delta": -0.175,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 0.000 | - |
| predicted_ER | 2.000 | - |
| predicted_H | 2.000 | - |
| predicted_HR | 1.000 | - |
| predicted_IP | 1.333 | - |
| predicted_SO | 1.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 8.000 | 0.000 | 4.000 | 1.000 | 9.000 | 0.000 | 0.0000 | 0.6250 | 0.0000 | 0.5000 | 0.1250 | 1.1250 | 0.0000 |
| last_10 | 0.35 | 10 | 15.000 | 2.000 | 5.000 | 6.000 | 16.000 | 1.000 | 1.2000 | 0.7333 | 0.1333 | 0.3333 | 0.4000 | 1.0667 | 0.0667 |
| season | 0.20 | 41 | 56.100 | 15.000 | 40.000 | 18.000 | 76.000 | 4.000 | 2.3964 | 1.0296 | 0.2663 | 0.7101 | 0.3195 | 1.3491 | 0.0710 |
| Metric | Value |
|---|---|
| predicted_BB | 0.4260 |
| predicted_ER | 0.3220 |
| predicted_ERA | 2.0160 |
| predicted_H | 0.9120 |
| predicted_HR | 0.1020 |
| predicted_IP | 1.1000 |
| predicted_SO | 1.5600 |
| predicted_WHIP | 0.9304 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 0.0000 | 0.4260 | 0.2227 | model_form_blend |
| predicted_ER | 2.0000 | 0.3220 | 1.1227 | model_form_blend |
| predicted_ERA | - | 2.0160 | 2.0160 | form_only |
| predicted_H | 2.0000 | 0.9120 | 1.4312 | model_form_blend |
| predicted_HR | 1.0000 | 0.1020 | 0.5305 | model_form_blend |
| predicted_IP | 1.1000 | 1.1000 | 1.1000 | model_form_blend |
| predicted_SO | 1.0000 | 1.5600 | 1.2928 | model_form_blend |
| predicted_WHIP | - | 0.9304 | 0.9304 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 41 |
| Season rows before report date | 41 |
| Report year | 2026 |
| Profile rows used | 41 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 1.1 |
| H | 2 |
| R | 2 |
| ER | 2 |
| BB | 0 |
| SO | 1 |
| HR | 1 |
| BF | 6 |
| Pitches | 18 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 6 |
| Pitching_ER | 0 |
| Pitching_ERA | 2.40 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 3 |
| Pitching_H | 2 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 1 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 1.2 |
| Pitching_Pitches | 22 |
| Pitching_R | 0 |
| Pitching_SO | 1 |
| Pitching_Strikes | 16 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 2 |
| allPositionsPlayed | P |
| gameID | 20260802_CHW@TB |
| game_type | full |
| mlbID | 691799 |
| playerID | 691799 |
| playerName | Grant Taylor |
| pos | P |
| started | False |
| startingPosition | P |
| team | CHW |
| teamID | 6 |
| game_date | 2026-08-02 |
| game_pk | 822943.0 |
| sl_k_percent | 31.5 |
| sl_bb_percent | 8.9 |
| sl_woba | 0.26 |
| sl_xwoba | 0.267 |
| sl_sweet_spot_percent | 31.2 |
| sl_barrel_batted_rate | 7.6 |
| sl_hard_hit_percent | 41.2 |
| sl_whiff_percent | 29.4 |
| sl_swing_percent | 46.5 |
| sv_pitch_count | 22.0 |
| sv_outs_recorded_est | 5.0 |
| sv_release_speed | 88.12727272727273 |
| sv_release_spin_rate | 2356.681818181818 |
| sv_effective_speed | 88.98181818181818 |
| sv_launch_speed | 86.17 |
| sv_launch_angle | -1.4 |
| sv_woba_value | 1.8 |
| sv_woba_denom | 6.0 |
| sv_delta_run_exp | -0.38 |
| sv_delta_home_win_exp | -0.037 |
| sl_avg_best_speed | 79.579557677 |
| sl_avg_hyper_speed | 94.193453604 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 0.000 | 0.000 | 0.000 | Pitching_BB | 0.556 | 1.000 | -0.556 | -1.000 |
| predicted_ER | 0.000 | 0.000 | 0.000 | Pitching_ER | 0.481 | 1.000 | -0.481 | -1.000 |
| predicted_H | 0.000 | 0.000 | 0.000 | Pitching_H | 1.222 | 1.000 | -1.222 | -1.000 |
| predicted_IP | 1.100 | 1.100 | 1.100 | Pitching_InningsPitched | 1.363 | 1.100 | -0.263 | 0.000 |
| predicted_SO | 1.000 | 1.000 | 1.000 | Pitching_SO | 1.444 | 4.000 | -0.444 | -3.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_form_blend |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 1 |
| Boosted Metrics | 0 |
| Deboosted Metrics | 1 |
| Better Metrics | 0 |
| Worse Metrics | 1 |
| Biggest Boost | - |
| Biggest Deboost | predicted_IP: 1.3333 -> 1.1000 (deboost -0.2333, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 2 | current_json_final | 1 | 0 | 1 | 0 | 1 | - | predicted_IP: 1.3333 -> 1.1000 (deboost -0.2333, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "pitcher",
"player_id": "656794",
"player_name": "Sean Newcomb",
"position": "Middle Reliever (High Leverage)",
"team": "CHW",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 1.3333,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 1.1,
"predicted_R": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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": 1.3333,
"after": 1.1,
"delta": -0.2333,
"percent_delta": -0.175,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 1.3333,
"after": 1.1,
"delta": -0.2333,
"percent_delta": -0.175,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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": 1.3333,
"after": 1.1,
"delta": -0.2333,
"percent_delta": -0.175,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 1.3333,
"after": 1.1,
"delta": -0.2333,
"percent_delta": -0.175,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 0.000 | - |
| predicted_ER | 0.000 | - |
| predicted_H | 0.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 1.333 | - |
| predicted_SO | 1.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 9.100 | 7.000 | 12.000 | 3.000 | 10.000 | 0.000 | 6.7500 | 1.6071 | 0.7500 | 1.2857 | 0.3214 | 1.0714 | 0.0000 |
| last_10 | 0.35 | 10 | 20.000 | 7.000 | 16.000 | 7.000 | 18.000 | 0.000 | 3.1500 | 1.1500 | 0.3500 | 0.8000 | 0.3500 | 0.9000 | 0.0000 |
| season | 0.20 | 53 | 84.100 | 26.000 | 64.000 | 30.000 | 78.000 | 2.000 | 2.7747 | 1.1146 | 0.3083 | 0.7589 | 0.3557 | 0.9249 | 0.0237 |
| Metric | Value |
|---|---|
| predicted_BB | 0.6250 |
| predicted_ER | 0.9350 |
| predicted_ERA | 4.6758 |
| predicted_H | 1.8070 |
| predicted_HR | 0.0660 |
| predicted_IP | 1.2000 |
| predicted_SO | 1.7480 |
| predicted_WHIP | 1.3520 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 0.0000 | 0.6250 | 0.3473 | model_form_blend |
| predicted_ER | 0.0000 | 0.9350 | 0.5195 | model_form_blend |
| predicted_ERA | - | 4.6758 | 4.6758 | form_only |
| predicted_H | 0.0000 | 1.8070 | 1.0040 | model_form_blend |
| predicted_HR | 0.0000 | 0.0660 | 0.0367 | model_form_blend |
| predicted_IP | 1.1000 | 1.2000 | 1.2000 | model_form_blend |
| predicted_SO | 1.0000 | 1.7480 | 1.4156 | model_form_blend |
| predicted_WHIP | - | 1.3520 | 1.3520 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 54 |
| Season rows before report date | 54 |
| Report year | 2026 |
| Profile rows used | 53 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 1.1 |
| H | 0 |
| R | 0 |
| ER | 0 |
| BB | 0 |
| SO | 1 |
| HR | 0 |
| BF | 4 |
| Pitches | 17 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 1 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 6 |
| Pitching_ER | 1 |
| Pitching_ERA | 2.77 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 1 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 1.1 |
| Pitching_Pitches | 29 |
| Pitching_R | 1 |
| Pitching_SO | 4 |
| Pitching_Strikes | 18 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 1 |
| allPositionsPlayed | P |
| gameID | 20260912_CHW@STL |
| game_type | full |
| mlbID | 656794 |
| playerID | 656794 |
| playerName | Sean Newcomb |
| pos | P |
| started | True |
| startingPosition | P |
| team | CHW |
| teamID | 6 |
| game_date | 2026-09-12 |
| game_pk | 823009.0 |
| sl_k_percent | 22.6 |
| sl_bb_percent | 9.1 |
| sl_woba | 0.285 |
| sl_xwoba | 0.317 |
| sl_sweet_spot_percent | 34.1 |
| sl_barrel_batted_rate | 6.5 |
| sl_hard_hit_percent | 38.6 |
| sl_whiff_percent | 23.9 |
| sl_swing_percent | 45.9 |
| sv_pitch_count | 29.0 |
| sv_outs_recorded_est | 4.0 |
| sv_release_speed | 91.88275862068966 |
| sv_release_spin_rate | 2501.0 |
| sv_effective_speed | 90.5206896551724 |
| sv_launch_speed | 74.10000000000001 |
| sv_launch_angle | 29.285714285714285 |
| sv_woba_value | 1.6 |
| sv_woba_denom | 6.0 |
| sv_delta_run_exp | -0.3010000000000001 |
| sv_delta_home_win_exp | -0.045 |
| sl_avg_best_speed | 77.732436083 |
| sl_avg_hyper_speed | 94.013500335 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 0.000 | 0.000 | 0.000 | Pitching_BB | 0.254 | 0.000 | -0.254 | 0.000 |
| predicted_ER | 0.000 | 0.000 | 0.000 | Pitching_ER | 0.328 | 2.000 | -0.328 | -2.000 |
| predicted_H | 0.000 | 0.000 | 0.000 | Pitching_H | 0.925 | 4.000 | -0.925 | -4.000 |
| predicted_IP | 1.000 | 1.000 | 1.000 | Pitching_InningsPitched | 0.857 | 0.100 | 0.143 | 0.900 |
| predicted_SO | 0.000 | 0.000 | 0.000 | Pitching_SO | 0.881 | 0.000 | -0.881 | 0.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_form_blend |
| To | current_json_final |
| Dominant Effect | neutral |
| Changed Metrics | 0 |
| Boosted Metrics | 0 |
| Deboosted Metrics | 0 |
| Better Metrics | 0 |
| Worse Metrics | 0 |
| Biggest Boost | - |
| Biggest Deboost | - |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 2 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663542",
"player_name": "Bryan Hudson",
"position": "Setup Man",
"team": "CHW",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 1.0,
"predicted_SO": 0.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 1.0,
"predicted_R": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
}Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 0.000 | - |
| predicted_ER | 0.000 | - |
| predicted_H | 0.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 1.000 | - |
| predicted_SO | 0.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 4.100 | 2.000 | 6.000 | 0.000 | 2.000 | 1.000 | 4.1538 | 1.3846 | 0.4615 | 1.3846 | 0.0000 | 0.4615 | 0.2308 |
| last_10 | 0.35 | 10 | 10.100 | 2.000 | 11.000 | 0.000 | 7.000 | 1.000 | 1.7419 | 1.0645 | 0.1935 | 1.0645 | 0.0000 | 0.6774 | 0.0968 |
| season | 0.20 | 66 | 65.100 | 19.000 | 59.000 | 17.000 | 59.000 | 5.000 | 2.6173 | 1.1633 | 0.2908 | 0.9031 | 0.2602 | 0.9031 | 0.0765 |
| Metric | Value |
|---|---|
| predicted_BB | 0.1410 |
| predicted_ER | 0.3820 |
| predicted_ERA | 3.4375 |
| predicted_H | 1.1240 |
| predicted_HR | 0.1520 |
| predicted_IP | 1.0000 |
| predicted_SO | 0.7090 |
| predicted_WHIP | 1.2649 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 0.0000 | 0.1410 | 0.0755 | model_form_blend |
| predicted_ER | 0.0000 | 0.3820 | 0.2046 | model_form_blend |
| predicted_ERA | - | 3.4375 | 3.4375 | form_only |
| predicted_H | 0.0000 | 1.1240 | 0.6020 | model_form_blend |
| predicted_HR | 0.0000 | 0.1520 | 0.0814 | model_form_blend |
| predicted_IP | 1.0000 | 1.0000 | 1.0000 | model_form_blend |
| predicted_SO | 0.0000 | 0.7090 | 0.3797 | model_form_blend |
| predicted_WHIP | - | 1.2649 | 1.2649 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 67 |
| Season rows before report date | 67 |
| Report year | 2026 |
| Profile rows used | 66 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 1.0 |
| H | 0 |
| R | 0 |
| ER | 0 |
| BB | 0 |
| SO | 0 |
| HR | 0 |
| BF | 3 |
| Pitches | 13 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 1 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 4 |
| Pitching_ER | 2 |
| Pitching_ERA | 3.03 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 4 |
| Pitching_HBP | 0 |
| Pitching_HR | 1 |
| Pitching_Inherited Runners | 1 |
| Pitching_Inherited Runners Scored | 1 |
| Pitching_InningsPitched | 0.1 |
| Pitching_Pitches | 14 |
| Pitching_R | 2 |
| Pitching_SO | 0 |
| Pitching_Strikes | 9 |
| Pitching_Wild Pitch | 1 |
| Pitching_pitchingOrder | 6 |
| allPositionsPlayed | P |
| gameID | 20260918_DET@CHW |
| game_type | full |
| mlbID | 663542 |
| playerID | 663542 |
| playerName | Bryan Hudson |
| pos | P |
| started | False |
| startingPosition | P |
| team | CHW |
| teamID | 6 |
| game_date | 2026-09-18 |
| sl_k_percent | 20.9 |
| sl_bb_percent | 6.4 |
| sl_woba | 0.304 |
| sl_xwoba | 0.277 |
| sl_sweet_spot_percent | 29.5 |
| sl_barrel_batted_rate | 4.0 |
| sl_hard_hit_percent | 37.0 |
| sl_whiff_percent | 23.1 |
| sl_swing_percent | 47.9 |
| sl_avg_best_speed | 77.03898567 |
| sl_avg_hyper_speed | 93.301948299 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 0.000 | 0.000 | 0.000 | Pitching_BB | 0.581 | 0.000 | -0.581 | 0.000 |
| predicted_ER | 0.000 | 0.000 | 0.000 | Pitching_ER | 0.395 | 3.000 | -0.395 | -3.000 |
| predicted_H | 0.000 | 0.000 | 0.000 | Pitching_H | 0.837 | 4.000 | -0.837 | -4.000 |
| predicted_IP | 0.100 | 0.100 | 0.100 | Pitching_InningsPitched | 0.784 | 1.000 | -0.684 | -0.900 |
| predicted_SO | 1.000 | 1.000 | 1.000 | Pitching_SO | 1.140 | 2.000 | -0.140 | -1.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_form_blend |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 1 |
| Boosted Metrics | 0 |
| Deboosted Metrics | 1 |
| Better Metrics | 0 |
| Worse Metrics | 1 |
| Biggest Boost | - |
| Biggest Deboost | predicted_IP: 0.3333 -> 0.1000 (deboost -0.2333, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 2 | current_json_final | 1 | 0 | 1 | 0 | 1 | - | predicted_IP: 0.3333 -> 0.1000 (deboost -0.2333, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "pitcher",
"player_id": "663855",
"player_name": "Jordan Hicks",
"position": "Middle Reliever (High Leverage)",
"team": "CHW",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 0.3333,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 0.1,
"predicted_R": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 0.3333,
"after": 0.1,
"delta": -0.2333,
"percent_delta": -0.7,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 0.3333,
"after": 0.1,
"delta": -0.2333,
"percent_delta": -0.7,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 0.3333,
"after": 0.1,
"delta": -0.2333,
"percent_delta": -0.7,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 0.3333,
"after": 0.1,
"delta": -0.2333,
"percent_delta": -0.7,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 0.000 | - |
| predicted_ER | 0.000 | - |
| predicted_H | 0.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 0.333 | - |
| predicted_SO | 1.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 6.000 | 4.000 | 6.000 | 3.000 | 9.000 | 1.000 | 6.0000 | 1.5000 | 0.6667 | 1.0000 | 0.5000 | 1.5000 | 0.1667 |
| last_10 | 0.35 | 10 | 10.000 | 6.000 | 13.000 | 4.000 | 14.000 | 2.000 | 5.4000 | 1.7000 | 0.6000 | 1.3000 | 0.4000 | 1.4000 | 0.2000 |
| season | 0.20 | 42 | 40.000 | 17.000 | 35.000 | 25.000 | 49.000 | 3.000 | 3.8250 | 1.5000 | 0.4250 | 0.8750 | 0.6250 | 1.2250 | 0.0750 |
| Metric | Value |
|---|---|
| predicted_BB | 0.3770 |
| predicted_ER | 0.4740 |
| predicted_ERA | 5.0736 |
| predicted_H | 0.8790 |
| predicted_HR | 0.1310 |
| predicted_IP | 1.0000 |
| predicted_SO | 1.0350 |
| predicted_WHIP | 1.4921 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 0.0000 | 0.3770 | 0.1849 | model_form_blend |
| predicted_ER | 0.0000 | 0.4740 | 0.2325 | model_form_blend |
| predicted_ERA | - | 5.0736 | 5.0736 | form_only |
| predicted_H | 0.0000 | 0.8790 | 0.4312 | model_form_blend |
| predicted_HR | 0.0000 | 0.1310 | 0.0643 | model_form_blend |
| predicted_IP | 0.1000 | 1.0000 | 0.2000 | model_form_blend |
| predicted_SO | 1.0000 | 1.0350 | 1.0172 | model_form_blend |
| predicted_WHIP | - | 1.4921 | 1.4921 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 43 |
| Season rows before report date | 43 |
| Report year | 2026 |
| Profile rows used | 42 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 0.1 |
| H | 0 |
| R | 0 |
| ER | 0 |
| BB | 0 |
| SO | 1 |
| HR | 0 |
| BF | 1 |
| Pitches | 4 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 7 |
| Pitching_ER | 3 |
| Pitching_ERA | 3.83 |
| Pitching_Flyouts | 1 |
| Pitching_Groundouts | 0 |
| Pitching_H | 4 |
| Pitching_HBP | 0 |
| Pitching_HR | 1 |
| Pitching_Inherited Runners | 2 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 1.0 |
| Pitching_Pitches | 24 |
| Pitching_R | 3 |
| Pitching_SO | 2 |
| Pitching_Strikes | 19 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 2 |
| allPositionsPlayed | P |
| gameID | 20260825_TEX@CHW |
| game_type | full |
| mlbID | 663855 |
| playerID | 663855 |
| playerName | Jordan Hicks |
| pos | P |
| started | False |
| startingPosition | P |
| team | CHW |
| teamID | 6 |
| game_date | 2026-08-25 |
| game_pk | 824556.0 |
| sl_k_percent | 29.6 |
| sl_bb_percent | 15.3 |
| sl_woba | 0.309 |
| sl_xwoba | 0.262 |
| sl_sweet_spot_percent | 27.1 |
| sl_barrel_batted_rate | 1.7 |
| sl_hard_hit_percent | 33.1 |
| sl_whiff_percent | 28.2 |
| sl_swing_percent | 44.3 |
| sv_pitch_count | 24.0 |
| sv_outs_recorded_est | 3.0 |
| sv_release_speed | 94.46666666666664 |
| sv_release_spin_rate | 2106.5 |
| sv_effective_speed | 94.69583333333333 |
| sv_launch_speed | 87.17777777777778 |
| sv_launch_angle | 28.33333333333333 |
| sv_woba_value | 5.05 |
| sv_woba_denom | 7.0 |
| sv_delta_run_exp | 2.059 |
| sv_delta_home_win_exp | -0.049 |
| sl_avg_best_speed | 78.231887586 |
| sl_avg_hyper_speed | 93.498076 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 0.000 | 0.000 | 0.000 | Pitching_BB | - | - | - | - |
| predicted_ER | 0.000 | 0.000 | 0.000 | Pitching_ER | - | - | - | - |
| predicted_H | 1.000 | 1.000 | 1.000 | Pitching_H | - | - | - | - |
| predicted_IP | 0.000 | 1.000 | 0.000 | Pitching_InningsPitched | - | - | - | - |
| predicted_SO | 1.000 | 1.000 | 1.000 | Pitching_SO | - | - | - | - |
| Impact Item | Value |
|---|---|
| From | pitcher_form_blend |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 1 |
| Boosted Metrics | 1 |
| Deboosted Metrics | 0 |
| Better Metrics | 1 |
| Worse Metrics | 0 |
| Biggest Boost | predicted_IP: 0.1000 -> 1.0000 (boost 0.9000, better) |
| Biggest Deboost | - |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 2 | current_json_final | 1 | 1 | 0 | 1 | 0 | predicted_IP: 0.1000 -> 1.0000 (boost 0.9000, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "pitcher",
"player_id": "623211",
"player_name": "Huascar Brazobán",
"position": "Middle Reliever",
"team": "CHW",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 0.1,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 1.0,
"predicted_R": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 0.1,
"after": 1.0,
"delta": 0.9,
"percent_delta": 9.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 0.1,
"after": 1.0,
"delta": 0.9,
"percent_delta": 9.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 0.1,
"after": 1.0,
"delta": 0.9,
"percent_delta": 9.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_IP",
"before": 0.1,
"after": 1.0,
"delta": 0.9,
"percent_delta": 9.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
}Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 0.000 | - |
| predicted_ER | 0.000 | - |
| predicted_H | 1.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 0.100 | - |
| predicted_SO | 1.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 5.000 | 1.000 | 1.000 | 1.000 | 3.000 | 0.000 | 1.8000 | 0.4000 | 0.2000 | 0.2000 | 0.2000 | 0.6000 | 0.0000 |
| last_10 | 0.35 | 10 | 10.200 | 1.000 | 4.000 | 4.000 | 10.000 | 0.000 | 0.8438 | 0.7500 | 0.0938 | 0.3750 | 0.3750 | 0.9375 | 0.0000 |
| season | 0.20 | 46 | 52.200 | 15.000 | 30.000 | 23.000 | 49.000 | 3.000 | 2.5633 | 1.0063 | 0.2848 | 0.5696 | 0.4367 | 0.9304 | 0.0570 |
| Metric | Value |
|---|---|
| predicted_BB | 0.2610 |
| predicted_ER | 0.2250 |
| predicted_ERA | 2.5615 |
| predicted_H | 0.4260 |
| predicted_HR | 0.0430 |
| predicted_IP | 0.2000 |
| predicted_SO | 0.6560 |
| predicted_WHIP | 0.8708 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 0.0000 | 0.2610 | 0.1349 | model_form_blend |
| predicted_ER | 0.0000 | 0.2250 | 0.1163 | model_form_blend |
| predicted_ERA | - | 2.5615 | 2.5615 | form_only |
| predicted_H | 1.0000 | 0.4260 | 0.7034 | model_form_blend |
| predicted_HR | 0.0000 | 0.0430 | 0.0222 | model_form_blend |
| predicted_IP | 0.1000 | 0.2000 | 0.2000 | model_form_blend |
| predicted_SO | 1.0000 | 0.6560 | 0.8222 | model_form_blend |
| predicted_WHIP | - | 0.8708 | 0.8708 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 0 |
| Season rows before report date | 0 |
| Report year | 2026 |
| Profile rows used | 46 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 1.0 |
| H | 1 |
| R | 0 |
| ER | 0 |
| BB | 0 |
| SO | 1 |
| HR | 0 |
| BF | 4 |
| Pitches | 16 |
No historical data found for this player before report date.
| Field | Value |
|---|---|
| Pitcher | Parker Messick |
| Role | Starter |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 0.5409 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | 0.0142 |
| Avg Velo | 90.1175 |
| Avg Spin | 2107.0954 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 6 |
| Pre ER | 3 |
| Pre H | 5 |
| Pre BB | 1 |
| Pre SO | 5 |
| Season ERA | 2.5599 |
| Season WHIP | 1.0626 |
| Role Avg IP | 5.8230 |
| Recent Avg IP | 5.0670 |
| Last Start IP | 3 |
{
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CLE",
"games": 162,
"wins": 85,
"losses": 77,
"win_pct": 0.5247,
"runs_scored": 678.0,
"runs_allowed": 667.0,
"run_differential": 11.0,
"run_differential_per_game": 0.0679,
"avg_runs_scored": 4.1852,
"avg_runs_allowed": 4.1173,
"offense_index": 0.9309,
"defense_index": 1.0919,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 3.2,
"run_differential": 21.0
},
"available": true,
"quality_score": 0.1343
},
"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.0655,
"defense_index": 1.0115,
"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.0063,
"offense_edge": -0.0691,
"opponent_offense_edge": 0.0655,
"defense_strength": 0.0919,
"opponent_defense_weakness": -0.0115,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0004,
"run_prevention": 1.001,
"strikeout": 0.9949
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "800048",
"profile": {
"available": true,
"pitcher_id": "800048",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 705.0,
"k_percent": 25.8,
"bb_percent": 6.6,
"woba": 0.274,
"xwoba": 0.275,
"sweet_spot_percent": 30.7,
"barrel_batted_rate": 5.0,
"hard_hit_percent": 34.3,
"avg_best_speed": 76.3542,
"avg_hyper_speed": 93.484,
"whiff_percent": 25.5,
"swing_percent": 48.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.7912,
"command_and_miss": 0.3829,
"regression_edge": -0.0286,
"xwoba_edge": 1.0571,
"barrel_edge": 0.4889,
"hard_hit_edge": 0.5143,
"whiff_edge": 0.0429,
"bb_edge": 0.65,
"pitch_design_score": 0.0142
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "800048",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 97,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 90.117481056101,
"release_spin_rate": 2107.0953611307837,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 90.117481056101,
"release_spin_rate": 2107.0953611307837,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 90.1175,
"release_spin_rate": 2107.0954,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0142,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.1013,
"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.5409,
"sample_weight": 1.0,
"run_prevention_factor": 0.954,
"strikeout_factor": 1.0229,
"walk_factor": 0.948,
"homer_factor": 0.9086,
"woba_minus_xwoba": -0.001,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "800048",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 2.0,
"factor": 0.954,
"adjusted": 2
},
"predicted_H": {
"original": 5.0,
"factor": 0.954,
"adjusted": 5
},
"predicted_BB": {
"original": 1.0,
"factor": 0.948,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 0.9086,
"adjusted": 1
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0229,
"adjusted": 6
}
}
}
}{
"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.2,
"ER": 16,
"H": 49,
"BB": 12,
"SO": 65,
"HR": 6,
"ERA": 2.5411764705882356,
"WHIP": 1.076470588235294,
"K9": 10.323529411764707,
"HR9": 0.9529411764705883,
"games_pitched": 10,
"quality_starts": 6,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 1,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-27T00:00:00"
}{
"available": true,
"pitcher_id": "800048",
"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": 90.117481056101,
"release_spin_rate": 2107.0953611307837,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 97,
"pitch_usage": 0.0,
"release_speed": 90.117481056101,
"release_spin_rate": 2107.0953611307837,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 90.1175,
"release_spin_rate": 2107.0954,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.0142,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.1013,
"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."
}{
"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": "800048",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 32,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 25.1,
"ER": 9.0,
"R": 9.0,
"H": 28.0,
"BB": 6.0,
"SO": 32.0,
"HR": 3.0,
"BF": 110.0,
"Pitches": 444.0
},
"per_game": {
"IP": 5.0,
"ER": 1.8,
"R": 1.8,
"H": 5.6,
"BB": 1.2,
"SO": 6.4,
"HR": 0.6,
"BF": 22.0,
"Pitches": 88.8
},
"rates": {
"ERA": 3.1974,
"WHIP": 1.3421,
"ER_per_IP": 0.35526,
"H_per_IP": 1.10526,
"BB_per_IP": 0.23684,
"SO_per_IP": 1.26316,
"HR_per_IP": 0.11842
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 56.2,
"ER": 16.0,
"R": 16.0,
"H": 49.0,
"BB": 12.0,
"SO": 65.0,
"HR": 6.0,
"BF": 231.0,
"Pitches": 940.0
},
"per_game": {
"IP": 5.2,
"ER": 1.6,
"R": 1.6,
"H": 4.9,
"BB": 1.2,
"SO": 6.5,
"HR": 0.6,
"BF": 23.1,
"Pitches": 94.0
},
"rates": {
"ERA": 2.5412,
"WHIP": 1.0765,
"ER_per_IP": 0.28235,
"H_per_IP": 0.86471,
"BB_per_IP": 0.21176,
"SO_per_IP": 1.14706,
"HR_per_IP": 0.10588
}
},
"season": {
"games": 32,
"totals": {
"IP": 186.1,
"ER": 53.0,
"R": 57.0,
"H": 149.0,
"BB": 49.0,
"SO": 193.0,
"HR": 17.0,
"BF": 747.0,
"Pitches": 2948.0
},
"per_game": {
"IP": 5.2,
"ER": 1.6562,
"R": 1.7812,
"H": 4.6562,
"BB": 1.5312,
"SO": 6.0312,
"HR": 0.5312,
"BF": 23.3438,
"Pitches": 92.125
},
"rates": {
"ERA": 2.5599,
"WHIP": 1.0626,
"ER_per_IP": 0.28444,
"H_per_IP": 0.79964,
"BB_per_IP": 0.26297,
"SO_per_IP": 1.03578,
"HR_per_IP": 0.09123
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 1.865,
"predicted_H": 5.252,
"predicted_BB": 1.38,
"predicted_SO": 6.238,
"predicted_HR": 0.621,
"predicted_ERA": 3.0793,
"predicted_WHIP": 1.2162
}
}{
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4071,
"form_weight": 0.5929,
"form_reliability": 0.8649,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 32.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8649,
"prior_weight": 0.1351
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.1,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 1.865,
"final": 2.327,
"source": "model_form_blend"
},
"predicted_H": {
"model": 5.0,
"form": 5.252,
"final": 5.1494,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 1.38,
"final": 1.2253,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 6.238,
"final": 5.327,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.621,
"final": 0.3682,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.0793,
"final": 3.0793,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2162,
"final": 1.2162,
"source": "form_only"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | Cade Smith |
| Role | Closer |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 0.7123 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | 0.2026 |
| Avg Velo | 93.4817 |
| Avg Spin | 1907.6155 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 1 |
| Pre ER | 0 |
| Pre H | 0 |
| Pre BB | 0 |
| Pre SO | 0 |
| Season ERA | 1.9459 |
| Season WHIP | 0.9595 |
| Role Avg IP | 1.0720 |
| Recent Avg IP | 1 |
| Last Start IP | 0 |
{
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CLE",
"games": 162,
"wins": 85,
"losses": 77,
"win_pct": 0.5247,
"runs_scored": 678.0,
"runs_allowed": 667.0,
"run_differential": 11.0,
"run_differential_per_game": 0.0679,
"avg_runs_scored": 4.1852,
"avg_runs_allowed": 4.1173,
"offense_index": 0.9309,
"defense_index": 1.0919,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 3.2,
"run_differential": 21.0
},
"available": true,
"quality_score": 0.1343
},
"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.0655,
"defense_index": 1.0115,
"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.0063,
"offense_edge": -0.0691,
"opponent_offense_edge": 0.0655,
"defense_strength": 0.0919,
"opponent_defense_weakness": -0.0115,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0004,
"run_prevention": 1.001,
"strikeout": 0.9949
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "671922",
"profile": {
"available": true,
"pitcher_id": "671922",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 267.0,
"k_percent": 36.3,
"bb_percent": 7.8,
"woba": 0.241,
"xwoba": 0.261,
"sweet_spot_percent": 35.4,
"barrel_batted_rate": 8.7,
"hard_hit_percent": 42.8,
"avg_best_speed": 82.0536,
"avg_hyper_speed": 94.6537,
"whiff_percent": 34.5,
"swing_percent": 49.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.6728,
"command_and_miss": 1.4479,
"regression_edge": -0.5714,
"xwoba_edge": 1.4571,
"barrel_edge": -0.3333,
"hard_hit_edge": -0.7,
"whiff_edge": 1.3286,
"bb_edge": 0.35,
"pitch_design_score": 0.2026
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "671922",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 15,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 15,
"pitch_usage": 0.0,
"release_speed": 93.48172572718366,
"release_spin_rate": 1907.615515292579,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 15,
"pitch_usage": 0.0,
"release_speed": 93.48172572718366,
"release_spin_rate": 1907.615515292579,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 93.4817,
"release_spin_rate": 1907.6155,
"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.2026,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.447,
"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.7123,
"sample_weight": 1.0,
"run_prevention_factor": 0.9395,
"strikeout_factor": 1.1343,
"walk_factor": 0.972,
"homer_factor": 1.011,
"woba_minus_xwoba": -0.02,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "671922",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9395,
"adjusted": 0
},
"predicted_H": {
"original": 1.0,
"factor": 0.9395,
"adjusted": 1
},
"predicted_BB": {
"original": 0.0,
"factor": 0.972,
"adjusted": 0
},
"predicted_HR": {
"original": 0.0,
"factor": 1.011,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 1.1343,
"adjusted": 3
}
}
}
}{
"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": 12.0,
"ER": 0,
"H": 2,
"BB": 2,
"SO": 19,
"HR": 0,
"ERA": 0.0,
"WHIP": 0.3333333333333333,
"K9": 14.25,
"HR9": 0.0,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": true,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-26T00:00:00"
}{
"available": true,
"pitcher_id": "671922",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 15,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 15,
"pitch_usage": 0.0,
"release_speed": 93.48172572718366,
"release_spin_rate": 1907.615515292579,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 15,
"pitch_usage": 0.0,
"release_speed": 93.48172572718366,
"release_spin_rate": 1907.615515292579,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 93.4817,
"release_spin_rate": 1907.6155,
"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.2026,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.447,
"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."
}{
"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": 15.251,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7531,
"prior_weight": 0.2469
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "671922",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 69,
"reference_playing_time": 1.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 5.0,
"ER": 0.0,
"R": 0.0,
"H": 1.0,
"BB": 1.0,
"SO": 9.0,
"HR": 0.0,
"BF": 17.0,
"Pitches": 70.0
},
"per_game": {
"IP": 1.0,
"ER": 0.0,
"R": 0.0,
"H": 0.2,
"BB": 0.2,
"SO": 1.8,
"HR": 0.0,
"BF": 3.4,
"Pitches": 14.0
},
"rates": {
"ERA": 0.0,
"WHIP": 0.4,
"ER_per_IP": 0.0,
"H_per_IP": 0.2,
"BB_per_IP": 0.2,
"SO_per_IP": 1.8,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 12.0,
"ER": 0.0,
"R": 0.0,
"H": 2.0,
"BB": 2.0,
"SO": 19.0,
"HR": 0.0,
"BF": 40.0,
"Pitches": 156.0
},
"per_game": {
"IP": 1.1,
"ER": 0.0,
"R": 0.0,
"H": 0.2,
"BB": 0.2,
"SO": 1.9,
"HR": 0.0,
"BF": 4.0,
"Pitches": 15.6
},
"rates": {
"ERA": 0.0,
"WHIP": 0.3333,
"ER_per_IP": 0.0,
"H_per_IP": 0.16667,
"BB_per_IP": 0.16667,
"SO_per_IP": 1.58333,
"HR_per_IP": 0.0
}
},
"season": {
"games": 69,
"totals": {
"IP": 74.0,
"ER": 16.0,
"R": 20.0,
"H": 48.0,
"BB": 23.0,
"SO": 107.0,
"HR": 5.0,
"BF": 295.0,
"Pitches": 1238.0
},
"per_game": {
"IP": 1.0,
"ER": 0.2319,
"R": 0.2899,
"H": 0.6957,
"BB": 0.3333,
"SO": 1.5507,
"HR": 0.0725,
"BF": 4.2754,
"Pitches": 17.942
},
"rates": {
"ERA": 1.9459,
"WHIP": 0.9595,
"ER_per_IP": 0.21622,
"H_per_IP": 0.64865,
"BB_per_IP": 0.31081,
"SO_per_IP": 1.44595,
"HR_per_IP": 0.06757
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 1.0,
"predicted_ER": 0.173,
"predicted_H": 0.492,
"predicted_BB": 0.274,
"predicted_SO": 1.605,
"predicted_HR": 0.051,
"predicted_ERA": 1.4312,
"predicted_WHIP": 0.7046
}
}{
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4543,
"form_weight": 0.5457,
"form_reliability": 0.7531,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.251,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7531,
"prior_weight": 0.2469
},
"applied_metrics": {
"predicted_IP": {
"model": 1.0,
"form": 1.0,
"final": 1.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 0.173,
"final": 0.0944,
"source": "model_form_blend"
},
"predicted_H": {
"model": 0.0,
"form": 0.492,
"final": 0.2685,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 0.274,
"final": 0.1495,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 0.0,
"form": 1.605,
"final": 0.8758,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.051,
"final": 0.0278,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 1.4312,
"final": 1.4312,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.7046,
"final": 0.7046,
"source": "form_only"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | Erik Sabrowski |
| Role | Middle Reliever (High Leverage) |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 0.5594 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | 0.0383 |
| Avg Velo | 90.5485 |
| Avg Spin | 2569.9294 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 2 |
| Pre ER | 1 |
| Pre H | 1 |
| Pre BB | 1 |
| Pre SO | 0 |
| Season ERA | 2.4207 |
| Season WHIP | 1.0552 |
| Role Avg IP | 0.8330 |
| Recent Avg IP | 0.9330 |
| Last Start IP | 0 |
{
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CLE",
"games": 162,
"wins": 85,
"losses": 77,
"win_pct": 0.5247,
"runs_scored": 678.0,
"runs_allowed": 667.0,
"run_differential": 11.0,
"run_differential_per_game": 0.0679,
"avg_runs_scored": 4.1852,
"avg_runs_allowed": 4.1173,
"offense_index": 0.9309,
"defense_index": 1.0919,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 3.2,
"run_differential": 21.0
},
"available": true,
"quality_score": 0.1343
},
"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.0655,
"defense_index": 1.0115,
"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.0063,
"offense_edge": -0.0691,
"opponent_offense_edge": 0.0655,
"defense_strength": 0.0919,
"opponent_defense_weakness": -0.0115,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0004,
"run_prevention": 1.001,
"strikeout": 0.9949
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "681870",
"profile": {
"available": true,
"pitcher_id": "681870",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 180.0,
"k_percent": 37.4,
"bb_percent": 15.3,
"woba": 0.258,
"xwoba": 0.251,
"sweet_spot_percent": 39.4,
"barrel_batted_rate": 6.5,
"hard_hit_percent": 34.0,
"avg_best_speed": 79.9885,
"avg_hyper_speed": 93.7378,
"whiff_percent": 30.8,
"swing_percent": 46.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.9012,
"command_and_miss": 0.9586,
"regression_edge": 0.2,
"xwoba_edge": 1.7429,
"barrel_edge": 0.1556,
"hard_hit_edge": 0.5571,
"whiff_edge": 0.8,
"bb_edge": -1.525,
"pitch_design_score": 0.0383
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "681870",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 12,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 12,
"pitch_usage": 0.0,
"release_speed": 90.54853071894294,
"release_spin_rate": 2569.9294048098436,
"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": 12,
"pitch_usage": 0.0,
"release_speed": 90.54853071894294,
"release_spin_rate": 2569.9294048098436,
"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.5485,
"release_spin_rate": 2569.9294,
"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.0383,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.2738,
"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.5594,
"sample_weight": 0.72,
"run_prevention_factor": 0.9525,
"strikeout_factor": 1.086,
"walk_factor": 1.0878,
"homer_factor": 0.9373,
"woba_minus_xwoba": 0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "681870",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9658,
"adjusted": 0
},
"predicted_H": {
"original": 0.0,
"factor": 0.9658,
"adjusted": 0
},
"predicted_BB": {
"original": 1.0,
"factor": 1.0632,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9549,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 1.0619,
"adjusted": 3
}
}
}
}{
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 9.1,
"ER": 1,
"H": 2,
"BB": 6,
"SO": 11,
"HR": 0,
"ERA": 0.9642857142857142,
"WHIP": 0.8571428571428571,
"K9": 10.607142857142856,
"HR9": 0.0,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": true,
"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"
}{
"available": true,
"pitcher_id": "681870",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 12,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 12,
"pitch_usage": 0.0,
"release_speed": 90.54853071894294,
"release_spin_rate": 2569.9294048098436,
"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": 12,
"pitch_usage": 0.0,
"release_speed": 90.54853071894294,
"release_spin_rate": 2569.9294048098436,
"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.5485,
"release_spin_rate": 2569.9294,
"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.0383,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.2738,
"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."
}{
"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": 9.961,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6658,
"prior_weight": 0.3342
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "681870",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 58,
"reference_playing_time": 1.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 4.2,
"ER": 0.0,
"R": 0.0,
"H": 1.0,
"BB": 5.0,
"SO": 8.0,
"HR": 0.0,
"BF": 20.0,
"Pitches": 91.0
},
"per_game": {
"IP": 1.0,
"ER": 0.0,
"R": 0.0,
"H": 0.2,
"BB": 1.0,
"SO": 1.6,
"HR": 0.0,
"BF": 4.0,
"Pitches": 18.2
},
"rates": {
"ERA": 0.0,
"WHIP": 1.2857,
"ER_per_IP": 0.0,
"H_per_IP": 0.21429,
"BB_per_IP": 1.07143,
"SO_per_IP": 1.71429,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 9.1,
"ER": 1.0,
"R": 1.0,
"H": 2.0,
"BB": 6.0,
"SO": 11.0,
"HR": 0.0,
"BF": 37.0,
"Pitches": 135.0
},
"per_game": {
"IP": 1.0,
"ER": 0.1,
"R": 0.1,
"H": 0.2,
"BB": 0.6,
"SO": 1.1,
"HR": 0.0,
"BF": 3.7,
"Pitches": 13.5
},
"rates": {
"ERA": 0.9643,
"WHIP": 0.8571,
"ER_per_IP": 0.10714,
"H_per_IP": 0.21429,
"BB_per_IP": 0.64286,
"SO_per_IP": 1.17857,
"HR_per_IP": 0.0
}
},
"season": {
"games": 58,
"totals": {
"IP": 48.1,
"ER": 13.0,
"R": 15.0,
"H": 24.0,
"BB": 27.0,
"SO": 76.0,
"HR": 3.0,
"BF": 197.0,
"Pitches": 801.0
},
"per_game": {
"IP": 0.2,
"ER": 0.2241,
"R": 0.2586,
"H": 0.4138,
"BB": 0.4655,
"SO": 1.3103,
"HR": 0.0517,
"BF": 3.3966,
"Pitches": 13.8103
},
"rates": {
"ERA": 2.4207,
"WHIP": 1.0552,
"ER_per_IP": 0.26897,
"H_per_IP": 0.49655,
"BB_per_IP": 0.55862,
"SO_per_IP": 1.57241,
"HR_per_IP": 0.06207
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 1.0,
"predicted_ER": 0.222,
"predicted_H": 0.487,
"predicted_BB": 0.642,
"predicted_SO": 1.251,
"predicted_HR": 0.055,
"predicted_ERA": 2.0875,
"predicted_WHIP": 1.1811
}
}{
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4912,
"form_weight": 0.5088,
"form_reliability": 0.6658,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 9.961,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6658,
"prior_weight": 0.3342
},
"applied_metrics": {
"predicted_IP": {
"model": 1.0,
"form": 1.0,
"final": 1.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 0.222,
"final": 0.6042,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 0.487,
"final": 0.739,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 0.642,
"final": 0.8178,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 1.251,
"final": 1.1277,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.055,
"final": 0.028,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.0875,
"final": 2.0875,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1811,
"final": 1.1811,
"source": "form_only"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | Hunter Gaddis |
| Role | Setup Man |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 0.1311 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | -0.0439 |
| Avg Velo | 89.0803 |
| Avg Spin | 2261.9913 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 0 |
| Pre ER | 0 |
| Pre H | 1 |
| Pre BB | 1 |
| Pre SO | 0 |
| Season ERA | 2.8343 |
| Season WHIP | 1.2099 |
| Role Avg IP | 0.9000 |
| Recent Avg IP | 0.9330 |
| Last Start IP | 0 |
{
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "CLE",
"games": 162,
"wins": 85,
"losses": 77,
"win_pct": 0.5247,
"runs_scored": 678.0,
"runs_allowed": 667.0,
"run_differential": 11.0,
"run_differential_per_game": 0.0679,
"avg_runs_scored": 4.1852,
"avg_runs_allowed": 4.1173,
"offense_index": 0.9309,
"defense_index": 1.0919,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 5.3,
"avg_runs_allowed": 3.2,
"run_differential": 21.0
},
"available": true,
"quality_score": 0.1343
},
"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.0655,
"defense_index": 1.0115,
"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.0063,
"offense_edge": -0.0691,
"opponent_offense_edge": 0.0655,
"defense_strength": 0.0919,
"opponent_defense_weakness": -0.0115,
"recent_win_pct_edge": 0.1
},
"player_factors": {
"ip": 1.0004,
"run_prevention": 1.001,
"strikeout": 0.9949
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "683769",
"profile": {
"available": true,
"pitcher_id": "683769",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 230.0,
"k_percent": 22.2,
"bb_percent": 8.6,
"woba": 0.3,
"xwoba": 0.311,
"sweet_spot_percent": 33.7,
"barrel_batted_rate": 7.5,
"hard_hit_percent": 29.9,
"avg_best_speed": 75.513,
"avg_hyper_speed": 92.3528,
"whiff_percent": 29.5,
"swing_percent": 51.7
},
"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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.2002,
"command_and_miss": 0.2514,
"regression_edge": -0.3143,
"xwoba_edge": 0.0286,
"barrel_edge": -0.0667,
"hard_hit_edge": 1.1429,
"whiff_edge": 0.6143,
"bb_edge": 0.15,
"pitch_design_score": -0.0439
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "683769",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 16,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 16,
"pitch_usage": 0.0,
"release_speed": 89.08032665081826,
"release_spin_rate": 2261.9912860002064,
"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": 16,
"pitch_usage": 0.0,
"release_speed": 89.08032665081826,
"release_spin_rate": 2261.9912860002064,
"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.0803,
"release_spin_rate": 2261.9913,
"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.0439,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3135,
"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.1311,
"sample_weight": 0.92,
"run_prevention_factor": 0.9889,
"strikeout_factor": 1.0231,
"walk_factor": 0.989,
"homer_factor": 0.9621,
"woba_minus_xwoba": -0.011,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "683769",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9898,
"adjusted": 0
},
"predicted_H": {
"original": 1.0,
"factor": 0.9898,
"adjusted": 1
},
"predicted_BB": {
"original": 0.0,
"factor": 0.9899,
"adjusted": 0
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9651,
"adjusted": 0
},
"predicted_SO": {
"original": 2.0,
"factor": 1.0213,
"adjusted": 2
}
}
}
}{
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 9.2,
"ER": 4,
"H": 13,
"BB": 2,
"SO": 9,
"HR": 2,
"ERA": 3.724137931034483,
"WHIP": 1.5517241379310345,
"K9": 8.379310344827587,
"HR9": 1.8620689655172415,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-25T00:00:00"
}{
"available": true,
"pitcher_id": "683769",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 16,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 16,
"pitch_usage": 0.0,
"release_speed": 89.08032665081826,
"release_spin_rate": 2261.9912860002064,
"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": 16,
"pitch_usage": 0.0,
"release_speed": 89.08032665081826,
"release_spin_rate": 2261.9912860002064,
"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.0803,
"release_spin_rate": 2261.9913,
"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.0439,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.3135,
"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."
}{
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.434,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7132,
"prior_weight": 0.2868
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "683769",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 67,
"reference_playing_time": 1.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 4.2,
"ER": 3.0,
"R": 3.0,
"H": 8.0,
"BB": 1.0,
"SO": 4.0,
"HR": 2.0,
"BF": 21.0,
"Pitches": 78.0
},
"per_game": {
"IP": 1.0,
"ER": 0.6,
"R": 0.6,
"H": 1.6,
"BB": 0.2,
"SO": 0.8,
"HR": 0.4,
"BF": 4.2,
"Pitches": 15.6
},
"rates": {
"ERA": 5.7857,
"WHIP": 1.9286,
"ER_per_IP": 0.64286,
"H_per_IP": 1.71429,
"BB_per_IP": 0.21429,
"SO_per_IP": 0.85714,
"HR_per_IP": 0.42857
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 9.2,
"ER": 4.0,
"R": 4.0,
"H": 13.0,
"BB": 2.0,
"SO": 9.0,
"HR": 2.0,
"BF": 42.0,
"Pitches": 160.0
},
"per_game": {
"IP": 1.0,
"ER": 0.4,
"R": 0.4,
"H": 1.3,
"BB": 0.2,
"SO": 0.9,
"HR": 0.2,
"BF": 4.2,
"Pitches": 16.0
},
"rates": {
"ERA": 3.7241,
"WHIP": 1.5517,
"ER_per_IP": 0.41379,
"H_per_IP": 1.34483,
"BB_per_IP": 0.2069,
"SO_per_IP": 0.93103,
"HR_per_IP": 0.2069
}
},
"season": {
"games": 67,
"totals": {
"IP": 60.1,
"ER": 19.0,
"R": 19.0,
"H": 53.0,
"BB": 20.0,
"SO": 57.0,
"HR": 7.0,
"BF": 253.0,
"Pitches": 967.0
},
"per_game": {
"IP": 1.0,
"ER": 0.2836,
"R": 0.2836,
"H": 0.791,
"BB": 0.2985,
"SO": 0.8507,
"HR": 0.1045,
"BF": 3.7761,
"Pitches": 14.4328
},
"rates": {
"ERA": 2.8343,
"WHIP": 1.2099,
"ER_per_IP": 0.31492,
"H_per_IP": 0.87845,
"BB_per_IP": 0.33149,
"SO_per_IP": 0.94475,
"HR_per_IP": 0.11602
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 1.0,
"predicted_ER": 0.501,
"predicted_H": 1.293,
"predicted_BB": 0.276,
"predicted_SO": 0.91,
"predicted_HR": 0.248,
"predicted_ERA": 4.5128,
"predicted_WHIP": 1.5699
}
}{
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4712,
"form_weight": 0.5288,
"form_reliability": 0.7132,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.434,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7132,
"prior_weight": 0.2868
},
"applied_metrics": {
"predicted_IP": {
"model": 1.0,
"form": 1.0,
"final": 1.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 0.501,
"final": 0.2649,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 1.293,
"final": 1.1549,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 0.276,
"final": 0.6171,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 0.0,
"form": 0.91,
"final": 0.4812,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.248,
"final": 0.1311,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.5128,
"final": 4.5128,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.5699,
"final": 1.5699,
"source": "form_only"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.145 | 0.000 | 0.000 | Hitting_2B | 0.162 | 0.000 | -0.162 | 0.000 |
| predicted_3B | 0.021 | 0.000 | 0.000 | Hitting_3B | 0.010 | 1.000 | -0.010 | -1.000 |
| predicted_AB | 3.628 | 5.000 | 4.000 | Hitting_AB | 3.723 | 4.000 | 1.277 | 1.000 |
| predicted_AVG | 0.283 | 0.200 | 0.250 | Hitting_AVG | 0.285 | 0.750 | -0.085 | -0.550 |
| predicted_BB | 0.566 | 0.000 | 1.000 | Hitting_BB | 0.591 | 1.000 | -0.591 | -1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.023 | 0.000 | -0.023 | 0.000 |
| predicted_H | 1.028 | 1.000 | 1.000 | Hitting_H | 1.061 | 3.000 | -0.061 | -2.000 |
| predicted_HR | 0.021 | 0.000 | 0.000 | Hitting_HR | 0.023 | 0.000 | -0.023 | 0.000 |
| predicted_OBP | 0.380 | 0.200 | 0.400 | Hitting_OBP | 0.384 | 0.800 | -0.184 | -0.600 |
| predicted_R | 0.538 | 0.000 | 1.000 | Hitting_R | 0.606 | 0.000 | -0.606 | 0.000 |
| predicted_RBI | 0.221 | 0.000 | 0.000 | Hitting_RBI | 0.239 | 1.000 | -0.239 | -1.000 |
| predicted_SLG | 0.352 | 0.200 | 0.250 | Hitting_SLG | 0.352 | 1.250 | -0.152 | -1.050 |
| predicted_SO | 0.393 | 1.000 | 0.000 | Hitting_SO | 0.424 | 0.000 | 0.576 | 1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 9 |
| Boosted Metrics | 5 |
| Deboosted Metrics | 4 |
| Better Metrics | 4 |
| Worse Metrics | 5 |
| Biggest Boost | predicted_AB: 3.6280 -> 5.0000 (boost 1.3720, better) |
| Biggest Deboost | predicted_BB: 0.5660 -> 0.0000 (deboost -0.5660, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 4 | 4 | 0 | 4 | 0 | predicted_BB: 0.5660 -> 0.6245 (boost 0.0585, better) | - | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 0 | 0 | 0 | 0 | 0 | - | - | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 6 | 2 | 4 | 3 | 3 | predicted_BB: 0.6229 -> 1.0000 (boost 0.3771, better) | predicted_SO: 0.3957 -> 0.0000 (deboost -0.3957, better) | AB rounded to 4 (raw=3.63), rates preserved: AVG=0.251 HR/AB=0.005 |
| 6 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5191 -> 1.0000 (boost 0.4809, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 5 | 3 | 2 | 2 | 3 | predicted_SO: 0.0000 -> 0.5559 (boost 0.5559, worse) | predicted_BB: 1.0000 -> 0.5881 (deboost -0.4119, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 5 | 2 | 3 | 3 | 2 | predicted_BB: 0.5881 -> 1.0000 (boost 0.4119, better) | predicted_SO: 0.5559 -> 0.0000 (deboost -0.5559, better) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 3 | 0 | 3 | 0 | 3 | - | predicted_AVG: 0.2896 -> 0.2280 (deboost -0.0616, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 4 | 2 | 2 | 1 | 3 | predicted_AB: 4.0000 -> 5.0000 (boost 1.0000, better) | predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_AVG: 0.2280 -> 0.2896 (boost 0.0616, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "680757",
"player_name": "Steven Kwan",
"position": "CF",
"team": "CLE",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.145,
"predicted_3B": 0.021,
"predicted_AB": 3.628,
"predicted_AVG": 0.283,
"predicted_BB": 0.566,
"predicted_H": 1.028,
"predicted_HR": 0.021,
"predicted_OBP": 0.38,
"predicted_R": 0.538,
"predicted_RBI": 0.221,
"predicted_SLG": 0.352,
"predicted_SO": 0.393
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1214,
"predicted_3B": 0.0424,
"predicted_AB": 3.6267,
"predicted_AVG": 0.2907,
"predicted_BB": 0.6245,
"predicted_H": 1.0551,
"predicted_HBP": 0.013,
"predicted_HR": 0.0197,
"predicted_OBP": 0.3941,
"predicted_R": 0.5227,
"predicted_RBI": 0.2223,
"predicted_SLG": 0.3638,
"predicted_SO": 0.3947
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.145,
"after": 0.1214,
"delta": -0.0236,
"percent_delta": -0.1628,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.021,
"after": 0.0424,
"delta": 0.0214,
"percent_delta": 1.019,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.628,
"after": 3.6267,
"delta": -0.0013,
"percent_delta": -0.0004,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.283,
"after": 0.2907,
"delta": 0.0077,
"percent_delta": 0.0272,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.566,
"after": 0.6245,
"delta": 0.0585,
"percent_delta": 0.1034,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.028,
"after": 1.0551,
"delta": 0.0271,
"percent_delta": 0.0264,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.021,
"after": 0.0197,
"delta": -0.0013,
"percent_delta": -0.0619,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.38,
"after": 0.3941,
"delta": 0.0141,
"percent_delta": 0.0371,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.538,
"after": 0.5227,
"delta": -0.0153,
"percent_delta": -0.0284,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.221,
"after": 0.2223,
"delta": 0.0013,
"percent_delta": 0.0059,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.352,
"after": 0.3638,
"delta": 0.0118,
"percent_delta": 0.0335,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.393,
"after": 0.3947,
"delta": 0.0017,
"percent_delta": 0.0043,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 4,
"deboosted_metrics": 0,
"better_metrics": 4,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.566,
"after": 0.6245,
"delta": 0.0585,
"percent_delta": 0.1034,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 145
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1214,
"predicted_3B": 0.0424,
"predicted_AB": 3.6267,
"predicted_AVG": 0.2896,
"predicted_BB": 0.6229,
"predicted_H": 1.0502,
"predicted_HBP": 0.013,
"predicted_HR": 0.0195,
"predicted_OBP": 0.3937,
"predicted_R": 0.5191,
"predicted_RBI": 0.2208,
"predicted_SLG": 0.3626,
"predicted_SO": 0.3957
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1214,
"after": 0.1214,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0424,
"after": 0.0424,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.6267,
"after": 3.6267,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2907,
"after": 0.2896,
"delta": -0.0011,
"percent_delta": -0.0038,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.6245,
"after": 0.6229,
"delta": -0.0016,
"percent_delta": -0.0026,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0551,
"after": 1.0502,
"delta": -0.0049,
"percent_delta": -0.0046,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.013,
"after": 0.013,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0197,
"after": 0.0195,
"delta": -0.0002,
"percent_delta": -0.0102,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3941,
"after": 0.3937,
"delta": -0.0004,
"percent_delta": -0.001,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.5227,
"after": 0.5191,
"delta": -0.0036,
"percent_delta": -0.0069,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.2223,
"after": 0.2208,
"delta": -0.0015,
"percent_delta": -0.0067,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3638,
"after": 0.3626,
"delta": -0.0012,
"percent_delta": -0.0033,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.3947,
"after": 0.3957,
"delta": 0.001,
"percent_delta": 0.0025,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=3.63), rates preserved: AVG=0.251 HR/AB=0.005",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1214,
"after": 0.0,
"delta": -0.1214,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0424,
"after": 0.0,
"delta": -0.0424,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.6267,
"after": 4.0,
"delta": 0.3733,
"percent_delta": 0.1029,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.6229,
"after": 1.0,
"delta": 0.3771,
"percent_delta": 0.6054,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0502,
"after": 1.0,
"delta": -0.0502,
"percent_delta": -0.0478,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.013,
"after": 0.0,
"delta": -0.013,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0195,
"after": 0.0,
"delta": -0.0195,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.2208,
"after": 0.0,
"delta": -0.2208,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.3957,
"after": 0.0,
"delta": -0.3957,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 2,
"deboosted_metrics": 4,
"better_metrics": 3,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.6229,
"after": 1.0,
"delta": 0.3771,
"percent_delta": 0.6054,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 0.3957,
"after": 0.0,
"delta": -0.3957,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.5191,
"after": 1.0,
"delta": 0.4809,
"percent_delta": 0.9264,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.5191,
"after": 1.0,
"delta": 0.4809,
"percent_delta": 0.9264,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.16,
"predicted_3B": 0.019,
"predicted_BB": 0.5881,
"predicted_H": 0.8852,
"predicted_HR": 0.0472,
"predicted_RBI": 0.298,
"predicted_SO": 0.5559
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.16,
"delta": 0.16,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.019,
"delta": 0.019,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 1.0,
"after": 0.5881,
"delta": -0.4119,
"percent_delta": -0.4119,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.8852,
"delta": -0.1148,
"percent_delta": -0.1148,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0472,
"delta": 0.0472,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.298,
"delta": 0.298,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.5559,
"delta": 0.5559,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 3,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.0,
"after": 0.5559,
"delta": 0.5559,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 1.0,
"after": 0.5881,
"delta": -0.4119,
"percent_delta": -0.4119,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.16,
"after": 0.0,
"delta": -0.16,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.019,
"after": 0.0,
"delta": -0.019,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.5881,
"after": 1.0,
"delta": 0.4119,
"percent_delta": 0.7004,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8852,
"after": 1.0,
"delta": 0.1148,
"percent_delta": 0.1297,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0472,
"after": 0.0,
"delta": -0.0472,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.298,
"after": 0.0,
"delta": -0.298,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.5559,
"after": 0.0,
"delta": -0.5559,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 2,
"deboosted_metrics": 3,
"better_metrics": 3,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.5881,
"after": 1.0,
"delta": 0.4119,
"percent_delta": 0.7004,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 0.5559,
"after": 0.0,
"delta": -0.5559,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.228,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.335,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.316,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2896,
"after": 0.228,
"delta": -0.0616,
"percent_delta": -0.2127,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3937,
"after": 0.335,
"delta": -0.0587,
"percent_delta": -0.1491,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3626,
"after": 0.316,
"delta": -0.0466,
"percent_delta": -0.1285,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_AVG",
"before": 0.2896,
"after": 0.228,
"delta": -0.0616,
"percent_delta": -0.2127,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 5.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 2,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_AB",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 5.0,
"predicted_AVG": 0.2896,
"predicted_BB": 0.0,
"predicted_CF": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3937,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.3626,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.228,
"after": 0.2896,
"delta": 0.0616,
"percent_delta": 0.2701,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.335,
"after": 0.3937,
"delta": 0.0587,
"percent_delta": 0.1753,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.316,
"after": 0.3626,
"delta": 0.0466,
"percent_delta": 0.1474,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_AVG",
"before": 0.228,
"after": 0.2896,
"delta": 0.0616,
"percent_delta": 0.2701,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.145,
"after": 0.0,
"delta": -0.145,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.021,
"after": 0.0,
"delta": -0.021,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.628,
"after": 5.0,
"delta": 1.372,
"percent_delta": 0.3782,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.283,
"after": 0.2896,
"delta": 0.0066,
"percent_delta": 0.0233,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.566,
"after": 0.0,
"delta": -0.566,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.028,
"after": 1.0,
"delta": -0.028,
"percent_delta": -0.0272,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.021,
"after": 0.0,
"delta": -0.021,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.38,
"after": 0.3937,
"delta": 0.0137,
"percent_delta": 0.0361,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.538,
"after": 0.0,
"delta": -0.538,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.221,
"after": 0.0,
"delta": -0.221,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.352,
"after": 0.3626,
"delta": 0.0106,
"percent_delta": 0.0301,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.393,
"after": 1.0,
"delta": 0.607,
"percent_delta": 1.5445,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 9,
"boosted_metrics": 5,
"deboosted_metrics": 4,
"better_metrics": 4,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.628,
"after": 5.0,
"delta": 1.372,
"percent_delta": 0.3782,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.566,
"after": 0.0,
"delta": -0.566,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.145 | - |
| predicted_3B | 0.021 | - |
| predicted_AB | 3.628 | - |
| predicted_AVG | 0.283 | - |
| predicted_BB | 0.566 | - |
| predicted_H | 1.028 | - |
| predicted_HR | 0.021 | - |
| predicted_OBP | 0.380 | - |
| predicted_R | 0.538 | - |
| predicted_RBI | 0.221 | - |
| predicted_SLG | 0.352 | - |
| predicted_SO | 0.393 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.121 | -0.024 |
| predicted_3B | 0.042 | 0.021 |
| predicted_AB | 3.627 | -0.001 |
| predicted_AVG | 0.291 | 0.008 |
| predicted_BB | 0.625 | 0.059 |
| predicted_H | 1.055 | 0.027 |
| predicted_HBP | 0.013 | - |
| predicted_HR | 0.020 | -0.001 |
| predicted_OBP | 0.394 | 0.014 |
| predicted_R | 0.523 | -0.015 |
| predicted_RBI | 0.222 | 0.001 |
| predicted_SLG | 0.364 | 0.012 |
| predicted_SO | 0.395 | 0.002 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.121 | 0.000 |
| predicted_3B | 0.042 | 0.000 |
| predicted_AB | 3.627 | 0.000 |
| predicted_AVG | 0.290 | -0.001 |
| predicted_BB | 0.623 | -0.002 |
| predicted_H | 1.050 | -0.005 |
| predicted_HBP | 0.013 | 0.000 |
| predicted_HR | 0.019 | -0.000 |
| predicted_OBP | 0.394 | -0.000 |
| predicted_R | 0.519 | -0.004 |
| predicted_RBI | 0.221 | -0.002 |
| predicted_SLG | 0.363 | -0.001 |
| predicted_SO | 0.396 | 0.001 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=3.63), rates preserved: AVG=0.251 HR/AB=0.005
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 1.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 0.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 0.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.160 | 0.160 |
| 3B | 0.019 | 0.019 |
| BB | 0.588 | -0.412 |
| H | 0.885 | -0.115 |
| HR | 0.047 | 0.047 |
| RBI | 0.298 | 0.298 |
| SO | 0.556 | 0.556 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.160 |
| 3B | 0.000 | -0.019 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 0.412 |
| H | 1.000 | 0.115 |
| HR | 0.000 | -0.047 |
| R | 1.000 | 0.000 |
| RBI | 0.000 | -0.298 |
| SO | 0.000 | -0.556 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.121 |
| predicted_3B | 0.000 | -0.042 |
| predicted_AB | 4.000 | 0.373 |
| predicted_AVG | 0.228 | -0.062 |
| predicted_BB | 1.000 | 0.377 |
| predicted_H | 1.000 | -0.050 |
| predicted_HR | 0.000 | -0.019 |
| predicted_OBP | 0.335 | -0.059 |
| predicted_R | 1.000 | 0.481 |
| predicted_RBI | 0.000 | -0.221 |
| predicted_SLG | 0.316 | -0.047 |
| predicted_SO | 0.000 | -0.396 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 5.000 | 1.000 |
| BB | 0.000 | -1.000 |
| CS | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | - |
| R | 0.000 | -1.000 |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 18.000 | 6.000 | 0.000 | 1.000 | 0.000 | 1.000 | 2.000 | 5.000 | 2.000 | 0.3333 | 0.4783 | 0.4444 | 0.3333 | 0.0000 | 0.0556 | 0.2778 | 0.1111 |
| last_10 | 0.20 | 10 | - | 36.000 | 12.000 | 0.000 | 1.000 | 0.000 | 2.000 | 5.000 | 9.000 | 3.000 | 0.3333 | 0.4667 | 0.3889 | 0.3333 | 0.0000 | 0.0556 | 0.2500 | 0.0833 |
| season | 0.60 | 145 | - | 526.000 | 149.000 | 21.000 | 3.000 | 3.000 | 32.000 | 78.000 | 82.000 | 57.000 | 0.2833 | 0.3811 | 0.3517 | 0.2833 | 0.0057 | 0.0608 | 0.1559 | 0.1084 |
| Metric | Value |
|---|---|
| predicted_2B | 0.0910 |
| predicted_3B | 0.0700 |
| predicted_AB | 3.6250 |
| predicted_AVG | 0.3007 |
| predicted_BB | 0.7000 |
| predicted_H | 1.0900 |
| predicted_HBP | 0.0130 |
| predicted_HR | 0.0180 |
| predicted_OBP | 0.4124 |
| predicted_R | 0.5030 |
| predicted_RBI | 0.2240 |
| predicted_SLG | 0.3791 |
| predicted_SO | 0.3970 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1450 | 0.0910 | 0.1214 | model_form_blend |
| predicted_3B | 0.0210 | 0.0700 | 0.0424 | model_form_blend |
| predicted_AB | 3.6280 | 3.6250 | 3.6267 | model_form_blend |
| predicted_AVG | 0.2830 | 0.3007 | 0.2907 | model_form_blend |
| predicted_BB | 0.5660 | 0.7000 | 0.6245 | model_form_blend |
| predicted_H | 1.0280 | 1.0900 | 1.0551 | model_form_blend |
| predicted_HBP | - | 0.0130 | 0.0130 | form_only |
| predicted_HR | 0.0210 | 0.0180 | 0.0197 | model_form_blend |
| predicted_OBP | 0.3800 | 0.4124 | 0.3941 | model_form_blend |
| predicted_R | 0.5380 | 0.5030 | 0.5227 | model_form_blend |
| predicted_RBI | 0.2210 | 0.2240 | 0.2223 | model_form_blend |
| predicted_SLG | 0.3520 | 0.3791 | 0.3638 | model_form_blend |
| predicted_SO | 0.3930 | 0.3970 | 0.3947 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 606 |
| Season rows before report date | 606 |
| Report year | 2026 |
| Profile rows used | 145 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 5 |
| AB | 5 |
| H | 1 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 1 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.75 |
| Hitting_BB | 1 |
| Hitting_GIDP | 0 |
| Hitting_H | 3 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 1 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 5 |
| Hitting_battingOrder | 1 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | CF-LF |
| gameID | 20260926_CLE@KC |
| game_type | full |
| mlbID | 680757 |
| playerID | 680757 |
| playerName | Steven Kwan |
| pos | LF |
| started | True |
| startingPosition | CF |
| team | CLE |
| teamID | 8 |
| game_date | 2026-09-26 |
| sl_k_percent | 9.7 |
| sl_bb_percent | 13.3 |
| sl_woba | 0.334 |
| sl_xwoba | 0.329 |
| sl_xba | 0.278 |
| sl_xslg | 0.343 |
| sl_sweet_spot_percent | 40.6 |
| sl_barrel_batted_rate | 0.4 |
| sl_hard_hit_percent | 10.5 |
| sl_exit_velocity_avg | 83.9 |
| sl_launch_angle_avg | 12.8 |
| sl_whiff_percent | 8.2 |
| sl_swing_percent | 35.7 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.165 | 0.000 | 1.000 | Hitting_2B | 0.246 | 0.000 | -0.246 | 0.000 |
| predicted_3B | 0.006 | 0.000 | 0.000 | Hitting_3B | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_AB | 3.797 | 4.000 | 4.000 | Hitting_AB | 3.912 | 3.000 | 0.088 | 1.000 |
| predicted_AVG | 0.240 | 0.000 | 0.250 | Hitting_AVG | 0.238 | 0.667 | -0.238 | -0.667 |
| predicted_BB | 0.215 | 0.000 | 0.000 | Hitting_BB | 0.398 | 1.000 | -0.398 | -1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_H | 0.911 | 0.000 | 1.000 | Hitting_H | 0.930 | 2.000 | -0.930 | -2.000 |
| predicted_HR | 0.146 | 0.000 | 0.000 | Hitting_HR | 0.146 | 1.000 | -0.146 | -1.000 |
| predicted_OBP | 0.281 | 0.000 | 0.250 | Hitting_OBP | 0.322 | 0.750 | -0.322 | -0.750 |
| predicted_R | 0.443 | 0.000 | 1.000 | Hitting_R | 0.526 | 1.000 | -0.526 | -1.000 |
| predicted_RBI | 0.589 | 0.000 | 1.000 | Hitting_RBI | 0.731 | 1.000 | -0.731 | -1.000 |
| predicted_SLG | 0.402 | 0.000 | 0.500 | Hitting_SLG | 0.413 | 1.667 | -0.413 | -1.667 |
| predicted_SO | 0.987 | 1.000 | 1.000 | Hitting_SO | 1.088 | 0.000 | -0.088 | 1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 8 |
| Boosted Metrics | 2 |
| Deboosted Metrics | 6 |
| Better Metrics | 2 |
| Worse Metrics | 6 |
| Biggest Boost | predicted_AB: 3.7970 -> 4.0000 (boost 0.2030, better) |
| Biggest Deboost | predicted_H: 0.9110 -> 0.0000 (deboost -0.9110, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 4 | 2 | 2 | 3 | 1 | predicted_BB: 0.2150 -> 0.2989 (boost 0.0839, better) | predicted_SO: 0.9870 -> 0.9179 (deboost -0.0691, better) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 0 | 0 | 0 | 0 | 0 | - | - | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 8 | 4 | 4 | 3 | 5 | predicted_RBI: 0.5337 -> 1.0000 (boost 0.4663, better) | predicted_BB: 0.2981 -> 0.0000 (deboost -0.2981, worse) | AB rounded to 4 (raw=3.80), rates preserved: AVG=0.207 HR/AB=0.038 |
| 6 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.4769 -> 0.0000 (deboost -0.4769, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 4 | 2 | 3 | 3 | predicted_BB: 0.0000 -> 0.3043 (boost 0.3043, better) | predicted_RBI: 1.0000 -> 0.5385 (deboost -0.4615, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 7 | 4 | 3 | 5 | 2 | predicted_R: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_BB: 0.3043 -> 0.0000 (deboost -0.3043, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 5 | 0 | 5 | 0 | 5 | - | predicted_2B: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 2 | 0 | 2 | 0 | 2 | - | predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_SLG: 0.3700 -> 0.4004 (boost 0.0304, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "666176",
"player_name": "Jo Adell",
"position": "DH",
"team": "CLE",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.165,
"predicted_3B": 0.006,
"predicted_AB": 3.797,
"predicted_AVG": 0.24,
"predicted_BB": 0.215,
"predicted_H": 0.911,
"predicted_HR": 0.146,
"predicted_OBP": 0.281,
"predicted_R": 0.443,
"predicted_RBI": 0.589,
"predicted_SLG": 0.402,
"predicted_SO": 0.987
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1628,
"predicted_3B": 0.0051,
"predicted_AB": 3.7808,
"predicted_AVG": 0.2406,
"predicted_BB": 0.2989,
"predicted_H": 0.9097,
"predicted_HBP": 0.066,
"predicted_HR": 0.1464,
"predicted_OBP": 0.2998,
"predicted_R": 0.4802,
"predicted_RBI": 0.5374,
"predicted_SLG": 0.4028,
"predicted_SO": 0.9179
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.165,
"after": 0.1628,
"delta": -0.0022,
"percent_delta": -0.0133,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.006,
"after": 0.0051,
"delta": -0.0009,
"percent_delta": -0.15,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.797,
"after": 3.7808,
"delta": -0.0162,
"percent_delta": -0.0043,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.24,
"after": 0.2406,
"delta": 0.0006,
"percent_delta": 0.0025,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.215,
"after": 0.2989,
"delta": 0.0839,
"percent_delta": 0.3902,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.911,
"after": 0.9097,
"delta": -0.0013,
"percent_delta": -0.0014,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.146,
"after": 0.1464,
"delta": 0.0004,
"percent_delta": 0.0027,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.281,
"after": 0.2998,
"delta": 0.0188,
"percent_delta": 0.0669,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.443,
"after": 0.4802,
"delta": 0.0372,
"percent_delta": 0.084,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.589,
"after": 0.5374,
"delta": -0.0516,
"percent_delta": -0.0876,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.402,
"after": 0.4028,
"delta": 0.0008,
"percent_delta": 0.002,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.987,
"after": 0.9179,
"delta": -0.0691,
"percent_delta": -0.07,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 2,
"deboosted_metrics": 2,
"better_metrics": 3,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.215,
"after": 0.2989,
"delta": 0.0839,
"percent_delta": 0.3902,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 0.987,
"after": 0.9179,
"delta": -0.0691,
"percent_delta": -0.07,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 158
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1628,
"predicted_3B": 0.0051,
"predicted_AB": 3.7808,
"predicted_AVG": 0.2395,
"predicted_BB": 0.2981,
"predicted_H": 0.9055,
"predicted_HBP": 0.066,
"predicted_HR": 0.1451,
"predicted_OBP": 0.2951,
"predicted_R": 0.4769,
"predicted_RBI": 0.5337,
"predicted_SLG": 0.4004,
"predicted_SO": 0.9203
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1628,
"after": 0.1628,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0051,
"after": 0.0051,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.7808,
"after": 3.7808,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2406,
"after": 0.2395,
"delta": -0.0011,
"percent_delta": -0.0046,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.2989,
"after": 0.2981,
"delta": -0.0008,
"percent_delta": -0.0027,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.9097,
"after": 0.9055,
"delta": -0.0042,
"percent_delta": -0.0046,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.066,
"after": 0.066,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1464,
"after": 0.1451,
"delta": -0.0013,
"percent_delta": -0.0089,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.2998,
"after": 0.2951,
"delta": -0.0047,
"percent_delta": -0.0157,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.4802,
"after": 0.4769,
"delta": -0.0033,
"percent_delta": -0.0069,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5374,
"after": 0.5337,
"delta": -0.0037,
"percent_delta": -0.0069,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4028,
"after": 0.4004,
"delta": -0.0024,
"percent_delta": -0.006,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.9179,
"after": 0.9203,
"delta": 0.0024,
"percent_delta": 0.0026,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=3.80), rates preserved: AVG=0.207 HR/AB=0.038",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1628,
"after": 0.0,
"delta": -0.1628,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0051,
"after": 0.0,
"delta": -0.0051,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.7808,
"after": 4.0,
"delta": 0.2192,
"percent_delta": 0.058,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.2981,
"after": 0.0,
"delta": -0.2981,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.9055,
"after": 1.0,
"delta": 0.0945,
"percent_delta": 0.1044,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.066,
"after": 0.0,
"delta": -0.066,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1451,
"after": 0.0,
"delta": -0.1451,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.5337,
"after": 1.0,
"delta": 0.4663,
"percent_delta": 0.8737,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.9203,
"after": 1.0,
"delta": 0.0797,
"percent_delta": 0.0866,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 8,
"boosted_metrics": 4,
"deboosted_metrics": 4,
"better_metrics": 3,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.5337,
"after": 1.0,
"delta": 0.4663,
"percent_delta": 0.8737,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.2981,
"after": 0.0,
"delta": -0.2981,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.4769,
"after": 0.0,
"delta": -0.4769,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_R",
"before": 0.4769,
"after": 0.0,
"delta": -0.4769,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1838,
"predicted_3B": 0.0109,
"predicted_BB": 0.3043,
"predicted_H": 0.8082,
"predicted_HR": 0.1285,
"predicted_RBI": 0.5385,
"predicted_SO": 1.1659
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1838,
"delta": 0.1838,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0109,
"delta": 0.0109,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.3043,
"delta": 0.3043,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.8082,
"delta": -0.1918,
"percent_delta": -0.1918,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1285,
"delta": 0.1285,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.5385,
"delta": -0.4615,
"percent_delta": -0.4615,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.1659,
"delta": 0.1659,
"percent_delta": 0.1659,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 3,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 0.3043,
"delta": 0.3043,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.5385,
"delta": -0.4615,
"percent_delta": -0.4615,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 1.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1838,
"after": 1.0,
"delta": 0.8162,
"percent_delta": 4.4407,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0109,
"after": 0.0,
"delta": -0.0109,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.3043,
"after": 0.0,
"delta": -0.3043,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8082,
"after": 1.0,
"delta": 0.1918,
"percent_delta": 0.2373,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1285,
"after": 0.0,
"delta": -0.1285,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.5385,
"after": 1.0,
"delta": 0.4615,
"percent_delta": 0.857,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.1659,
"after": 1.0,
"delta": -0.1659,
"percent_delta": -0.1423,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 4,
"deboosted_metrics": 3,
"better_metrics": 5,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.3043,
"after": 0.0,
"delta": -0.3043,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.213,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.278,
"predicted_R": 0.0,
"predicted_RBI": 1.0,
"predicted_SLG": 0.37,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2395,
"after": 0.213,
"delta": -0.0265,
"percent_delta": -0.1106,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.2951,
"after": 0.278,
"delta": -0.0171,
"percent_delta": -0.0579,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4004,
"after": 0.37,
"delta": -0.0304,
"percent_delta": -0.0759,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 0,
"deboosted_metrics": 5,
"better_metrics": 0,
"worse_metrics": 5,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_2B",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.2395,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_DH": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.2951,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.4004,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.213,
"after": 0.2395,
"delta": 0.0265,
"percent_delta": 0.1244,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.278,
"after": 0.2951,
"delta": 0.0171,
"percent_delta": 0.0615,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.37,
"after": 0.4004,
"delta": 0.0304,
"percent_delta": 0.0821,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.37,
"after": 0.4004,
"delta": 0.0304,
"percent_delta": 0.0821,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.165,
"after": 0.0,
"delta": -0.165,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.006,
"after": 0.0,
"delta": -0.006,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.797,
"after": 4.0,
"delta": 0.203,
"percent_delta": 0.0535,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.24,
"after": 0.2395,
"delta": -0.0005,
"percent_delta": -0.0021,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.215,
"after": 0.0,
"delta": -0.215,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.911,
"after": 0.0,
"delta": -0.911,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.146,
"after": 0.0,
"delta": -0.146,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.281,
"after": 0.2951,
"delta": 0.0141,
"percent_delta": 0.0502,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.443,
"after": 0.0,
"delta": -0.443,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.589,
"after": 0.0,
"delta": -0.589,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.402,
"after": 0.4004,
"delta": -0.0016,
"percent_delta": -0.004,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.987,
"after": 1.0,
"delta": 0.013,
"percent_delta": 0.0132,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 8,
"boosted_metrics": 2,
"deboosted_metrics": 6,
"better_metrics": 2,
"worse_metrics": 6,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.797,
"after": 4.0,
"delta": 0.203,
"percent_delta": 0.0535,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 0.911,
"after": 0.0,
"delta": -0.911,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.165 | - |
| predicted_3B | 0.006 | - |
| predicted_AB | 3.797 | - |
| predicted_AVG | 0.240 | - |
| predicted_BB | 0.215 | - |
| predicted_H | 0.911 | - |
| predicted_HR | 0.146 | - |
| predicted_OBP | 0.281 | - |
| predicted_R | 0.443 | - |
| predicted_RBI | 0.589 | - |
| predicted_SLG | 0.402 | - |
| predicted_SO | 0.987 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.163 | -0.002 |
| predicted_3B | 0.005 | -0.001 |
| predicted_AB | 3.781 | -0.016 |
| predicted_AVG | 0.241 | 0.001 |
| predicted_BB | 0.299 | 0.084 |
| predicted_H | 0.910 | -0.001 |
| predicted_HBP | 0.066 | - |
| predicted_HR | 0.146 | 0.000 |
| predicted_OBP | 0.300 | 0.019 |
| predicted_R | 0.480 | 0.037 |
| predicted_RBI | 0.537 | -0.052 |
| predicted_SLG | 0.403 | 0.001 |
| predicted_SO | 0.918 | -0.069 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.163 | 0.000 |
| predicted_3B | 0.005 | 0.000 |
| predicted_AB | 3.781 | 0.000 |
| predicted_AVG | 0.239 | -0.001 |
| predicted_BB | 0.298 | -0.001 |
| predicted_H | 0.905 | -0.004 |
| predicted_HBP | 0.066 | 0.000 |
| predicted_HR | 0.145 | -0.001 |
| predicted_OBP | 0.295 | -0.005 |
| predicted_R | 0.477 | -0.003 |
| predicted_RBI | 0.534 | -0.004 |
| predicted_SLG | 0.400 | -0.002 |
| predicted_SO | 0.920 | 0.002 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=3.80), rates preserved: AVG=0.207 HR/AB=0.038
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.184 | 0.184 |
| 3B | 0.011 | 0.011 |
| BB | 0.304 | 0.304 |
| H | 0.808 | -0.192 |
| HR | 0.129 | 0.129 |
| RBI | 0.538 | -0.462 |
| SO | 1.166 | 0.166 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 0.816 |
| 3B | 0.000 | -0.011 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -0.304 |
| H | 1.000 | 0.192 |
| HR | 0.000 | -0.129 |
| R | 1.000 | 1.000 |
| RBI | 1.000 | 0.462 |
| SO | 1.000 | -0.166 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.163 |
| predicted_3B | 0.000 | -0.005 |
| predicted_AB | 4.000 | 0.219 |
| predicted_AVG | 0.213 | -0.026 |
| predicted_BB | 0.000 | -0.298 |
| predicted_H | 1.000 | 0.095 |
| predicted_HR | 0.000 | -0.145 |
| predicted_OBP | 0.278 | -0.017 |
| predicted_R | 0.000 | -0.477 |
| predicted_RBI | 1.000 | 0.466 |
| predicted_SLG | 0.370 | -0.030 |
| predicted_SO | 1.000 | 0.080 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -1.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | -1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | -1.000 |
| RBI | 0.000 | -1.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 18.000 | 4.000 | 1.000 | 0.000 | 1.000 | 1.000 | 4.000 | 4.000 | 2.000 | 0.2222 | 0.3636 | 0.4444 | 0.2222 | 0.0556 | 0.0556 | 0.2222 | 0.1111 |
| last_10 | 0.20 | 10 | - | 38.000 | 10.000 | 1.000 | 0.000 | 1.000 | 4.000 | 5.000 | 6.000 | 8.000 | 0.2632 | 0.3636 | 0.3684 | 0.2632 | 0.0263 | 0.1053 | 0.1579 | 0.2105 |
| season | 0.60 | 158 | - | 600.000 | 144.000 | 26.000 | 1.000 | 23.000 | 93.000 | 70.000 | 34.000 | 156.000 | 0.2400 | 0.2988 | 0.4017 | 0.2400 | 0.0383 | 0.1550 | 0.0567 | 0.2600 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1600 |
| predicted_3B | 0.0040 |
| predicted_AB | 3.7600 |
| predicted_AVG | 0.2414 |
| predicted_BB | 0.4070 |
| predicted_H | 0.9080 |
| predicted_HBP | 0.0660 |
| predicted_HR | 0.1470 |
| predicted_OBP | 0.3239 |
| predicted_R | 0.5280 |
| predicted_RBI | 0.4710 |
| predicted_SLG | 0.4038 |
| predicted_SO | 0.8290 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1650 | 0.1600 | 0.1628 | model_form_blend |
| predicted_3B | 0.0060 | 0.0040 | 0.0051 | model_form_blend |
| predicted_AB | 3.7970 | 3.7600 | 3.7808 | model_form_blend |
| predicted_AVG | 0.2400 | 0.2414 | 0.2406 | model_form_blend |
| predicted_BB | 0.2150 | 0.4070 | 0.2989 | model_form_blend |
| predicted_H | 0.9110 | 0.9080 | 0.9097 | model_form_blend |
| predicted_HBP | - | 0.0660 | 0.0660 | form_only |
| predicted_HR | 0.1460 | 0.1470 | 0.1464 | model_form_blend |
| predicted_OBP | 0.2810 | 0.3239 | 0.2998 | model_form_blend |
| predicted_R | 0.4430 | 0.5280 | 0.4802 | model_form_blend |
| predicted_RBI | 0.5890 | 0.4710 | 0.5374 | model_form_blend |
| predicted_SLG | 0.4020 | 0.4038 | 0.4028 | model_form_blend |
| predicted_SO | 0.9870 | 0.8290 | 0.9179 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 171 |
| Season rows before report date | 171 |
| Report year | 2026 |
| Profile rows used | 158 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 3 |
| Hitting_AVG | 0.667 |
| Hitting_BB | 1 |
| Hitting_GIDP | 0 |
| Hitting_H | 2 |
| Hitting_HBP | 0 |
| Hitting_HR | 1 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 1 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 5 |
| Hitting_battingOrder | 3 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | RF |
| gameID | 20260927_CLE@KC |
| game_type | full |
| mlbID | 666176 |
| playerID | 666176 |
| playerName | Jo Adell |
| pos | RF |
| started | True |
| startingPosition | RF |
| team | CLE |
| teamID | 8 |
| game_date | 2026-09-27 |
| sl_k_percent | 23.8 |
| sl_bb_percent | 5.2 |
| sl_woba | 0.307 |
| sl_xwoba | 0.329 |
| sl_xba | 0.257 |
| sl_xslg | 0.444 |
| sl_sweet_spot_percent | 32.2 |
| sl_barrel_batted_rate | 8.9 |
| sl_hard_hit_percent | 44.9 |
| sl_exit_velocity_avg | 90.4 |
| sl_launch_angle_avg | 16.2 |
| sl_whiff_percent | 28.2 |
| sl_swing_percent | 53.2 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.082 | 0.000 | 0.000 | Hitting_2B | 0.090 | 0.000 | -0.090 | 0.000 |
| predicted_3B | 0.000 | 0.000 | 0.000 | Hitting_3B | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_AB | 2.500 | 3.000 | 3.000 | Hitting_AB | 2.605 | 4.000 | 0.395 | -1.000 |
| predicted_AVG | 0.203 | 0.000 | 0.000 | Hitting_AVG | 0.205 | 0.500 | -0.205 | -0.500 |
| predicted_BB | 0.302 | 1.000 | 1.000 | Hitting_BB | 0.360 | 0.000 | 0.640 | 1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_H | 0.508 | 0.000 | 0.000 | Hitting_H | 0.535 | 2.000 | -0.535 | -2.000 |
| predicted_HR | 0.110 | 0.000 | 0.000 | Hitting_HR | 0.100 | 0.000 | -0.100 | 0.000 |
| predicted_OBP | 0.289 | 0.250 | 0.250 | Hitting_OBP | 0.305 | 0.500 | -0.055 | -0.250 |
| predicted_R | 0.288 | 0.000 | 0.000 | Hitting_R | 0.320 | 0.000 | -0.320 | 0.000 |
| predicted_RBI | 0.275 | 0.000 | 0.000 | Hitting_RBI | 0.250 | 0.000 | -0.250 | 0.000 |
| predicted_SLG | 0.368 | 0.000 | 0.000 | Hitting_SLG | 0.355 | 0.500 | -0.355 | -0.500 |
| predicted_SO | 0.797 | 2.000 | 1.000 | Hitting_SO | 0.850 | 1.000 | 1.150 | 1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 10 |
| Boosted Metrics | 5 |
| Deboosted Metrics | 5 |
| Better Metrics | 4 |
| Worse Metrics | 6 |
| Biggest Boost | predicted_SO: 0.7970 -> 2.0000 (boost 1.2030, worse) |
| Biggest Deboost | predicted_H: 0.5080 -> 0.0000 (deboost -0.5080, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 6 | 6 | 0 | 6 | 0 | predicted_AB: 2.5000 -> 2.6432 (boost 0.1432, better) | - | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 1 | 0 | 1 | 0 | 1 | - | predicted_OBP: 0.2968 -> 0.2881 (deboost -0.0087, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 8 | 3 | 5 | 2 | 6 | predicted_H: 0.5706 -> 1.0000 (boost 0.4294, better) | predicted_RBI: 0.3473 -> 0.0000 (deboost -0.3473, worse) | AB rounded to 3 (raw=2.64), rates preserved: AVG=0.187 HR/AB=0.045 |
| 6 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.3307 -> 0.0000 (deboost -0.3307, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 5 | 1 | 4 | 2 | predicted_BB: 0.0000 -> 0.4340 (boost 0.4340, better) | predicted_H: 1.0000 -> 0.6333 (deboost -0.3667, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 6 | 1 | 5 | 2 | 4 | predicted_BB: 0.4340 -> 1.0000 (boost 0.5660, better) | predicted_H: 0.6333 -> 0.0000 (deboost -0.6333, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 5 | 2 | 3 | 2 | 3 | predicted_H: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 3 | 2 | 1 | 1 | 2 | predicted_BB: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 3 | 2 | 1 | 2 | 1 | predicted_SLG: 0.3590 -> 0.3876 (boost 0.0286, better) | predicted_OBP: 0.3050 -> 0.2881 (deboost -0.0169, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "681807",
"player_name": "David Fry",
"position": "1B",
"team": "CLE",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.082,
"predicted_3B": 0.0,
"predicted_AB": 2.5,
"predicted_AVG": 0.203,
"predicted_BB": 0.302,
"predicted_H": 0.508,
"predicted_HR": 0.11,
"predicted_OBP": 0.289,
"predicted_R": 0.288,
"predicted_RBI": 0.275,
"predicted_SLG": 0.368,
"predicted_SO": 0.797
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.0931,
"predicted_3B": 0.0004,
"predicted_AB": 2.6432,
"predicted_AVG": 0.2158,
"predicted_BB": 0.269,
"predicted_H": 0.5732,
"predicted_HBP": 0.079,
"predicted_HR": 0.1211,
"predicted_OBP": 0.2968,
"predicted_R": 0.333,
"predicted_RBI": 0.3497,
"predicted_SLG": 0.3886,
"predicted_SO": 0.764
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.082,
"after": 0.0931,
"delta": 0.0111,
"percent_delta": 0.1354,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0004,
"delta": 0.0004,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.5,
"after": 2.6432,
"delta": 0.1432,
"percent_delta": 0.0573,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.203,
"after": 0.2158,
"delta": 0.0128,
"percent_delta": 0.0631,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.302,
"after": 0.269,
"delta": -0.033,
"percent_delta": -0.1093,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.508,
"after": 0.5732,
"delta": 0.0652,
"percent_delta": 0.1283,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.11,
"after": 0.1211,
"delta": 0.0111,
"percent_delta": 0.1009,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.289,
"after": 0.2968,
"delta": 0.0078,
"percent_delta": 0.027,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.288,
"after": 0.333,
"delta": 0.045,
"percent_delta": 0.1563,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.275,
"after": 0.3497,
"delta": 0.0747,
"percent_delta": 0.2716,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.368,
"after": 0.3886,
"delta": 0.0206,
"percent_delta": 0.056,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.797,
"after": 0.764,
"delta": -0.033,
"percent_delta": -0.0414,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 6,
"deboosted_metrics": 0,
"better_metrics": 6,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_AB",
"before": 2.5,
"after": 2.6432,
"delta": 0.1432,
"percent_delta": 0.0573,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 81
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.0931,
"predicted_3B": 0.0004,
"predicted_AB": 2.6432,
"predicted_AVG": 0.2159,
"predicted_BB": 0.2683,
"predicted_H": 0.5706,
"predicted_HBP": 0.079,
"predicted_HR": 0.12,
"predicted_OBP": 0.2881,
"predicted_R": 0.3307,
"predicted_RBI": 0.3473,
"predicted_SLG": 0.3876,
"predicted_SO": 0.766
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0931,
"after": 0.0931,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0004,
"after": 0.0004,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.6432,
"after": 2.6432,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2158,
"after": 0.2159,
"delta": 0.0001,
"percent_delta": 0.0005,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.269,
"after": 0.2683,
"delta": -0.0007,
"percent_delta": -0.0026,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.5732,
"after": 0.5706,
"delta": -0.0026,
"percent_delta": -0.0045,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.079,
"after": 0.079,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1211,
"after": 0.12,
"delta": -0.0011,
"percent_delta": -0.0091,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.2968,
"after": 0.2881,
"delta": -0.0087,
"percent_delta": -0.0293,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.333,
"after": 0.3307,
"delta": -0.0023,
"percent_delta": -0.0069,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.3497,
"after": 0.3473,
"delta": -0.0024,
"percent_delta": -0.0069,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3886,
"after": 0.3876,
"delta": -0.001,
"percent_delta": -0.0026,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.764,
"after": 0.766,
"delta": 0.002,
"percent_delta": 0.0026,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.2968,
"after": 0.2881,
"delta": -0.0087,
"percent_delta": -0.0293,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 3 (raw=2.64), rates preserved: AVG=0.187 HR/AB=0.045",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0931,
"after": 0.0,
"delta": -0.0931,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0004,
"after": 0.0,
"delta": -0.0004,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.6432,
"after": 3.0,
"delta": 0.3568,
"percent_delta": 0.135,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.2683,
"after": 0.0,
"delta": -0.2683,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.5706,
"after": 1.0,
"delta": 0.4294,
"percent_delta": 0.7525,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.079,
"after": 0.0,
"delta": -0.079,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.12,
"after": 0.0,
"delta": -0.12,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.3473,
"after": 0.0,
"delta": -0.3473,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.766,
"after": 1.0,
"delta": 0.234,
"percent_delta": 0.3055,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 8,
"boosted_metrics": 3,
"deboosted_metrics": 5,
"better_metrics": 2,
"worse_metrics": 6,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.5706,
"after": 1.0,
"delta": 0.4294,
"percent_delta": 0.7525,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.3473,
"after": 0.0,
"delta": -0.3473,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.3307,
"after": 0.0,
"delta": -0.3307,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_R",
"before": 0.3307,
"after": 0.0,
"delta": -0.3307,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1462,
"predicted_3B": 0.0097,
"predicted_BB": 0.434,
"predicted_H": 0.6333,
"predicted_HR": 0.1074,
"predicted_RBI": 0.348,
"predicted_SO": 1.095
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1462,
"delta": 0.1462,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0097,
"delta": 0.0097,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.434,
"delta": 0.434,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.6333,
"delta": -0.3667,
"percent_delta": -0.3667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1074,
"delta": 0.1074,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.348,
"delta": 0.348,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.095,
"delta": 0.095,
"percent_delta": 0.095,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 5,
"deboosted_metrics": 1,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 0.434,
"delta": 0.434,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.6333,
"delta": -0.3667,
"percent_delta": -0.3667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 1.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1462,
"after": 0.0,
"delta": -0.1462,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0097,
"after": 0.0,
"delta": -0.0097,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.434,
"after": 1.0,
"delta": 0.566,
"percent_delta": 1.3041,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.6333,
"after": 0.0,
"delta": -0.6333,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1074,
"after": 0.0,
"delta": -0.1074,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.348,
"after": 0.0,
"delta": -0.348,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.095,
"after": 1.0,
"delta": -0.095,
"percent_delta": -0.0868,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 1,
"deboosted_metrics": 5,
"better_metrics": 2,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.434,
"after": 1.0,
"delta": 0.566,
"percent_delta": 1.3041,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 0.6333,
"after": 0.0,
"delta": -0.6333,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.203,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.305,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.359,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2159,
"after": 0.203,
"delta": -0.0129,
"percent_delta": -0.0597,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_OBP",
"before": 0.2881,
"after": 0.305,
"delta": 0.0169,
"percent_delta": 0.0587,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3876,
"after": 0.359,
"delta": -0.0286,
"percent_delta": -0.0738,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 2,
"deboosted_metrics": 3,
"better_metrics": 2,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 2,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.2159,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_FB": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.2881,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.3876,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.203,
"after": 0.2159,
"delta": 0.0129,
"percent_delta": 0.0634,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.305,
"after": 0.2881,
"delta": -0.0169,
"percent_delta": -0.0553,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.359,
"after": 0.3876,
"delta": 0.0286,
"percent_delta": 0.0796,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 2,
"deboosted_metrics": 1,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.359,
"after": 0.3876,
"delta": 0.0286,
"percent_delta": 0.0796,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.305,
"after": 0.2881,
"delta": -0.0169,
"percent_delta": -0.0553,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.082,
"after": 0.0,
"delta": -0.082,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.5,
"after": 3.0,
"delta": 0.5,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.203,
"after": 0.2159,
"delta": 0.0129,
"percent_delta": 0.0635,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.302,
"after": 1.0,
"delta": 0.698,
"percent_delta": 2.3113,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.508,
"after": 0.0,
"delta": -0.508,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.11,
"after": 0.0,
"delta": -0.11,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.289,
"after": 0.2881,
"delta": -0.0009,
"percent_delta": -0.0031,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.288,
"after": 0.0,
"delta": -0.288,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.275,
"after": 0.0,
"delta": -0.275,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.368,
"after": 0.3876,
"delta": 0.0196,
"percent_delta": 0.0533,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.797,
"after": 2.0,
"delta": 1.203,
"percent_delta": 1.5094,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 10,
"boosted_metrics": 5,
"deboosted_metrics": 5,
"better_metrics": 4,
"worse_metrics": 6,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.797,
"after": 2.0,
"delta": 1.203,
"percent_delta": 1.5094,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 0.508,
"after": 0.0,
"delta": -0.508,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.082 | - |
| predicted_3B | 0.000 | - |
| predicted_AB | 2.500 | - |
| predicted_AVG | 0.203 | - |
| predicted_BB | 0.302 | - |
| predicted_H | 0.508 | - |
| predicted_HR | 0.110 | - |
| predicted_OBP | 0.289 | - |
| predicted_R | 0.288 | - |
| predicted_RBI | 0.275 | - |
| predicted_SLG | 0.368 | - |
| predicted_SO | 0.797 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.093 | 0.011 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 2.643 | 0.143 |
| predicted_AVG | 0.216 | 0.013 |
| predicted_BB | 0.269 | -0.033 |
| predicted_H | 0.573 | 0.065 |
| predicted_HBP | 0.079 | - |
| predicted_HR | 0.121 | 0.011 |
| predicted_OBP | 0.297 | 0.008 |
| predicted_R | 0.333 | 0.045 |
| predicted_RBI | 0.350 | 0.075 |
| predicted_SLG | 0.389 | 0.021 |
| predicted_SO | 0.764 | -0.033 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.093 | 0.000 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 2.643 | 0.000 |
| predicted_AVG | 0.216 | 0.000 |
| predicted_BB | 0.268 | -0.001 |
| predicted_H | 0.571 | -0.003 |
| predicted_HBP | 0.079 | 0.000 |
| predicted_HR | 0.120 | -0.001 |
| predicted_OBP | 0.288 | -0.009 |
| predicted_R | 0.331 | -0.002 |
| predicted_RBI | 0.347 | -0.002 |
| predicted_SLG | 0.388 | -0.001 |
| predicted_SO | 0.766 | 0.002 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=2.64), rates preserved: AVG=0.187 HR/AB=0.045
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.146 | 0.146 |
| 3B | 0.010 | 0.010 |
| BB | 0.434 | 0.434 |
| H | 0.633 | -0.367 |
| HR | 0.107 | 0.107 |
| RBI | 0.348 | 0.348 |
| SO | 1.095 | 0.095 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.146 |
| 3B | 0.000 | -0.010 |
| AB | 3.000 | 0.000 |
| BB | 1.000 | 0.566 |
| H | 0.000 | -0.633 |
| HR | 0.000 | -0.107 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -0.348 |
| SO | 1.000 | -0.095 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.093 |
| predicted_3B | 0.000 | -0.000 |
| predicted_AB | 3.000 | 0.357 |
| predicted_AVG | 0.203 | -0.013 |
| predicted_BB | 0.000 | -0.268 |
| predicted_H | 1.000 | 0.429 |
| predicted_HR | 0.000 | -0.120 |
| predicted_OBP | 0.305 | 0.017 |
| predicted_R | 0.000 | -0.331 |
| predicted_RBI | 0.000 | -0.347 |
| predicted_SLG | 0.359 | -0.029 |
| predicted_SO | 1.000 | 0.234 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 1.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 2.000 | 1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 19.000 | 6.000 | 1.000 | 0.000 | 1.000 | 5.000 | 3.000 | 0.000 | 3.000 | 0.3158 | 0.3500 | 0.5263 | 0.3158 | 0.0526 | 0.2632 | 0.0000 | 0.1579 |
| last_10 | 0.20 | 10 | - | 30.000 | 7.000 | 1.000 | 0.000 | 2.000 | 7.000 | 6.000 | 1.000 | 5.000 | 0.2333 | 0.3030 | 0.4667 | 0.2333 | 0.0667 | 0.2333 | 0.0333 | 0.1667 |
| season | 0.60 | 81 | - | 182.000 | 37.000 | 6.000 | 0.000 | 8.000 | 20.000 | 21.000 | 22.000 | 58.000 | 0.2033 | 0.2961 | 0.3681 | 0.2033 | 0.0440 | 0.1099 | 0.1209 | 0.3187 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1090 |
| predicted_3B | 0.0010 |
| predicted_AB | 2.8470 |
| predicted_AVG | 0.2339 |
| predicted_BB | 0.2220 |
| predicted_H | 0.6660 |
| predicted_HBP | 0.0790 |
| predicted_HR | 0.1370 |
| predicted_OBP | 0.3079 |
| predicted_R | 0.3970 |
| predicted_RBI | 0.4560 |
| predicted_SLG | 0.4179 |
| predicted_SO | 0.7170 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.0820 | 0.1090 | 0.0931 | model_form_blend |
| predicted_3B | 0.0000 | 0.0010 | 0.0004 | model_form_blend |
| predicted_AB | 2.5000 | 2.8470 | 2.6432 | model_form_blend |
| predicted_AVG | 0.2030 | 0.2339 | 0.2158 | model_form_blend |
| predicted_BB | 0.3020 | 0.2220 | 0.2690 | model_form_blend |
| predicted_H | 0.5080 | 0.6660 | 0.5732 | model_form_blend |
| predicted_HBP | - | 0.0790 | 0.0790 | form_only |
| predicted_HR | 0.1100 | 0.1370 | 0.1211 | model_form_blend |
| predicted_OBP | 0.2890 | 0.3079 | 0.2968 | model_form_blend |
| predicted_R | 0.2880 | 0.3970 | 0.3330 | model_form_blend |
| predicted_RBI | 0.2750 | 0.4560 | 0.3497 | model_form_blend |
| predicted_SLG | 0.3680 | 0.4179 | 0.3886 | model_form_blend |
| predicted_SO | 0.7970 | 0.7170 | 0.7640 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 200 |
| Season rows before report date | 200 |
| Report year | 2026 |
| Profile rows used | 81 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 3 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 1 |
| SO | 2 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.5 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 2 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 2 |
| Hitting_battingOrder | 5 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | C |
| gameID | 20260927_CLE@KC |
| game_type | full |
| mlbID | 681807 |
| playerID | 681807 |
| playerName | David Fry |
| pos | RF |
| started | True |
| startingPosition | C |
| team | CLE |
| teamID | 8 |
| game_date | 2026-09-27 |
| sl_k_percent | 27.6 |
| sl_bb_percent | 13.1 |
| sl_woba | 0.304 |
| sl_xwoba | 0.271 |
| sl_xba | 0.181 |
| sl_xslg | 0.294 |
| sl_sweet_spot_percent | 25.6 |
| sl_barrel_batted_rate | 6.5 |
| sl_hard_hit_percent | 34.4 |
| sl_exit_velocity_avg | 86.3 |
| sl_launch_angle_avg | 19.2 |
| sl_whiff_percent | 28.9 |
| sl_swing_percent | 43.8 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.223 | 0.000 | 1.000 | Hitting_2B | 0.240 | 0.000 | -0.240 | 0.000 |
| predicted_3B | 0.000 | 0.000 | 0.000 | Hitting_3B | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_AB | 4.830 | 4.000 | 4.000 | Hitting_AB | 3.831 | 5.000 | 0.169 | -1.000 |
| predicted_AVG | 0.212 | 0.250 | 0.250 | Hitting_AVG | 0.235 | 0.000 | 0.015 | 0.250 |
| predicted_BB | 0.488 | 0.000 | 1.000 | Hitting_BB | 0.515 | 0.000 | -0.515 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.033 | 0.000 | -0.033 | 0.000 |
| predicted_H | 1.020 | 1.000 | 1.000 | Hitting_H | 0.900 | 0.000 | 0.100 | 1.000 |
| predicted_HR | 0.090 | 0.000 | 0.000 | Hitting_HR | 0.100 | 0.000 | -0.100 | 0.000 |
| predicted_OBP | 0.306 | 0.250 | 0.400 | Hitting_OBP | 0.326 | 0.000 | -0.076 | 0.250 |
| predicted_R | 0.570 | 0.000 | 1.000 | Hitting_R | 0.582 | 1.000 | -0.582 | -1.000 |
| predicted_RBI | 0.540 | 0.000 | 1.000 | Hitting_RBI | 0.468 | 0.000 | -0.468 | 0.000 |
| predicted_SLG | 0.363 | 0.250 | 0.500 | Hitting_SLG | 0.376 | 0.000 | -0.126 | 0.250 |
| predicted_SO | 0.562 | 0.000 | 1.000 | Hitting_SO | 0.568 | 0.000 | -0.568 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 10 |
| Boosted Metrics | 1 |
| Deboosted Metrics | 9 |
| Better Metrics | 2 |
| Worse Metrics | 8 |
| Biggest Boost | predicted_AVG: 0.2120 -> 0.2200 (boost 0.0080, better) |
| Biggest Deboost | predicted_AB: 4.8300 -> 4.0000 (deboost -0.8300, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 3 | 1 | 2 | 1 | 2 | predicted_AVG: 0.2120 -> 0.2226 (boost 0.0106, better) | predicted_AB: 4.8300 -> 4.4508 (deboost -0.3792, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 2 | 0 | 2 | 0 | 2 | - | predicted_SLG: 0.3572 -> 0.3259 (deboost -0.0313, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 6 | 1 | 5 | 0 | 6 | predicted_SO: 0.5382 -> 1.0000 (boost 0.4618, worse) | predicted_RBI: 0.4958 -> 0.0000 (deboost -0.4958, worse) | AB rounded to 4 (raw=4.83), rates preserved: AVG=0.176 HR/AB=0.018 |
| 6 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5773 -> 1.0000 (boost 0.4227, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 4 | 2 | 5 | 1 | predicted_BB: 0.0000 -> 0.5988 (boost 0.5988, better) | predicted_SO: 1.0000 -> 0.7144 (deboost -0.2856, better) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 6 | 5 | 1 | 4 | 2 | predicted_2B: 0.2138 -> 1.0000 (boost 0.7862, better) | predicted_HR: 0.1016 -> 0.0000 (deboost -0.1016, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 6 | 2 | 4 | 2 | 4 | predicted_OBP: 0.2931 -> 0.3140 (boost 0.0209, better) | predicted_2B: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 2 | 0 | 2 | 1 | 1 | - | predicted_R: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 3 | 1 | 2 | 1 | 2 | predicted_AVG: 0.2060 -> 0.2200 (boost 0.0140, better) | predicted_OBP: 0.3140 -> 0.2931 (deboost -0.0209, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "608070",
"player_name": "José Ramírez",
"position": "3B",
"team": "CLE",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.223,
"predicted_3B": 0.0,
"predicted_AB": 4.83,
"predicted_AVG": 0.212,
"predicted_BB": 0.488,
"predicted_H": 1.02,
"predicted_HR": 0.09,
"predicted_OBP": 0.306,
"predicted_R": 0.57,
"predicted_RBI": 0.54,
"predicted_SLG": 0.363,
"predicted_SO": 0.562
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.2108,
"predicted_3B": 0.0004,
"predicted_AB": 4.4508,
"predicted_AVG": 0.2226,
"predicted_BB": 0.4615,
"predicted_H": 0.9835,
"predicted_HBP": 0.016,
"predicted_HR": 0.0874,
"predicted_OBP": 0.3067,
"predicted_R": 0.5813,
"predicted_RBI": 0.4992,
"predicted_SLG": 0.3572,
"predicted_SO": 0.5368
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.223,
"after": 0.2108,
"delta": -0.0122,
"percent_delta": -0.0547,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0004,
"delta": 0.0004,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.83,
"after": 4.4508,
"delta": -0.3792,
"percent_delta": -0.0785,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.212,
"after": 0.2226,
"delta": 0.0106,
"percent_delta": 0.05,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.488,
"after": 0.4615,
"delta": -0.0265,
"percent_delta": -0.0543,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.02,
"after": 0.9835,
"delta": -0.0365,
"percent_delta": -0.0358,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.09,
"after": 0.0874,
"delta": -0.0026,
"percent_delta": -0.0289,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.306,
"after": 0.3067,
"delta": 0.0007,
"percent_delta": 0.0023,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.57,
"after": 0.5813,
"delta": 0.0113,
"percent_delta": 0.0198,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.54,
"after": 0.4992,
"delta": -0.0408,
"percent_delta": -0.0756,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.363,
"after": 0.3572,
"delta": -0.0058,
"percent_delta": -0.016,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.562,
"after": 0.5368,
"delta": -0.0252,
"percent_delta": -0.0448,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_AVG",
"before": 0.212,
"after": 0.2226,
"delta": 0.0106,
"percent_delta": 0.05,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.83,
"after": 4.4508,
"delta": -0.3792,
"percent_delta": -0.0785,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 121
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.2108,
"predicted_3B": 0.0004,
"predicted_AB": 4.4508,
"predicted_AVG": 0.22,
"predicted_BB": 0.4603,
"predicted_H": 0.979,
"predicted_HBP": 0.016,
"predicted_HR": 0.0866,
"predicted_OBP": 0.2931,
"predicted_R": 0.5773,
"predicted_RBI": 0.4958,
"predicted_SLG": 0.3259,
"predicted_SO": 0.5382
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.2108,
"after": 0.2108,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0004,
"after": 0.0004,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.4508,
"after": 4.4508,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2226,
"after": 0.22,
"delta": -0.0026,
"percent_delta": -0.0117,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.4615,
"after": 0.4603,
"delta": -0.0012,
"percent_delta": -0.0026,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.9835,
"after": 0.979,
"delta": -0.0045,
"percent_delta": -0.0046,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.016,
"after": 0.016,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0874,
"after": 0.0866,
"delta": -0.0008,
"percent_delta": -0.0092,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3067,
"after": 0.2931,
"delta": -0.0136,
"percent_delta": -0.0443,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.5813,
"after": 0.5773,
"delta": -0.004,
"percent_delta": -0.0069,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.4992,
"after": 0.4958,
"delta": -0.0034,
"percent_delta": -0.0068,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3572,
"after": 0.3259,
"delta": -0.0313,
"percent_delta": -0.0876,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.5368,
"after": 0.5382,
"delta": 0.0014,
"percent_delta": 0.0026,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.3572,
"after": 0.3259,
"delta": -0.0313,
"percent_delta": -0.0876,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=4.83), rates preserved: AVG=0.176 HR/AB=0.018",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.2108,
"after": 0.0,
"delta": -0.2108,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0004,
"after": 0.0,
"delta": -0.0004,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.4508,
"after": 4.0,
"delta": -0.4508,
"percent_delta": -0.1013,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.4603,
"after": 0.0,
"delta": -0.4603,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.979,
"after": 1.0,
"delta": 0.021,
"percent_delta": 0.0215,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.016,
"after": 0.0,
"delta": -0.016,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0866,
"after": 0.0,
"delta": -0.0866,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.4958,
"after": 0.0,
"delta": -0.4958,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.5382,
"after": 1.0,
"delta": 0.4618,
"percent_delta": 0.858,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 1,
"deboosted_metrics": 5,
"better_metrics": 0,
"worse_metrics": 6,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.5382,
"after": 1.0,
"delta": 0.4618,
"percent_delta": 0.858,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.4958,
"after": 0.0,
"delta": -0.4958,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.5773,
"after": 1.0,
"delta": 0.4227,
"percent_delta": 0.7322,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.5773,
"after": 1.0,
"delta": 0.4227,
"percent_delta": 0.7322,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.2138,
"predicted_3B": 0.0097,
"predicted_BB": 0.5988,
"predicted_H": 0.8261,
"predicted_HR": 0.1016,
"predicted_RBI": 0.4401,
"predicted_SO": 0.7144
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.2138,
"delta": 0.2138,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0097,
"delta": 0.0097,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.5988,
"delta": 0.5988,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.8261,
"delta": -0.1739,
"percent_delta": -0.1739,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1016,
"delta": 0.1016,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.4401,
"delta": 0.4401,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.7144,
"delta": -0.2856,
"percent_delta": -0.2856,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 5,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 0.5988,
"delta": 0.5988,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 0.7144,
"delta": -0.2856,
"percent_delta": -0.2856,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 1.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.2138,
"after": 1.0,
"delta": 0.7862,
"percent_delta": 3.6773,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0097,
"after": 0.0,
"delta": -0.0097,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.5988,
"after": 1.0,
"delta": 0.4012,
"percent_delta": 0.67,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8261,
"after": 1.0,
"delta": 0.1739,
"percent_delta": 0.2105,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1016,
"after": 0.0,
"delta": -0.1016,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.4401,
"after": 1.0,
"delta": 0.5599,
"percent_delta": 1.2722,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.7144,
"after": 1.0,
"delta": 0.2856,
"percent_delta": 0.3998,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 5,
"deboosted_metrics": 1,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_2B",
"before": 0.2138,
"after": 1.0,
"delta": 0.7862,
"percent_delta": 3.6773,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_HR",
"before": 0.1016,
"after": 0.0,
"delta": -0.1016,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.206,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.314,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.34,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.22,
"after": 0.206,
"delta": -0.014,
"percent_delta": -0.0636,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.2931,
"after": 0.314,
"delta": 0.0209,
"percent_delta": 0.0713,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.3259,
"after": 0.34,
"delta": 0.0141,
"percent_delta": 0.0433,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 2,
"deboosted_metrics": 4,
"better_metrics": 2,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_OBP",
"before": 0.2931,
"after": 0.314,
"delta": 0.0209,
"percent_delta": 0.0713,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_2B",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"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_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.22,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.2931,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.3259,
"predicted_SO": 0.0,
"predicted_TB": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.206,
"after": 0.22,
"delta": 0.014,
"percent_delta": 0.0677,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.314,
"after": 0.2931,
"delta": -0.0209,
"percent_delta": -0.0667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.34,
"after": 0.3259,
"delta": -0.0141,
"percent_delta": -0.0416,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_AVG",
"before": 0.206,
"after": 0.22,
"delta": 0.014,
"percent_delta": 0.0677,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.314,
"after": 0.2931,
"delta": -0.0209,
"percent_delta": -0.0667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.223,
"after": 0.0,
"delta": -0.223,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.83,
"after": 4.0,
"delta": -0.83,
"percent_delta": -0.1718,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.212,
"after": 0.22,
"delta": 0.008,
"percent_delta": 0.0377,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.488,
"after": 0.0,
"delta": -0.488,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.02,
"after": 1.0,
"delta": -0.02,
"percent_delta": -0.0196,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.09,
"after": 0.0,
"delta": -0.09,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.306,
"after": 0.2931,
"delta": -0.0129,
"percent_delta": -0.0422,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.57,
"after": 0.0,
"delta": -0.57,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.54,
"after": 0.0,
"delta": -0.54,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.363,
"after": 0.3259,
"delta": -0.0371,
"percent_delta": -0.1022,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.562,
"after": 0.0,
"delta": -0.562,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 10,
"boosted_metrics": 1,
"deboosted_metrics": 9,
"better_metrics": 2,
"worse_metrics": 8,
"biggest_boost": {
"metric": "predicted_AVG",
"before": 0.212,
"after": 0.22,
"delta": 0.008,
"percent_delta": 0.0377,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.83,
"after": 4.0,
"delta": -0.83,
"percent_delta": -0.1718,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.223 | - |
| predicted_3B | 0.000 | - |
| predicted_AB | 4.830 | - |
| predicted_AVG | 0.212 | - |
| predicted_BB | 0.488 | - |
| predicted_H | 1.020 | - |
| predicted_HR | 0.090 | - |
| predicted_OBP | 0.306 | - |
| predicted_R | 0.570 | - |
| predicted_RBI | 0.540 | - |
| predicted_SLG | 0.363 | - |
| predicted_SO | 0.562 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.211 | -0.012 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 4.451 | -0.379 |
| predicted_AVG | 0.223 | 0.011 |
| predicted_BB | 0.462 | -0.026 |
| predicted_H | 0.984 | -0.036 |
| predicted_HBP | 0.016 | - |
| predicted_HR | 0.087 | -0.003 |
| predicted_OBP | 0.307 | 0.001 |
| predicted_R | 0.581 | 0.011 |
| predicted_RBI | 0.499 | -0.041 |
| predicted_SLG | 0.357 | -0.006 |
| predicted_SO | 0.537 | -0.025 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.211 | 0.000 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 4.451 | 0.000 |
| predicted_AVG | 0.220 | -0.003 |
| predicted_BB | 0.460 | -0.001 |
| predicted_H | 0.979 | -0.005 |
| predicted_HBP | 0.016 | 0.000 |
| predicted_HR | 0.087 | -0.001 |
| predicted_OBP | 0.293 | -0.014 |
| predicted_R | 0.577 | -0.004 |
| predicted_RBI | 0.496 | -0.003 |
| predicted_SLG | 0.326 | -0.031 |
| predicted_SO | 0.538 | 0.001 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=4.83), rates preserved: AVG=0.176 HR/AB=0.018
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.214 | 0.214 |
| 3B | 0.010 | 0.010 |
| BB | 0.599 | 0.599 |
| H | 0.826 | -0.174 |
| HR | 0.102 | 0.102 |
| RBI | 0.440 | 0.440 |
| SO | 0.714 | -0.286 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 0.786 |
| 3B | 0.000 | -0.010 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 0.401 |
| H | 1.000 | 0.174 |
| HR | 0.000 | -0.102 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.560 |
| SO | 1.000 | 0.286 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.211 |
| predicted_3B | 0.000 | -0.000 |
| predicted_AB | 4.000 | -0.451 |
| predicted_AVG | 0.206 | -0.014 |
| predicted_BB | 0.000 | -0.460 |
| predicted_H | 1.000 | 0.021 |
| predicted_HR | 0.000 | -0.087 |
| predicted_OBP | 0.314 | 0.021 |
| predicted_R | 1.000 | 0.423 |
| predicted_RBI | 0.000 | -0.496 |
| predicted_SLG | 0.340 | 0.014 |
| predicted_SO | 1.000 | 0.462 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -1.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -1.000 |
| CS | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | -1.000 |
| RBI | 0.000 | -1.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 21.000 | 4.000 | 0.000 | 0.000 | 0.000 | 2.000 | 3.000 | 2.000 | 2.000 | 0.1905 | 0.2500 | 0.1905 | 0.1905 | 0.0000 | 0.0952 | 0.0952 | 0.0952 |
| last_10 | 0.20 | 10 | - | 42.000 | 12.000 | 3.000 | 0.000 | 1.000 | 5.000 | 7.000 | 3.000 | 3.000 | 0.2857 | 0.3261 | 0.4286 | 0.2857 | 0.0238 | 0.1191 | 0.0714 | 0.0714 |
| season | 0.60 | 121 | - | 461.000 | 108.000 | 27.000 | 0.000 | 12.000 | 53.000 | 69.000 | 59.000 | 68.000 | 0.2343 | 0.3208 | 0.3709 | 0.2343 | 0.0260 | 0.1150 | 0.1280 | 0.1475 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1950 |
| predicted_3B | 0.0010 |
| predicted_AB | 3.9570 |
| predicted_AVG | 0.2365 |
| predicted_BB | 0.4270 |
| predicted_H | 0.9360 |
| predicted_HBP | 0.0160 |
| predicted_HR | 0.0840 |
| predicted_OBP | 0.3076 |
| predicted_R | 0.5960 |
| predicted_RBI | 0.4460 |
| predicted_SLG | 0.3496 |
| predicted_SO | 0.5040 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.2230 | 0.1950 | 0.2108 | model_form_blend |
| predicted_3B | 0.0000 | 0.0010 | 0.0004 | model_form_blend |
| predicted_AB | 4.8300 | 3.9570 | 4.4508 | model_form_blend |
| predicted_AVG | 0.2120 | 0.2365 | 0.2226 | model_form_blend |
| predicted_BB | 0.4880 | 0.4270 | 0.4615 | model_form_blend |
| predicted_H | 1.0200 | 0.9360 | 0.9835 | model_form_blend |
| predicted_HBP | - | 0.0160 | 0.0160 | form_only |
| predicted_HR | 0.0900 | 0.0840 | 0.0874 | model_form_blend |
| predicted_OBP | 0.3060 | 0.3076 | 0.3067 | model_form_blend |
| predicted_R | 0.5700 | 0.5960 | 0.5813 | model_form_blend |
| predicted_RBI | 0.5400 | 0.4460 | 0.4992 | model_form_blend |
| predicted_SLG | 0.3630 | 0.3496 | 0.3572 | model_form_blend |
| predicted_SO | 0.5620 | 0.5040 | 0.5368 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 509 |
| Season rows before report date | 509 |
| Report year | 2026 |
| Profile rows used | 121 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 1 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 5 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 2 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 2 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | 3B |
| gameID | 20260926_CLE@KC |
| game_type | full |
| mlbID | 608070 |
| playerID | 608070 |
| playerName | José Ramírez |
| pos | 3B |
| started | True |
| startingPosition | 3B |
| team | CLE |
| teamID | 8 |
| game_date | 2026-09-26 |
| sl_k_percent | 12.7 |
| sl_bb_percent | 11.0 |
| sl_woba | 0.301 |
| sl_xwoba | 0.325 |
| sl_xba | 0.266 |
| sl_xslg | 0.391 |
| sl_sweet_spot_percent | 35.3 |
| sl_barrel_batted_rate | 4.1 |
| sl_hard_hit_percent | 38.8 |
| sl_exit_velocity_avg | 88.6 |
| sl_launch_angle_avg | 19.0 |
| sl_whiff_percent | 15.3 |
| sl_swing_percent | 45.4 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.224 | 0.000 | 0.000 | Hitting_2B | 0.240 | 0.000 | -0.240 | 0.000 |
| predicted_3B | 0.019 | 0.000 | 0.000 | Hitting_3B | 0.015 | 0.000 | -0.015 | 0.000 |
| predicted_AB | 4.350 | 4.000 | 4.000 | Hitting_AB | 3.841 | 4.000 | 0.159 | 0.000 |
| predicted_AVG | 0.219 | 0.250 | 0.250 | Hitting_AVG | 0.262 | 0.000 | -0.012 | 0.250 |
| predicted_BB | 0.121 | 0.000 | 0.000 | Hitting_BB | 0.134 | 0.000 | -0.134 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.033 | 0.000 | -0.033 | 0.000 |
| predicted_H | 0.950 | 1.000 | 1.000 | Hitting_H | 1.005 | 0.000 | -0.005 | 1.000 |
| predicted_HR | 0.210 | 1.000 | 1.000 | Hitting_HR | 0.172 | 0.000 | 0.828 | 1.000 |
| predicted_OBP | 0.271 | 0.250 | 0.250 | Hitting_OBP | 0.300 | 0.000 | -0.050 | 0.250 |
| predicted_R | 0.458 | 1.000 | 1.000 | Hitting_R | 0.500 | 0.000 | 0.500 | 1.000 |
| predicted_RBI | 0.740 | 2.000 | 1.000 | Hitting_RBI | 0.609 | 0.000 | 1.391 | 2.000 |
| predicted_SLG | 0.436 | 1.000 | 1.000 | Hitting_SLG | 0.466 | 0.000 | 0.534 | 1.000 |
| predicted_SO | 0.850 | 2.000 | 1.000 | Hitting_SO | 0.912 | 1.000 | 1.088 | 1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 11 |
| Boosted Metrics | 7 |
| Deboosted Metrics | 4 |
| Better Metrics | 6 |
| Worse Metrics | 5 |
| Biggest Boost | predicted_RBI: 0.7400 -> 2.0000 (boost 1.2600, better) |
| Biggest Deboost | predicted_AB: 4.3500 -> 4.0000 (deboost -0.3500, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 4 | 3 | 1 | 3 | 1 | predicted_SLG: 0.4360 -> 0.4583 (boost 0.0223, better) | predicted_AB: 4.3500 -> 4.0580 (deboost -0.2920, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 2 | 0 | 2 | 0 | 2 | - | predicted_OBP: 0.2768 -> 0.2532 (deboost -0.0236, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 3 | 4 | 2 | 5 | predicted_RBI: 0.7302 -> 1.0000 (boost 0.2698, better) | predicted_2B: 0.2421 -> 0.0000 (deboost -0.2421, worse) | AB rounded to 4 (raw=4.35), rates preserved: AVG=0.185 HR/AB=0.046 |
| 6 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.4382 -> 0.0000 (deboost -0.4382, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 4 | 2 | 3 | 3 | predicted_BB: 0.0000 -> 0.2319 (boost 0.2319, better) | predicted_RBI: 1.0000 -> 0.5422 (deboost -0.4578, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 7 | 4 | 3 | 5 | 2 | predicted_R: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_BB: 0.2319 -> 0.0000 (deboost -0.2319, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 5 | 1 | 4 | 1 | 4 | predicted_OBP: 0.2532 -> 0.2740 (boost 0.0208, better) | predicted_HR: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 4 | 4 | 0 | 3 | 1 | predicted_HR: 0.0000 -> 1.0000 (boost 1.0000, better) | - | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 3 | 2 | 1 | 2 | 1 | predicted_SLG: 0.4030 -> 0.4463 (boost 0.0433, better) | predicted_OBP: 0.2740 -> 0.2532 (deboost -0.0208, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "682657",
"player_name": "Angel Martínez",
"position": "LF",
"team": "CLE",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.224,
"predicted_3B": 0.019,
"predicted_AB": 4.35,
"predicted_AVG": 0.219,
"predicted_BB": 0.121,
"predicted_H": 0.95,
"predicted_HR": 0.21,
"predicted_OBP": 0.271,
"predicted_R": 0.458,
"predicted_RBI": 0.74,
"predicted_SLG": 0.436,
"predicted_SO": 0.85
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.2421,
"predicted_3B": 0.016,
"predicted_AB": 4.058,
"predicted_AVG": 0.2319,
"predicted_BB": 0.13,
"predicted_H": 0.9349,
"predicted_HBP": 0.039,
"predicted_HR": 0.204,
"predicted_OBP": 0.2768,
"predicted_R": 0.4412,
"predicted_RBI": 0.7353,
"predicted_SLG": 0.4583,
"predicted_SO": 0.8182
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.224,
"after": 0.2421,
"delta": 0.0181,
"percent_delta": 0.0808,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.019,
"after": 0.016,
"delta": -0.003,
"percent_delta": -0.1579,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.35,
"after": 4.058,
"delta": -0.292,
"percent_delta": -0.0671,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.219,
"after": 0.2319,
"delta": 0.0129,
"percent_delta": 0.0589,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.121,
"after": 0.13,
"delta": 0.009,
"percent_delta": 0.0744,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.95,
"after": 0.9349,
"delta": -0.0151,
"percent_delta": -0.0159,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.21,
"after": 0.204,
"delta": -0.006,
"percent_delta": -0.0286,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.271,
"after": 0.2768,
"delta": 0.0058,
"percent_delta": 0.0214,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.458,
"after": 0.4412,
"delta": -0.0168,
"percent_delta": -0.0367,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.74,
"after": 0.7353,
"delta": -0.0047,
"percent_delta": -0.0064,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.436,
"after": 0.4583,
"delta": 0.0223,
"percent_delta": 0.0511,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.85,
"after": 0.8182,
"delta": -0.0318,
"percent_delta": -0.0374,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 3,
"deboosted_metrics": 1,
"better_metrics": 3,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.436,
"after": 0.4583,
"delta": 0.0223,
"percent_delta": 0.0511,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.35,
"after": 4.058,
"delta": -0.292,
"percent_delta": -0.0671,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 107
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.2421,
"predicted_3B": 0.016,
"predicted_AB": 4.058,
"predicted_AVG": 0.2293,
"predicted_BB": 0.1297,
"predicted_H": 0.9306,
"predicted_HBP": 0.039,
"predicted_HR": 0.2021,
"predicted_OBP": 0.2532,
"predicted_R": 0.4382,
"predicted_RBI": 0.7302,
"predicted_SLG": 0.4463,
"predicted_SO": 0.8203
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.2421,
"after": 0.2421,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.016,
"after": 0.016,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.058,
"after": 4.058,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2319,
"after": 0.2293,
"delta": -0.0026,
"percent_delta": -0.0112,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.13,
"after": 0.1297,
"delta": -0.0003,
"percent_delta": -0.0023,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.9349,
"after": 0.9306,
"delta": -0.0043,
"percent_delta": -0.0046,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.039,
"after": 0.039,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.204,
"after": 0.2021,
"delta": -0.0019,
"percent_delta": -0.0093,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.2768,
"after": 0.2532,
"delta": -0.0236,
"percent_delta": -0.0853,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.4412,
"after": 0.4382,
"delta": -0.003,
"percent_delta": -0.0068,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.7353,
"after": 0.7302,
"delta": -0.0051,
"percent_delta": -0.0069,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4583,
"after": 0.4463,
"delta": -0.012,
"percent_delta": -0.0262,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.8182,
"after": 0.8203,
"delta": 0.0021,
"percent_delta": 0.0026,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.2768,
"after": 0.2532,
"delta": -0.0236,
"percent_delta": -0.0853,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=4.35), rates preserved: AVG=0.185 HR/AB=0.046",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.2421,
"after": 0.0,
"delta": -0.2421,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.016,
"after": 0.0,
"delta": -0.016,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.058,
"after": 4.0,
"delta": -0.058,
"percent_delta": -0.0143,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.1297,
"after": 0.0,
"delta": -0.1297,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.9306,
"after": 1.0,
"delta": 0.0694,
"percent_delta": 0.0746,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.039,
"after": 0.0,
"delta": -0.039,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.2021,
"after": 0.0,
"delta": -0.2021,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.7302,
"after": 1.0,
"delta": 0.2698,
"percent_delta": 0.3695,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.8203,
"after": 1.0,
"delta": 0.1797,
"percent_delta": 0.2191,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 3,
"deboosted_metrics": 4,
"better_metrics": 2,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.7302,
"after": 1.0,
"delta": 0.2698,
"percent_delta": 0.3695,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_2B",
"before": 0.2421,
"after": 0.0,
"delta": -0.2421,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.4382,
"after": 0.0,
"delta": -0.4382,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_R",
"before": 0.4382,
"after": 0.0,
"delta": -0.4382,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.2055,
"predicted_3B": 0.0156,
"predicted_BB": 0.2319,
"predicted_H": 0.8265,
"predicted_HR": 0.1448,
"predicted_RBI": 0.5422,
"predicted_SO": 1.074
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.2055,
"delta": 0.2055,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0156,
"delta": 0.0156,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.2319,
"delta": 0.2319,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.8265,
"delta": -0.1735,
"percent_delta": -0.1735,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1448,
"delta": 0.1448,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.5422,
"delta": -0.4578,
"percent_delta": -0.4578,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.074,
"delta": 0.074,
"percent_delta": 0.074,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 3,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 0.2319,
"delta": 0.2319,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.5422,
"delta": -0.4578,
"percent_delta": -0.4578,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.2055,
"after": 0.0,
"delta": -0.2055,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0156,
"after": 0.0,
"delta": -0.0156,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.2319,
"after": 0.0,
"delta": -0.2319,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8265,
"after": 1.0,
"delta": 0.1735,
"percent_delta": 0.2099,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1448,
"after": 1.0,
"delta": 0.8552,
"percent_delta": 5.9061,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.5422,
"after": 1.0,
"delta": 0.4578,
"percent_delta": 0.8443,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.074,
"after": 1.0,
"delta": -0.074,
"percent_delta": -0.0689,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 4,
"deboosted_metrics": 3,
"better_metrics": 5,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.2319,
"after": 0.0,
"delta": -0.2319,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.222,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.274,
"predicted_R": 0.0,
"predicted_RBI": 1.0,
"predicted_SLG": 0.403,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2293,
"after": 0.222,
"delta": -0.0073,
"percent_delta": -0.0318,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.2532,
"after": 0.274,
"delta": 0.0208,
"percent_delta": 0.0821,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4463,
"after": 0.403,
"delta": -0.0433,
"percent_delta": -0.097,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 1,
"deboosted_metrics": 4,
"better_metrics": 1,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_OBP",
"before": 0.2532,
"after": 0.274,
"delta": 0.0208,
"percent_delta": 0.0821,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_HR",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 1.0,
"predicted_R": 1.0,
"predicted_RBI": 2.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 4,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_HR",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.2293,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 1.0,
"predicted_LF": 0.0,
"predicted_OBP": 0.2532,
"predicted_R": 1.0,
"predicted_RBI": 2.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.4463,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.222,
"after": 0.2293,
"delta": 0.0073,
"percent_delta": 0.033,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.274,
"after": 0.2532,
"delta": -0.0208,
"percent_delta": -0.076,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.403,
"after": 0.4463,
"delta": 0.0433,
"percent_delta": 0.1075,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 2,
"deboosted_metrics": 1,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.403,
"after": 0.4463,
"delta": 0.0433,
"percent_delta": 0.1075,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.274,
"after": 0.2532,
"delta": -0.0208,
"percent_delta": -0.076,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.224,
"after": 0.0,
"delta": -0.224,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.019,
"after": 0.0,
"delta": -0.019,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.35,
"after": 4.0,
"delta": -0.35,
"percent_delta": -0.0805,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.219,
"after": 0.2293,
"delta": 0.0103,
"percent_delta": 0.047,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.121,
"after": 0.0,
"delta": -0.121,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.95,
"after": 1.0,
"delta": 0.05,
"percent_delta": 0.0526,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.21,
"after": 1.0,
"delta": 0.79,
"percent_delta": 3.7619,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.271,
"after": 0.2532,
"delta": -0.0178,
"percent_delta": -0.0657,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.458,
"after": 1.0,
"delta": 0.542,
"percent_delta": 1.1834,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.74,
"after": 2.0,
"delta": 1.26,
"percent_delta": 1.7027,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.436,
"after": 0.4463,
"delta": 0.0103,
"percent_delta": 0.0236,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.85,
"after": 2.0,
"delta": 1.15,
"percent_delta": 1.3529,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 11,
"boosted_metrics": 7,
"deboosted_metrics": 4,
"better_metrics": 6,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.74,
"after": 2.0,
"delta": 1.26,
"percent_delta": 1.7027,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.35,
"after": 4.0,
"delta": -0.35,
"percent_delta": -0.0805,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.224 | - |
| predicted_3B | 0.019 | - |
| predicted_AB | 4.350 | - |
| predicted_AVG | 0.219 | - |
| predicted_BB | 0.121 | - |
| predicted_H | 0.950 | - |
| predicted_HR | 0.210 | - |
| predicted_OBP | 0.271 | - |
| predicted_R | 0.458 | - |
| predicted_RBI | 0.740 | - |
| predicted_SLG | 0.436 | - |
| predicted_SO | 0.850 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.242 | 0.018 |
| predicted_3B | 0.016 | -0.003 |
| predicted_AB | 4.058 | -0.292 |
| predicted_AVG | 0.232 | 0.013 |
| predicted_BB | 0.130 | 0.009 |
| predicted_H | 0.935 | -0.015 |
| predicted_HBP | 0.039 | - |
| predicted_HR | 0.204 | -0.006 |
| predicted_OBP | 0.277 | 0.006 |
| predicted_R | 0.441 | -0.017 |
| predicted_RBI | 0.735 | -0.005 |
| predicted_SLG | 0.458 | 0.022 |
| predicted_SO | 0.818 | -0.032 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.242 | 0.000 |
| predicted_3B | 0.016 | 0.000 |
| predicted_AB | 4.058 | 0.000 |
| predicted_AVG | 0.229 | -0.003 |
| predicted_BB | 0.130 | -0.000 |
| predicted_H | 0.931 | -0.004 |
| predicted_HBP | 0.039 | 0.000 |
| predicted_HR | 0.202 | -0.002 |
| predicted_OBP | 0.253 | -0.024 |
| predicted_R | 0.438 | -0.003 |
| predicted_RBI | 0.730 | -0.005 |
| predicted_SLG | 0.446 | -0.012 |
| predicted_SO | 0.820 | 0.002 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=4.35), rates preserved: AVG=0.185 HR/AB=0.046
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.205 | 0.205 |
| 3B | 0.016 | 0.016 |
| BB | 0.232 | 0.232 |
| H | 0.827 | -0.173 |
| HR | 0.145 | 0.145 |
| RBI | 0.542 | -0.458 |
| SO | 1.074 | 0.074 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.205 |
| 3B | 0.000 | -0.016 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -0.232 |
| H | 1.000 | 0.173 |
| HR | 1.000 | 0.855 |
| R | 1.000 | 1.000 |
| RBI | 1.000 | 0.458 |
| SO | 1.000 | -0.074 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.242 |
| predicted_3B | 0.000 | -0.016 |
| predicted_AB | 4.000 | -0.058 |
| predicted_AVG | 0.222 | -0.007 |
| predicted_BB | 0.000 | -0.130 |
| predicted_H | 1.000 | 0.069 |
| predicted_HR | 0.000 | -0.202 |
| predicted_OBP | 0.274 | 0.021 |
| predicted_R | 0.000 | -0.438 |
| predicted_RBI | 1.000 | 0.270 |
| predicted_SLG | 0.403 | -0.043 |
| predicted_SO | 1.000 | 0.180 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 1.000 | 0.000 |
| PA | 4.000 | - |
| R | 1.000 | 0.000 |
| RBI | 2.000 | 1.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 2.000 | 1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 18.000 | 3.000 | 1.000 | 0.000 | 1.000 | 5.000 | 1.000 | 1.000 | 3.000 | 0.1667 | 0.2105 | 0.3889 | 0.1667 | 0.0556 | 0.2778 | 0.0556 | 0.1667 |
| last_10 | 0.20 | 10 | - | 38.000 | 12.000 | 5.000 | 0.000 | 3.000 | 10.000 | 5.000 | 1.000 | 7.000 | 0.3158 | 0.3333 | 0.6842 | 0.3158 | 0.0790 | 0.2632 | 0.0263 | 0.1842 |
| season | 0.60 | 107 | - | 389.000 | 99.000 | 24.000 | 2.000 | 18.000 | 62.000 | 49.000 | 13.000 | 91.000 | 0.2545 | 0.2902 | 0.4653 | 0.2545 | 0.0463 | 0.1594 | 0.0334 | 0.2339 |
| Metric | Value |
|---|---|
| predicted_2B | 0.2660 |
| predicted_3B | 0.0120 |
| predicted_AB | 3.6710 |
| predicted_AVG | 0.2491 |
| predicted_BB | 0.1420 |
| predicted_H | 0.9150 |
| predicted_HBP | 0.0390 |
| predicted_HR | 0.1960 |
| predicted_OBP | 0.2844 |
| predicted_R | 0.4190 |
| predicted_RBI | 0.7290 |
| predicted_SLG | 0.4879 |
| predicted_SO | 0.7760 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.2240 | 0.2660 | 0.2421 | model_form_blend |
| predicted_3B | 0.0190 | 0.0120 | 0.0160 | model_form_blend |
| predicted_AB | 4.3500 | 3.6710 | 4.0580 | model_form_blend |
| predicted_AVG | 0.2190 | 0.2491 | 0.2319 | model_form_blend |
| predicted_BB | 0.1210 | 0.1420 | 0.1300 | model_form_blend |
| predicted_H | 0.9500 | 0.9150 | 0.9349 | model_form_blend |
| predicted_HBP | - | 0.0390 | 0.0390 | form_only |
| predicted_HR | 0.2100 | 0.1960 | 0.2040 | model_form_blend |
| predicted_OBP | 0.2710 | 0.2844 | 0.2768 | model_form_blend |
| predicted_R | 0.4580 | 0.4190 | 0.4412 | model_form_blend |
| predicted_RBI | 0.7400 | 0.7290 | 0.7353 | model_form_blend |
| predicted_SLG | 0.4360 | 0.4879 | 0.4583 | model_form_blend |
| predicted_SO | 0.8500 | 0.7760 | 0.8182 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 396 |
| Season rows before report date | 396 |
| Report year | 2026 |
| Profile rows used | 107 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 1 |
| 2B | 0 |
| 3B | 0 |
| HR | 1 |
| R | 1 |
| RBI | 2 |
| BB | 0 |
| SO | 2 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 1 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | LF |
| gameID | 20260927_CLE@KC |
| game_type | full |
| mlbID | 682657 |
| playerID | 682657 |
| playerName | Angel Martínez |
| pos | LF |
| started | True |
| startingPosition | LF |
| team | CLE |
| teamID | 8 |
| game_date | 2026-09-27 |
| sl_k_percent | 21.9 |
| sl_bb_percent | 3.1 |
| sl_woba | 0.326 |
| sl_xwoba | 0.299 |
| sl_xba | 0.251 |
| sl_xslg | 0.401 |
| sl_sweet_spot_percent | 35.1 |
| sl_barrel_batted_rate | 7.2 |
| sl_hard_hit_percent | 35.5 |
| sl_exit_velocity_avg | 87.5 |
| sl_launch_angle_avg | 14.8 |
| sl_whiff_percent | 20.7 |
| sl_swing_percent | 54.3 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.219 | 0.000 | 0.000 | Hitting_2B | 0.222 | 0.000 | -0.222 | 0.000 |
| predicted_3B | 0.023 | 0.000 | 0.000 | Hitting_3B | 0.028 | 0.000 | -0.028 | 0.000 |
| predicted_AB | 4.500 | 4.000 | 4.000 | Hitting_AB | 3.930 | 4.000 | 0.070 | 0.000 |
| predicted_AVG | 0.244 | 0.000 | 0.250 | Hitting_AVG | 0.282 | 0.250 | -0.282 | -0.250 |
| predicted_BB | 0.445 | 0.000 | 1.000 | Hitting_BB | 0.465 | 1.000 | -0.465 | -1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.017 | 0.000 | -0.017 | 0.000 |
| predicted_H | 1.100 | 0.000 | 1.000 | Hitting_H | 1.106 | 1.000 | -1.106 | -1.000 |
| predicted_HR | 0.190 | 0.000 | 0.000 | Hitting_HR | 0.127 | 1.000 | -0.127 | -1.000 |
| predicted_OBP | 0.350 | 0.000 | 0.400 | Hitting_OBP | 0.356 | 0.400 | -0.356 | -0.400 |
| predicted_R | 0.461 | 0.000 | 0.000 | Hitting_R | 0.499 | 1.000 | -0.499 | -1.000 |
| predicted_RBI | 0.600 | 0.000 | 1.000 | Hitting_RBI | 0.564 | 1.000 | -0.564 | -1.000 |
| predicted_SLG | 0.450 | 0.000 | 0.250 | Hitting_SLG | 0.450 | 1.000 | -0.450 | -1.000 |
| predicted_SO | 0.633 | 1.000 | 1.000 | Hitting_SO | 0.649 | 0.000 | 0.351 | 1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 10 |
| Boosted Metrics | 1 |
| Deboosted Metrics | 9 |
| Better Metrics | 0 |
| Worse Metrics | 10 |
| Biggest Boost | predicted_SO: 0.6330 -> 1.0000 (boost 0.3670, worse) |
| Biggest Deboost | predicted_H: 1.1000 -> 0.0000 (deboost -1.1000, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 2 | 1 | 1 | 1 | 1 | predicted_AVG: 0.2440 -> 0.2503 (boost 0.0063, better) | predicted_AB: 4.5000 -> 4.2036 (deboost -0.2964, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 2 | 0 | 2 | 0 | 2 | - | predicted_OBP: 0.3521 -> 0.3248 (deboost -0.0273, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 1 | 6 | 0 | 7 | predicted_SO: 0.6660 -> 1.0000 (boost 0.3340, worse) | predicted_RBI: 0.5484 -> 0.0000 (deboost -0.5484, worse) | AB rounded to 4 (raw=4.50), rates preserved: AVG=0.202 HR/AB=0.038 |
| 6 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.4729 -> 0.0000 (deboost -0.4729, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 4 | 2 | 5 | 1 | predicted_RBI: 0.0000 -> 0.5135 (boost 0.5135, better) | predicted_SO: 1.0000 -> 0.8270 (deboost -0.1730, better) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 6 | 4 | 2 | 3 | 3 | predicted_BB: 0.4686 -> 1.0000 (boost 0.5314, better) | predicted_2B: 0.1832 -> 0.0000 (deboost -0.1832, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 4 | 0 | 4 | 0 | 4 | - | predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 1 | 0 | 1 | 0 | 1 | - | predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 2 | 2 | 0 | 2 | 0 | predicted_SLG: 0.3790 -> 0.4358 (boost 0.0568, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "800050",
"player_name": "Chase DeLauter",
"position": "RF",
"team": "CLE",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.219,
"predicted_3B": 0.023,
"predicted_AB": 4.5,
"predicted_AVG": 0.244,
"predicted_BB": 0.445,
"predicted_H": 1.1,
"predicted_HR": 0.19,
"predicted_OBP": 0.35,
"predicted_R": 0.461,
"predicted_RBI": 0.6,
"predicted_SLG": 0.45,
"predicted_SO": 0.633
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.2307,
"predicted_3B": 0.0191,
"predicted_AB": 4.2036,
"predicted_AVG": 0.2503,
"predicted_BB": 0.4741,
"predicted_H": 1.0509,
"predicted_HBP": 0.061,
"predicted_HR": 0.1739,
"predicted_OBP": 0.3521,
"predicted_R": 0.4762,
"predicted_RBI": 0.5522,
"predicted_SLG": 0.4504,
"predicted_SO": 0.6643
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.219,
"after": 0.2307,
"delta": 0.0117,
"percent_delta": 0.0534,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.023,
"after": 0.0191,
"delta": -0.0039,
"percent_delta": -0.1696,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.5,
"after": 4.2036,
"delta": -0.2964,
"percent_delta": -0.0659,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.244,
"after": 0.2503,
"delta": 0.0063,
"percent_delta": 0.0258,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.445,
"after": 0.4741,
"delta": 0.0291,
"percent_delta": 0.0654,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.1,
"after": 1.0509,
"delta": -0.0491,
"percent_delta": -0.0446,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.19,
"after": 0.1739,
"delta": -0.0161,
"percent_delta": -0.0847,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.35,
"after": 0.3521,
"delta": 0.0021,
"percent_delta": 0.006,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.461,
"after": 0.4762,
"delta": 0.0152,
"percent_delta": 0.033,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.6,
"after": 0.5522,
"delta": -0.0478,
"percent_delta": -0.0797,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.45,
"after": 0.4504,
"delta": 0.0004,
"percent_delta": 0.0009,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.633,
"after": 0.6643,
"delta": 0.0313,
"percent_delta": 0.0494,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_AVG",
"before": 0.244,
"after": 0.2503,
"delta": 0.0063,
"percent_delta": 0.0258,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.5,
"after": 4.2036,
"delta": -0.2964,
"percent_delta": -0.0659,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 128
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.2307,
"predicted_3B": 0.0191,
"predicted_AB": 4.2036,
"predicted_AVG": 0.2488,
"predicted_BB": 0.4729,
"predicted_H": 1.0461,
"predicted_HBP": 0.061,
"predicted_HR": 0.1723,
"predicted_OBP": 0.3248,
"predicted_R": 0.4729,
"predicted_RBI": 0.5484,
"predicted_SLG": 0.4358,
"predicted_SO": 0.666
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.2307,
"after": 0.2307,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0191,
"after": 0.0191,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.2036,
"after": 4.2036,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2503,
"after": 0.2488,
"delta": -0.0015,
"percent_delta": -0.006,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.4741,
"after": 0.4729,
"delta": -0.0012,
"percent_delta": -0.0025,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0509,
"after": 1.0461,
"delta": -0.0048,
"percent_delta": -0.0046,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.061,
"after": 0.061,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1739,
"after": 0.1723,
"delta": -0.0016,
"percent_delta": -0.0092,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3521,
"after": 0.3248,
"delta": -0.0273,
"percent_delta": -0.0775,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.4762,
"after": 0.4729,
"delta": -0.0033,
"percent_delta": -0.0069,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5522,
"after": 0.5484,
"delta": -0.0038,
"percent_delta": -0.0069,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4504,
"after": 0.4358,
"delta": -0.0146,
"percent_delta": -0.0324,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.6643,
"after": 0.666,
"delta": 0.0017,
"percent_delta": 0.0026,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.3521,
"after": 0.3248,
"delta": -0.0273,
"percent_delta": -0.0775,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=4.50), rates preserved: AVG=0.202 HR/AB=0.038",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.2307,
"after": 0.0,
"delta": -0.2307,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0191,
"after": 0.0,
"delta": -0.0191,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.2036,
"after": 4.0,
"delta": -0.2036,
"percent_delta": -0.0484,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.4729,
"after": 0.0,
"delta": -0.4729,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0461,
"after": 1.0,
"delta": -0.0461,
"percent_delta": -0.0441,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.061,
"after": 0.0,
"delta": -0.061,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1723,
"after": 0.0,
"delta": -0.1723,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.5484,
"after": 0.0,
"delta": -0.5484,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.666,
"after": 1.0,
"delta": 0.334,
"percent_delta": 0.5015,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 1,
"deboosted_metrics": 6,
"better_metrics": 0,
"worse_metrics": 7,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.666,
"after": 1.0,
"delta": 0.334,
"percent_delta": 0.5015,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.5484,
"after": 0.0,
"delta": -0.5484,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.4729,
"after": 0.0,
"delta": -0.4729,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_R",
"before": 0.4729,
"after": 0.0,
"delta": -0.4729,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1832,
"predicted_3B": 0.0196,
"predicted_BB": 0.4686,
"predicted_H": 0.8903,
"predicted_HR": 0.1114,
"predicted_RBI": 0.5135,
"predicted_SO": 0.827
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1832,
"delta": 0.1832,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0196,
"delta": 0.0196,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.4686,
"delta": 0.4686,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.8903,
"delta": -0.1097,
"percent_delta": -0.1097,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1114,
"delta": 0.1114,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.5135,
"delta": 0.5135,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.827,
"delta": -0.173,
"percent_delta": -0.173,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 5,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.5135,
"delta": 0.5135,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 0.827,
"delta": -0.173,
"percent_delta": -0.173,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1832,
"after": 0.0,
"delta": -0.1832,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0196,
"after": 0.0,
"delta": -0.0196,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.4686,
"after": 1.0,
"delta": 0.5314,
"percent_delta": 1.134,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8903,
"after": 1.0,
"delta": 0.1097,
"percent_delta": 0.1232,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1114,
"after": 0.0,
"delta": -0.1114,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5135,
"after": 1.0,
"delta": 0.4865,
"percent_delta": 0.9474,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.827,
"after": 1.0,
"delta": 0.173,
"percent_delta": 0.2092,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 3,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.4686,
"after": 1.0,
"delta": 0.5314,
"percent_delta": 1.134,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_2B",
"before": 0.1832,
"after": 0.0,
"delta": -0.1832,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.233,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.322,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.379,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2488,
"after": 0.233,
"delta": -0.0158,
"percent_delta": -0.0635,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3248,
"after": 0.322,
"delta": -0.0028,
"percent_delta": -0.0086,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.4358,
"after": 0.379,
"delta": -0.0568,
"percent_delta": -0.1303,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 0,
"deboosted_metrics": 4,
"better_metrics": 0,
"worse_metrics": 4,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.2488,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3248,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_RF": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.4358,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.233,
"after": 0.2488,
"delta": 0.0158,
"percent_delta": 0.068,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.322,
"after": 0.3248,
"delta": 0.0028,
"percent_delta": 0.0087,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.379,
"after": 0.4358,
"delta": 0.0568,
"percent_delta": 0.1499,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.379,
"after": 0.4358,
"delta": 0.0568,
"percent_delta": 0.1499,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.219,
"after": 0.0,
"delta": -0.219,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.023,
"after": 0.0,
"delta": -0.023,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.5,
"after": 4.0,
"delta": -0.5,
"percent_delta": -0.1111,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.244,
"after": 0.2488,
"delta": 0.0048,
"percent_delta": 0.0197,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.445,
"after": 0.0,
"delta": -0.445,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.1,
"after": 0.0,
"delta": -1.1,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.19,
"after": 0.0,
"delta": -0.19,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.35,
"after": 0.3248,
"delta": -0.0252,
"percent_delta": -0.072,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.461,
"after": 0.0,
"delta": -0.461,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.6,
"after": 0.0,
"delta": -0.6,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.45,
"after": 0.4358,
"delta": -0.0142,
"percent_delta": -0.0316,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.633,
"after": 1.0,
"delta": 0.367,
"percent_delta": 0.5798,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 10,
"boosted_metrics": 1,
"deboosted_metrics": 9,
"better_metrics": 0,
"worse_metrics": 10,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.633,
"after": 1.0,
"delta": 0.367,
"percent_delta": 0.5798,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.1,
"after": 0.0,
"delta": -1.1,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.219 | - |
| predicted_3B | 0.023 | - |
| predicted_AB | 4.500 | - |
| predicted_AVG | 0.244 | - |
| predicted_BB | 0.445 | - |
| predicted_H | 1.100 | - |
| predicted_HR | 0.190 | - |
| predicted_OBP | 0.350 | - |
| predicted_R | 0.461 | - |
| predicted_RBI | 0.600 | - |
| predicted_SLG | 0.450 | - |
| predicted_SO | 0.633 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.231 | 0.012 |
| predicted_3B | 0.019 | -0.004 |
| predicted_AB | 4.204 | -0.296 |
| predicted_AVG | 0.250 | 0.006 |
| predicted_BB | 0.474 | 0.029 |
| predicted_H | 1.051 | -0.049 |
| predicted_HBP | 0.061 | - |
| predicted_HR | 0.174 | -0.016 |
| predicted_OBP | 0.352 | 0.002 |
| predicted_R | 0.476 | 0.015 |
| predicted_RBI | 0.552 | -0.048 |
| predicted_SLG | 0.450 | 0.000 |
| predicted_SO | 0.664 | 0.031 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.231 | 0.000 |
| predicted_3B | 0.019 | 0.000 |
| predicted_AB | 4.204 | 0.000 |
| predicted_AVG | 0.249 | -0.002 |
| predicted_BB | 0.473 | -0.001 |
| predicted_H | 1.046 | -0.005 |
| predicted_HBP | 0.061 | 0.000 |
| predicted_HR | 0.172 | -0.002 |
| predicted_OBP | 0.325 | -0.027 |
| predicted_R | 0.473 | -0.003 |
| predicted_RBI | 0.548 | -0.004 |
| predicted_SLG | 0.436 | -0.015 |
| predicted_SO | 0.666 | 0.002 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=4.50), rates preserved: AVG=0.202 HR/AB=0.038
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.183 | 0.183 |
| 3B | 0.020 | 0.020 |
| BB | 0.469 | 0.469 |
| H | 0.890 | -0.110 |
| HR | 0.111 | 0.111 |
| RBI | 0.513 | 0.513 |
| SO | 0.827 | -0.173 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.183 |
| 3B | 0.000 | -0.020 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 0.531 |
| H | 1.000 | 0.110 |
| HR | 0.000 | -0.111 |
| R | 0.000 | 0.000 |
| RBI | 1.000 | 0.487 |
| SO | 1.000 | 0.173 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.231 |
| predicted_3B | 0.000 | -0.019 |
| predicted_AB | 4.000 | -0.204 |
| predicted_AVG | 0.233 | -0.016 |
| predicted_BB | 0.000 | -0.473 |
| predicted_H | 1.000 | -0.046 |
| predicted_HR | 0.000 | -0.172 |
| predicted_OBP | 0.322 | -0.003 |
| predicted_R | 0.000 | -0.473 |
| predicted_RBI | 0.000 | -0.548 |
| predicted_SLG | 0.379 | -0.057 |
| predicted_SO | 1.000 | 0.334 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -1.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | -1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -1.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 20.000 | 4.000 | 2.000 | 0.000 | 1.000 | 2.000 | 3.000 | 3.000 | 5.000 | 0.2000 | 0.3333 | 0.4500 | 0.2000 | 0.0500 | 0.1000 | 0.1500 | 0.2500 |
| last_10 | 0.20 | 10 | - | 38.000 | 9.000 | 2.000 | 0.000 | 2.000 | 5.000 | 5.000 | 7.000 | 6.000 | 0.2368 | 0.3696 | 0.4474 | 0.2368 | 0.0526 | 0.1316 | 0.1842 | 0.1579 |
| season | 0.60 | 128 | - | 482.000 | 138.000 | 28.000 | 3.000 | 16.000 | 66.000 | 59.000 | 57.000 | 81.000 | 0.2863 | 0.3616 | 0.4564 | 0.2863 | 0.0332 | 0.1369 | 0.1183 | 0.1681 |
| Metric | Value |
|---|---|
| predicted_2B | 0.2460 |
| predicted_3B | 0.0140 |
| predicted_AB | 3.8180 |
| predicted_AVG | 0.2586 |
| predicted_BB | 0.5120 |
| predicted_H | 0.9870 |
| predicted_HBP | 0.0610 |
| predicted_HR | 0.1530 |
| predicted_OBP | 0.3548 |
| predicted_R | 0.4960 |
| predicted_RBI | 0.4900 |
| predicted_SLG | 0.4509 |
| predicted_SO | 0.7050 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.2190 | 0.2460 | 0.2307 | model_form_blend |
| predicted_3B | 0.0230 | 0.0140 | 0.0191 | model_form_blend |
| predicted_AB | 4.5000 | 3.8180 | 4.2036 | model_form_blend |
| predicted_AVG | 0.2440 | 0.2586 | 0.2503 | model_form_blend |
| predicted_BB | 0.4450 | 0.5120 | 0.4741 | model_form_blend |
| predicted_H | 1.1000 | 0.9870 | 1.0509 | model_form_blend |
| predicted_HBP | - | 0.0610 | 0.0610 | form_only |
| predicted_HR | 0.1900 | 0.1530 | 0.1739 | model_form_blend |
| predicted_OBP | 0.3500 | 0.3548 | 0.3521 | model_form_blend |
| predicted_R | 0.4610 | 0.4960 | 0.4762 | model_form_blend |
| predicted_RBI | 0.6000 | 0.4900 | 0.5522 | model_form_blend |
| predicted_SLG | 0.4500 | 0.4509 | 0.4504 | model_form_blend |
| predicted_SO | 0.6330 | 0.7050 | 0.6643 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 527 |
| Season rows before report date | 527 |
| Report year | 2026 |
| Profile rows used | 128 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.25 |
| Hitting_BB | 1 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 1 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 1 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 4 |
| Hitting_battingOrder | 3 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | RF |
| gameID | 20260926_CLE@KC |
| game_type | full |
| mlbID | 800050 |
| playerID | 800050 |
| playerName | Chase DeLauter |
| pos | RF |
| started | True |
| startingPosition | RF |
| team | CLE |
| teamID | 8 |
| game_date | 2026-09-26 |
| sl_k_percent | 14.7 |
| sl_bb_percent | 10.7 |
| sl_woba | 0.359 |
| sl_xwoba | 0.346 |
| sl_xba | 0.277 |
| sl_xslg | 0.427 |
| sl_sweet_spot_percent | 35.1 |
| sl_barrel_batted_rate | 6.3 |
| sl_hard_hit_percent | 46.3 |
| sl_exit_velocity_avg | 91.4 |
| sl_launch_angle_avg | 11.8 |
| sl_whiff_percent | 15.0 |
| sl_swing_percent | 42.3 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.174 | 0.000 | 0.000 | Hitting_2B | 0.176 | 0.000 | -0.176 | 0.000 |
| predicted_3B | 0.017 | 0.000 | 0.000 | Hitting_3B | 0.010 | 0.000 | -0.010 | 0.000 |
| predicted_AB | 3.790 | 4.000 | 3.000 | Hitting_AB | 3.710 | 4.000 | 0.290 | 0.000 |
| predicted_AVG | 0.239 | 0.500 | 0.333 | Hitting_AVG | 0.250 | 0.000 | 0.250 | 0.500 |
| predicted_BB | 0.446 | 0.000 | 0.000 | Hitting_BB | 0.503 | 0.000 | -0.503 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.045 | 0.000 | -0.045 | 0.000 |
| predicted_H | 0.910 | 2.000 | 1.000 | Hitting_H | 0.926 | 0.000 | 1.074 | 2.000 |
| predicted_HR | 0.110 | 0.000 | 0.000 | Hitting_HR | 0.127 | 0.000 | -0.127 | 0.000 |
| predicted_OBP | 0.299 | 0.500 | 0.333 | Hitting_OBP | 0.345 | 0.000 | 0.155 | 0.500 |
| predicted_R | 0.446 | 1.000 | 0.000 | Hitting_R | 0.468 | 0.000 | 0.532 | 1.000 |
| predicted_RBI | 0.320 | 0.000 | 0.000 | Hitting_RBI | 0.524 | 0.000 | -0.524 | 0.000 |
| predicted_SB | - | 0.000 | 0.000 | BaseRunning_SB | 0.172 | 0.000 | -0.172 | 0.000 |
| predicted_SLG | 0.389 | 0.500 | 0.333 | Hitting_SLG | 0.405 | 0.000 | 0.095 | 0.500 |
| predicted_SO | 0.868 | 0.000 | 1.000 | Hitting_SO | 0.900 | 0.000 | -0.900 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | deboosted |
| Changed Metrics | 10 |
| Boosted Metrics | 4 |
| Deboosted Metrics | 6 |
| Better Metrics | 5 |
| Worse Metrics | 5 |
| Biggest Boost | predicted_H: 0.9100 -> 2.0000 (boost 1.0900, better) |
| Biggest Deboost | predicted_SO: 0.8680 -> 0.0000 (deboost -0.8680, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 3 | 1 | 2 | 1 | 2 | predicted_SLG: 0.3890 -> 0.3944 (boost 0.0054, better) | predicted_AB: 3.7900 -> 3.7215 (deboost -0.0685, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 2 | 1 | 1 | 1 | 1 | predicted_OBP: 0.2966 -> 0.3067 (boost 0.0101, better) | predicted_SLG: 0.3944 -> 0.3883 (deboost -0.0061, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 2 | 5 | 1 | 6 | predicted_H: 0.8639 -> 1.0000 (boost 0.1361, better) | predicted_AB: 3.7215 -> 3.0000 (deboost -0.7215, worse) | AB rounded to 3 (raw=3.79), rates preserved: AVG=0.198 HR/AB=0.027 |
| 6 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.4533 -> 0.0000 (deboost -0.4533, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 5 | 4 | 1 | 4 | 1 | predicted_RBI: 0.0000 -> 0.4191 (boost 0.4191, better) | predicted_H: 1.0000 -> 0.7146 (deboost -0.2854, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 5 | 1 | 4 | 1 | 4 | predicted_H: 0.7146 -> 1.0000 (boost 0.2854, better) | predicted_RBI: 0.4191 -> 0.0000 (deboost -0.4191, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 2 | 0 | 2 | 0 | 2 | - | predicted_SLG: 0.3883 -> 0.3520 (deboost -0.0363, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 4 | 3 | 1 | 4 | 0 | predicted_AB: 3.0000 -> 4.0000 (boost 1.0000, better) | predicted_SO: 1.0000 -> 0.0000 (deboost -1.0000, better) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 2 | 2 | 0 | 2 | 0 | predicted_SLG: 0.3520 -> 0.3883 (boost 0.0363, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "683953",
"player_name": "Travis Bazzana",
"position": "2B",
"team": "CLE",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.174,
"predicted_3B": 0.017,
"predicted_AB": 3.79,
"predicted_AVG": 0.239,
"predicted_BB": 0.446,
"predicted_H": 0.91,
"predicted_HR": 0.11,
"predicted_OBP": 0.299,
"predicted_R": 0.446,
"predicted_RBI": 0.32,
"predicted_SLG": 0.389,
"predicted_SO": 0.868
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1948,
"predicted_3B": 0.0387,
"predicted_AB": 3.7215,
"predicted_AVG": 0.2324,
"predicted_BB": 0.4013,
"predicted_H": 0.8679,
"predicted_HBP": 0.034,
"predicted_HR": 0.1039,
"predicted_OBP": 0.2966,
"predicted_R": 0.4564,
"predicted_RBI": 0.3122,
"predicted_SLG": 0.3944,
"predicted_SO": 0.881
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.174,
"after": 0.1948,
"delta": 0.0208,
"percent_delta": 0.1195,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.017,
"after": 0.0387,
"delta": 0.0217,
"percent_delta": 1.2765,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.79,
"after": 3.7215,
"delta": -0.0685,
"percent_delta": -0.0181,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.239,
"after": 0.2324,
"delta": -0.0066,
"percent_delta": -0.0276,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.446,
"after": 0.4013,
"delta": -0.0447,
"percent_delta": -0.1002,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.91,
"after": 0.8679,
"delta": -0.0421,
"percent_delta": -0.0463,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.11,
"after": 0.1039,
"delta": -0.0061,
"percent_delta": -0.0555,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.299,
"after": 0.2966,
"delta": -0.0024,
"percent_delta": -0.008,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.446,
"after": 0.4564,
"delta": 0.0104,
"percent_delta": 0.0233,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.32,
"after": 0.3122,
"delta": -0.0078,
"percent_delta": -0.0244,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.389,
"after": 0.3944,
"delta": 0.0054,
"percent_delta": 0.0139,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.868,
"after": 0.881,
"delta": 0.013,
"percent_delta": 0.015,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.389,
"after": 0.3944,
"delta": 0.0054,
"percent_delta": 0.0139,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 3.79,
"after": 3.7215,
"delta": -0.0685,
"percent_delta": -0.0181,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 121
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1948,
"predicted_3B": 0.0387,
"predicted_AB": 3.7215,
"predicted_AVG": 0.2321,
"predicted_BB": 0.4003,
"predicted_H": 0.8639,
"predicted_HBP": 0.034,
"predicted_HR": 0.103,
"predicted_OBP": 0.3067,
"predicted_R": 0.4533,
"predicted_RBI": 0.31,
"predicted_SLG": 0.3883,
"predicted_SO": 0.8833
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1948,
"after": 0.1948,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0387,
"after": 0.0387,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.7215,
"after": 3.7215,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2324,
"after": 0.2321,
"delta": -0.0003,
"percent_delta": -0.0013,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.4013,
"after": 0.4003,
"delta": -0.001,
"percent_delta": -0.0025,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.8679,
"after": 0.8639,
"delta": -0.004,
"percent_delta": -0.0046,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.034,
"after": 0.034,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1039,
"after": 0.103,
"delta": -0.0009,
"percent_delta": -0.0087,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.2966,
"after": 0.3067,
"delta": 0.0101,
"percent_delta": 0.0341,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.4564,
"after": 0.4533,
"delta": -0.0031,
"percent_delta": -0.0068,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.3122,
"after": 0.31,
"delta": -0.0022,
"percent_delta": -0.007,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3944,
"after": 0.3883,
"delta": -0.0061,
"percent_delta": -0.0155,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.881,
"after": 0.8833,
"delta": 0.0023,
"percent_delta": 0.0026,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_OBP",
"before": 0.2966,
"after": 0.3067,
"delta": 0.0101,
"percent_delta": 0.0341,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.3944,
"after": 0.3883,
"delta": -0.0061,
"percent_delta": -0.0155,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 3 (raw=3.79), rates preserved: AVG=0.198 HR/AB=0.027",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1948,
"after": 0.0,
"delta": -0.1948,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0387,
"after": 0.0,
"delta": -0.0387,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.7215,
"after": 3.0,
"delta": -0.7215,
"percent_delta": -0.1939,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.4003,
"after": 0.0,
"delta": -0.4003,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8639,
"after": 1.0,
"delta": 0.1361,
"percent_delta": 0.1575,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.034,
"after": 0.0,
"delta": -0.034,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.103,
"after": 0.0,
"delta": -0.103,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.31,
"after": 0.0,
"delta": -0.31,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.8833,
"after": 1.0,
"delta": 0.1167,
"percent_delta": 0.1321,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 2,
"deboosted_metrics": 5,
"better_metrics": 1,
"worse_metrics": 6,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.8639,
"after": 1.0,
"delta": 0.1361,
"percent_delta": 0.1575,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 3.7215,
"after": 3.0,
"delta": -0.7215,
"percent_delta": -0.1939,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.4533,
"after": 0.0,
"delta": -0.4533,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_R",
"before": 0.4533,
"after": 0.0,
"delta": -0.4533,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1492,
"predicted_3B": 0.015,
"predicted_BB": 0.4189,
"predicted_H": 0.7146,
"predicted_HR": 0.0989,
"predicted_RBI": 0.4191,
"predicted_SO": 0.9803
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1492,
"delta": 0.1492,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.015,
"delta": 0.015,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.4189,
"delta": 0.4189,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.7146,
"delta": -0.2854,
"percent_delta": -0.2854,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0989,
"delta": 0.0989,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.4191,
"delta": 0.4191,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.9803,
"delta": -0.0197,
"percent_delta": -0.0197,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 4,
"deboosted_metrics": 1,
"better_metrics": 4,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.4191,
"delta": 0.4191,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.7146,
"delta": -0.2854,
"percent_delta": -0.2854,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1492,
"after": 0.0,
"delta": -0.1492,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.015,
"after": 0.0,
"delta": -0.015,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.4189,
"after": 0.0,
"delta": -0.4189,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.7146,
"after": 1.0,
"delta": 0.2854,
"percent_delta": 0.3994,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0989,
"after": 0.0,
"delta": -0.0989,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.4191,
"after": 0.0,
"delta": -0.4191,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.9803,
"after": 1.0,
"delta": 0.0197,
"percent_delta": 0.0201,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 1,
"deboosted_metrics": 4,
"better_metrics": 1,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.7146,
"after": 1.0,
"delta": 0.2854,
"percent_delta": 0.3994,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.4191,
"after": 0.0,
"delta": -0.4191,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.211,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.304,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.352,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2321,
"after": 0.211,
"delta": -0.0211,
"percent_delta": -0.0909,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3067,
"after": 0.304,
"delta": -0.0027,
"percent_delta": -0.0088,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3883,
"after": 0.352,
"delta": -0.0363,
"percent_delta": -0.0935,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.3883,
"after": 0.352,
"delta": -0.0363,
"percent_delta": -0.0935,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 2.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 3,
"deboosted_metrics": 1,
"better_metrics": 4,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.2321,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 2.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3067,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.3883,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.211,
"after": 0.2321,
"delta": 0.0211,
"percent_delta": 0.1002,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"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_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.304,
"after": 0.3067,
"delta": 0.0027,
"percent_delta": 0.0089,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.352,
"after": 0.3883,
"delta": 0.0363,
"percent_delta": 0.1031,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.352,
"after": 0.3883,
"delta": 0.0363,
"percent_delta": 0.1031,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.174,
"after": 0.0,
"delta": -0.174,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.017,
"after": 0.0,
"delta": -0.017,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.79,
"after": 4.0,
"delta": 0.21,
"percent_delta": 0.0554,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.239,
"after": 0.2321,
"delta": -0.0069,
"percent_delta": -0.0289,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.446,
"after": 0.0,
"delta": -0.446,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.91,
"after": 2.0,
"delta": 1.09,
"percent_delta": 1.1978,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.11,
"after": 0.0,
"delta": -0.11,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.299,
"after": 0.3067,
"delta": 0.0077,
"percent_delta": 0.0258,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.446,
"after": 1.0,
"delta": 0.554,
"percent_delta": 1.2422,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.32,
"after": 0.0,
"delta": -0.32,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.389,
"after": 0.3883,
"delta": -0.0007,
"percent_delta": -0.0018,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.868,
"after": 0.0,
"delta": -0.868,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 10,
"boosted_metrics": 4,
"deboosted_metrics": 6,
"better_metrics": 5,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.91,
"after": 2.0,
"delta": 1.09,
"percent_delta": 1.1978,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 0.868,
"after": 0.0,
"delta": -0.868,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "deboosted"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.174 | - |
| predicted_3B | 0.017 | - |
| predicted_AB | 3.790 | - |
| predicted_AVG | 0.239 | - |
| predicted_BB | 0.446 | - |
| predicted_H | 0.910 | - |
| predicted_HR | 0.110 | - |
| predicted_OBP | 0.299 | - |
| predicted_R | 0.446 | - |
| predicted_RBI | 0.320 | - |
| predicted_SLG | 0.389 | - |
| predicted_SO | 0.868 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.195 | 0.021 |
| predicted_3B | 0.039 | 0.022 |
| predicted_AB | 3.721 | -0.069 |
| predicted_AVG | 0.232 | -0.007 |
| predicted_BB | 0.401 | -0.045 |
| predicted_H | 0.868 | -0.042 |
| predicted_HBP | 0.034 | - |
| predicted_HR | 0.104 | -0.006 |
| predicted_OBP | 0.297 | -0.002 |
| predicted_R | 0.456 | 0.010 |
| predicted_RBI | 0.312 | -0.008 |
| predicted_SLG | 0.394 | 0.005 |
| predicted_SO | 0.881 | 0.013 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.195 | 0.000 |
| predicted_3B | 0.039 | 0.000 |
| predicted_AB | 3.721 | 0.000 |
| predicted_AVG | 0.232 | -0.000 |
| predicted_BB | 0.400 | -0.001 |
| predicted_H | 0.864 | -0.004 |
| predicted_HBP | 0.034 | 0.000 |
| predicted_HR | 0.103 | -0.001 |
| predicted_OBP | 0.307 | 0.010 |
| predicted_R | 0.453 | -0.003 |
| predicted_RBI | 0.310 | -0.002 |
| predicted_SLG | 0.388 | -0.006 |
| predicted_SO | 0.883 | 0.002 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=3.79), rates preserved: AVG=0.198 HR/AB=0.027
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.149 | 0.149 |
| 3B | 0.015 | 0.015 |
| BB | 0.419 | 0.419 |
| H | 0.715 | -0.285 |
| HR | 0.099 | 0.099 |
| RBI | 0.419 | 0.419 |
| SO | 0.980 | -0.020 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.149 |
| 3B | 0.000 | -0.015 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | -0.419 |
| H | 1.000 | 0.285 |
| HR | 0.000 | -0.099 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -0.419 |
| SO | 1.000 | 0.020 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.195 |
| predicted_3B | 0.000 | -0.039 |
| predicted_AB | 3.000 | -0.721 |
| predicted_AVG | 0.211 | -0.021 |
| predicted_BB | 0.000 | -0.400 |
| predicted_H | 1.000 | 0.136 |
| predicted_HR | 0.000 | -0.103 |
| predicted_OBP | 0.304 | -0.003 |
| predicted_R | 0.000 | -0.453 |
| predicted_RBI | 0.000 | -0.310 |
| predicted_SLG | 0.352 | -0.036 |
| predicted_SO | 1.000 | 0.117 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 1.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 2.000 | 1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 1.000 | 1.000 |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 18.000 | 4.000 | 2.000 | 1.000 | 0.000 | 0.000 | 3.000 | 1.000 | 5.000 | 0.2222 | 0.2632 | 0.4444 | 0.2222 | 0.0000 | 0.0000 | 0.0556 | 0.2778 |
| last_10 | 0.20 | 10 | - | 36.000 | 6.000 | 2.000 | 1.000 | 1.000 | 1.000 | 4.000 | 2.000 | 9.000 | 0.1667 | 0.2105 | 0.3611 | 0.1667 | 0.0278 | 0.0278 | 0.0556 | 0.2500 |
| season | 0.60 | 121 | - | 440.000 | 106.000 | 21.000 | 2.000 | 15.000 | 55.000 | 54.000 | 54.000 | 105.000 | 0.2409 | 0.3300 | 0.4000 | 0.2409 | 0.0341 | 0.1250 | 0.1227 | 0.2386 |
| Metric | Value |
|---|---|
| predicted_2B | 0.2220 |
| predicted_3B | 0.0670 |
| predicted_AB | 3.6320 |
| predicted_AVG | 0.2238 |
| predicted_BB | 0.3430 |
| predicted_H | 0.8130 |
| predicted_HBP | 0.0340 |
| predicted_HR | 0.0960 |
| predicted_OBP | 0.2935 |
| predicted_R | 0.4700 |
| predicted_RBI | 0.3020 |
| predicted_SLG | 0.4015 |
| predicted_SO | 0.8980 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1740 | 0.2220 | 0.1948 | model_form_blend |
| predicted_3B | 0.0170 | 0.0670 | 0.0387 | model_form_blend |
| predicted_AB | 3.7900 | 3.6320 | 3.7215 | model_form_blend |
| predicted_AVG | 0.2390 | 0.2238 | 0.2324 | model_form_blend |
| predicted_BB | 0.4460 | 0.3430 | 0.4013 | model_form_blend |
| predicted_H | 0.9100 | 0.8130 | 0.8679 | model_form_blend |
| predicted_HBP | - | 0.0340 | 0.0340 | form_only |
| predicted_HR | 0.1100 | 0.0960 | 0.1039 | model_form_blend |
| predicted_OBP | 0.2990 | 0.2935 | 0.2966 | model_form_blend |
| predicted_R | 0.4460 | 0.4700 | 0.4564 | model_form_blend |
| predicted_RBI | 0.3200 | 0.3020 | 0.3122 | model_form_blend |
| predicted_SLG | 0.3890 | 0.4015 | 0.3944 | model_form_blend |
| predicted_SO | 0.8680 | 0.8980 | 0.8810 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 489 |
| Season rows before report date | 489 |
| Report year | 2026 |
| Profile rows used | 121 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 2 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 1 |
| RBI | 0 |
| BB | 0 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 2 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | 2B |
| gameID | 20260927_CLE@KC |
| game_type | full |
| mlbID | 683953 |
| playerID | 683953 |
| playerName | Travis Bazzana |
| pos | 2B |
| started | True |
| startingPosition | 2B |
| team | CLE |
| teamID | 8 |
| game_date | 2026-09-27 |
| sl_k_percent | 20.7 |
| sl_bb_percent | 10.8 |
| sl_woba | 0.328 |
| sl_xwoba | 0.299 |
| sl_xba | 0.224 |
| sl_xslg | 0.347 |
| sl_sweet_spot_percent | 30.0 |
| sl_barrel_batted_rate | 5.2 |
| sl_hard_hit_percent | 36.2 |
| sl_exit_velocity_avg | 87.6 |
| sl_launch_angle_avg | 15.7 |
| sl_whiff_percent | 23.2 |
| sl_swing_percent | 45.9 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.135 | 0.000 | 0.000 | Hitting_2B | 0.155 | 0.000 | -0.155 | 0.000 |
| predicted_3B | 0.000 | 0.000 | 0.000 | Hitting_3B | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_AB | 2.905 | 3.000 | 3.000 | Hitting_AB | 2.955 | 2.000 | 0.045 | 1.000 |
| predicted_AVG | 0.226 | 0.000 | 0.000 | Hitting_AVG | 0.265 | 0.000 | -0.265 | 0.000 |
| predicted_BB | 0.338 | 1.000 | 0.000 | Hitting_BB | 0.359 | 0.000 | 0.641 | 1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.016 | 0.000 | -0.016 | 0.000 |
| predicted_H | 0.560 | 0.000 | 0.000 | Hitting_H | 0.784 | 0.000 | -0.784 | 0.000 |
| predicted_HR | 0.080 | 0.000 | 0.000 | Hitting_HR | 0.090 | 0.000 | -0.090 | 0.000 |
| predicted_OBP | 0.307 | 0.250 | 0.000 | Hitting_OBP | 0.345 | 0.000 | -0.095 | 0.250 |
| predicted_R | 0.338 | 0.000 | 0.000 | Hitting_R | 0.371 | 0.000 | -0.371 | 0.000 |
| predicted_RBI | 0.300 | 0.000 | 0.000 | Hitting_RBI | 0.384 | 0.000 | -0.384 | 0.000 |
| predicted_SLG | 0.343 | 0.000 | 0.000 | Hitting_SLG | 0.409 | 0.000 | -0.409 | 0.000 |
| predicted_SO | 0.608 | 1.000 | 1.000 | Hitting_SO | 0.604 | 1.000 | 0.396 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 10 |
| Boosted Metrics | 3 |
| Deboosted Metrics | 7 |
| Better Metrics | 2 |
| Worse Metrics | 8 |
| Biggest Boost | predicted_BB: 0.3380 -> 1.0000 (boost 0.6620, better) |
| Biggest Deboost | predicted_H: 0.5600 -> 0.0000 (deboost -0.5600, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 5 | 4 | 1 | 4 | 1 | predicted_R: 0.3380 -> 0.3919 (boost 0.0539, better) | predicted_AVG: 0.2260 -> 0.2207 (deboost -0.0053, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 3 | 0 | 3 | 0 | 3 | - | predicted_AVG: 0.2207 -> 0.2006 (deboost -0.0201, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 6 | 2 | 4 | 1 | 5 | predicted_H: 0.5924 -> 1.0000 (boost 0.4076, better) | predicted_BB: 0.3901 -> 0.0000 (deboost -0.3901, worse) | AB rounded to 3 (raw=2.95), rates preserved: AVG=0.174 HR/AB=0.031 |
| 6 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.3892 -> 0.0000 (deboost -0.3892, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 4 | 2 | 5 | 1 | predicted_BB: 0.0000 -> 0.4202 (boost 0.4202, better) | predicted_H: 1.0000 -> 0.6555 (deboost -0.3445, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 6 | 1 | 5 | 0 | 6 | predicted_SO: 0.7692 -> 1.0000 (boost 0.2308, worse) | predicted_H: 0.6555 -> 0.0000 (deboost -0.6555, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 4 | 4 | 0 | 4 | 0 | predicted_H: 0.0000 -> 1.0000 (boost 1.0000, better) | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 2 | 1 | 1 | 1 | 1 | predicted_BB: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 3 | 0 | 3 | 0 | 3 | - | predicted_OBP: 0.3130 -> 0.2939 (deboost -0.0191, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "595978",
"player_name": "Austin Hedges",
"position": "C",
"team": "CLE",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.135,
"predicted_3B": 0.0,
"predicted_AB": 2.905,
"predicted_AVG": 0.226,
"predicted_BB": 0.338,
"predicted_H": 0.56,
"predicted_HR": 0.08,
"predicted_OBP": 0.307,
"predicted_R": 0.338,
"predicted_RBI": 0.3,
"predicted_SLG": 0.343,
"predicted_SO": 0.608
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1546,
"predicted_3B": 0.0004,
"predicted_AB": 2.9531,
"predicted_AVG": 0.2207,
"predicted_BB": 0.3911,
"predicted_H": 0.5951,
"predicted_HBP": 0.01,
"predicted_HR": 0.093,
"predicted_OBP": 0.3122,
"predicted_R": 0.3919,
"predicted_RBI": 0.3159,
"predicted_SLG": 0.3604,
"predicted_SO": 0.6402
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.135,
"after": 0.1546,
"delta": 0.0196,
"percent_delta": 0.1452,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0004,
"delta": 0.0004,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.905,
"after": 2.9531,
"delta": 0.0481,
"percent_delta": 0.0166,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.226,
"after": 0.2207,
"delta": -0.0053,
"percent_delta": -0.0235,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.338,
"after": 0.3911,
"delta": 0.0531,
"percent_delta": 0.1571,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.56,
"after": 0.5951,
"delta": 0.0351,
"percent_delta": 0.0627,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.08,
"after": 0.093,
"delta": 0.013,
"percent_delta": 0.1625,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.307,
"after": 0.3122,
"delta": 0.0052,
"percent_delta": 0.0169,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.338,
"after": 0.3919,
"delta": 0.0539,
"percent_delta": 0.1595,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.3,
"after": 0.3159,
"delta": 0.0159,
"percent_delta": 0.053,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.343,
"after": 0.3604,
"delta": 0.0174,
"percent_delta": 0.0507,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.608,
"after": 0.6402,
"delta": 0.0322,
"percent_delta": 0.053,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 4,
"deboosted_metrics": 1,
"better_metrics": 4,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.338,
"after": 0.3919,
"delta": 0.0539,
"percent_delta": 0.1595,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AVG",
"before": 0.226,
"after": 0.2207,
"delta": -0.0053,
"percent_delta": -0.0235,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 74
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1546,
"predicted_3B": 0.0004,
"predicted_AB": 2.9531,
"predicted_AVG": 0.2006,
"predicted_BB": 0.3901,
"predicted_H": 0.5924,
"predicted_HBP": 0.01,
"predicted_HR": 0.0922,
"predicted_OBP": 0.2939,
"predicted_R": 0.3892,
"predicted_RBI": 0.3137,
"predicted_SLG": 0.3468,
"predicted_SO": 0.6419
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1546,
"after": 0.1546,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0004,
"after": 0.0004,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.9531,
"after": 2.9531,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2207,
"after": 0.2006,
"delta": -0.0201,
"percent_delta": -0.0911,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.3911,
"after": 0.3901,
"delta": -0.001,
"percent_delta": -0.0026,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.5951,
"after": 0.5924,
"delta": -0.0027,
"percent_delta": -0.0045,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.01,
"after": 0.01,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.093,
"after": 0.0922,
"delta": -0.0008,
"percent_delta": -0.0086,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3122,
"after": 0.2939,
"delta": -0.0183,
"percent_delta": -0.0586,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.3919,
"after": 0.3892,
"delta": -0.0027,
"percent_delta": -0.0069,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.3159,
"after": 0.3137,
"delta": -0.0022,
"percent_delta": -0.007,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3604,
"after": 0.3468,
"delta": -0.0136,
"percent_delta": -0.0377,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.6402,
"after": 0.6419,
"delta": 0.0017,
"percent_delta": 0.0027,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_AVG",
"before": 0.2207,
"after": 0.2006,
"delta": -0.0201,
"percent_delta": -0.0911,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 3 (raw=2.95), rates preserved: AVG=0.174 HR/AB=0.031",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1546,
"after": 0.0,
"delta": -0.1546,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0004,
"after": 0.0,
"delta": -0.0004,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.9531,
"after": 3.0,
"delta": 0.0469,
"percent_delta": 0.0159,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.3901,
"after": 0.0,
"delta": -0.3901,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.5924,
"after": 1.0,
"delta": 0.4076,
"percent_delta": 0.688,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.01,
"after": 0.0,
"delta": -0.01,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0922,
"after": 0.0,
"delta": -0.0922,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.3137,
"after": 0.0,
"delta": -0.3137,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.6419,
"after": 1.0,
"delta": 0.3581,
"percent_delta": 0.5579,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 2,
"deboosted_metrics": 4,
"better_metrics": 1,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.5924,
"after": 1.0,
"delta": 0.4076,
"percent_delta": 0.688,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.3901,
"after": 0.0,
"delta": -0.3901,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.3892,
"after": 0.0,
"delta": -0.3892,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_R",
"before": 0.3892,
"after": 0.0,
"delta": -0.3892,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1517,
"predicted_3B": 0.0093,
"predicted_BB": 0.4202,
"predicted_H": 0.6555,
"predicted_HR": 0.0857,
"predicted_RBI": 0.351,
"predicted_SO": 0.7692
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1517,
"delta": 0.1517,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0093,
"delta": 0.0093,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.4202,
"delta": 0.4202,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.6555,
"delta": -0.3445,
"percent_delta": -0.3445,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0857,
"delta": 0.0857,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.351,
"delta": 0.351,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.7692,
"delta": -0.2308,
"percent_delta": -0.2308,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 5,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 0.4202,
"delta": 0.4202,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.6555,
"delta": -0.3445,
"percent_delta": -0.3445,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1517,
"after": 0.0,
"delta": -0.1517,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0093,
"after": 0.0,
"delta": -0.0093,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.4202,
"after": 0.0,
"delta": -0.4202,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.6555,
"after": 0.0,
"delta": -0.6555,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0857,
"after": 0.0,
"delta": -0.0857,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.351,
"after": 0.0,
"delta": -0.351,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.7692,
"after": 1.0,
"delta": 0.2308,
"percent_delta": 0.3001,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 1,
"deboosted_metrics": 5,
"better_metrics": 0,
"worse_metrics": 6,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.7692,
"after": 1.0,
"delta": 0.2308,
"percent_delta": 0.3001,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 0.6555,
"after": 0.0,
"delta": -0.6555,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.213,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.313,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.352,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2006,
"after": 0.213,
"delta": 0.0124,
"percent_delta": 0.0618,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_H",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_OBP",
"before": 0.2939,
"after": 0.313,
"delta": 0.0191,
"percent_delta": 0.065,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3468,
"after": 0.352,
"delta": 0.0052,
"percent_delta": 0.015,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 4,
"deboosted_metrics": 0,
"better_metrics": 4,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.2006,
"predicted_BB": 1.0,
"predicted_C": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.2939,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.3468,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.213,
"after": 0.2006,
"delta": -0.0124,
"percent_delta": -0.0583,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.313,
"after": 0.2939,
"delta": -0.0191,
"percent_delta": -0.0611,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.352,
"after": 0.3468,
"delta": -0.0052,
"percent_delta": -0.0147,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.313,
"after": 0.2939,
"delta": -0.0191,
"percent_delta": -0.0611,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.135,
"after": 0.0,
"delta": -0.135,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.905,
"after": 3.0,
"delta": 0.095,
"percent_delta": 0.0327,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.226,
"after": 0.2006,
"delta": -0.0254,
"percent_delta": -0.1124,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.338,
"after": 1.0,
"delta": 0.662,
"percent_delta": 1.9586,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.56,
"after": 0.0,
"delta": -0.56,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.08,
"after": 0.0,
"delta": -0.08,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.307,
"after": 0.2939,
"delta": -0.0131,
"percent_delta": -0.0427,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.338,
"after": 0.0,
"delta": -0.338,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.3,
"after": 0.0,
"delta": -0.3,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.343,
"after": 0.3468,
"delta": 0.0038,
"percent_delta": 0.0111,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.608,
"after": 1.0,
"delta": 0.392,
"percent_delta": 0.6447,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 10,
"boosted_metrics": 3,
"deboosted_metrics": 7,
"better_metrics": 2,
"worse_metrics": 8,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.338,
"after": 1.0,
"delta": 0.662,
"percent_delta": 1.9586,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 0.56,
"after": 0.0,
"delta": -0.56,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.135 | - |
| predicted_3B | 0.000 | - |
| predicted_AB | 2.905 | - |
| predicted_AVG | 0.226 | - |
| predicted_BB | 0.338 | - |
| predicted_H | 0.560 | - |
| predicted_HR | 0.080 | - |
| predicted_OBP | 0.307 | - |
| predicted_R | 0.338 | - |
| predicted_RBI | 0.300 | - |
| predicted_SLG | 0.343 | - |
| predicted_SO | 0.608 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.155 | 0.020 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 2.953 | 0.048 |
| predicted_AVG | 0.221 | -0.005 |
| predicted_BB | 0.391 | 0.053 |
| predicted_H | 0.595 | 0.035 |
| predicted_HBP | 0.010 | - |
| predicted_HR | 0.093 | 0.013 |
| predicted_OBP | 0.312 | 0.005 |
| predicted_R | 0.392 | 0.054 |
| predicted_RBI | 0.316 | 0.016 |
| predicted_SLG | 0.360 | 0.017 |
| predicted_SO | 0.640 | 0.032 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.155 | 0.000 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 2.953 | 0.000 |
| predicted_AVG | 0.201 | -0.020 |
| predicted_BB | 0.390 | -0.001 |
| predicted_H | 0.592 | -0.003 |
| predicted_HBP | 0.010 | 0.000 |
| predicted_HR | 0.092 | -0.001 |
| predicted_OBP | 0.294 | -0.018 |
| predicted_R | 0.389 | -0.003 |
| predicted_RBI | 0.314 | -0.002 |
| predicted_SLG | 0.347 | -0.014 |
| predicted_SO | 0.642 | 0.002 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=2.95), rates preserved: AVG=0.174 HR/AB=0.031
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.152 | 0.152 |
| 3B | 0.009 | 0.009 |
| BB | 0.420 | 0.420 |
| H | 0.655 | -0.345 |
| HR | 0.086 | 0.086 |
| RBI | 0.351 | 0.351 |
| SO | 0.769 | -0.231 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.152 |
| 3B | 0.000 | -0.009 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | -0.420 |
| H | 0.000 | -0.655 |
| HR | 0.000 | -0.086 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -0.351 |
| SO | 1.000 | 0.231 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.155 |
| predicted_3B | 0.000 | -0.000 |
| predicted_AB | 3.000 | 0.047 |
| predicted_AVG | 0.213 | 0.012 |
| predicted_BB | 0.000 | -0.390 |
| predicted_H | 1.000 | 0.408 |
| predicted_HR | 0.000 | -0.092 |
| predicted_OBP | 0.313 | 0.019 |
| predicted_R | 0.000 | -0.389 |
| predicted_RBI | 0.000 | -0.314 |
| predicted_SLG | 0.352 | 0.005 |
| predicted_SO | 1.000 | 0.358 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 1.000 | 1.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 15.000 | 2.000 | 1.000 | 0.000 | 1.000 | 2.000 | 4.000 | 4.000 | 4.000 | 0.1333 | 0.3158 | 0.4000 | 0.1333 | 0.0667 | 0.1333 | 0.2667 | 0.2667 |
| last_10 | 0.20 | 10 | - | 29.000 | 5.000 | 3.000 | 0.000 | 1.000 | 2.000 | 5.000 | 6.000 | 7.000 | 0.1724 | 0.3143 | 0.3793 | 0.1724 | 0.0345 | 0.0690 | 0.2069 | 0.2414 |
| season | 0.60 | 74 | - | 215.000 | 53.000 | 10.000 | 0.000 | 6.000 | 25.000 | 25.000 | 25.000 | 45.000 | 0.2465 | 0.3251 | 0.3767 | 0.2465 | 0.0279 | 0.1163 | 0.1163 | 0.2093 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1820 |
| predicted_3B | 0.0010 |
| predicted_AB | 3.0200 |
| predicted_AVG | 0.2134 |
| predicted_BB | 0.4650 |
| predicted_H | 0.6440 |
| predicted_HBP | 0.0100 |
| predicted_HR | 0.1110 |
| predicted_OBP | 0.3194 |
| predicted_R | 0.4670 |
| predicted_RBI | 0.3380 |
| predicted_SLG | 0.3847 |
| predicted_SO | 0.6850 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1350 | 0.1820 | 0.1546 | model_form_blend |
| predicted_3B | 0.0000 | 0.0010 | 0.0004 | model_form_blend |
| predicted_AB | 2.9050 | 3.0200 | 2.9531 | model_form_blend |
| predicted_AVG | 0.2260 | 0.2134 | 0.2207 | model_form_blend |
| predicted_BB | 0.3380 | 0.4650 | 0.3911 | model_form_blend |
| predicted_H | 0.5600 | 0.6440 | 0.5951 | model_form_blend |
| predicted_HBP | - | 0.0100 | 0.0100 | form_only |
| predicted_HR | 0.0800 | 0.1110 | 0.0930 | model_form_blend |
| predicted_OBP | 0.3070 | 0.3194 | 0.3122 | model_form_blend |
| predicted_R | 0.3380 | 0.4670 | 0.3919 | model_form_blend |
| predicted_RBI | 0.3000 | 0.3380 | 0.3159 | model_form_blend |
| predicted_SLG | 0.3430 | 0.3847 | 0.3604 | model_form_blend |
| predicted_SO | 0.6080 | 0.6850 | 0.6402 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 245 |
| Season rows before report date | 245 |
| Report year | 2026 |
| Profile rows used | 74 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 3 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 1 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 2 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 7 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | DH |
| gameID | 20260927_CLE@KC |
| game_type | full |
| mlbID | 595978 |
| playerID | 595978 |
| playerName | Austin Hedges |
| pos | C |
| started | True |
| startingPosition | DH |
| team | CLE |
| teamID | 8 |
| game_date | 2026-09-27 |
| sl_k_percent | 18.2 |
| sl_bb_percent | 10.1 |
| sl_woba | 0.313 |
| sl_xwoba | 0.28 |
| sl_xba | 0.224 |
| sl_xslg | 0.314 |
| sl_sweet_spot_percent | 26.7 |
| sl_barrel_batted_rate | 4.5 |
| sl_hard_hit_percent | 32.4 |
| sl_exit_velocity_avg | 85.8 |
| sl_launch_angle_avg | 12.4 |
| sl_whiff_percent | 24.1 |
| sl_swing_percent | 44.5 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.168 | 0.000 | 0.000 | Hitting_2B | 0.165 | 1.000 | -0.165 | -1.000 |
| predicted_3B | 0.013 | 0.000 | 0.000 | Hitting_3B | 0.012 | 0.000 | -0.012 | 0.000 |
| predicted_AB | 3.850 | 4.000 | 3.000 | Hitting_AB | 3.606 | 4.000 | 0.394 | 0.000 |
| predicted_AVG | 0.274 | 0.000 | 0.333 | Hitting_AVG | 0.250 | 0.750 | -0.250 | -0.750 |
| predicted_BB | 0.242 | 0.000 | 0.000 | Hitting_BB | 0.255 | 0.000 | -0.255 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.035 | 0.000 | -0.035 | 0.000 |
| predicted_H | 1.060 | 0.000 | 1.000 | Hitting_H | 0.903 | 3.000 | -0.903 | -3.000 |
| predicted_HR | 0.180 | 0.000 | 0.000 | Hitting_HR | 0.083 | 2.000 | -0.083 | -2.000 |
| predicted_OBP | 0.340 | 0.000 | 0.333 | Hitting_OBP | 0.312 | 0.750 | -0.312 | -0.750 |
| predicted_R | 0.430 | 0.000 | 1.000 | Hitting_R | 0.438 | 3.000 | -0.438 | -3.000 |
| predicted_RBI | 0.550 | 0.000 | 0.000 | Hitting_RBI | 0.444 | 2.000 | -0.444 | -2.000 |
| predicted_SLG | 0.461 | 0.000 | 0.333 | Hitting_SLG | 0.372 | 2.500 | -0.372 | -2.500 |
| predicted_SO | 0.564 | 1.000 | 1.000 | Hitting_SO | 0.581 | 0.000 | 0.419 | 1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 10 |
| Boosted Metrics | 3 |
| Deboosted Metrics | 7 |
| Better Metrics | 2 |
| Worse Metrics | 8 |
| Biggest Boost | predicted_SO: 0.5640 -> 1.0000 (boost 0.4360, worse) |
| Biggest Deboost | predicted_H: 1.0600 -> 0.0000 (deboost -1.0600, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 3 | 2 | 1 | 2 | 1 | predicted_R: 0.4300 -> 0.4923 (boost 0.0623, better) | predicted_AB: 3.8500 -> 3.7215 (deboost -0.1285, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 1 | 0 | 1 | 0 | 1 | - | predicted_OBP: 0.3400 -> 0.3233 (deboost -0.0167, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 6 | 1 | 5 | 0 | 6 | predicted_SO: 0.5603 -> 1.0000 (boost 0.4397, worse) | predicted_AB: 3.7215 -> 3.0000 (deboost -0.7215, worse) | AB rounded to 3 (raw=3.85), rates preserved: AVG=0.233 HR/AB=0.045 |
| 6 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.4889 -> 0.0000 (deboost -0.4889, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 4 | 2 | 5 | 1 | predicted_RBI: 0.0000 -> 0.3939 (boost 0.3939, better) | predicted_SO: 1.0000 -> 0.6406 (deboost -0.3594, better) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 7 | 3 | 4 | 2 | 5 | predicted_R: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_RBI: 0.3939 -> 0.0000 (deboost -0.3939, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 4 | 0 | 4 | 0 | 4 | - | predicted_R: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 2 | 1 | 1 | 1 | 1 | predicted_AB: 3.0000 -> 4.0000 (boost 1.0000, better) | predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_SLG: 0.3520 -> 0.4737 (boost 0.1217, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "677587",
"player_name": "Brayan Rocchio",
"position": "SS",
"team": "CLE",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.168,
"predicted_3B": 0.013,
"predicted_AB": 3.85,
"predicted_AVG": 0.274,
"predicted_BB": 0.242,
"predicted_H": 1.06,
"predicted_HR": 0.18,
"predicted_OBP": 0.34,
"predicted_R": 0.43,
"predicted_RBI": 0.55,
"predicted_SLG": 0.461,
"predicted_SO": 0.564
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1906,
"predicted_3B": 0.0108,
"predicted_AB": 3.7215,
"predicted_AVG": 0.2782,
"predicted_BB": 0.2529,
"predicted_H": 1.0374,
"predicted_HBP": 0.044,
"predicted_HR": 0.1743,
"predicted_OBP": 0.34,
"predicted_R": 0.4923,
"predicted_RBI": 0.5491,
"predicted_SLG": 0.4744,
"predicted_SO": 0.5588
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.168,
"after": 0.1906,
"delta": 0.0226,
"percent_delta": 0.1345,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.013,
"after": 0.0108,
"delta": -0.0022,
"percent_delta": -0.1692,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.85,
"after": 3.7215,
"delta": -0.1285,
"percent_delta": -0.0334,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.274,
"after": 0.2782,
"delta": 0.0042,
"percent_delta": 0.0153,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.242,
"after": 0.2529,
"delta": 0.0109,
"percent_delta": 0.045,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.06,
"after": 1.0374,
"delta": -0.0226,
"percent_delta": -0.0213,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.18,
"after": 0.1743,
"delta": -0.0057,
"percent_delta": -0.0317,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.34,
"after": 0.34,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.43,
"after": 0.4923,
"delta": 0.0623,
"percent_delta": 0.1449,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.55,
"after": 0.5491,
"delta": -0.0009,
"percent_delta": -0.0016,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.461,
"after": 0.4744,
"delta": 0.0134,
"percent_delta": 0.0291,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.564,
"after": 0.5588,
"delta": -0.0052,
"percent_delta": -0.0092,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 2,
"deboosted_metrics": 1,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.43,
"after": 0.4923,
"delta": 0.0623,
"percent_delta": 0.1449,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 3.85,
"after": 3.7215,
"delta": -0.1285,
"percent_delta": -0.0334,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 149
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1906,
"predicted_3B": 0.0108,
"predicted_AB": 3.7215,
"predicted_AVG": 0.2775,
"predicted_BB": 0.2522,
"predicted_H": 1.0326,
"predicted_HBP": 0.044,
"predicted_HR": 0.1727,
"predicted_OBP": 0.3233,
"predicted_R": 0.4889,
"predicted_RBI": 0.5453,
"predicted_SLG": 0.4737,
"predicted_SO": 0.5603
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1906,
"after": 0.1906,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0108,
"after": 0.0108,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.7215,
"after": 3.7215,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2782,
"after": 0.2775,
"delta": -0.0007,
"percent_delta": -0.0025,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.2529,
"after": 0.2522,
"delta": -0.0007,
"percent_delta": -0.0028,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0374,
"after": 1.0326,
"delta": -0.0048,
"percent_delta": -0.0046,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.044,
"after": 0.044,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1743,
"after": 0.1727,
"delta": -0.0016,
"percent_delta": -0.0092,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.34,
"after": 0.3233,
"delta": -0.0167,
"percent_delta": -0.0491,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.4923,
"after": 0.4889,
"delta": -0.0034,
"percent_delta": -0.0069,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5491,
"after": 0.5453,
"delta": -0.0038,
"percent_delta": -0.0069,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4744,
"after": 0.4737,
"delta": -0.0007,
"percent_delta": -0.0015,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.5588,
"after": 0.5603,
"delta": 0.0015,
"percent_delta": 0.0027,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.34,
"after": 0.3233,
"delta": -0.0167,
"percent_delta": -0.0491,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 3 (raw=3.85), rates preserved: AVG=0.233 HR/AB=0.045",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1906,
"after": 0.0,
"delta": -0.1906,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0108,
"after": 0.0,
"delta": -0.0108,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.7215,
"after": 3.0,
"delta": -0.7215,
"percent_delta": -0.1939,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.2522,
"after": 0.0,
"delta": -0.2522,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0326,
"after": 1.0,
"delta": -0.0326,
"percent_delta": -0.0316,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.044,
"after": 0.0,
"delta": -0.044,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1727,
"after": 0.0,
"delta": -0.1727,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.5453,
"after": 0.0,
"delta": -0.5453,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.5603,
"after": 1.0,
"delta": 0.4397,
"percent_delta": 0.7848,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 1,
"deboosted_metrics": 5,
"better_metrics": 0,
"worse_metrics": 6,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.5603,
"after": 1.0,
"delta": 0.4397,
"percent_delta": 0.7848,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 3.7215,
"after": 3.0,
"delta": -0.7215,
"percent_delta": -0.1939,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.4889,
"after": 0.0,
"delta": -0.4889,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_R",
"before": 0.4889,
"after": 0.0,
"delta": -0.4889,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1619,
"predicted_3B": 0.012,
"predicted_BB": 0.3022,
"predicted_H": 0.7036,
"predicted_HR": 0.0811,
"predicted_RBI": 0.3939,
"predicted_SO": 0.6406
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1619,
"delta": 0.1619,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.012,
"delta": 0.012,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.3022,
"delta": 0.3022,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.7036,
"delta": -0.2964,
"percent_delta": -0.2964,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0811,
"delta": 0.0811,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.3939,
"delta": 0.3939,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.6406,
"delta": -0.3594,
"percent_delta": -0.3594,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 5,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.3939,
"delta": 0.3939,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 0.6406,
"delta": -0.3594,
"percent_delta": -0.3594,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1619,
"after": 0.0,
"delta": -0.1619,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.012,
"after": 0.0,
"delta": -0.012,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.3022,
"after": 0.0,
"delta": -0.3022,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.7036,
"after": 1.0,
"delta": 0.2964,
"percent_delta": 0.4213,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0811,
"after": 0.0,
"delta": -0.0811,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.3939,
"after": 0.0,
"delta": -0.3939,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.6406,
"after": 1.0,
"delta": 0.3594,
"percent_delta": 0.561,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 3,
"deboosted_metrics": 4,
"better_metrics": 2,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.3939,
"after": 0.0,
"delta": -0.3939,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.219,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.291,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.352,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2775,
"after": 0.219,
"delta": -0.0585,
"percent_delta": -0.2108,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3233,
"after": 0.291,
"delta": -0.0323,
"percent_delta": -0.0999,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4737,
"after": 0.352,
"delta": -0.1217,
"percent_delta": -0.2569,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 0,
"deboosted_metrics": 4,
"better_metrics": 0,
"worse_metrics": 4,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.2775,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3233,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.4737,
"predicted_SO": 1.0,
"predicted_SS": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.219,
"after": 0.2775,
"delta": 0.0585,
"percent_delta": 0.267,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.291,
"after": 0.3233,
"delta": 0.0323,
"percent_delta": 0.1111,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.352,
"after": 0.4737,
"delta": 0.1217,
"percent_delta": 0.3458,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.352,
"after": 0.4737,
"delta": 0.1217,
"percent_delta": 0.3458,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.168,
"after": 0.0,
"delta": -0.168,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.013,
"after": 0.0,
"delta": -0.013,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.85,
"after": 4.0,
"delta": 0.15,
"percent_delta": 0.039,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.274,
"after": 0.2775,
"delta": 0.0035,
"percent_delta": 0.0128,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.242,
"after": 0.0,
"delta": -0.242,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.06,
"after": 0.0,
"delta": -1.06,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.18,
"after": 0.0,
"delta": -0.18,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.34,
"after": 0.3233,
"delta": -0.0167,
"percent_delta": -0.0491,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.43,
"after": 0.0,
"delta": -0.43,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.55,
"after": 0.0,
"delta": -0.55,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.461,
"after": 0.4737,
"delta": 0.0127,
"percent_delta": 0.0275,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.564,
"after": 1.0,
"delta": 0.436,
"percent_delta": 0.773,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 10,
"boosted_metrics": 3,
"deboosted_metrics": 7,
"better_metrics": 2,
"worse_metrics": 8,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.564,
"after": 1.0,
"delta": 0.436,
"percent_delta": 0.773,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.06,
"after": 0.0,
"delta": -1.06,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.168 | - |
| predicted_3B | 0.013 | - |
| predicted_AB | 3.850 | - |
| predicted_AVG | 0.274 | - |
| predicted_BB | 0.242 | - |
| predicted_H | 1.060 | - |
| predicted_HR | 0.180 | - |
| predicted_OBP | 0.340 | - |
| predicted_R | 0.430 | - |
| predicted_RBI | 0.550 | - |
| predicted_SLG | 0.461 | - |
| predicted_SO | 0.564 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.191 | 0.023 |
| predicted_3B | 0.011 | -0.002 |
| predicted_AB | 3.721 | -0.129 |
| predicted_AVG | 0.278 | 0.004 |
| predicted_BB | 0.253 | 0.011 |
| predicted_H | 1.037 | -0.023 |
| predicted_HBP | 0.044 | - |
| predicted_HR | 0.174 | -0.006 |
| predicted_OBP | 0.340 | 0.000 |
| predicted_R | 0.492 | 0.062 |
| predicted_RBI | 0.549 | -0.001 |
| predicted_SLG | 0.474 | 0.013 |
| predicted_SO | 0.559 | -0.005 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.191 | 0.000 |
| predicted_3B | 0.011 | 0.000 |
| predicted_AB | 3.721 | 0.000 |
| predicted_AVG | 0.278 | -0.001 |
| predicted_BB | 0.252 | -0.001 |
| predicted_H | 1.033 | -0.005 |
| predicted_HBP | 0.044 | 0.000 |
| predicted_HR | 0.173 | -0.002 |
| predicted_OBP | 0.323 | -0.017 |
| predicted_R | 0.489 | -0.003 |
| predicted_RBI | 0.545 | -0.004 |
| predicted_SLG | 0.474 | -0.001 |
| predicted_SO | 0.560 | 0.002 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=3.85), rates preserved: AVG=0.233 HR/AB=0.045
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.162 | 0.162 |
| 3B | 0.012 | 0.012 |
| BB | 0.302 | 0.302 |
| H | 0.704 | -0.296 |
| HR | 0.081 | 0.081 |
| RBI | 0.394 | 0.394 |
| SO | 0.641 | -0.359 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.162 |
| 3B | 0.000 | -0.012 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | -0.302 |
| H | 1.000 | 0.296 |
| HR | 0.000 | -0.081 |
| R | 1.000 | 1.000 |
| RBI | 0.000 | -0.394 |
| SO | 1.000 | 0.359 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.191 |
| predicted_3B | 0.000 | -0.011 |
| predicted_AB | 3.000 | -0.721 |
| predicted_AVG | 0.219 | -0.059 |
| predicted_BB | 0.000 | -0.252 |
| predicted_H | 1.000 | -0.033 |
| predicted_HR | 0.000 | -0.173 |
| predicted_OBP | 0.291 | -0.032 |
| predicted_R | 0.000 | -0.489 |
| predicted_RBI | 0.000 | -0.545 |
| predicted_SLG | 0.352 | -0.122 |
| predicted_SO | 1.000 | 0.440 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 1.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | -1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | -1.000 |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 19.000 | 6.000 | 1.000 | 0.000 | 2.000 | 3.000 | 4.000 | 1.000 | 3.000 | 0.3158 | 0.3500 | 0.6842 | 0.3158 | 0.1053 | 0.1579 | 0.0526 | 0.1579 |
| last_10 | 0.20 | 10 | - | 34.000 | 12.000 | 4.000 | 0.000 | 2.000 | 8.000 | 8.000 | 4.000 | 4.000 | 0.3529 | 0.4211 | 0.6471 | 0.3529 | 0.0588 | 0.2353 | 0.1177 | 0.1177 |
| season | 0.60 | 149 | - | 522.000 | 132.000 | 25.000 | 2.000 | 13.000 | 67.000 | 64.000 | 36.000 | 84.000 | 0.2529 | 0.3124 | 0.3831 | 0.2529 | 0.0249 | 0.1283 | 0.0690 | 0.1609 |
| Metric | Value |
|---|---|
| predicted_2B | 0.2200 |
| predicted_3B | 0.0080 |
| predicted_AB | 3.5550 |
| predicted_AVG | 0.2836 |
| predicted_BB | 0.2670 |
| predicted_H | 1.0080 |
| predicted_HBP | 0.0440 |
| predicted_HR | 0.1670 |
| predicted_OBP | 0.3399 |
| predicted_R | 0.5730 |
| predicted_RBI | 0.5480 |
| predicted_SLG | 0.4917 |
| predicted_SO | 0.5520 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1680 | 0.2200 | 0.1906 | model_form_blend |
| predicted_3B | 0.0130 | 0.0080 | 0.0108 | model_form_blend |
| predicted_AB | 3.8500 | 3.5550 | 3.7215 | model_form_blend |
| predicted_AVG | 0.2740 | 0.2836 | 0.2782 | model_form_blend |
| predicted_BB | 0.2420 | 0.2670 | 0.2529 | model_form_blend |
| predicted_H | 1.0600 | 1.0080 | 1.0374 | model_form_blend |
| predicted_HBP | - | 0.0440 | 0.0440 | form_only |
| predicted_HR | 0.1800 | 0.1670 | 0.1743 | model_form_blend |
| predicted_OBP | 0.3400 | 0.3399 | 0.3400 | model_form_blend |
| predicted_R | 0.4300 | 0.5730 | 0.4923 | model_form_blend |
| predicted_RBI | 0.5500 | 0.5480 | 0.5491 | model_form_blend |
| predicted_SLG | 0.4610 | 0.4917 | 0.4744 | model_form_blend |
| predicted_SO | 0.5640 | 0.5520 | 0.5588 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 568 |
| Season rows before report date | 568 |
| Report year | 2026 |
| Profile rows used | 149 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 1 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.75 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 3 |
| Hitting_HBP | 0 |
| Hitting_HR | 2 |
| Hitting_IBB | 0 |
| Hitting_R | 3 |
| Hitting_RBI | 2 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 10 |
| Hitting_battingOrder | 9 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | SS |
| gameID | 20260926_CLE@KC |
| game_type | full |
| mlbID | 677587 |
| playerID | 677587 |
| playerName | Brayan Rocchio |
| pos | SS |
| started | True |
| startingPosition | SS |
| team | CLE |
| teamID | 8 |
| game_date | 2026-09-26 |
| sl_k_percent | 14.4 |
| sl_bb_percent | 6.4 |
| sl_woba | 0.311 |
| sl_xwoba | 0.294 |
| sl_xba | 0.246 |
| sl_xslg | 0.35 |
| sl_sweet_spot_percent | 34.9 |
| sl_barrel_batted_rate | 2.9 |
| sl_hard_hit_percent | 30.0 |
| sl_exit_velocity_avg | 87.0 |
| sl_launch_angle_avg | 13.8 |
| sl_whiff_percent | 22.1 |
| sl_swing_percent | 50.0 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 1.000 | 1.000 | 1.000 | Pitching_BB | 1.531 | 1.000 | -0.531 | 0.000 |
| predicted_ER | 3.000 | 3.000 | 3.000 | Pitching_ER | 1.656 | 1.000 | 1.344 | 2.000 |
| predicted_H | 5.000 | 5.000 | 5.000 | Pitching_H | 4.656 | 6.000 | 0.344 | -1.000 |
| predicted_IP | 6.000 | 6.000 | 6.000 | Pitching_InningsPitched | 5.619 | 3.000 | 0.381 | 3.000 |
| predicted_SO | 5.000 | 5.000 | 5.000 | Pitching_SO | 6.031 | 2.000 | -1.031 | 3.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_form_blend |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 1 |
| Boosted Metrics | 1 |
| Deboosted Metrics | 0 |
| Better Metrics | 1 |
| Worse Metrics | 0 |
| Biggest Boost | predicted_SO: 4.0000 -> 5.0000 (boost 1.0000, better) |
| Biggest Deboost | - |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 2 | pitcher_quality_guardrail | 1 | 1 | 0 | 1 | 0 | predicted_SO: 4.0000 -> 6.0000 (boost 2.0000, better) | - | Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form. |
| 3 | current_json_final | 1 | 0 | 1 | 0 | 1 | - | predicted_SO: 6.0000 -> 5.0000 (deboost -1.0000, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "pitcher",
"player_id": "800048",
"player_name": "Parker Messick",
"position": "Starter",
"team": "CLE",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 5.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": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 5.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 3.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 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": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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"
}
}
}Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 1.000 | - |
| predicted_ER | 3.000 | - |
| predicted_H | 5.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 6.000 | - |
| predicted_SO | 4.000 | - |
Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 1.000 | 0.000 |
| predicted_ER | 3.000 | 0.000 |
| predicted_H | 5.000 | 0.000 |
| predicted_HR | 0.000 | 0.000 |
| predicted_IP | 6.000 | 0.000 |
| predicted_SO | 6.000 | 2.000 |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 25.100 | 9.000 | 28.000 | 6.000 | 32.000 | 3.000 | 3.1974 | 1.3421 | 0.3553 | 1.1053 | 0.2368 | 1.2632 | 0.1184 |
| last_10 | 0.35 | 10 | 56.200 | 16.000 | 49.000 | 12.000 | 65.000 | 6.000 | 2.5412 | 1.0765 | 0.2823 | 0.8647 | 0.2118 | 1.1471 | 0.1059 |
| season | 0.20 | 32 | 186.100 | 53.000 | 149.000 | 49.000 | 193.000 | 17.000 | 2.5599 | 1.0626 | 0.2844 | 0.7996 | 0.2630 | 1.0358 | 0.0912 |
| Metric | Value |
|---|---|
| predicted_BB | 1.3800 |
| predicted_ER | 1.8650 |
| predicted_ERA | 3.0793 |
| predicted_H | 5.2520 |
| predicted_HR | 0.6210 |
| predicted_IP | 5.1000 |
| predicted_SO | 6.2380 |
| predicted_WHIP | 1.2162 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 1.0000 | 1.3800 | 1.2253 | model_form_blend |
| predicted_ER | 3.0000 | 1.8650 | 2.3270 | model_form_blend |
| predicted_ERA | - | 3.0793 | 3.0793 | form_only |
| predicted_H | 5.0000 | 5.2520 | 5.1494 | model_form_blend |
| predicted_HR | 0.0000 | 0.6210 | 0.3682 | model_form_blend |
| predicted_IP | 6.0000 | 5.1000 | 5.2000 | model_form_blend |
| predicted_SO | 4.0000 | 6.2380 | 5.3270 | model_form_blend |
| predicted_WHIP | - | 1.2162 | 1.2162 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 32 |
| Season rows before report date | 32 |
| Report year | 2026 |
| Profile rows used | 32 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 6.0 |
| H | 5 |
| R | 3 |
| ER | 3 |
| BB | 1 |
| SO | 5 |
| HR | 0 |
| BF | 26 |
| Pitches | 101 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 1 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 16 |
| Pitching_ER | 1 |
| Pitching_ERA | 2.56 |
| Pitching_Flyouts | 3 |
| Pitching_Groundouts | 3 |
| Pitching_H | 6 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 3.0 |
| Pitching_Pitches | 64 |
| Pitching_R | 1 |
| Pitching_SO | 2 |
| Pitching_Strikes | 42 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 1 |
| allPositionsPlayed | P |
| gameID | 20260927_CLE@KC |
| game_type | full |
| mlbID | 800048 |
| playerID | 800048 |
| playerName | Parker Messick |
| pos | P |
| started | True |
| startingPosition | P |
| team | CLE |
| teamID | 8 |
| game_date | 2026-09-27 |
| sl_k_percent | 25.8 |
| sl_bb_percent | 6.6 |
| sl_woba | 0.274 |
| sl_xwoba | 0.275 |
| sl_sweet_spot_percent | 30.7 |
| sl_barrel_batted_rate | 5.0 |
| sl_hard_hit_percent | 34.3 |
| sl_whiff_percent | 25.5 |
| sl_swing_percent | 48.6 |
| sl_avg_best_speed | 76.354216626 |
| sl_avg_hyper_speed | 93.483966904 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 0.000 | 0.000 | 0.000 | Pitching_BB | 0.333 | 0.000 | -0.333 | 0.000 |
| predicted_ER | 0.000 | 0.000 | 0.000 | Pitching_ER | 0.232 | 0.000 | -0.232 | 0.000 |
| predicted_H | 0.000 | 0.000 | 0.000 | Pitching_H | 0.696 | 0.000 | -0.696 | 0.000 |
| predicted_IP | 1.000 | 1.000 | 1.000 | Pitching_InningsPitched | 1.001 | 0.200 | -0.001 | 0.800 |
| predicted_SO | 0.000 | 0.000 | 0.000 | Pitching_SO | 1.551 | 0.000 | -1.551 | 0.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_form_blend |
| To | current_json_final |
| Dominant Effect | neutral |
| Changed Metrics | 0 |
| Boosted Metrics | 0 |
| Deboosted Metrics | 0 |
| Better Metrics | 0 |
| Worse Metrics | 0 |
| Biggest Boost | - |
| Biggest Deboost | - |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 2 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "pitcher",
"player_id": "671922",
"player_name": "Cade Smith",
"position": "Closer",
"team": "CLE",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 1.0,
"predicted_SO": 0.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 1.0,
"predicted_R": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
}Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 0.000 | - |
| predicted_ER | 0.000 | - |
| predicted_H | 0.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 1.000 | - |
| predicted_SO | 0.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 5.000 | 0.000 | 1.000 | 1.000 | 9.000 | 0.000 | 0.0000 | 0.4000 | 0.0000 | 0.2000 | 0.2000 | 1.8000 | 0.0000 |
| last_10 | 0.35 | 10 | 12.000 | 0.000 | 2.000 | 2.000 | 19.000 | 0.000 | 0.0000 | 0.3333 | 0.0000 | 0.1667 | 0.1667 | 1.5833 | 0.0000 |
| season | 0.20 | 69 | 74.000 | 16.000 | 48.000 | 23.000 | 107.000 | 5.000 | 1.9459 | 0.9595 | 0.2162 | 0.6486 | 0.3108 | 1.4460 | 0.0676 |
| Metric | Value |
|---|---|
| predicted_BB | 0.2740 |
| predicted_ER | 0.1730 |
| predicted_ERA | 1.4312 |
| predicted_H | 0.4920 |
| predicted_HR | 0.0510 |
| predicted_IP | 1.0000 |
| predicted_SO | 1.6050 |
| predicted_WHIP | 0.7046 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 0.0000 | 0.2740 | 0.1495 | model_form_blend |
| predicted_ER | 0.0000 | 0.1730 | 0.0944 | model_form_blend |
| predicted_ERA | - | 1.4312 | 1.4312 | form_only |
| predicted_H | 0.0000 | 0.4920 | 0.2685 | model_form_blend |
| predicted_HR | 0.0000 | 0.0510 | 0.0278 | model_form_blend |
| predicted_IP | 1.0000 | 1.0000 | 1.0000 | model_form_blend |
| predicted_SO | 0.0000 | 1.6050 | 0.8758 | model_form_blend |
| predicted_WHIP | - | 0.7046 | 0.7046 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 69 |
| Season rows before report date | 69 |
| Report year | 2026 |
| Profile rows used | 69 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 1.0 |
| H | 0 |
| R | 0 |
| ER | 0 |
| BB | 0 |
| SO | 0 |
| HR | 0 |
| BF | 3 |
| Pitches | 13 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 2 |
| Pitching_ER | 0 |
| Pitching_ERA | 1.95 |
| Pitching_Flyouts | 1 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 1 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.2 |
| Pitching_Pitches | 5 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 5 |
| Pitching_Wild Pitch | 0 |
| Pitching_decision | H |
| Pitching_pitchingOrder | 4 |
| allPositionsPlayed | P |
| gameID | 20260926_CLE@KC |
| game_type | full |
| mlbID | 671922 |
| playerID | 671922 |
| playerName | Cade Smith |
| pos | P |
| started | False |
| startingPosition | P |
| team | CLE |
| teamID | 8 |
| game_date | 2026-09-26 |
| sl_k_percent | 36.3 |
| sl_bb_percent | 7.8 |
| sl_woba | 0.241 |
| sl_xwoba | 0.261 |
| sl_sweet_spot_percent | 35.4 |
| sl_barrel_batted_rate | 8.7 |
| sl_hard_hit_percent | 42.8 |
| sl_whiff_percent | 34.5 |
| sl_swing_percent | 49.6 |
| sl_avg_best_speed | 82.0535845 |
| sl_avg_hyper_speed | 94.653655813 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 1.000 | 1.000 | 1.000 | Pitching_BB | 0.517 | 0.000 | 0.483 | 1.000 |
| predicted_ER | 1.000 | 1.000 | 1.000 | Pitching_ER | 0.233 | 0.000 | 0.767 | 1.000 |
| predicted_H | 1.000 | 1.000 | 1.000 | Pitching_H | 0.433 | 1.000 | 0.567 | 0.000 |
| predicted_IP | 2.000 | 2.000 | 2.000 | Pitching_InningsPitched | 0.638 | 1.000 | 1.362 | 1.000 |
| predicted_SO | 0.000 | 0.000 | 0.000 | Pitching_SO | 1.267 | 1.000 | -1.267 | -1.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_form_blend |
| To | current_json_final |
| Dominant Effect | neutral |
| Changed Metrics | 2 |
| Boosted Metrics | 1 |
| Deboosted Metrics | 1 |
| Better Metrics | 1 |
| Worse Metrics | 1 |
| Biggest Boost | predicted_IP: 1.0000 -> 2.0000 (boost 1.0000, better) |
| Biggest Deboost | predicted_SO: 1.0000 -> 0.0000 (deboost -1.0000, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 2 | current_json_final | 2 | 1 | 1 | 1 | 1 | predicted_IP: 1.0000 -> 2.0000 (boost 1.0000, better) | predicted_SO: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "pitcher",
"player_id": "681870",
"player_name": "Erik Sabrowski",
"position": "Middle Reliever (High Leverage)",
"team": "CLE",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 2.0,
"predicted_R": 1.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_IP",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_IP",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
}Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 1.000 | - |
| predicted_ER | 1.000 | - |
| predicted_H | 1.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 1.000 | - |
| predicted_SO | 1.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 4.200 | 0.000 | 1.000 | 5.000 | 8.000 | 0.000 | 0.0000 | 1.2857 | 0.0000 | 0.2143 | 1.0714 | 1.7143 | 0.0000 |
| last_10 | 0.35 | 10 | 9.100 | 1.000 | 2.000 | 6.000 | 11.000 | 0.000 | 0.9643 | 0.8571 | 0.1071 | 0.2143 | 0.6429 | 1.1786 | 0.0000 |
| season | 0.20 | 58 | 48.100 | 13.000 | 24.000 | 27.000 | 76.000 | 3.000 | 2.4207 | 1.0552 | 0.2690 | 0.4965 | 0.5586 | 1.5724 | 0.0621 |
| Metric | Value |
|---|---|
| predicted_BB | 0.6420 |
| predicted_ER | 0.2220 |
| predicted_ERA | 2.0875 |
| predicted_H | 0.4870 |
| predicted_HR | 0.0550 |
| predicted_IP | 1.0000 |
| predicted_SO | 1.2510 |
| predicted_WHIP | 1.1811 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 1.0000 | 0.6420 | 0.8178 | model_form_blend |
| predicted_ER | 1.0000 | 0.2220 | 0.6042 | model_form_blend |
| predicted_ERA | - | 2.0875 | 2.0875 | form_only |
| predicted_H | 1.0000 | 0.4870 | 0.7390 | model_form_blend |
| predicted_HR | 0.0000 | 0.0550 | 0.0280 | model_form_blend |
| predicted_IP | 1.0000 | 1.0000 | 1.0000 | model_form_blend |
| predicted_SO | 1.0000 | 1.2510 | 1.1277 | model_form_blend |
| predicted_WHIP | - | 1.1811 | 1.1811 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 60 |
| Season rows before report date | 60 |
| Report year | 2026 |
| Profile rows used | 58 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 2.0 |
| H | 1 |
| R | 1 |
| ER | 1 |
| BB | 1 |
| SO | 0 |
| HR | 0 |
| BF | 8 |
| Pitches | 32 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 4 |
| Pitching_ER | 0 |
| Pitching_ERA | 2.61 |
| Pitching_Flyouts | 1 |
| Pitching_Groundouts | 1 |
| Pitching_H | 1 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 1.0 |
| Pitching_Pitches | 18 |
| Pitching_R | 0 |
| Pitching_SO | 1 |
| Pitching_Strikes | 11 |
| Pitching_Wild Pitch | 0 |
| Pitching_decision | H |
| Pitching_pitchingOrder | 5 |
| allPositionsPlayed | P |
| gameID | 20260925_CLE@KC |
| game_type | full |
| mlbID | 681870 |
| playerID | 681870 |
| playerName | Erik Sabrowski |
| pos | P |
| started | False |
| startingPosition | P |
| team | CLE |
| teamID | 8 |
| game_date | 2026-09-25 |
| sl_k_percent | 37.4 |
| sl_bb_percent | 15.3 |
| sl_woba | 0.258 |
| sl_xwoba | 0.251 |
| sl_sweet_spot_percent | 39.4 |
| sl_barrel_batted_rate | 6.5 |
| sl_hard_hit_percent | 34.0 |
| sl_whiff_percent | 30.8 |
| sl_swing_percent | 46.1 |
| sl_avg_best_speed | 79.988533696 |
| sl_avg_hyper_speed | 93.73779337 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 1.000 | 1.000 | 1.000 | Pitching_BB | 0.324 | 0.000 | 0.676 | 1.000 |
| predicted_ER | 0.000 | 0.000 | 0.000 | Pitching_ER | 0.294 | 2.000 | -0.294 | -2.000 |
| predicted_H | 1.000 | 1.000 | 1.000 | Pitching_H | 0.809 | 3.000 | 0.191 | -2.000 |
| predicted_IP | 0.000 | 1.000 | 0.000 | Pitching_InningsPitched | 0.750 | 1.000 | 0.250 | 0.000 |
| predicted_SO | 0.000 | 0.000 | 0.000 | Pitching_SO | 0.838 | 0.000 | -0.838 | 0.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_form_blend |
| To | current_json_final |
| Dominant Effect | neutral |
| Changed Metrics | 0 |
| Boosted Metrics | 0 |
| Deboosted Metrics | 0 |
| Better Metrics | 0 |
| Worse Metrics | 0 |
| Biggest Boost | - |
| Biggest Deboost | - |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 2 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "pitcher",
"player_id": "683769",
"player_name": "Hunter Gaddis",
"position": "Setup Man",
"team": "CLE",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 1.0,
"predicted_SO": 0.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 1.0,
"predicted_R": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
}Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 1.000 | - |
| predicted_ER | 0.000 | - |
| predicted_H | 1.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 1.000 | - |
| predicted_SO | 0.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 4.200 | 3.000 | 8.000 | 1.000 | 4.000 | 2.000 | 5.7857 | 1.9286 | 0.6429 | 1.7143 | 0.2143 | 0.8571 | 0.4286 |
| last_10 | 0.35 | 10 | 9.200 | 4.000 | 13.000 | 2.000 | 9.000 | 2.000 | 3.7241 | 1.5517 | 0.4138 | 1.3448 | 0.2069 | 0.9310 | 0.2069 |
| season | 0.20 | 67 | 60.100 | 19.000 | 53.000 | 20.000 | 57.000 | 7.000 | 2.8343 | 1.2099 | 0.3149 | 0.8784 | 0.3315 | 0.9447 | 0.1160 |
| Metric | Value |
|---|---|
| predicted_BB | 0.2760 |
| predicted_ER | 0.5010 |
| predicted_ERA | 4.5128 |
| predicted_H | 1.2930 |
| predicted_HR | 0.2480 |
| predicted_IP | 1.0000 |
| predicted_SO | 0.9100 |
| predicted_WHIP | 1.5699 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 1.0000 | 0.2760 | 0.6171 | model_form_blend |
| predicted_ER | 0.0000 | 0.5010 | 0.2649 | model_form_blend |
| predicted_ERA | - | 4.5128 | 4.5128 | form_only |
| predicted_H | 1.0000 | 1.2930 | 1.1549 | model_form_blend |
| predicted_HR | 0.0000 | 0.2480 | 0.1311 | model_form_blend |
| predicted_IP | 1.0000 | 1.0000 | 1.0000 | model_form_blend |
| predicted_SO | 0.0000 | 0.9100 | 0.4812 | model_form_blend |
| predicted_WHIP | - | 1.5699 | 1.5699 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 68 |
| Season rows before report date | 68 |
| Report year | 2026 |
| Profile rows used | 67 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 1.0 |
| H | 1 |
| R | 0 |
| ER | 0 |
| BB | 1 |
| SO | 0 |
| HR | 0 |
| BF | 5 |
| Pitches | 20 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 5 |
| Pitching_ER | 2 |
| Pitching_ERA | 2.98 |
| Pitching_Flyouts | 2 |
| Pitching_Groundouts | 0 |
| Pitching_H | 3 |
| Pitching_HBP | 0 |
| Pitching_HR | 1 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 1.0 |
| Pitching_Pitches | 13 |
| Pitching_R | 2 |
| Pitching_SO | 0 |
| Pitching_Strikes | 11 |
| Pitching_Wild Pitch | 0 |
| Pitching_decision | W, BS |
| Pitching_pitchingOrder | 6 |
| allPositionsPlayed | P |
| gameID | 20260925_CLE@KC |
| game_type | full |
| mlbID | 683769 |
| playerID | 683769 |
| playerName | Hunter Gaddis |
| pos | P |
| started | False |
| startingPosition | P |
| team | CLE |
| teamID | 8 |
| game_date | 2026-09-25 |
| sl_k_percent | 22.2 |
| sl_bb_percent | 8.6 |
| sl_woba | 0.3 |
| sl_xwoba | 0.311 |
| sl_sweet_spot_percent | 33.7 |
| sl_barrel_batted_rate | 7.5 |
| sl_hard_hit_percent | 29.9 |
| sl_whiff_percent | 29.5 |
| sl_swing_percent | 51.7 |
| sl_avg_best_speed | 75.512971294 |
| sl_avg_hyper_speed | 92.352765294 |
| Layer | Score | Winner | Confidence | Source or usage | Synced or matches |
|---|---|---|---|---|---|
| Shipped prediction | NYY 3 - 4 TB | TB | 0.518 | enhanced_prediction.pre_simulation_target | True |
| Simulation draw | NYY 3 - 4 TB | TB | - | organic_simulation_realized_target | True |
The shipped score is reconciled to the final simulation score. The original model target remains visible as the pre-simulation audit layer.
This table distinguishes newly generated artifacts from older files. Missing trace data is shown as legacy/unavailable, never inferred.
| Priority | Change | Runtime status | Evidence |
|---|---|---|---|
| P1 | Empirical confidence blend | applied | raw=0.4903; empirical=0.5620; weight=0.5000; final=0.5261 |
| P1 | H2H margin as base feature | available | home net=-14; abs=14; home delta=-0.0808; away delta=0.0808 |
| P2 | Wider score distribution | implemented_above_requested_1.4x | variance multiplier=2.2500; floor=2.7500 |
| P2 | Simulation flip control | diagnostic_only_unless_independently_supported | candidate=False; trusted=False; published flip=False |
| P3 | Season edge + recent form | implemented | window=10; season edge=-0.2853; recent edge=0.0280; blended=- |
| P3 | Continuous calibration audit | trace emitted | Checked by CONFIDENCE_CALIBRATION_APPLIED and bucket_calibration_error in learning reports. |
| Process Layer | What It Does | Stored Field | Observed Value |
|---|---|---|---|
| 1. Historical model | Starts from trained game model output. | score_evolution.steps[historical_ml] | - |
| 2. Variance layer | Applies bounded game variance before enhanced corrections. | score_evolution.steps[variance_applied] | - |
| 3. Recent/team form | Uses latest team form, recent scoring, prevention, and streak state. | enhanced_prediction_analysis.recent_form | True |
| 4. Season quality | Uses season run differential and record quality guardrails. | season_run_differential_adjustment, season_quality_guardrail | True |
| 5. Savant hitters | Applies lineup-level Statcast xwOBA, xBA, xSLG, barrel, hard-hit, sweet-spot, EV, launch-angle, whiff, K and BB quality. | savant_batter_quality_adjustment | True |
| 6. Savant pitchers | Applies starter run prevention, strikeout, walk, HR and regression factors from xwOBA, wOBA, contact quality and whiff/command. | savant_pitcher_quality_adjustment | True |
| 7. Low-score analysis | Controls unrealistic totals and preserves the pre-sync low-score expected total. | low_score_analysis | 6.5000 |
| 8. Probability/governors | Applies win probability calibration, matchup guardrails, margin governor and confidence governor. | win_probability_calibration, margin_governor, confidence_governor | 0.5184 |
| 9. Simulation reconciliation | Reconciles final shipped score with the simulation box score while retaining the pre-simulation target. | simulation_reconciliation | organic_simulation_realized_target |
| 10. Score evolution rendered | 7 stored score steps are rendered below. | game.score_evolution.steps | true |
| Step | Layer | Away Runs | Home Runs | Confidence | Description |
|---|---|---|---|---|---|
| 1 | historical_ml | 4.330 | 4.765 | - | Base ML historical model prediction |
| 2 | variance_applied | 4 | 5 | - | Deterministic baseline target (variance factor 1.0) |
| 3 | enhanced_prediction | 3 | 4 | 0.5184 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail) |
| 4 | embedded_savant_run_environment | 3 | 4 | - | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| 5 | fundamental_edge_target_review | 3 | 4 | - | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| 6 | capped_target | 3 | 4 | - | Capped at max 12 realistic runs |
| 7 | simulation_result | 3 | 4 | - | Final inning-by-inning simulation result |
{
"low_score_probability": 0.6753413333333335,
"base_low_score_probability": 0.42592592592592593,
"low_score_signal_threshold": 0.5059259259259259,
"low_score_signal_strength": 0.24941540740740753,
"confidence": 0.8927920000000001,
"factors": {
"environmental": 1.05,
"pitcher_form": 1.4520000000000002,
"team_form": 1.0,
"situational": 1.04,
"combined": 1.5855840000000003
},
"prediction": "low_scoring",
"expected_total_runs": 7,
"score_scale_mode": "control",
"pre_simulation_expected_total_runs": 6.5,
"low_score_model_expected_total_runs": 6.5,
"final_simulation_total_runs": 7,
"score_source": "enhanced_prediction.pre_simulation_target"
}{
"method": "monotone_reliability_shrinkage",
"policy": "shrink_toward_even_score_floor_v3",
"sample_size": 815,
"near_bucket_sample_size": 815,
"medium_bucket_sample_size": 884,
"wide_bucket_sample_size": 1086,
"global_sample_size": 1125,
"bucket_scope": "near_0.05",
"sparse_bucket": false,
"empirical_hit_rate": 0.562,
"bayesian_hit_rate": 0.5606,
"prior_strength": 18.0,
"raw_pick_probability": 0.5409,
"raw_pick_probability_unclamped": 0.5409,
"score_probability_conflict": false,
"margin_implied_home_probability": 0.5073,
"margin_implied_pick_probability": 0.5073,
"score_blend_weight": 0.45,
"blended_raw_pick_probability": 0.5258,
"score_implied_floor_pick_probability": 0.5072,
"max_published_pick_probability": 0.9,
"uncapped_home_win_probability": 0.54092,
"uncapped_away_win_probability": 0.45908,
"calibrated_pick_probability": 0.5254,
"predicted_side": "home",
"reliability": 0.978391,
"shrink_floor": 0.35,
"empirical_penalty": 1.0,
"shrinkage_weight": 0.985954
}{
"method": "empirical_hit_rate_weighted_v1",
"applied": true,
"reason": "raw confidence blended with verified historical bucket hit rate",
"raw_confidence": 0.490254,
"sample_size": 815,
"empirical_hit_rate": 0.562,
"empirical_weight": 0.5,
"blended_confidence": 0.526127,
"published_confidence": 0.518365,
"published_after_governors": true,
"governor_mode": "shrinkage_not_clamp"
}{
"method": "h2h_net_margin_monotonic_v1",
"available": true,
"sample_size": 5,
"sample_weight": 0.0577,
"home_net_margin": -14.0,
"absolute_net_margin": 14.0,
"home_average_margin": -2.8,
"home_run_delta": -0.0808,
"away_run_delta": 0.0808,
"evidence": [
{
"game_id": null,
"home_margin": -2.0
},
{
"game_id": null,
"home_margin": -7.0
},
{
"game_id": null,
"home_margin": 5.0
},
{
"game_id": null,
"home_margin": -2.0
},
{
"game_id": null,
"home_margin": -8.0
}
],
"adaptive_parameters": {
"h2h.history_limit": 5,
"h2h.maximum_weight": 0.15,
"h2h.prior_games": 8.0,
"h2h.maximum_total_shift": 0.65
}
}{
"applied": false,
"home": {
"team": "TB",
"games": 162,
"wins": 98,
"losses": 64,
"win_pct": 0.6049382716049383,
"runs_scored": 736,
"runs_allowed": 650,
"run_differential": 86,
"run_differential_per_game": 0.5308641975308642,
"available": true
},
"away": {
"team": "NYY",
"games": 161,
"wins": 93,
"losses": 68,
"win_pct": 0.577639751552795,
"runs_scored": 739,
"runs_allowed": 601,
"run_differential": 138,
"run_differential_per_game": 0.8571428571428571,
"available": true
},
"run_differential_edge_per_game": -0.3263,
"win_pct_edge": 0.0273,
"quality_edge": -0.1757,
"season_quality_edge": -0.2853,
"recent_quality_blend": {
"method": "season_recent_quality_blend_v2_adaptive",
"recent_window": 10,
"season_quality_edge": -0.2853,
"recent_quality_edge": 0.028,
"season_weight": 0.65,
"recent_weight": 0.35,
"recent_reliability": 1.0,
"alignment": "conflict",
"blended_quality_edge": -0.1757
},
"margin_adjustment": 0.0,
"reason": "season quality edge below action threshold"
}{
"most_likely": [
{
"home_runs": 4,
"away_runs": 3,
"probability": 0.02330248749325166
},
{
"home_runs": 3,
"away_runs": 3,
"probability": 0.023222854227010863
},
{
"home_runs": 4,
"away_runs": 4,
"probability": 0.023083427806788986
},
{
"home_runs": 3,
"away_runs": 4,
"probability": 0.023004543148967774
},
{
"home_runs": 4,
"away_runs": 2,
"probability": 0.02066254278454156
}
],
"home_distribution": {
"0": 0.06999058682318827,
"1": 0.10249378597138088,
"2": 0.1323218909937819,
"3": 0.15060594794232982,
"4": 0.15112238935098274,
"5": 0.13368779528801952,
"6": 0.10426318154822485,
"7": 0.0716879971844097,
"8": 0.043454842844252925,
"9": 0.023222350849202135,
"10": 0.010940834359288339,
"11": 0.004544341558133142,
"12": 0.0016640552868057948
},
"away_distribution": {
"0": 0.07285450579554124,
"1": 0.1064917431133728,
"2": 0.13672721079437586,
"3": 0.15419612933151472,
"4": 0.15274657782956022,
"5": 0.13290735191451863,
"6": 0.10157948820433715,
"7": 0.06819342994486619,
"8": 0.04021226616538831,
"9": 0.020828311363539215,
"10": 0.009476087743101751,
"11": 0.0037868977998838016
},
"model": "overdispersed_score_distribution",
"variance_multiplier": 2.25,
"variance_floor": 2.75,
"roadmap_status": "implemented_above_requested_1.4x"
}{
"applied": true,
"confidence_cap": 0.53,
"winner_flipped": false,
"reasons": [
"latest same-matchup result beat the predicted side",
"predicted side recently lost this matchup by 5+ runs",
"opponent already produced an 8+ run breakout in this matchup",
"recent head-to-head is split and volatile",
"recent head-to-head margin does not support a strong repeat pick",
"a prior same-side pick already missed against the actual result",
"a prior same-side pick missed by 5+ actual runs",
"latest-series evidence cleared the reversal bar; confidence capped and runs shifted, winner unchanged by design"
],
"signals": {
"predicted_team": "TB",
"opponent_team": "NYY",
"h2h_net_margin": -4,
"opponent_breakout": true,
"opponent_blowout_win": true,
"split_recent_h2h": true,
"recent_h2h": [
{
"date": "2026-09-24",
"predicted_team_runs": 4,
"opponent_runs": 6,
"margin_for_predicted_team": -2,
"winner": "NYY"
},
{
"date": "2026-09-23",
"predicted_team_runs": 2,
"opponent_runs": 9,
"margin_for_predicted_team": -7,
"winner": "NYY"
},
{
"date": "2026-09-22",
"predicted_team_runs": 6,
"opponent_runs": 1,
"margin_for_predicted_team": 5,
"winner": "TB"
}
],
"prediction_memory": {
"available": true,
"reason": "verified_prior_matchup_predictions_available",
"verification_policy": "pregame_artifact_matched_to_one_official_final",
"verified_outcome_count": 6,
"consecutive_same_pick_count": 0,
"same_pick_actual_loss_count": 1,
"same_pick_blowout_loss_count": 1,
"prior_predictions": [
{
"date": "20260924",
"away": "TB",
"home": "NYY",
"game_number": 1,
"predicted_team": "NYY",
"actual_winner": "NYY",
"actual_margin": 2,
"raw_pick_probability": 0.531136,
"artifact": "20260924_TB@NYY.json",
"verification": "pregame_official_final"
},
{
"date": "20260923",
"away": "TB",
"home": "NYY",
"game_number": 1,
"predicted_team": "TB",
"actual_winner": "NYY",
"actual_margin": 7,
"raw_pick_probability": 0.505259,
"artifact": "20260923_TB@NYY.json",
"verification": "pregame_official_final"
},
{
"date": "20260922",
"away": "TB",
"home": "NYY",
"game_number": 1,
"predicted_team": "NYY",
"actual_winner": "NYY",
"actual_margin": 2,
"raw_pick_probability": 0.534918,
"artifact": "20260922_TB@NYY.json",
"verification": "pregame_official_final"
},
{
"date": "20260922",
"away": "TB",
"home": "NYY",
"game_number": 2,
"predicted_team": "NYY",
"actual_winner": "TB",
"actual_margin": 5,
"raw_pick_probability": 0.520635,
"artifact": "20260922_TB@NYY_2.json",
"verification": "pregame_official_final"
},
{
"date": "20260709",
"away": "NYY",
"home": "TB",
"game_number": 1,
"predicted_team": "NYY",
"actual_winner": "NYY",
"actual_margin": 8,
"raw_pick_probability": 0.51,
"artifact": "20260709_NYY@TB.json",
"verification": "pregame_official_final"
}
]
},
"guardrail_predicted_team": "TB",
"guardrail_opponent_team": "NYY",
"output_pre_simulation_winner": "TB",
"output_opponent_team": "NYY",
"simulation_score_winner": "TB",
"final_score_winner": "TB",
"pre_simulation_winner": "TB",
"winner_flipped_by_simulation": false,
"simulation_would_flip_winner": false
},
"hard_flip_suppressed": true,
"flip_authority": "caps_confidence_and_shifts_runs_only",
"final_prediction_sync": {
"pre_simulation_score": {
"away_runs": 3,
"home_runs": 4,
"score_text": "NYY 3 - 4 TB",
"winner": "TB"
},
"final_simulation_score": {
"away_runs": 3,
"home_runs": 4,
"score_text": "NYY 3 - 4 TB",
"winner": "TB"
},
"winner_flipped_by_simulation": false,
"simulation_would_flip_winner": false,
"sim_flipped_pre_winner": false,
"sim_flip_trusted": false,
"sim_flip_policy": "diagnostic_only_unless_independently_supported",
"independent_margin_support": false,
"independent_margin_support_evidence": {
"pitcher_matchup_edge_home_minus_away": 0.0269,
"recent_form_edge_home_minus_away": -0.182,
"winner_direction": "home",
"thresholds": {
"pitcher_matchup": 0.35,
"recent_form": 0.75
}
},
"margin_widening_capped": false,
"simulation_winner_agrees": true,
"away_run_delta": 0,
"home_run_delta": 0,
"total_run_delta": 0,
"score_source": "enhanced_prediction.pre_simulation_target",
"simulation_usage": "organic_simulation_realized_target",
"final_prediction_source": "stable_final_prediction_policy",
"final_decision_policy": {
"policy_version": "model_target_authoritative_simulation_realizes_v3",
"away_runs": 3,
"home_runs": 4,
"winner": "TB",
"model_winner": "TB",
"simulation_winner": "TB",
"simulation_winner_agrees": true,
"simulation_agreement_scope": "selected_draw_only",
"simulation_distribution_agreement": {
"available": true,
"draw_count": 3,
"published_winner": "TB",
"published_winner_draw_share": 0.6667,
"draw_majority_team": "TB",
"published_winner_is_draw_majority": true,
"sampling": "target_conditioned_selection",
"is_unbiased_probability_sample": false,
"note": "Draw shares are target-conditioned and diagnostic. A published winner holding a minority share is recorded, not suppressed."
},
"simulation_score_enabled": true,
"independent_margin_support": false,
"margin_widening_capped": false,
"model_margin": 1,
"simulation_margin": 1,
"simulation_usage": "organic_simulation_realized_target",
"score_source": "enhanced_prediction.pre_simulation_target",
"simulation_realized_target": true,
"model_score": {
"away_runs": 3,
"home_runs": 4
},
"simulation_score": {
"away_runs": 3,
"home_runs": 4
}
},
"final_margin_quality_review": {
"review_required": false,
"pre_margin": 1,
"final_margin": 1,
"winner_quality_edge": -0.1757,
"winner": "TB",
"score_reviewed": {
"away_runs": 3,
"home_runs": 4,
"source": "enhanced_prediction.pre_simulation_target"
},
"reason": "published margin is directionally supported or within review threshold"
}
}
}{
"applied": false,
"confidence_cap": null,
"winner_flipped": false,
"hard_flip_suppressed": false,
"policy": "recency_uncertainty_shrinkage_v2",
"reasons": [],
"signals": {
"home": {
"team": "TB",
"games": 162,
"wins": 98,
"losses": 64,
"win_pct": 0.6049382716049383,
"runs_scored": 736,
"runs_allowed": 650,
"run_differential": 86,
"run_differential_per_game": 0.5308641975308642,
"available": true
},
"away": {
"team": "NYY",
"games": 161,
"wins": 93,
"losses": 68,
"win_pct": 0.577639751552795,
"runs_scored": 739,
"runs_allowed": 601,
"run_differential": 138,
"run_differential_per_game": 0.8571428571428571,
"available": true
}
}
}{
"applied": false,
"raw_margin": 0.1,
"final_margin": 0.1,
"margin_cap": 1.5,
"season_quality_edge": 0.1757,
"reason": "raw target margin within supported range"
}{
"applied": true,
"policy": "align_to_calibrated_probability_v2",
"raw_confidence": 0.526127,
"final_confidence": 0.5254,
"calibrated_pick_probability": 0.5254,
"shrinkage_weight": 0.985954,
"hard_maximum": 0.9,
"confidence_floor": 0.505,
"score_gap": 0.1,
"calibration_sample_size": 815,
"calibration_empirical_hit_rate": 0.562,
"calibration_bayesian_hit_rate": 0.5606,
"calibration_sparse_bucket": false,
"season_quality_edge": 0.1757,
"reasons": [
"confidence aligned to the calibrated pick probability"
],
"score_coherence": {
"policy": "probability_follows_published_score_v1",
"published_score": {
"away_runs": 3,
"home_runs": 4
},
"margin": 1,
"probability_before": 0.525419,
"margin_implied_home_probability": 0.572388,
"shrinkage_weight": 0.985954,
"side_flipped": false,
"applied": false,
"magnitude_pull_suppressed": true,
"probability_after": 0.525419,
"aligned_pick_probability": 0.525419
},
"starter_experience": {
"applied": false,
"min_starter_games": 22,
"shrink_factor": 1.0
}
}{
"pre_simulation_score": {
"away_runs": 3,
"home_runs": 4,
"score_text": "NYY 3 - 4 TB",
"winner": "TB"
},
"final_simulation_score": {
"away_runs": 3,
"home_runs": 4,
"score_text": "NYY 3 - 4 TB",
"winner": "TB"
},
"winner_flipped_by_simulation": false,
"simulation_would_flip_winner": false,
"sim_flipped_pre_winner": false,
"sim_flip_trusted": false,
"sim_flip_policy": "diagnostic_only_unless_independently_supported",
"independent_margin_support": false,
"independent_margin_support_evidence": {
"pitcher_matchup_edge_home_minus_away": 0.0269,
"recent_form_edge_home_minus_away": -0.182,
"winner_direction": "home",
"thresholds": {
"pitcher_matchup": 0.35,
"recent_form": 0.75
}
},
"margin_widening_capped": false,
"simulation_winner_agrees": true,
"away_run_delta": 0,
"home_run_delta": 0,
"total_run_delta": 0,
"score_source": "enhanced_prediction.pre_simulation_target",
"simulation_usage": "organic_simulation_realized_target",
"final_prediction_source": "stable_final_prediction_policy",
"final_decision_policy": {
"policy_version": "model_target_authoritative_simulation_realizes_v3",
"away_runs": 3,
"home_runs": 4,
"winner": "TB",
"model_winner": "TB",
"simulation_winner": "TB",
"simulation_winner_agrees": true,
"simulation_agreement_scope": "selected_draw_only",
"simulation_distribution_agreement": {
"available": true,
"draw_count": 3,
"published_winner": "TB",
"published_winner_draw_share": 0.6667,
"draw_majority_team": "TB",
"published_winner_is_draw_majority": true,
"sampling": "target_conditioned_selection",
"is_unbiased_probability_sample": false,
"note": "Draw shares are target-conditioned and diagnostic. A published winner holding a minority share is recorded, not suppressed."
},
"simulation_score_enabled": true,
"independent_margin_support": false,
"margin_widening_capped": false,
"model_margin": 1,
"simulation_margin": 1,
"simulation_usage": "organic_simulation_realized_target",
"score_source": "enhanced_prediction.pre_simulation_target",
"simulation_realized_target": true,
"model_score": {
"away_runs": 3,
"home_runs": 4
},
"simulation_score": {
"away_runs": 3,
"home_runs": 4
}
},
"final_margin_quality_review": {
"review_required": false,
"pre_margin": 1,
"final_margin": 1,
"winner_quality_edge": -0.1757,
"winner": "TB",
"score_reviewed": {
"away_runs": 3,
"home_runs": 4,
"source": "enhanced_prediction.pre_simulation_target"
},
"reason": "published margin is directionally supported or within review threshold"
}
}{
"away_runs": 3,
"home_runs": 4,
"confidence": 0.5183652275,
"home_win_probability": 0.5183652275,
"away_win_probability": 0.4816347725,
"predicted_score_text": "NYY 3 - 4 TB",
"embedded_savant_score_adjustment": {
"applied": true,
"source": "all_players_stats.csv embedded temporal Savant features",
"feature_contract": {
"training_grain": "one player-game row after collapsing granular at-bat rows",
"temporal_rule": "all sl_/ab_/sv_ model features are shifted before the predicted game",
"hitter_signals": [
"xwoba",
"xba",
"xslg",
"barrel_batted_rate",
"hard_hit_percent",
"bat_speed",
"launch_quality",
"walk_rate",
"strikeout_rate"
],
"pitcher_signals": [
"xwoba_allowed",
"barrel_allowed",
"hard_hit_allowed",
"whiff_rate",
"command_score",
"movement_score",
"faced_est_woba",
"faced_strikeout_rate"
]
},
"away": {
"team": "NYY",
"original_runs": 3,
"run_delta": -0.0719,
"adjusted_runs": 3,
"lineup": {
"players_used": 9,
"total_weight": 32.0,
"quality": 0.3712650738717067,
"contact": 0.2923451201301565,
"power": 0.6038552162452798,
"discipline": -0.06558629625440751,
"xwoba": 0.325125,
"recent_xwoba": 0.325125,
"barrel": 10.384375,
"ab_hard_contact": 0.31724718204845415,
"ab_bat_speed": 71.48103826495975,
"ab_strikeout_rate": 0.25758627614501245,
"available_players": 9,
"top_players": [
{
"player_id": "700250",
"player_name": "Ben Rice",
"position": "DH",
"weight": 4.0,
"quality": 1.087455864958446,
"contact": 1.102908770681462,
"power": 1.4654990995142887,
"discipline": 0.4116136264733387,
"xwoba": 0.378,
"recent_xwoba": 0.378,
"barrel": 14.3,
"ab_hard_contact": 0.8840772283810031,
"ab_bat_speed": 71.42264696813977,
"ab_strikeout_rate": 0.24306269270298048,
"available": 1.0
},
{
"player_id": "682987",
"player_name": "Spencer Jones",
"position": "RF",
"weight": 4.0,
"quality": 0.6373945767717583,
"contact": 0.4077599396847543,
"power": 1.4860424110055006,
"discipline": -0.9999799104388146,
"xwoba": 0.328,
"recent_xwoba": 0.328,
"barrel": 15.9,
"ab_hard_contact": 0.47646726772906267,
"ab_bat_speed": 75.76573781567421,
"ab_strikeout_rate": 0.39008480104370513,
"available": 1.0
},
{
"player_id": "671277",
"player_name": "Luis García Jr.",
"position": "1B",
"weight": 4.0,
"quality": 0.7595045506648707,
"contact": 0.861931382993387,
"power": 1.1209123212862522,
"discipline": -0.21995825639303895,
"xwoba": 0.341,
"recent_xwoba": 0.341,
"barrel": 12.2,
"ab_hard_contact": 0.5980559495345648,
"ab_bat_speed": 73.31642951280269,
"ab_strikeout_rate": 0.18442028985507247,
"available": 1.0
},
{
"player_id": "663757",
"player_name": "Trent Grisham",
"position": "CF",
"weight": 3.0,
"quality": 0.6230206835494977,
"contact": 0.575736295906865,
"power": 0.5974478601682933,
"discipline": 0.8456044691973896,
"xwoba": 0.337,
"recent_xwoba": 0.337,
"barrel": 9.6,
"ab_hard_contact": 0.5188619652706342,
"ab_bat_speed": 68.83768257479983,
"ab_strikeout_rate": 0.1951432785503582,
"available": 1.0
},
{
"player_id": "641355",
"player_name": "Cody Bellinger",
"position": "LF",
"weight": 4.0,
"quality": 0.35499485401287234,
"contact": 0.5371143115167526,
"power": 0.11708476104801911,
"discipline": 0.6290552874302875,
"xwoba": 0.335,
"recent_xwoba": 0.335,
"barrel": 6.6,
"ab_hard_contact": 0.3618856971508627,
"ab_bat_speed": 69.03931248346561,
"ab_strikeout_rate": 0.15433531746031745,
"available": 1.0
}
]
},
"opposing_starter": {
"available": true,
"player_id": "656876",
"player_name": "Drew Rasmussen",
"quality": 0.6182814444534327,
"contact": 1.0171578568330801,
"command": 0.22668001621945089,
"movement": 0.6565394874689043,
"xwoba": 0.271,
"whiff": 25.1,
"faced_est_woba": 0.2648406655555556,
"faced_launch_speed": 83.79124666446208,
"faced_strikeout_rate": 0.2356947200176367,
"faced_run_exp": 0.006483162950047203
}
},
"home": {
"team": "TB",
"original_runs": 4,
"run_delta": -0.1452,
"adjusted_runs": 4,
"lineup": {
"players_used": 9,
"total_weight": 34.0,
"quality": -0.051150155850923334,
"contact": 0.042399953967157684,
"power": -0.1938720565793727,
"discipline": 0.3607605737218511,
"xwoba": 0.31091176470588233,
"recent_xwoba": 0.31091176470588233,
"barrel": 6.21764705882353,
"ab_hard_contact": -0.1388753052569244,
"ab_bat_speed": 69.32301883592007,
"ab_strikeout_rate": 0.17487582948808156,
"available_players": 9,
"top_players": [
{
"player_id": "670764",
"player_name": "Taylor Walls",
"position": "SS",
"weight": 3.0,
"quality": -1.2211603892215785,
"contact": -1.4618171461646536,
"power": -1.4611297727575647,
"discipline": 0.23344038844038856,
"xwoba": 0.251,
"recent_xwoba": 0.251,
"barrel": 2.2,
"ab_hard_contact": -1.3803097408655776,
"ab_bat_speed": 62.476628427128425,
"ab_strikeout_rate": 0.25287878787878787,
"available": 1.0
},
{
"player_id": "691406",
"player_name": "Junior Caminero",
"position": "3B",
"weight": 4.0,
"quality": 1.058762635372624,
"contact": 1.130513574843884,
"power": 1.3706481342961112,
"discipline": 0.48802659082860445,
"xwoba": 0.364,
"recent_xwoba": 0.364,
"barrel": 13.1,
"ab_hard_contact": 0.6750579240174572,
"ab_bat_speed": 78.50223418024927,
"ab_strikeout_rate": 0.1879354426334292,
"available": 1.0
},
{
"player_id": "802415",
"player_name": "Chandler Simpson",
"position": "LF",
"weight": 4.0,
"quality": -0.9110194281641746,
"contact": -0.6526549396922096,
"power": -1.5395710951890698,
"discipline": 0.4417229030272509,
"xwoba": 0.263,
"recent_xwoba": 0.263,
"barrel": 0.0,
"ab_hard_contact": -1.495802856162344,
"ab_bat_speed": 61.551209390568886,
"ab_strikeout_rate": 0.07531055900621117,
"available": 1.0
},
{
"player_id": "676356",
"player_name": "Jonny DeLuca",
"position": "CF",
"weight": 4.0,
"quality": -0.8065424546786999,
"contact": -0.8296022178520241,
"power": -0.8436024193091856,
"discipline": -0.46482626881539924,
"xwoba": 0.261,
"recent_xwoba": 0.261,
"barrel": 3.6,
"ab_hard_contact": -0.058715052850377314,
"ab_bat_speed": 71.46409786922015,
"ab_strikeout_rate": 0.20643115942028986,
"available": 1.0
},
{
"player_id": "650490",
"player_name": "Yandy Díaz",
"position": "DH",
"weight": 4.0,
"quality": 0.7428743419780521,
"contact": 1.0809664857729493,
"power": 0.5370941676355072,
"discipline": 0.5679201615408511,
"xwoba": 0.346,
"recent_xwoba": 0.346,
"barrel": 7.1000000000000005,
"ab_hard_contact": 0.7445500193768086,
"ab_bat_speed": 72.70592586206897,
"ab_strikeout_rate": 0.14482758620689656,
"available": 1.0
}
]
},
"opposing_starter": {
"available": true,
"player_id": "543037",
"player_name": "Gerrit Cole",
"quality": 0.052753597833751276,
"contact": 0.03111669057490587,
"command": 0.013822873362307975,
"movement": 0.3270076126149099,
"xwoba": 0.3,
"whiff": 21.3,
"faced_est_woba": 0.2648406655555556,
"faced_launch_speed": 83.79124666446208,
"faced_strikeout_rate": 0.2356947200176367,
"faced_run_exp": 0.006483162950047203
}
}
},
"fundamental_edge_target_review": {
"applied": false,
"method": "post_score_adjustment_fundamental_edge_review_v1",
"previous_score": {
"away_runs": 3,
"home_runs": 4,
"winner_side": "home"
},
"adjusted_score": {
"away_runs": 3,
"home_runs": 4,
"winner_side": "home"
},
"signals": {
"season_quality_edge_home_minus_away": -0.1757,
"recent_form_edge_home_minus_away": -0.182,
"pitcher_matchup_edge_home_minus_away": 0.0269,
"composite_home_edge": 0.097,
"existing_home_win_probability": 0.5254,
"refreshed_home_win_probability": 0.5484,
"winner_support_before_review": 0.097
},
"reasons": [
"target direction already matched refreshed fundamentals or margin was not fragile"
]
},
"uncapped_home_win_probability": 0.525419,
"uncapped_away_win_probability": 0.474581,
"confidence_shrinkage": {
"policy": "starter_quality_shrinkage_v3",
"staged_confidence": 0.525419,
"discount_factor": 0.7225,
"published_confidence": 0.518365,
"guardrail_confidence_cap": 0.53,
"guardrail_cap_enforced": false,
"applied_discounts": [
{
"reason": "projected_margin_is_one_run",
"factor": 0.85
},
{
"reason": "matchup_recency_guardrail",
"factor": 0.85
}
]
},
"score_probability_reconciliation": {
"policy": "published_probability_follows_published_score_v1",
"incoming_home_win_probability": 0.548371,
"incoming_favoured_side": "home",
"score_winner_side": "home",
"published_home_win_probability": 0.518365,
"probability_side_reverted_by_score": false,
"note": "The probability and the projected score agree on the winner."
},
"confidence_note": "Probability shrunk toward even by starter-quality and guardrail discounts; no per-game clamp is applied. Discounts: projected_margin_is_one_run x0.85, matchup_recency_guardrail x0.85.",
"pre_simulation_target": {
"away_runs": 3,
"home_runs": 4,
"predicted_score_text": "NYY 3 - 4 TB",
"confidence": 0.5183652275,
"source": "enhanced_prediction_before_inning_simulation"
},
"score_source": "enhanced_prediction.pre_simulation_target",
"final_prediction_synced": true,
"final_prediction_source": "stable_final_prediction_policy",
"simulation_usage": "organic_simulation_realized_target",
"simulation_score_matches_prediction": true,
"simulation_reconciliation": {
"pre_simulation_score": {
"away_runs": 3,
"home_runs": 4,
"score_text": "NYY 3 - 4 TB",
"winner": "TB"
},
"final_simulation_score": {
"away_runs": 3,
"home_runs": 4,
"score_text": "NYY 3 - 4 TB",
"winner": "TB"
},
"winner_flipped_by_simulation": false,
"simulation_would_flip_winner": false,
"sim_flipped_pre_winner": false,
"sim_flip_trusted": false,
"sim_flip_policy": "diagnostic_only_unless_independently_supported",
"independent_margin_support": false,
"independent_margin_support_evidence": {
"pitcher_matchup_edge_home_minus_away": 0.0269,
"recent_form_edge_home_minus_away": -0.182,
"winner_direction": "home",
"thresholds": {
"pitcher_matchup": 0.35,
"recent_form": 0.75
}
},
"margin_widening_capped": false,
"simulation_winner_agrees": true,
"away_run_delta": 0,
"home_run_delta": 0,
"total_run_delta": 0,
"score_source": "enhanced_prediction.pre_simulation_target",
"simulation_usage": "organic_simulation_realized_target",
"final_prediction_source": "stable_final_prediction_policy",
"final_decision_policy": {
"policy_version": "model_target_authoritative_simulation_realizes_v3",
"away_runs": 3,
"home_runs": 4,
"winner": "TB",
"model_winner": "TB",
"simulation_winner": "TB",
"simulation_winner_agrees": true,
"simulation_agreement_scope": "selected_draw_only",
"simulation_distribution_agreement": {
"available": true,
"draw_count": 3,
"published_winner": "TB",
"published_winner_draw_share": 0.6667,
"draw_majority_team": "TB",
"published_winner_is_draw_majority": true,
"sampling": "target_conditioned_selection",
"is_unbiased_probability_sample": false,
"note": "Draw shares are target-conditioned and diagnostic. A published winner holding a minority share is recorded, not suppressed."
},
"simulation_score_enabled": true,
"independent_margin_support": false,
"margin_widening_capped": false,
"model_margin": 1,
"simulation_margin": 1,
"simulation_usage": "organic_simulation_realized_target",
"score_source": "enhanced_prediction.pre_simulation_target",
"simulation_realized_target": true,
"model_score": {
"away_runs": 3,
"home_runs": 4
},
"simulation_score": {
"away_runs": 3,
"home_runs": 4
}
},
"final_margin_quality_review": {
"review_required": false,
"pre_margin": 1,
"final_margin": 1,
"winner_quality_edge": -0.1757,
"winner": "TB",
"score_reviewed": {
"away_runs": 3,
"home_runs": 4,
"source": "enhanced_prediction.pre_simulation_target"
},
"reason": "published margin is directionally supported or within review threshold"
}
},
"decision_profile": {
"method": "priced_decision_profile_v2",
"winner": "TB",
"display_confidence": 0.5184,
"internal_signal_score": 0.5631,
"internal_signal_status": "ranking_signal_not_a_calibrated_fair_probability",
"model_pick_probability": 0.5184,
"confidence_compression_detected": false,
"moneyline_fit": "unavailable_without_market_price",
"betting_status": "price_required_before_betting_analysis",
"market_context": null,
"margin_fit": "moneyline_preferred_over_margin",
"totals_fit": "low_total_lean",
"winner_accuracy_and_margin_accuracy_decoupled": true,
"signals": {
"final_margin": 1,
"winner_quality_edge": -0.1757,
"winner_recent_form_edge": 0.028,
"winner_pitcher_matchup_edge": 0.0269,
"winner_simulation_draw_rate": 0.6667,
"blowout_draw_rate_margin_4_plus": 0.0,
"high_total_draw_rate_11_plus": 0.0,
"low_total_draw_rate_6_or_less": 0.6667,
"total_runs_spread": {
"min": 5,
"median": 5,
"max": 7,
"range": 2
}
},
"interpretation": "The internal signal is diagnostic, not a sportsbook fair price. A bet cannot be evaluated without a source-labelled market price; model/market disagreements are a pass until independently validated."
}
}Source: data/all_players_stats.csv embedded Savant hitter features. It adjusts team offense through expected production and contact quality, then records coverage so missing hitters are visible.
| Team | Applied | Offense Factor | Raw Avg Factor | Coverage Weight | Covered | Missing |
|---|---|---|---|---|---|---|
| Away NYY | True | 1.0437 | 1.0437 | 1 | 9 | 0 |
| Home TB | True | 1.0011 | 1.0011 | 1 | 9 | 0 |
| Pos | Player | ESPN Rank | Off Factor | Quality | Regression | xwOBA | xBA | xSLG | Barrel% | HardHit% | EV | LA | Whiff% | K% | BB% | Regression Edge |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| RF | Spencer Jones | - | 1.0783 | 1.0438 | neutral | 0.3280 | 0.2380 | 0.4550 | 15.90 | 55.10 | 94.10 | 20.60 | 38.70 | 36.30 | 8.70 | 0.1429 |
| LF | Cody Bellinger | - | 1.0450 | 0.6002 | neutral | 0.3350 | 0.2710 | 0.4110 | 6.60 | 37.80 | 89.20 | 17.60 | 20 | 15.80 | 10.50 | -0.0286 |
| 1B | Luis García Jr. | - | 1.0715 | 0.9531 | neutral | 0.3410 | 0.2760 | 0.4860 | 12.20 | 46.10 | 91.40 | 11.50 | 20.80 | 17.90 | 4.60 | -0.4000 |
| DH | Ben Rice | - | 1.1109 | 1.4788 | neutral | 0.3780 | 0.2670 | 0.5110 | 14.30 | 48.60 | 91.90 | 14.50 | 25.40 | 24.30 | 12.70 | -0.1714 |
| SS | George Lombard Jr. | - | 1.0001 | 0.0012 | neutral | 0.2980 | 0.2400 | 0.3880 | 8.20 | 35.10 | 87.10 | 8.50 | 25.60 | 26.50 | 6 | -0.1429 |
| 2B | Jazz Chisholm Jr. | - | 0.9966 | -0.0458 | neutral | 0.2940 | 0.2160 | 0.3660 | 8.20 | 42.80 | 90.40 | 16.30 | 30.90 | 29.50 | 10.50 | -0.5143 |
| CF | Trent Grisham | - | 1.0646 | 0.8608 | neutral | 0.3370 | 0.2450 | 0.4290 | 9.60 | 45.30 | 90.60 | 17.50 | 18.20 | 18.40 | 12.60 | 0.7429 |
| C | Austin Wells | - | 1.0100 | 0.1333 | neutral | 0.3000 | 0.2080 | 0.3600 | 7.70 | 42.70 | 89.30 | 20.50 | 27.90 | 26.50 | 12.40 | 0.5429 |
| 3B | Ryan McMahon | - | 1.0166 | 0.2215 | neutral | 0.2970 | 0.2300 | 0.3810 | 9 | 44.80 | 90.50 | 14.30 | 30.20 | 29.40 | 7.80 | 0.4286 |
| Pos | Player | ESPN Rank | Off Factor | Quality | Regression | xwOBA | xBA | xSLG | Barrel% | HardHit% | EV | LA | Whiff% | K% | BB% | Regression Edge |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| C | Liam Hicks | - | 0.9913 | -0.1157 | negative_batter_regression | 0.3190 | 0.2610 | 0.3580 | 3.70 | 27.10 | 84.60 | 14.50 | 11.40 | 9.90 | 10.10 | -0.9429 |
| 1B | Jonathan Aranda | - | 1.0632 | 0.8421 | neutral | 0.3430 | 0.2540 | 0.4380 | 9.90 | 46 | 91.10 | 14.40 | 22.50 | 24.40 | 10.30 | -0.1429 |
| DH | Yandy Díaz | - | 1.0626 | 0.8349 | neutral | 0.3460 | 0.2810 | 0.4390 | 7.10 | 48.10 | 90.90 | 6 | 14.80 | 14.30 | 8.20 | -0.1143 |
| CF | Jonny DeLuca | - | 0.9339 | -0.8814 | negative_batter_regression | 0.2610 | 0.2320 | 0.3250 | 3.60 | 30.20 | 85.80 | 13.90 | 24.90 | 21.10 | 4.60 | -1.6000 |
| 3B | Junior Caminero | - | 1.0942 | 1.2566 | neutral | 0.3640 | 0.2730 | 0.4990 | 13.10 | 49.70 | 92.70 | 10.40 | 24.10 | 18.40 | 11.30 | -0.3143 |
| LF | Chandler Simpson | - | 0.9252 | -0.9970 | negative_batter_regression | 0.2630 | 0.2610 | 0.2970 | 0 | 13.40 | 83.60 | 1.20 | 10.80 | 7.80 | 4.20 | -1.2000 |
| 2B | Richie Palacios | - | 0.9867 | -0.1772 | neutral | 0.3060 | 0.2430 | 0.3340 | 4 | 28.80 | 86.20 | 13.40 | 20.70 | 17 | 11.50 | -0.2857 |
| RF | Victor Mesa Jr. | - | 1.0395 | 0.5271 | neutral | 0.3290 | 0.2490 | 0.4390 | 10.80 | 42.20 | 89.40 | 21 | 25.50 | 20.20 | 8.80 | -0.7429 |
| SS | Taylor Walls | - | 0.9131 | -1.1589 | neutral | 0.2510 | 0.1900 | 0.2610 | 2.20 | 21.90 | 85.60 | 19.40 | 22 | 24.20 | 10.40 | -0.7714 |
{
"home": {
"applied": true,
"offense_factor": 1.0011,
"raw_average_factor": 1.0011,
"team_espn_average_rank": null,
"coverage_weight": 1.0,
"covered_batters": 9,
"missing_batters": 0,
"players": [
{
"position": "C",
"player_id": "689414",
"player_name": "Liam Hicks",
"offense_factor": 0.9913,
"quality_score": -0.1157,
"regression_flag": "negative_batter_regression",
"espn_rank": {
"available": false,
"player_id": "689414",
"espn_rank": null
},
"metrics": {
"pa": 515.0,
"k_percent": 9.9,
"bb_percent": 10.1,
"woba": 0.352,
"xwoba": 0.319,
"xba": 0.261,
"xslg": 0.358,
"sweet_spot_percent": 30.8,
"barrel_batted_rate": 3.7,
"hard_hit_percent": 27.1,
"exit_velocity_avg": 84.6,
"launch_angle_avg": 14.5,
"whiff_percent": 11.4,
"swing_percent": 41.7
},
"components": {
"expected_quality": 0.019,
"regression_edge": -0.9429,
"xwoba_edge": 0.5714,
"xba_edge": 0.7143,
"xslg_edge": -0.0714,
"barrel_edge": -0.6444,
"hard_hit_edge": -1.5,
"exit_velocity_edge": -1.52,
"sweet_spot_edge": -0.4167,
"launch_angle_hr_bonus": 0.0
}
},
{
"position": "1B",
"player_id": "666018",
"player_name": "Jonathan Aranda",
"offense_factor": 1.0632,
"quality_score": 0.8421,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "666018",
"espn_rank": null
},
"metrics": {
"pa": 625.0,
"k_percent": 24.4,
"bb_percent": 10.3,
"woba": 0.348,
"xwoba": 0.343,
"xba": 0.254,
"xslg": 0.438,
"sweet_spot_percent": 38.8,
"barrel_batted_rate": 9.9,
"hard_hit_percent": 46.0,
"exit_velocity_avg": 91.1,
"launch_angle_avg": 14.4,
"whiff_percent": 22.5,
"swing_percent": 46.7
},
"components": {
"expected_quality": 1.0024,
"regression_edge": -0.1429,
"xwoba_edge": 1.2571,
"xba_edge": 0.5143,
"xslg_edge": 1.0714,
"barrel_edge": 0.7333,
"hard_hit_edge": 1.2,
"exit_velocity_edge": 1.08,
"sweet_spot_edge": 0.9167,
"launch_angle_hr_bonus": 0.2
}
},
{
"position": "DH",
"player_id": "650490",
"player_name": "Yandy Díaz",
"offense_factor": 1.0626,
"quality_score": 0.8349,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "650490",
"espn_rank": null
},
"metrics": {
"pa": 642.0,
"k_percent": 14.3,
"bb_percent": 8.2,
"woba": 0.35,
"xwoba": 0.346,
"xba": 0.281,
"xslg": 0.439,
"sweet_spot_percent": 29.7,
"barrel_batted_rate": 7.1,
"hard_hit_percent": 48.1,
"exit_velocity_avg": 90.9,
"launch_angle_avg": 6.0,
"whiff_percent": 14.8,
"swing_percent": 47.5
},
"components": {
"expected_quality": 0.9894,
"regression_edge": -0.1143,
"xwoba_edge": 1.3429,
"xba_edge": 1.2857,
"xslg_edge": 1.0857,
"barrel_edge": 0.1111,
"hard_hit_edge": 1.5,
"exit_velocity_edge": 1.0,
"sweet_spot_edge": -0.6,
"launch_angle_hr_bonus": 0.0
}
},
{
"position": "CF",
"player_id": "676356",
"player_name": "Jonny DeLuca",
"offense_factor": 0.9339,
"quality_score": -0.8814,
"regression_flag": "negative_batter_regression",
"espn_rank": {
"available": false,
"player_id": "676356",
"espn_rank": null
},
"metrics": {
"pa": 325.0,
"k_percent": 21.1,
"bb_percent": 4.6,
"woba": 0.317,
"xwoba": 0.261,
"xba": 0.232,
"xslg": 0.325,
"sweet_spot_percent": 28.7,
"barrel_batted_rate": 3.6,
"hard_hit_percent": 30.2,
"exit_velocity_avg": 85.8,
"launch_angle_avg": 13.9,
"whiff_percent": 24.9,
"swing_percent": 52.9
},
"components": {
"expected_quality": -0.7644,
"regression_edge": -1.6,
"xwoba_edge": -1.0857,
"xba_edge": -0.1143,
"xslg_edge": -0.5429,
"barrel_edge": -0.6667,
"hard_hit_edge": -1.0571,
"exit_velocity_edge": -1.04,
"sweet_spot_edge": -0.7667,
"launch_angle_hr_bonus": 0.0
}
},
{
"position": "3B",
"player_id": "691406",
"player_name": "Junior Caminero",
"offense_factor": 1.0942,
"quality_score": 1.2566,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "691406",
"espn_rank": null
},
"metrics": {
"pa": 640.0,
"k_percent": 18.4,
"bb_percent": 11.3,
"woba": 0.375,
"xwoba": 0.364,
"xba": 0.273,
"xslg": 0.499,
"sweet_spot_percent": 27.1,
"barrel_batted_rate": 13.1,
"hard_hit_percent": 49.7,
"exit_velocity_avg": 92.7,
"launch_angle_avg": 10.4,
"whiff_percent": 24.1,
"swing_percent": 44.4
},
"components": {
"expected_quality": 1.5123,
"regression_edge": -0.3143,
"xwoba_edge": 1.8571,
"xba_edge": 1.0571,
"xslg_edge": 1.9429,
"barrel_edge": 1.4444,
"hard_hit_edge": 1.7286,
"exit_velocity_edge": 1.72,
"sweet_spot_edge": -1.0333,
"launch_angle_hr_bonus": 0.2
}
},
{
"position": "LF",
"player_id": "802415",
"player_name": "Chandler Simpson",
"offense_factor": 0.9252,
"quality_score": -0.997,
"regression_flag": "negative_batter_regression",
"espn_rank": {
"available": false,
"player_id": "802415",
"espn_rank": null
},
"metrics": {
"pa": 564.0,
"k_percent": 7.8,
"bb_percent": 4.2,
"woba": 0.305,
"xwoba": 0.263,
"xba": 0.261,
"xslg": 0.297,
"sweet_spot_percent": 25.7,
"barrel_batted_rate": 0.0,
"hard_hit_percent": 13.4,
"exit_velocity_avg": 83.6,
"launch_angle_avg": 1.2,
"whiff_percent": 10.8,
"swing_percent": 48.5
},
"components": {
"expected_quality": -0.9639,
"regression_edge": -1.2,
"xwoba_edge": -1.0286,
"xba_edge": 0.7143,
"xslg_edge": -0.9429,
"barrel_edge": -1.4667,
"hard_hit_edge": -2.5,
"exit_velocity_edge": -1.92,
"sweet_spot_edge": -1.2667,
"launch_angle_hr_bonus": 0.0
}
},
{
"position": "2B",
"player_id": "680700",
"player_name": "Richie Palacios",
"offense_factor": 0.9867,
"quality_score": -0.1772,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "680700",
"espn_rank": null
},
"metrics": {
"pa": 364.0,
"k_percent": 17.0,
"bb_percent": 11.5,
"woba": 0.316,
"xwoba": 0.306,
"xba": 0.243,
"xslg": 0.334,
"sweet_spot_percent": 33.1,
"barrel_batted_rate": 4.0,
"hard_hit_percent": 28.8,
"exit_velocity_avg": 86.2,
"launch_angle_avg": 13.4,
"whiff_percent": 20.7,
"swing_percent": 46.6
},
"components": {
"expected_quality": -0.1595,
"regression_edge": -0.2857,
"xwoba_edge": 0.2,
"xba_edge": 0.2,
"xslg_edge": -0.4143,
"barrel_edge": -0.5778,
"hard_hit_edge": -1.2571,
"exit_velocity_edge": -0.88,
"sweet_spot_edge": -0.0333,
"launch_angle_hr_bonus": 0.0
}
},
{
"position": "RF",
"player_id": "683748",
"player_name": "Victor Mesa Jr.",
"offense_factor": 1.0395,
"quality_score": 0.5271,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "683748",
"espn_rank": null
},
"metrics": {
"pa": 223.0,
"k_percent": 20.2,
"bb_percent": 8.8,
"woba": 0.355,
"xwoba": 0.329,
"xba": 0.249,
"xslg": 0.439,
"sweet_spot_percent": 31.9,
"barrel_batted_rate": 10.8,
"hard_hit_percent": 42.2,
"exit_velocity_avg": 89.4,
"launch_angle_avg": 21.0,
"whiff_percent": 25.5,
"swing_percent": 55.0
},
"components": {
"expected_quality": 0.7339,
"regression_edge": -0.7429,
"xwoba_edge": 0.8571,
"xba_edge": 0.3714,
"xslg_edge": 1.0857,
"barrel_edge": 0.9333,
"hard_hit_edge": 0.6571,
"exit_velocity_edge": 0.4,
"sweet_spot_edge": -0.2333,
"launch_angle_hr_bonus": 0.2
}
},
{
"position": "SS",
"player_id": "670764",
"player_name": "Taylor Walls",
"offense_factor": 0.9131,
"quality_score": -1.1589,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "670764",
"espn_rank": null
},
"metrics": {
"pa": 398.0,
"k_percent": 24.2,
"bb_percent": 10.4,
"woba": 0.278,
"xwoba": 0.251,
"xba": 0.19,
"xslg": 0.261,
"sweet_spot_percent": 32.1,
"barrel_batted_rate": 2.2,
"hard_hit_percent": 21.9,
"exit_velocity_avg": 85.6,
"launch_angle_avg": 19.4,
"whiff_percent": 22.0,
"swing_percent": 43.2
},
"components": {
"expected_quality": -1.222,
"regression_edge": -0.7714,
"xwoba_edge": -1.3714,
"xba_edge": -1.3143,
"xslg_edge": -1.4571,
"barrel_edge": -0.9778,
"hard_hit_edge": -2.2429,
"exit_velocity_edge": -1.12,
"sweet_spot_edge": -0.2,
"launch_angle_hr_bonus": 0.0
}
}
],
"source": "all_players_stats.csv embedded Savant batter features"
},
"away": {
"applied": true,
"offense_factor": 1.0437,
"raw_average_factor": 1.0437,
"team_espn_average_rank": null,
"coverage_weight": 1.0,
"covered_batters": 9,
"missing_batters": 0,
"players": [
{
"position": "RF",
"player_id": "682987",
"player_name": "Spencer Jones",
"offense_factor": 1.0783,
"quality_score": 1.0438,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "682987",
"espn_rank": null
},
"metrics": {
"pa": 253.0,
"k_percent": 36.3,
"bb_percent": 8.7,
"woba": 0.323,
"xwoba": 0.328,
"xba": 0.238,
"xslg": 0.455,
"sweet_spot_percent": 43.9,
"barrel_batted_rate": 15.9,
"hard_hit_percent": 55.1,
"exit_velocity_avg": 94.1,
"launch_angle_avg": 20.6,
"whiff_percent": 38.7,
"swing_percent": 53.2
},
"components": {
"expected_quality": 1.1904,
"regression_edge": 0.1429,
"xwoba_edge": 0.8286,
"xba_edge": 0.0571,
"xslg_edge": 1.3143,
"barrel_edge": 2.0667,
"hard_hit_edge": 2.5,
"exit_velocity_edge": 2.28,
"sweet_spot_edge": 1.7667,
"launch_angle_hr_bonus": 0.45
}
},
{
"position": "LF",
"player_id": "641355",
"player_name": "Cody Bellinger",
"offense_factor": 1.045,
"quality_score": 0.6002,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "641355",
"espn_rank": null
},
"metrics": {
"pa": 521.0,
"k_percent": 15.8,
"bb_percent": 10.5,
"woba": 0.336,
"xwoba": 0.335,
"xba": 0.271,
"xslg": 0.411,
"sweet_spot_percent": 38.2,
"barrel_batted_rate": 6.6,
"hard_hit_percent": 37.8,
"exit_velocity_avg": 89.2,
"launch_angle_avg": 17.6,
"whiff_percent": 20.0,
"swing_percent": 47.1
},
"components": {
"expected_quality": 0.7026,
"regression_edge": -0.0286,
"xwoba_edge": 1.0286,
"xba_edge": 1.0,
"xslg_edge": 0.6857,
"barrel_edge": 0.0,
"hard_hit_edge": 0.0286,
"exit_velocity_edge": 0.32,
"sweet_spot_edge": 0.8167,
"launch_angle_hr_bonus": 0.2
}
},
{
"position": "1B",
"player_id": "671277",
"player_name": "Luis García Jr.",
"offense_factor": 1.0715,
"quality_score": 0.9531,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "671277",
"espn_rank": null
},
"metrics": {
"pa": 509.0,
"k_percent": 17.9,
"bb_percent": 4.6,
"woba": 0.355,
"xwoba": 0.341,
"xba": 0.276,
"xslg": 0.486,
"sweet_spot_percent": 33.0,
"barrel_batted_rate": 12.2,
"hard_hit_percent": 46.1,
"exit_velocity_avg": 91.4,
"launch_angle_avg": 11.5,
"whiff_percent": 20.8,
"swing_percent": 52.6
},
"components": {
"expected_quality": 1.1734,
"regression_edge": -0.4,
"xwoba_edge": 1.2,
"xba_edge": 1.1429,
"xslg_edge": 1.7571,
"barrel_edge": 1.2444,
"hard_hit_edge": 1.2143,
"exit_velocity_edge": 1.2,
"sweet_spot_edge": -0.05,
"launch_angle_hr_bonus": 0.2
}
},
{
"position": "DH",
"player_id": "700250",
"player_name": "Ben Rice",
"offense_factor": 1.1109,
"quality_score": 1.4788,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "700250",
"espn_rank": null
},
"metrics": {
"pa": 611.0,
"k_percent": 24.3,
"bb_percent": 12.7,
"woba": 0.384,
"xwoba": 0.378,
"xba": 0.267,
"xslg": 0.511,
"sweet_spot_percent": 38.4,
"barrel_batted_rate": 14.3,
"hard_hit_percent": 48.6,
"exit_velocity_avg": 91.9,
"launch_angle_avg": 14.5,
"whiff_percent": 25.4,
"swing_percent": 43.2
},
"components": {
"expected_quality": 1.7474,
"regression_edge": -0.1714,
"xwoba_edge": 2.2571,
"xba_edge": 0.8857,
"xslg_edge": 2.1143,
"barrel_edge": 1.7111,
"hard_hit_edge": 1.5714,
"exit_velocity_edge": 1.4,
"sweet_spot_edge": 0.85,
"launch_angle_hr_bonus": 0.2
}
},
{
"position": "SS",
"player_id": "806146",
"player_name": "George Lombard Jr.",
"offense_factor": 1.0001,
"quality_score": 0.0012,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "806146",
"espn_rank": null
},
"metrics": {
"pa": 127.0,
"k_percent": 26.5,
"bb_percent": 6.0,
"woba": 0.303,
"xwoba": 0.298,
"xba": 0.24,
"xslg": 0.388,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 8.2,
"hard_hit_percent": 35.1,
"exit_velocity_avg": 87.1,
"launch_angle_avg": 8.5,
"whiff_percent": 25.6,
"swing_percent": 46.8
},
"components": {
"expected_quality": 0.0257,
"regression_edge": -0.1429,
"xwoba_edge": -0.0286,
"xba_edge": 0.1143,
"xslg_edge": 0.3571,
"barrel_edge": 0.3556,
"hard_hit_edge": -0.3571,
"exit_velocity_edge": -0.52,
"sweet_spot_edge": 0.0,
"launch_angle_hr_bonus": 0.0
}
},
{
"position": "2B",
"player_id": "665862",
"player_name": "Jazz Chisholm Jr.",
"offense_factor": 0.9966,
"quality_score": -0.0458,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "665862",
"espn_rank": null
},
"metrics": {
"pa": 506.0,
"k_percent": 29.5,
"bb_percent": 10.5,
"woba": 0.312,
"xwoba": 0.294,
"xba": 0.216,
"xslg": 0.366,
"sweet_spot_percent": 29.9,
"barrel_batted_rate": 8.2,
"hard_hit_percent": 42.8,
"exit_velocity_avg": 90.4,
"launch_angle_avg": 16.3,
"whiff_percent": 30.9,
"swing_percent": 45.8
},
"components": {
"expected_quality": 0.0304,
"regression_edge": -0.5143,
"xwoba_edge": -0.1429,
"xba_edge": -0.5714,
"xslg_edge": 0.0429,
"barrel_edge": 0.3556,
"hard_hit_edge": 0.7429,
"exit_velocity_edge": 0.8,
"sweet_spot_edge": -0.5667,
"launch_angle_hr_bonus": 0.2
}
},
{
"position": "CF",
"player_id": "663757",
"player_name": "Trent Grisham",
"offense_factor": 1.0646,
"quality_score": 0.8608,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "663757",
"espn_rank": null
},
"metrics": {
"pa": 477.0,
"k_percent": 18.4,
"bb_percent": 12.6,
"woba": 0.311,
"xwoba": 0.337,
"xba": 0.245,
"xslg": 0.429,
"sweet_spot_percent": 35.7,
"barrel_batted_rate": 9.6,
"hard_hit_percent": 45.3,
"exit_velocity_avg": 90.6,
"launch_angle_avg": 17.5,
"whiff_percent": 18.2,
"swing_percent": 39.1
},
"components": {
"expected_quality": 0.88,
"regression_edge": 0.7429,
"xwoba_edge": 1.0857,
"xba_edge": 0.2571,
"xslg_edge": 0.9429,
"barrel_edge": 0.6667,
"hard_hit_edge": 1.1,
"exit_velocity_edge": 0.88,
"sweet_spot_edge": 0.4,
"launch_angle_hr_bonus": 0.2
}
},
{
"position": "C",
"player_id": "669224",
"player_name": "Austin Wells",
"offense_factor": 1.01,
"quality_score": 0.1333,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "669224",
"espn_rank": null
},
"metrics": {
"pa": 358.0,
"k_percent": 26.5,
"bb_percent": 12.4,
"woba": 0.281,
"xwoba": 0.3,
"xba": 0.208,
"xslg": 0.36,
"sweet_spot_percent": 33.8,
"barrel_batted_rate": 7.7,
"hard_hit_percent": 42.7,
"exit_velocity_avg": 89.3,
"launch_angle_avg": 20.5,
"whiff_percent": 27.9,
"swing_percent": 46.3
},
"components": {
"expected_quality": 0.0666,
"regression_edge": 0.5429,
"xwoba_edge": 0.0286,
"xba_edge": -0.8,
"xslg_edge": -0.0429,
"barrel_edge": 0.2444,
"hard_hit_edge": 0.7286,
"exit_velocity_edge": 0.36,
"sweet_spot_edge": 0.0833,
"launch_angle_hr_bonus": 0.2
}
},
{
"position": "3B",
"player_id": "641857",
"player_name": "Ryan McMahon",
"offense_factor": 1.0166,
"quality_score": 0.2215,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "641857",
"espn_rank": null
},
"metrics": {
"pa": 339.0,
"k_percent": 29.4,
"bb_percent": 7.8,
"woba": 0.282,
"xwoba": 0.297,
"xba": 0.23,
"xslg": 0.381,
"sweet_spot_percent": 32.1,
"barrel_batted_rate": 9.0,
"hard_hit_percent": 44.8,
"exit_velocity_avg": 90.5,
"launch_angle_avg": 14.3,
"whiff_percent": 30.2,
"swing_percent": 45.5
},
"components": {
"expected_quality": 0.1877,
"regression_edge": 0.4286,
"xwoba_edge": -0.0571,
"xba_edge": -0.1714,
"xslg_edge": 0.2571,
"barrel_edge": 0.5333,
"hard_hit_edge": 1.0286,
"exit_velocity_edge": 0.84,
"sweet_spot_edge": -0.2,
"launch_angle_hr_bonus": 0.2
}
}
],
"source": "all_players_stats.csv embedded Savant batter features"
},
"reason": "Baseball Savant hitter xwOBA, xBA, xSLG, exit velocity, launch angle, barrel, hard-hit, sweet-spot, whiff, K%, and BB% adjusted offense; ESPN rank is attached for reporting only"
}Source: data/all_players_stats.csv embedded Savant pitcher and movement features. Starter quality modifies opposing run scoring and pitcher strikeout/walk/homer expectations.
| Team | Pitcher | Available | ESPN Rank | Quality | Sample Wt | Run Prev | K Factor | BB Factor | HR Factor | Regression | xwOBA | wOBA | K% | BB% | Whiff% | Barrel% | HardHit% |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Away NYY | True | - | 0.0289 | 1 | 0.9975 | 0.9954 | 0.9120 | 1.0600 | neutral | 0.3000 | 0.3020 | 25.20 | 4.80 | 21.30 | 9 | 44.60 | |
| Home TB | True | - | 0.5597 | 1 | 0.9524 | 1.0217 | 0.9120 | 0.9183 | neutral | 0.2710 | 0.2430 | 26 | 4.80 | 25.10 | 5.90 | 33.80 |
| Team | Pitcher | Movement Available | Primary Pitch | Pitches | Velo | Spin | Axis | HB | IVB | Drop | Rel X | Rel Z | Extension | Arm Angle | Movement Score |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Away NYY | True | None | 82 | 92.04 | 2373 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.1217 | |
| Home TB | True | None | 93 | 92.38 | 2355 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.1407 |
| Run Factor | Value |
|---|---|
| away_runs_vs_home_pitcher | 0.9737 |
| home_runs_vs_away_pitcher | 1.0026 |
| home_pitcher_starter_only_factor | 0.9524 |
| away_pitcher_starter_only_factor | 0.9975 |
| home_pitcher_workload_share | 0.6667 |
| away_pitcher_workload_share | 0.6296 |
| home_pitcher_quality_edge | 0.3549 |
{
"applied": true,
"home_pitcher": {
"available": true,
"pitcher_id": "656876",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 645.0,
"k_percent": 26.0,
"bb_percent": 4.8,
"woba": 0.243,
"xwoba": 0.271,
"sweet_spot_percent": 32.5,
"barrel_batted_rate": 5.9,
"hard_hit_percent": 33.8,
"avg_best_speed": 77.4285,
"avg_hyper_speed": 93.597,
"whiff_percent": 25.1,
"swing_percent": 50.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.906,
"command_and_miss": 0.4657,
"regression_edge": -0.8,
"xwoba_edge": 1.1714,
"barrel_edge": 0.2889,
"hard_hit_edge": 0.5857,
"whiff_edge": -0.0143,
"bb_edge": 1.1,
"pitch_design_score": 0.1407
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "656876",
"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": 92.37588033984052,
"release_spin_rate": 2355.1143668897917,
"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": 92.37588033984052,
"release_spin_rate": 2355.1143668897917,
"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.3759,
"release_spin_rate": 2355.1144,
"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.1407,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.0047,
"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.5597,
"sample_weight": 1.0,
"run_prevention_factor": 0.9524,
"strikeout_factor": 1.0217,
"walk_factor": 0.912,
"homer_factor": 0.9183,
"woba_minus_xwoba": -0.028,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "656876",
"espn_rank": null
}
},
"away_pitcher": {
"available": true,
"pitcher_id": "543037",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 470.0,
"k_percent": 25.2,
"bb_percent": 4.8,
"woba": 0.302,
"xwoba": 0.3,
"sweet_spot_percent": 36.2,
"barrel_batted_rate": 9.0,
"hard_hit_percent": 44.6,
"avg_best_speed": 81.4104,
"avg_hyper_speed": 94.5024,
"whiff_percent": 21.3,
"swing_percent": 49.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.08,
"command_and_miss": 0.2243,
"regression_edge": 0.0571,
"xwoba_edge": 0.3429,
"barrel_edge": -0.4,
"hard_hit_edge": -0.9571,
"whiff_edge": -0.5571,
"bb_edge": 1.1,
"pitch_design_score": 0.1217
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "543037",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 82,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 92.03748624523112,
"release_spin_rate": 2372.6649530903105,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 92.03748624523112,
"release_spin_rate": 2372.6649530903105,
"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.0375,
"release_spin_rate": 2372.665,
"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.1217,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.8693,
"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.0289,
"sample_weight": 1.0,
"run_prevention_factor": 0.9975,
"strikeout_factor": 0.9954,
"walk_factor": 0.912,
"homer_factor": 1.06,
"woba_minus_xwoba": 0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "543037",
"espn_rank": null
}
},
"run_factors": {
"away_runs_vs_home_pitcher": 0.9737,
"home_runs_vs_away_pitcher": 1.0026,
"home_pitcher_starter_only_factor": 0.9524,
"away_pitcher_starter_only_factor": 0.9975,
"home_pitcher_workload_share": 0.6667,
"away_pitcher_workload_share": 0.6296,
"home_pitcher_quality_edge": 0.3549
},
"score_before": {
"away_runs": 3.0,
"home_runs": 4.0
},
"score_after": {
"away_runs": 2.9211,
"home_runs": 4.0106,
"home_win_probability": 0.599
},
"reason": "Baseball Savant xwOBA, barrel, hard-hit, sweet-spot, whiff, K%, and BB% adjusted starter run prevention"
}| Team | Last-10 W-L | Win % | R/G | RA/G | Run Diff | Streak | Offense | Defense |
|---|---|---|---|---|---|---|---|---|
| Away NYY | 5-5 | 0.500 | 4.60 | 4.50 | 1 | 1W | average | average |
| Home TB | 5-5 | 0.500 | 3.80 | 3.20 | 6 | 1L | average | strong |
| Team | Record | Win % | Run Diff | RD/Game | Available |
|---|---|---|---|---|---|
| Away NYY | 93-68 | 0.578 | 138 | 0.857 | True |
| Home TB | 98-64 | 0.605 | 86 | 0.531 | True |
| Signal | - | - | -0.326 | -0.176 | applied=False |
| Date | Matchup | Score | Winner | Margin | Type |
|---|---|---|---|---|---|
| 2026-09-24 | TB @ NYY | 4 - 6 | NYY | 2 | close |
| 2026-09-23 | TB @ NYY | 2 - 9 | NYY | 7 | blowout |
| 2026-09-22 | TB @ NYY | 6 - 1 | TB | 5 | blowout |
| 2026-09-22 | TB @ NYY | 0 - 2 | NYY | 2 | close |
| 2026-07-09 | NYY @ TB | 12 - 4 | NYY | 8 | blowout |
| Layer | AB | H | R | HR | RBI | BB | SO |
|---|---|---|---|---|---|---|---|
| Game target NYY | - | - | 3 | - | - | - | - |
| Game target TB | - | - | 4 | - | - | - | - |
| Player finalized NYY | 32 | 7 | 5 | 1 | 4 | 2 | 9 |
| Player finalized TB | 34 | 8 | 4 | 1 | 4 | 2 | 7 |
| Player model fractional NYY | 32.71 | 7.58 | 4.66 | 1.50 | 5.27 | 2.67 | 9.22 |
| Player model fractional TB | 33.87 | 8.70 | 4.33 | 0.91 | 4.43 | 2.54 | 6.78 |
| Simulation box NYY | 31 | 4 | 3 | 1 | 3 | 4 | 5 |
| Simulation box TB | 32 | 8 | 4 | 0 | 4 | 3 | 7 |
If player finalized rows and game target disagree, the report now exposes that gap instead of hiding it. Fractional model rows show the unrounded prop layer before box-score realization.
| Team | Role | Pitcher | Pre IP | Pre ER | Pre SO | Pre H | Pre BB | Weighted ERA | Weighted WHIP | Box Sync |
|---|---|---|---|---|---|---|---|---|---|---|
| Away NYY | Starter | Gerrit Cole | 5.20 | 3 | 6 | 7 | 3 | 4.35 | 1.19 | True |
| Away NYY | Setup Man | Brent Headrick | 1.20 | 0 | 1 | 0 | 0 | 5.83 | 1.75 | True |
| Away NYY | Closer | David Bednar | 0.20 | 1 | 0 | 1 | 0 | 1.76 | 1.18 | True |
| Home TB | Starter | Drew Rasmussen | 6 | 2 | 5 | 1 | 3 | 2.24 | 0.94 | True |
| Home TB | Closer | Bryan Baker | 1 | 0 | 0 | 1 | 1 | 1.48 | 1.03 | True |
| Home TB | Middle Reliever (High Leverage) | Cam Booser | 1 | 1 | 0 | 1 | 0 | 1.96 | 0.73 | True |
| Home TB | Setup Man | Kevin Kelly | 1 | 0 | 0 | 1 | 0 | 3.94 | 1.23 | True |
| Side | Team | Role | Pos | Player | Dominant | Changed | Boosted | Deboosted | Better | Worse | Largest Metric | Largest Delta | Direction | Effect |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| home | TB | batter | 1B | Jonathan Aranda | worse | 11 | 3 | 8 | 2 | 9 | predicted_SO | 1.9480 | boost | worse |
| away | NYY | batter | LF | Cody Bellinger | boosted | 10 | 6 | 4 | 5 | 5 | predicted_AB | -1.8800 | deboost | worse |
| home | TB | batter | DH | Yandy Díaz | deboosted | 10 | 4 | 6 | 5 | 5 | predicted_2B | 1.8300 | boost | better |
| away | NYY | batter | CF | Trent Grisham | better | 10 | 6 | 4 | 7 | 3 | predicted_RBI | 1.5400 | boost | better |
| home | TB | batter | C | Liam Hicks | worse | 10 | 1 | 9 | 2 | 8 | predicted_AB | -1.5100 | deboost | worse |
| home | TB | batter | 2B | Richie Palacios | better | 10 | 7 | 3 | 6 | 4 | predicted_RBI | 1.4700 | boost | better |
| away | NYY | batter | DH | Ben Rice | worse | 10 | 1 | 9 | 1 | 9 | predicted_H | -1.2800 | deboost | worse |
| home | TB | batter | RF | Victor Mesa Jr. | boosted | 12 | 7 | 5 | 6 | 6 | predicted_SO | 1.2540 | boost | worse |
| away | NYY | batter | C | Austin Wells | worse | 11 | 2 | 9 | 1 | 10 | predicted_AB | 1.1980 | boost | better |
| away | NYY | batter | 1B | Luis García Jr. | worse | 9 | 0 | 9 | 1 | 8 | predicted_H | -1.1400 | deboost | worse |
| home | TB | batter | SS | Taylor Walls | worse | 9 | 1 | 8 | 2 | 7 | predicted_AB | -1.1280 | deboost | worse |
| away | NYY | batter | SS | George Lombard Jr. | worse | 10 | 3 | 7 | 4 | 6 | predicted_AB | -1.0900 | deboost | worse |
| away | NYY | pitcher | Starter | Gerrit Cole | better | 4 | 1 | 3 | 3 | 1 | predicted_ER | -1.0000 | deboost | better |
| away | NYY | pitcher | Setup Man | Brent Headrick | neutral | 2 | 1 | 1 | 1 | 1 | predicted_SO | -1.0000 | deboost | worse |
| away | NYY | pitcher | Closer | David Bednar | worse | 3 | 2 | 1 | 0 | 3 | predicted_ER | 1.0000 | boost | worse |
| home | TB | pitcher | Starter | Drew Rasmussen | better | 1 | 1 | 0 | 1 | 0 | predicted_SO | 1.0000 | boost | better |
| home | TB | pitcher | Middle Reliever (High Leverage) | Cam Booser | worse | 1 | 0 | 1 | 0 | 1 | predicted_SO | -1.0000 | deboost | worse |
| home | TB | batter | 3B | Junior Caminero | worse | 11 | 2 | 9 | 3 | 8 | predicted_H | -0.9700 | deboost | worse |
| away | NYY | batter | 3B | Ryan McMahon | worse | 11 | 1 | 10 | 2 | 9 | predicted_SO | -0.9380 | deboost | better |
| home | TB | batter | CF | Jonny DeLuca | worse | 11 | 5 | 6 | 4 | 7 | predicted_H | -0.9030 | deboost | worse |
| away | NYY | batter | 2B | Jazz Chisholm Jr. | worse | 10 | 2 | 8 | 3 | 7 | predicted_H | -0.9000 | deboost | worse |
| away | NYY | batter | RF | Spencer Jones | worse | 11 | 1 | 10 | 2 | 9 | predicted_AB | 0.8330 | boost | better |
| home | TB | batter | LF | Chandler Simpson | worse | 9 | 3 | 6 | 4 | 5 | predicted_H | 0.7400 | boost | better |
This table ranks players whose JSON evolution changed materially. Boost/deboost is numeric movement; better/worse is role-aware.
| Field | Value |
|---|---|
| Pitcher | Gerrit Cole |
| Role | Starter |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 0.0289 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | 0.1217 |
| Avg Velo | 92.0375 |
| Avg Spin | 2372.6650 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 5.2000 |
| Pre ER | 3 |
| Pre H | 7 |
| Pre BB | 3 |
| Pre SO | 6 |
| Season ERA | 3.6142 |
| Season WHIP | 1.1024 |
| Role Avg IP | 5.7730 |
| Recent Avg IP | 5.6670 |
| Last Start IP | 5.2000 |
{
"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.0221,
"defense_index": 1.2031,
"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": "TB",
"games": 162,
"wins": 98,
"losses": 64,
"win_pct": 0.6049,
"runs_scored": 736.0,
"runs_allowed": 650.0,
"run_differential": 86.0,
"run_differential_per_game": 0.5309,
"avg_runs_scored": 4.5432,
"avg_runs_allowed": 4.0123,
"offense_index": 1.0116,
"defense_index": 1.1193,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 3.2,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.1542
},
"edges": {
"quality_edge": 0.0167,
"offense_edge": 0.0221,
"opponent_offense_edge": 0.0116,
"defense_strength": 0.2031,
"opponent_defense_weakness": -0.1193,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0063,
"run_prevention": 0.9807,
"strikeout": 0.9996
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "543037",
"profile": {
"available": true,
"pitcher_id": "543037",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 470.0,
"k_percent": 25.2,
"bb_percent": 4.8,
"woba": 0.302,
"xwoba": 0.3,
"sweet_spot_percent": 36.2,
"barrel_batted_rate": 9.0,
"hard_hit_percent": 44.6,
"avg_best_speed": 81.4104,
"avg_hyper_speed": 94.5024,
"whiff_percent": 21.3,
"swing_percent": 49.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.08,
"command_and_miss": 0.2243,
"regression_edge": 0.0571,
"xwoba_edge": 0.3429,
"barrel_edge": -0.4,
"hard_hit_edge": -0.9571,
"whiff_edge": -0.5571,
"bb_edge": 1.1,
"pitch_design_score": 0.1217
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "543037",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 82,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 92.03748624523112,
"release_spin_rate": 2372.6649530903105,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 92.03748624523112,
"release_spin_rate": 2372.6649530903105,
"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.0375,
"release_spin_rate": 2372.665,
"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.1217,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.8693,
"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.0289,
"sample_weight": 1.0,
"run_prevention_factor": 0.9975,
"strikeout_factor": 0.9954,
"walk_factor": 0.912,
"homer_factor": 1.06,
"woba_minus_xwoba": 0.002,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "543037",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 0.9975,
"adjusted": 3
},
"predicted_H": {
"original": 6.0,
"factor": 0.9975,
"adjusted": 6
},
"predicted_BB": {
"original": 1.0,
"factor": 0.912,
"adjusted": 1
},
"predicted_HR": {
"original": 1.0,
"factor": 1.06,
"adjusted": 1
},
"predicted_SO": {
"original": 5.0,
"factor": 0.9954,
"adjusted": 5
}
}
}
}{
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 59.0,
"ER": 24,
"H": 55,
"BB": 11,
"SO": 58,
"HR": 11,
"ERA": 3.661016949152543,
"WHIP": 1.1186440677966103,
"K9": 8.847457627118645,
"HR9": 1.6779661016949154,
"games_pitched": 10,
"quality_starts": 5,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-23T00:00:00"
}{
"available": true,
"pitcher_id": "543037",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 82,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 92.03748624523112,
"release_spin_rate": 2372.6649530903105,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 82,
"pitch_usage": 0.0,
"release_speed": 92.03748624523112,
"release_spin_rate": 2372.6649530903105,
"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.0375,
"release_spin_rate": 2372.665,
"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.1217,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.8693,
"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."
}{
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "543037",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 22,
"reference_playing_time": 5.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 28.1,
"ER": 16.0,
"R": 16.0,
"H": 30.0,
"BB": 4.0,
"SO": 26.0,
"HR": 9.0,
"BF": 117.0,
"Pitches": 446.0
},
"per_game": {
"IP": 5.2,
"ER": 3.2,
"R": 3.2,
"H": 6.0,
"BB": 0.8,
"SO": 5.2,
"HR": 1.8,
"BF": 23.4,
"Pitches": 89.2
},
"rates": {
"ERA": 5.0824,
"WHIP": 1.2,
"ER_per_IP": 0.56471,
"H_per_IP": 1.05882,
"BB_per_IP": 0.14118,
"SO_per_IP": 0.91765,
"HR_per_IP": 0.31765
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 59.0,
"ER": 24.0,
"R": 25.0,
"H": 55.0,
"BB": 11.0,
"SO": 58.0,
"HR": 11.0,
"BF": 240.0,
"Pitches": 886.0
},
"per_game": {
"IP": 6.0,
"ER": 2.4,
"R": 2.5,
"H": 5.5,
"BB": 1.1,
"SO": 5.8,
"HR": 1.1,
"BF": 24.0,
"Pitches": 88.6
},
"rates": {
"ERA": 3.661,
"WHIP": 1.1186,
"ER_per_IP": 0.40678,
"H_per_IP": 0.9322,
"BB_per_IP": 0.18644,
"SO_per_IP": 0.98305,
"HR_per_IP": 0.18644
}
},
"season": {
"games": 22,
"totals": {
"IP": 127.0,
"ER": 51.0,
"R": 52.0,
"H": 115.0,
"BB": 25.0,
"SO": 131.0,
"HR": 22.0,
"BF": 519.0,
"Pitches": 1951.0
},
"per_game": {
"IP": 5.2,
"ER": 2.3182,
"R": 2.3636,
"H": 5.2273,
"BB": 1.1364,
"SO": 5.9545,
"HR": 1.0,
"BF": 23.5909,
"Pitches": 88.6818
},
"rates": {
"ERA": 3.6142,
"WHIP": 1.1024,
"ER_per_IP": 0.40157,
"H_per_IP": 0.90551,
"BB_per_IP": 0.19685,
"SO_per_IP": 1.0315,
"HR_per_IP": 0.17323
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.2,
"predicted_ER": 2.785,
"predicted_H": 5.669,
"predicted_BB": 1.194,
"predicted_SO": 5.518,
"predicted_HR": 1.298,
"predicted_ERA": 4.3502,
"predicted_WHIP": 1.1912
}
}{
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4282,
"form_weight": 0.5718,
"form_reliability": 0.8148,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 22.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8148,
"prior_weight": 0.1852
},
"applied_metrics": {
"predicted_IP": {
"model": 5.2,
"form": 5.2,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 4.0,
"form": 2.785,
"final": 3.3053,
"source": "model_form_blend"
},
"predicted_H": {
"model": 8.0,
"form": 5.669,
"final": 6.6672,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.194,
"final": 1.9674,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 5.0,
"form": 5.518,
"final": 5.2962,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 1.298,
"final": 0.7421,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.3502,
"final": 4.3502,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1912,
"final": 1.1912,
"source": "form_only"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | Brent Headrick |
| Role | Setup Man |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 0.6410 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | 0.0017 |
| Avg Velo | 89.8945 |
| Avg Spin | 2072.5970 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 1.2000 |
| Pre ER | 0 |
| Pre H | 0 |
| Pre BB | 0 |
| Pre SO | 1 |
| Season ERA | 2.1737 |
| Season WHIP | 1.2076 |
| Role Avg IP | 0.9590 |
| Recent Avg IP | 0.6000 |
| Last Start IP | 0 |
{
"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.0221,
"defense_index": 1.2031,
"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": "TB",
"games": 162,
"wins": 98,
"losses": 64,
"win_pct": 0.6049,
"runs_scored": 736.0,
"runs_allowed": 650.0,
"run_differential": 86.0,
"run_differential_per_game": 0.5309,
"avg_runs_scored": 4.5432,
"avg_runs_allowed": 4.0123,
"offense_index": 1.0116,
"defense_index": 1.1193,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 3.2,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.1542
},
"edges": {
"quality_edge": 0.0167,
"offense_edge": 0.0221,
"opponent_offense_edge": 0.0116,
"defense_strength": 0.2031,
"opponent_defense_weakness": -0.1193,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0063,
"run_prevention": 0.9807,
"strikeout": 0.9996
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "687396",
"profile": {
"available": true,
"pitcher_id": "687396",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 305.0,
"k_percent": 30.1,
"bb_percent": 8.3,
"woba": 0.29,
"xwoba": 0.271,
"sweet_spot_percent": 38.8,
"barrel_batted_rate": 4.5,
"hard_hit_percent": 37.3,
"avg_best_speed": 77.0129,
"avg_hyper_speed": 93.7693,
"whiff_percent": 31.8,
"swing_percent": 52.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.6346,
"command_and_miss": 0.8893,
"regression_edge": 0.5429,
"xwoba_edge": 1.1714,
"barrel_edge": 0.6,
"hard_hit_edge": 0.0857,
"whiff_edge": 0.9429,
"bb_edge": 0.225,
"pitch_design_score": 0.0017
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "687396",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 21,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 21,
"pitch_usage": 0.0,
"release_speed": 89.89451979004092,
"release_spin_rate": 2072.597032749728,
"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": 21,
"pitch_usage": 0.0,
"release_speed": 89.89451979004092,
"release_spin_rate": 2072.597032749728,
"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.8945,
"release_spin_rate": 2072.597,
"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.0017,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0121,
"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.641,
"sample_weight": 1.0,
"run_prevention_factor": 0.9455,
"strikeout_factor": 1.0834,
"walk_factor": 0.982,
"homer_factor": 0.9134,
"woba_minus_xwoba": 0.019,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "687396",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9455,
"adjusted": 0
},
"predicted_H": {
"original": 1.0,
"factor": 0.9455,
"adjusted": 1
},
"predicted_BB": {
"original": 0.0,
"factor": 0.982,
"adjusted": 0
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9134,
"adjusted": 0
},
"predicted_SO": {
"original": 2.0,
"factor": 1.0834,
"adjusted": 2
}
}
}
}{
"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": 7.1,
"ER": 4,
"H": 6,
"BB": 6,
"SO": 9,
"HR": 1,
"ERA": 4.909090909090909,
"WHIP": 1.6363636363636365,
"K9": 11.045454545454547,
"HR9": 1.2272727272727273,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": true
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-30T00:00:00"
}{
"available": true,
"pitcher_id": "687396",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 21,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 21,
"pitch_usage": 0.0,
"release_speed": 89.89451979004092,
"release_spin_rate": 2072.597032749728,
"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": 21,
"pitch_usage": 0.0,
"release_speed": 89.89451979004092,
"release_spin_rate": 2072.597032749728,
"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.8945,
"release_spin_rate": 2072.597,
"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.0017,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.0121,
"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."
}{
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.213,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7643,
"prior_weight": 0.2357
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "687396",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 82,
"reference_playing_time": 0.667,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 3.0,
"ER": 3.0,
"R": 3.0,
"H": 4.0,
"BB": 3.0,
"SO": 4.0,
"HR": 1.0,
"BF": 16.0,
"Pitches": 54.0
},
"per_game": {
"IP": 0.2,
"ER": 0.6,
"R": 0.6,
"H": 0.8,
"BB": 0.6,
"SO": 0.8,
"HR": 0.2,
"BF": 3.2,
"Pitches": 10.8
},
"rates": {
"ERA": 9.0,
"WHIP": 2.3333,
"ER_per_IP": 1.0,
"H_per_IP": 1.33333,
"BB_per_IP": 1.0,
"SO_per_IP": 1.33333,
"HR_per_IP": 0.33333
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 7.1,
"ER": 4.0,
"R": 4.0,
"H": 6.0,
"BB": 6.0,
"SO": 9.0,
"HR": 1.0,
"BF": 34.0,
"Pitches": 142.0
},
"per_game": {
"IP": 0.2,
"ER": 0.4,
"R": 0.4,
"H": 0.6,
"BB": 0.6,
"SO": 0.9,
"HR": 0.1,
"BF": 3.4,
"Pitches": 14.2
},
"rates": {
"ERA": 4.9091,
"WHIP": 1.6364,
"ER_per_IP": 0.54545,
"H_per_IP": 0.81818,
"BB_per_IP": 0.81818,
"SO_per_IP": 1.22727,
"HR_per_IP": 0.13636
}
},
"season": {
"games": 82,
"totals": {
"IP": 78.2,
"ER": 19.0,
"R": 20.0,
"H": 68.0,
"BB": 27.0,
"SO": 98.0,
"HR": 5.0,
"BF": 327.0,
"Pitches": 1285.0
},
"per_game": {
"IP": 1.0,
"ER": 0.2317,
"R": 0.2439,
"H": 0.8293,
"BB": 0.3293,
"SO": 1.1951,
"HR": 0.061,
"BF": 3.9878,
"Pitches": 15.6707
},
"rates": {
"ERA": 2.1737,
"WHIP": 1.2076,
"ER_per_IP": 0.24153,
"H_per_IP": 0.86441,
"BB_per_IP": 0.34322,
"SO_per_IP": 1.24576,
"HR_per_IP": 0.06356
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 0.2,
"predicted_ER": 0.465,
"predicted_H": 0.747,
"predicted_BB": 0.506,
"predicted_SO": 0.859,
"predicted_HR": 0.14,
"predicted_ERA": 5.8273,
"predicted_WHIP": 1.7462
}
}{
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4496,
"form_weight": 0.5504,
"form_reliability": 0.7643,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 16.213,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7643,
"prior_weight": 0.2357
},
"applied_metrics": {
"predicted_IP": {
"model": 0.2,
"form": 0.2,
"final": 0.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 0.465,
"final": 0.2559,
"source": "model_form_blend"
},
"predicted_H": {
"model": 0.0,
"form": 0.747,
"final": 0.4112,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 0.506,
"final": 0.2785,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 0.859,
"final": 1.372,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.14,
"final": 0.0771,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 5.8273,
"final": 5.8273,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.7462,
"final": 1.7462,
"source": "form_only"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | David Bednar |
| Role | Closer |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 0.7494 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | 0.0250 |
| Avg Velo | 90.3112 |
| Avg Spin | 2068.8737 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 0.2000 |
| Pre ER | 1 |
| Pre H | 1 |
| Pre BB | 0 |
| Pre SO | 0 |
| Season ERA | 2.4313 |
| Season WHIP | 1.0379 |
| Role Avg IP | 1.0820 |
| Recent Avg IP | 1.2000 |
| Last Start IP | 0 |
{
"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.0221,
"defense_index": 1.2031,
"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": "TB",
"games": 162,
"wins": 98,
"losses": 64,
"win_pct": 0.6049,
"runs_scored": 736.0,
"runs_allowed": 650.0,
"run_differential": 86.0,
"run_differential_per_game": 0.5309,
"avg_runs_scored": 4.5432,
"avg_runs_allowed": 4.0123,
"offense_index": 1.0116,
"defense_index": 1.1193,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 3.2,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.1542
},
"edges": {
"quality_edge": 0.0167,
"offense_edge": 0.0221,
"opponent_offense_edge": 0.0116,
"defense_strength": 0.2031,
"opponent_defense_weakness": -0.1193,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0063,
"run_prevention": 0.9807,
"strikeout": 0.9996
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "670280",
"profile": {
"available": true,
"pitcher_id": "670280",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 266.0,
"k_percent": 27.1,
"bb_percent": 7.1,
"woba": 0.249,
"xwoba": 0.263,
"sweet_spot_percent": 26.4,
"barrel_batted_rate": 4.9,
"hard_hit_percent": 35.7,
"avg_best_speed": 76.0652,
"avg_hyper_speed": 93.296,
"whiff_percent": 30.8,
"swing_percent": 53.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.0781,
"command_and_miss": 0.7064,
"regression_edge": -0.4,
"xwoba_edge": 1.4,
"barrel_edge": 0.5111,
"hard_hit_edge": 0.3143,
"whiff_edge": 0.8,
"bb_edge": 0.525,
"pitch_design_score": 0.025
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "670280",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 22,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 22,
"pitch_usage": 0.0,
"release_speed": 90.31118303660337,
"release_spin_rate": 2068.873677036324,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 22,
"pitch_usage": 0.0,
"release_speed": 90.31118303660337,
"release_spin_rate": 2068.873677036324,
"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.3112,
"release_spin_rate": 2068.8737,
"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.025,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.1788,
"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.7494,
"sample_weight": 1.0,
"run_prevention_factor": 0.9363,
"strikeout_factor": 1.0606,
"walk_factor": 0.958,
"homer_factor": 0.9045,
"woba_minus_xwoba": -0.014,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "670280",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9363,
"adjusted": 0
},
"predicted_H": {
"original": 1.0,
"factor": 0.9363,
"adjusted": 1
},
"predicted_BB": {
"original": 0.0,
"factor": 0.958,
"adjusted": 0
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9045,
"adjusted": 0
},
"predicted_SO": {
"original": 2.0,
"factor": 1.0606,
"adjusted": 2
}
}
}
}{
"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": 11.0,
"ER": 1,
"H": 9,
"BB": 3,
"SO": 12,
"HR": 1,
"ERA": 0.8181818181818182,
"WHIP": 1.0909090909090908,
"K9": 9.818181818181818,
"HR9": 0.8181818181818182,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-30T00:00:00"
}{
"available": true,
"pitcher_id": "670280",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 22,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 22,
"pitch_usage": 0.0,
"release_speed": 90.31118303660337,
"release_spin_rate": 2068.873677036324,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 22,
"pitch_usage": 0.0,
"release_speed": 90.31118303660337,
"release_spin_rate": 2068.873677036324,
"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.3112,
"release_spin_rate": 2068.8737,
"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.025,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.1788,
"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."
}{
"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": 14.495,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7435,
"prior_weight": 0.2565
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "670280",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 65,
"reference_playing_time": 0.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 6.0,
"ER": 0.0,
"R": 2.0,
"H": 4.0,
"BB": 3.0,
"SO": 5.0,
"HR": 0.0,
"BF": 24.0,
"Pitches": 103.0
},
"per_game": {
"IP": 1.1,
"ER": 0.0,
"R": 0.4,
"H": 0.8,
"BB": 0.6,
"SO": 1.0,
"HR": 0.0,
"BF": 4.8,
"Pitches": 20.6
},
"rates": {
"ERA": 0.0,
"WHIP": 1.1667,
"ER_per_IP": 0.0,
"H_per_IP": 0.66667,
"BB_per_IP": 0.5,
"SO_per_IP": 0.83333,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 11.0,
"ER": 1.0,
"R": 3.0,
"H": 9.0,
"BB": 3.0,
"SO": 12.0,
"HR": 1.0,
"BF": 43.0,
"Pitches": 173.0
},
"per_game": {
"IP": 1.0,
"ER": 0.1,
"R": 0.3,
"H": 0.9,
"BB": 0.3,
"SO": 1.2,
"HR": 0.1,
"BF": 4.3,
"Pitches": 17.3
},
"rates": {
"ERA": 0.8182,
"WHIP": 1.0909,
"ER_per_IP": 0.09091,
"H_per_IP": 0.81818,
"BB_per_IP": 0.27273,
"SO_per_IP": 1.09091,
"HR_per_IP": 0.09091
}
},
"season": {
"games": 65,
"totals": {
"IP": 70.1,
"ER": 19.0,
"R": 25.0,
"H": 52.0,
"BB": 21.0,
"SO": 77.0,
"HR": 4.0,
"BF": 284.0,
"Pitches": 1176.0
},
"per_game": {
"IP": 1.0,
"ER": 0.2923,
"R": 0.3846,
"H": 0.8,
"BB": 0.3231,
"SO": 1.1846,
"HR": 0.0615,
"BF": 4.3692,
"Pitches": 18.0923
},
"rates": {
"ERA": 2.4313,
"WHIP": 1.0379,
"ER_per_IP": 0.27014,
"H_per_IP": 0.73934,
"BB_per_IP": 0.29858,
"SO_per_IP": 1.09479,
"HR_per_IP": 0.05687
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 1.0,
"predicted_ER": 0.184,
"predicted_H": 0.751,
"predicted_BB": 0.357,
"predicted_SO": 0.907,
"predicted_HR": 0.066,
"predicted_ERA": 1.7568,
"predicted_WHIP": 1.1783
}
}{
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4584,
"form_weight": 0.5416,
"form_reliability": 0.7435,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.495,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7435,
"prior_weight": 0.2565
},
"applied_metrics": {
"predicted_IP": {
"model": 0.1,
"form": 1.0,
"final": 0.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 0.184,
"final": 0.0997,
"source": "model_form_blend"
},
"predicted_H": {
"model": 0.0,
"form": 0.751,
"final": 0.4068,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 0.357,
"final": 0.1934,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 0.0,
"form": 0.907,
"final": 0.4913,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.066,
"final": 0.0357,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 1.7568,
"final": 1.7568,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1783,
"final": 1.1783,
"source": "form_only"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.155 | 0.000 | 0.000 | Hitting_2B | 0.182 | 0.000 | -0.182 | 0.000 |
| predicted_3B | 0.012 | 0.000 | 0.000 | Hitting_3B | 0.015 | 0.000 | -0.015 | 0.000 |
| predicted_AB | 3.167 | 4.000 | 4.000 | Hitting_AB | 3.286 | 5.000 | 0.714 | -1.000 |
| predicted_AVG | 0.244 | 0.000 | 0.250 | Hitting_AVG | 0.258 | 0.200 | -0.258 | -0.200 |
| predicted_BB | 0.298 | 0.000 | 0.000 | Hitting_BB | 0.353 | 0.000 | -0.353 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.045 | 0.000 | -0.045 | 0.000 |
| predicted_H | 0.774 | 0.000 | 1.000 | Hitting_H | 0.848 | 1.000 | -0.848 | -1.000 |
| predicted_HR | 0.131 | 0.000 | 0.000 | Hitting_HR | 0.138 | 0.000 | -0.138 | 0.000 |
| predicted_OBP | 0.309 | 0.000 | 0.250 | Hitting_OBP | 0.331 | 0.200 | -0.331 | -0.200 |
| predicted_R | 0.464 | 0.000 | 1.000 | Hitting_R | 0.476 | 1.000 | -0.476 | -1.000 |
| predicted_RBI | 0.476 | 0.000 | 1.000 | Hitting_RBI | 0.546 | 0.000 | -0.546 | 0.000 |
| predicted_SLG | 0.425 | 0.000 | 0.250 | Hitting_SLG | 0.448 | 0.200 | -0.448 | -0.200 |
| predicted_SO | 1.286 | 1.000 | 1.000 | Hitting_SO | 1.335 | 4.000 | -0.335 | -3.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 11 |
| Boosted Metrics | 1 |
| Deboosted Metrics | 10 |
| Better Metrics | 2 |
| Worse Metrics | 9 |
| Biggest Boost | predicted_AB: 3.1670 -> 4.0000 (boost 0.8330, better) |
| Biggest Deboost | predicted_H: 0.7740 -> 0.0000 (deboost -0.7740, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 6 | 3 | 3 | 2 | 4 | predicted_AB: 3.1670 -> 3.3425 (boost 0.1755, better) | predicted_SLG: 0.4250 -> 0.4016 (deboost -0.0234, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 0 | 0 | 0 | 0 | 0 | - | - | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 4 | 3 | 3 | 4 | predicted_AB: 3.3425 -> 4.0000 (boost 0.6575, better) | predicted_BB: 0.2861 -> 0.0000 (deboost -0.2861, worse) | AB rounded to 4 (raw=3.34), rates preserved: AVG=0.219 HR/AB=0.036 |
| 6 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5275 -> 1.0000 (boost 0.4725, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 3 | 3 | 4 | 2 | predicted_BB: 0.0000 -> 0.2691 (boost 0.2691, better) | predicted_RBI: 1.0000 -> 0.5206 (deboost -0.4794, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 6 | 2 | 4 | 3 | 3 | predicted_RBI: 0.5206 -> 1.0000 (boost 0.4794, better) | predicted_SO: 1.5216 -> 1.0000 (deboost -0.5216, better) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 4 | 2 | 2 | 1 | 3 | predicted_SO: 1.0000 -> 2.0000 (boost 1.0000, worse) | predicted_OBP: 0.2966 -> 0.2870 (deboost -0.0096, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 4 | 0 | 4 | 1 | 3 | - | predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 3 | 2 | 1 | 2 | 1 | predicted_OBP: 0.2870 -> 0.2966 (boost 0.0096, better) | predicted_SLG: 0.4080 -> 0.3976 (deboost -0.0104, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "682987",
"player_name": "Spencer Jones",
"position": "RF",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.155,
"predicted_3B": 0.012,
"predicted_AB": 3.167,
"predicted_AVG": 0.244,
"predicted_BB": 0.298,
"predicted_H": 0.774,
"predicted_HR": 0.131,
"predicted_OBP": 0.309,
"predicted_R": 0.464,
"predicted_RBI": 0.476,
"predicted_SLG": 0.425,
"predicted_SO": 1.286
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1563,
"predicted_3B": 0.0107,
"predicted_AB": 3.3425,
"predicted_AVG": 0.2382,
"predicted_BB": 0.2857,
"predicted_H": 0.7956,
"predicted_HBP": 0.01,
"predicted_HR": 0.1213,
"predicted_OBP": 0.2988,
"predicted_R": 0.5325,
"predicted_RBI": 0.4498,
"predicted_SLG": 0.4016,
"predicted_SO": 1.3604
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.155,
"after": 0.1563,
"delta": 0.0013,
"percent_delta": 0.0084,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.012,
"after": 0.0107,
"delta": -0.0013,
"percent_delta": -0.1083,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.167,
"after": 3.3425,
"delta": 0.1755,
"percent_delta": 0.0554,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.244,
"after": 0.2382,
"delta": -0.0058,
"percent_delta": -0.0238,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.298,
"after": 0.2857,
"delta": -0.0123,
"percent_delta": -0.0413,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.774,
"after": 0.7956,
"delta": 0.0216,
"percent_delta": 0.0279,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.131,
"after": 0.1213,
"delta": -0.0097,
"percent_delta": -0.074,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.309,
"after": 0.2988,
"delta": -0.0102,
"percent_delta": -0.033,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.464,
"after": 0.5325,
"delta": 0.0685,
"percent_delta": 0.1476,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.476,
"after": 0.4498,
"delta": -0.0262,
"percent_delta": -0.055,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.425,
"after": 0.4016,
"delta": -0.0234,
"percent_delta": -0.0551,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.286,
"after": 1.3604,
"delta": 0.0744,
"percent_delta": 0.0579,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 3,
"deboosted_metrics": 3,
"better_metrics": 2,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.167,
"after": 3.3425,
"delta": 0.1755,
"percent_delta": 0.0554,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.425,
"after": 0.4016,
"delta": -0.0234,
"percent_delta": -0.0551,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 84
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1563,
"predicted_3B": 0.0107,
"predicted_AB": 3.3425,
"predicted_AVG": 0.2364,
"predicted_BB": 0.2861,
"predicted_H": 0.7903,
"predicted_HBP": 0.01,
"predicted_HR": 0.1203,
"predicted_OBP": 0.2966,
"predicted_R": 0.5275,
"predicted_RBI": 0.4456,
"predicted_SLG": 0.3976,
"predicted_SO": 1.3585
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1563,
"after": 0.1563,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0107,
"after": 0.0107,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.3425,
"after": 3.3425,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2382,
"after": 0.2364,
"delta": -0.0018,
"percent_delta": -0.0076,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.2857,
"after": 0.2861,
"delta": 0.0004,
"percent_delta": 0.0014,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.7956,
"after": 0.7903,
"delta": -0.0053,
"percent_delta": -0.0067,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.01,
"after": 0.01,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1213,
"after": 0.1203,
"delta": -0.001,
"percent_delta": -0.0082,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.2988,
"after": 0.2966,
"delta": -0.0022,
"percent_delta": -0.0074,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.5325,
"after": 0.5275,
"delta": -0.005,
"percent_delta": -0.0094,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.4498,
"after": 0.4456,
"delta": -0.0042,
"percent_delta": -0.0093,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4016,
"after": 0.3976,
"delta": -0.004,
"percent_delta": -0.01,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.3604,
"after": 1.3585,
"delta": -0.0019,
"percent_delta": -0.0014,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=3.34), rates preserved: AVG=0.219 HR/AB=0.036",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1563,
"after": 0.0,
"delta": -0.1563,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0107,
"after": 0.0,
"delta": -0.0107,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.3425,
"after": 4.0,
"delta": 0.6575,
"percent_delta": 0.1967,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.2861,
"after": 0.0,
"delta": -0.2861,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.7903,
"after": 1.0,
"delta": 0.2097,
"percent_delta": 0.2653,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.01,
"after": 0.0,
"delta": -0.01,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1203,
"after": 0.0,
"delta": -0.1203,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.4456,
"after": 1.0,
"delta": 0.5544,
"percent_delta": 1.2442,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.3585,
"after": 2.0,
"delta": 0.6415,
"percent_delta": 0.4722,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 4,
"deboosted_metrics": 3,
"better_metrics": 3,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.3425,
"after": 4.0,
"delta": 0.6575,
"percent_delta": 0.1967,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.2861,
"after": 0.0,
"delta": -0.2861,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.5275,
"after": 1.0,
"delta": 0.4725,
"percent_delta": 0.8957,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.5275,
"after": 1.0,
"delta": 0.4725,
"percent_delta": 0.8957,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1859,
"predicted_3B": 0.0129,
"predicted_BB": 0.2691,
"predicted_H": 0.8704,
"predicted_HR": 0.1541,
"predicted_RBI": 0.5206,
"predicted_SO": 1.5216
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1859,
"delta": 0.1859,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0129,
"delta": 0.0129,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.2691,
"delta": 0.2691,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.8704,
"delta": -0.1296,
"percent_delta": -0.1296,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1541,
"delta": 0.1541,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.5206,
"delta": -0.4794,
"percent_delta": -0.4794,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 1.5216,
"delta": -0.4784,
"percent_delta": -0.2392,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 3,
"deboosted_metrics": 3,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 0.2691,
"delta": 0.2691,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.5206,
"delta": -0.4794,
"percent_delta": -0.4794,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1859,
"after": 0.0,
"delta": -0.1859,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0129,
"after": 0.0,
"delta": -0.0129,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.2691,
"after": 0.0,
"delta": -0.2691,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8704,
"after": 1.0,
"delta": 0.1296,
"percent_delta": 0.1489,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1541,
"after": 0.0,
"delta": -0.1541,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5206,
"after": 1.0,
"delta": 0.4794,
"percent_delta": 0.9209,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.5216,
"after": 1.0,
"delta": -0.5216,
"percent_delta": -0.3428,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 2,
"deboosted_metrics": 4,
"better_metrics": 3,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.5206,
"after": 1.0,
"delta": 0.4794,
"percent_delta": 0.9209,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.5216,
"after": 1.0,
"delta": -0.5216,
"percent_delta": -0.3428,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.23,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.287,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SLG": 0.408,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2364,
"after": 0.23,
"delta": -0.0064,
"percent_delta": -0.0271,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.2966,
"after": 0.287,
"delta": -0.0096,
"percent_delta": -0.0324,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3976,
"after": 0.408,
"delta": 0.0104,
"percent_delta": 0.0262,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 2,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.2966,
"after": 0.287,
"delta": -0.0096,
"percent_delta": -0.0324,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 0,
"deboosted_metrics": 4,
"better_metrics": 1,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.2364,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.2966,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_RF": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.3976,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.23,
"after": 0.2364,
"delta": 0.0064,
"percent_delta": 0.028,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.287,
"after": 0.2966,
"delta": 0.0096,
"percent_delta": 0.0336,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.408,
"after": 0.3976,
"delta": -0.0104,
"percent_delta": -0.0256,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 2,
"deboosted_metrics": 1,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_OBP",
"before": 0.287,
"after": 0.2966,
"delta": 0.0096,
"percent_delta": 0.0336,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.408,
"after": 0.3976,
"delta": -0.0104,
"percent_delta": -0.0256,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.155,
"after": 0.0,
"delta": -0.155,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.012,
"after": 0.0,
"delta": -0.012,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.167,
"after": 4.0,
"delta": 0.833,
"percent_delta": 0.263,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.244,
"after": 0.2364,
"delta": -0.0076,
"percent_delta": -0.0311,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.298,
"after": 0.0,
"delta": -0.298,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.774,
"after": 0.0,
"delta": -0.774,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.131,
"after": 0.0,
"delta": -0.131,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.309,
"after": 0.2966,
"delta": -0.0124,
"percent_delta": -0.0401,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.464,
"after": 0.0,
"delta": -0.464,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.476,
"after": 0.0,
"delta": -0.476,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.425,
"after": 0.3976,
"delta": -0.0274,
"percent_delta": -0.0645,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.286,
"after": 1.0,
"delta": -0.286,
"percent_delta": -0.2224,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 11,
"boosted_metrics": 1,
"deboosted_metrics": 10,
"better_metrics": 2,
"worse_metrics": 9,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.167,
"after": 4.0,
"delta": 0.833,
"percent_delta": 0.263,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 0.774,
"after": 0.0,
"delta": -0.774,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.155 | - |
| predicted_3B | 0.012 | - |
| predicted_AB | 3.167 | - |
| predicted_AVG | 0.244 | - |
| predicted_BB | 0.298 | - |
| predicted_H | 0.774 | - |
| predicted_HR | 0.131 | - |
| predicted_OBP | 0.309 | - |
| predicted_R | 0.464 | - |
| predicted_RBI | 0.476 | - |
| predicted_SLG | 0.425 | - |
| predicted_SO | 1.286 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.156 | 0.001 |
| predicted_3B | 0.011 | -0.001 |
| predicted_AB | 3.342 | 0.175 |
| predicted_AVG | 0.238 | -0.006 |
| predicted_BB | 0.286 | -0.012 |
| predicted_H | 0.796 | 0.022 |
| predicted_HBP | 0.010 | - |
| predicted_HR | 0.121 | -0.010 |
| predicted_OBP | 0.299 | -0.010 |
| predicted_R | 0.532 | 0.068 |
| predicted_RBI | 0.450 | -0.026 |
| predicted_SLG | 0.402 | -0.023 |
| predicted_SO | 1.360 | 0.074 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.156 | 0.000 |
| predicted_3B | 0.011 | 0.000 |
| predicted_AB | 3.342 | 0.000 |
| predicted_AVG | 0.236 | -0.002 |
| predicted_BB | 0.286 | 0.000 |
| predicted_H | 0.790 | -0.005 |
| predicted_HBP | 0.010 | 0.000 |
| predicted_HR | 0.120 | -0.001 |
| predicted_OBP | 0.297 | -0.002 |
| predicted_R | 0.527 | -0.005 |
| predicted_RBI | 0.446 | -0.004 |
| predicted_SLG | 0.398 | -0.004 |
| predicted_SO | 1.359 | -0.002 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=3.34), rates preserved: AVG=0.219 HR/AB=0.036
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 2.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 2.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.186 | 0.186 |
| 3B | 0.013 | 0.013 |
| BB | 0.269 | 0.269 |
| H | 0.870 | -0.130 |
| HR | 0.154 | 0.154 |
| RBI | 0.521 | -0.479 |
| SO | 1.522 | -0.478 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.186 |
| 3B | 0.000 | -0.013 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -0.269 |
| H | 1.000 | 0.130 |
| HR | 0.000 | -0.154 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.479 |
| SO | 1.000 | -0.522 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.156 |
| predicted_3B | 0.000 | -0.011 |
| predicted_AB | 4.000 | 0.658 |
| predicted_AVG | 0.230 | -0.006 |
| predicted_BB | 0.000 | -0.286 |
| predicted_H | 1.000 | 0.210 |
| predicted_HR | 0.000 | -0.120 |
| predicted_OBP | 0.287 | -0.010 |
| predicted_R | 1.000 | 0.473 |
| predicted_RBI | 1.000 | 0.554 |
| predicted_SLG | 0.408 | 0.010 |
| predicted_SO | 2.000 | 0.641 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | -1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | -1.000 |
| RBI | 0.000 | -1.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 21.000 | 5.000 | 1.000 | 0.000 | 0.000 | 1.000 | 6.000 | 1.000 | 9.000 | 0.2381 | 0.2727 | 0.2857 | 0.2381 | 0.0000 | 0.0476 | 0.0476 | 0.4286 |
| last_10 | 0.20 | 10 | - | 41.000 | 7.000 | 1.000 | 0.000 | 1.000 | 3.000 | 7.000 | 2.000 | 20.000 | 0.1707 | 0.2093 | 0.2683 | 0.1707 | 0.0244 | 0.0732 | 0.0488 | 0.4878 |
| season | 0.60 | 84 | - | 266.000 | 65.000 | 13.000 | 1.000 | 11.000 | 40.000 | 39.000 | 25.000 | 108.000 | 0.2444 | 0.3106 | 0.4248 | 0.2444 | 0.0413 | 0.1504 | 0.0940 | 0.4060 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1580 |
| predicted_3B | 0.0090 |
| predicted_AB | 3.5820 |
| predicted_AVG | 0.2302 |
| predicted_BB | 0.2690 |
| predicted_H | 0.8250 |
| predicted_HBP | 0.0100 |
| predicted_HR | 0.1080 |
| predicted_OBP | 0.2849 |
| predicted_R | 0.6260 |
| predicted_RBI | 0.4140 |
| predicted_SLG | 0.3696 |
| predicted_SO | 1.4620 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1550 | 0.1580 | 0.1563 | model_form_blend |
| predicted_3B | 0.0120 | 0.0090 | 0.0107 | model_form_blend |
| predicted_AB | 3.1670 | 3.5820 | 3.3425 | model_form_blend |
| predicted_AVG | 0.2440 | 0.2302 | 0.2382 | model_form_blend |
| predicted_BB | 0.2980 | 0.2690 | 0.2857 | model_form_blend |
| predicted_H | 0.7740 | 0.8250 | 0.7956 | model_form_blend |
| predicted_HBP | - | 0.0100 | 0.0100 | form_only |
| predicted_HR | 0.1310 | 0.1080 | 0.1213 | model_form_blend |
| predicted_OBP | 0.3090 | 0.2849 | 0.2988 | model_form_blend |
| predicted_R | 0.4640 | 0.6260 | 0.5325 | model_form_blend |
| predicted_RBI | 0.4760 | 0.4140 | 0.4498 | model_form_blend |
| predicted_SLG | 0.4250 | 0.3696 | 0.4016 | model_form_blend |
| predicted_SO | 1.2860 | 1.4620 | 1.3604 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 269 |
| Season rows before report date | 269 |
| Report year | 2026 |
| Profile rows used | 84 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 1 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 5 |
| Hitting_AVG | 0.2 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 4 |
| Hitting_TB | 1 |
| Hitting_battingOrder | 4 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | RF |
| gameID | 20260930_BOS@NYY |
| game_type | full |
| mlbID | 682987 |
| playerID | 682987 |
| playerName | Spencer Jones |
| pos | CF |
| started | True |
| startingPosition | RF |
| team | NYY |
| teamID | 19 |
| game_date | 2026-09-30 |
| sl_k_percent | 36.3 |
| sl_bb_percent | 8.7 |
| sl_woba | 0.323 |
| sl_xwoba | 0.328 |
| sl_xba | 0.238 |
| sl_xslg | 0.455 |
| sl_sweet_spot_percent | 43.9 |
| sl_barrel_batted_rate | 15.9 |
| sl_hard_hit_percent | 55.1 |
| sl_exit_velocity_avg | 94.1 |
| sl_launch_angle_avg | 20.6 |
| sl_whiff_percent | 38.7 |
| sl_swing_percent | 53.2 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.191 | 1.000 | 0.000 | Hitting_2B | 0.207 | 0.000 | 0.793 | 1.000 |
| predicted_3B | 0.023 | 0.000 | 0.000 | Hitting_3B | 0.026 | 0.000 | -0.026 | 0.000 |
| predicted_AB | 4.880 | 3.000 | 4.000 | Hitting_AB | 3.790 | 5.000 | -0.790 | -2.000 |
| predicted_AVG | 0.243 | 0.333 | 0.250 | Hitting_AVG | 0.277 | 0.400 | 0.057 | -0.067 |
| predicted_BB | 0.443 | 1.000 | 1.000 | Hitting_BB | 0.482 | 0.000 | 0.518 | 1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.047 | 0.000 | -0.047 | 0.000 |
| predicted_H | 1.190 | 1.000 | 1.000 | Hitting_H | 1.048 | 2.000 | -0.048 | -1.000 |
| predicted_HR | 0.200 | 0.000 | 0.000 | Hitting_HR | 0.130 | 1.000 | -0.130 | -1.000 |
| predicted_OBP | 0.291 | 0.500 | 0.400 | Hitting_OBP | 0.354 | 0.400 | 0.146 | 0.100 |
| predicted_R | 0.565 | 1.000 | 1.000 | Hitting_R | 0.600 | 1.000 | 0.400 | 0.000 |
| predicted_RBI | 0.790 | 1.000 | 1.000 | Hitting_RBI | 0.596 | 4.000 | 0.404 | -3.000 |
| predicted_SLG | 0.432 | 0.667 | 0.250 | Hitting_SLG | 0.448 | 1.000 | 0.219 | -0.333 |
| predicted_SO | 0.641 | 1.000 | 1.000 | Hitting_SO | 0.620 | 1.000 | 0.380 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | boosted |
| Changed Metrics | 10 |
| Boosted Metrics | 6 |
| Deboosted Metrics | 4 |
| Better Metrics | 5 |
| Worse Metrics | 5 |
| Biggest Boost | predicted_2B: 0.1910 -> 1.0000 (boost 0.8090, better) |
| Biggest Deboost | predicted_AB: 4.8800 -> 3.0000 (deboost -1.8800, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 4 | 0 | 4 | 0 | 4 | - | predicted_AB: 4.8800 -> 4.4544 (deboost -0.4256, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 2 | 1 | 1 | 1 | 1 | predicted_OBP: 0.2916 -> 0.3013 (boost 0.0097, better) | predicted_SLG: 0.4159 -> 0.4050 (deboost -0.0109, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 2 | 5 | 1 | 6 | predicted_SO: 0.6627 -> 1.0000 (boost 0.3373, worse) | predicted_AB: 4.4544 -> 4.0000 (deboost -0.4544, worse) | AB rounded to 4 (raw=4.88), rates preserved: AVG=0.202 HR/AB=0.037 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=18.0, weight=0.150, BvP AVG=0.222) |
| 7 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5170 -> 1.0000 (boost 0.4830, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 3 | 3 | 4 | 2 | predicted_BB: 0.0000 -> 0.3320 (boost 0.3320, better) | predicted_RBI: 1.0000 -> 0.5153 (deboost -0.4847, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 9 | lineup_integer_allocation | 6 | 4 | 2 | 3 | 3 | predicted_BB: 0.3320 -> 1.0000 (boost 0.6680, better) | predicted_2B: 0.1805 -> 0.0000 (deboost -0.1805, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 10 | embedded_savant_player_context | 2 | 0 | 2 | 0 | 2 | - | predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | simulation_box_score_reference | 3 | 2 | 1 | 2 | 1 | predicted_2B: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_AB: 4.0000 -> 3.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 12 | current_json_final | 1 | 1 | 0 | 1 | 0 | predicted_SLG: 0.3900 -> 0.4050 (boost 0.0150, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "641355",
"player_name": "Cody Bellinger",
"position": "LF",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.191,
"predicted_3B": 0.023,
"predicted_AB": 4.88,
"predicted_AVG": 0.243,
"predicted_BB": 0.443,
"predicted_H": 1.19,
"predicted_HR": 0.2,
"predicted_OBP": 0.291,
"predicted_R": 0.565,
"predicted_RBI": 0.79,
"predicted_SLG": 0.432,
"predicted_SO": 0.641
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.161,
"predicted_3B": 0.0191,
"predicted_AB": 4.4544,
"predicted_AVG": 0.239,
"predicted_BB": 0.4008,
"predicted_H": 1.069,
"predicted_HBP": 0.002,
"predicted_HR": 0.1826,
"predicted_OBP": 0.2916,
"predicted_R": 0.5219,
"predicted_RBI": 0.7182,
"predicted_SLG": 0.4159,
"predicted_SO": 0.6636
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.191,
"after": 0.161,
"delta": -0.03,
"percent_delta": -0.1571,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.023,
"after": 0.0191,
"delta": -0.0039,
"percent_delta": -0.1696,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.88,
"after": 4.4544,
"delta": -0.4256,
"percent_delta": -0.0872,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.243,
"after": 0.239,
"delta": -0.004,
"percent_delta": -0.0165,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.443,
"after": 0.4008,
"delta": -0.0422,
"percent_delta": -0.0953,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.19,
"after": 1.069,
"delta": -0.121,
"percent_delta": -0.1017,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.2,
"after": 0.1826,
"delta": -0.0174,
"percent_delta": -0.087,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.291,
"after": 0.2916,
"delta": 0.0006,
"percent_delta": 0.0021,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.565,
"after": 0.5219,
"delta": -0.0431,
"percent_delta": -0.0763,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.79,
"after": 0.7182,
"delta": -0.0718,
"percent_delta": -0.0909,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.432,
"after": 0.4159,
"delta": -0.0161,
"percent_delta": -0.0373,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.641,
"after": 0.6636,
"delta": 0.0226,
"percent_delta": 0.0353,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 0,
"deboosted_metrics": 4,
"better_metrics": 0,
"worse_metrics": 4,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.88,
"after": 4.4544,
"delta": -0.4256,
"percent_delta": -0.0872,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 131
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.161,
"predicted_3B": 0.0191,
"predicted_AB": 4.4544,
"predicted_AVG": 0.2384,
"predicted_BB": 0.4014,
"predicted_H": 1.0618,
"predicted_HBP": 0.002,
"predicted_HR": 0.1811,
"predicted_OBP": 0.3013,
"predicted_R": 0.517,
"predicted_RBI": 0.7114,
"predicted_SLG": 0.405,
"predicted_SO": 0.6627
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.161,
"after": 0.161,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0191,
"after": 0.0191,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.4544,
"after": 4.4544,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.239,
"after": 0.2384,
"delta": -0.0006,
"percent_delta": -0.0025,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.4008,
"after": 0.4014,
"delta": 0.0006,
"percent_delta": 0.0015,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.069,
"after": 1.0618,
"delta": -0.0072,
"percent_delta": -0.0067,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.002,
"after": 0.002,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1826,
"after": 0.1811,
"delta": -0.0015,
"percent_delta": -0.0082,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.2916,
"after": 0.3013,
"delta": 0.0097,
"percent_delta": 0.0333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.5219,
"after": 0.517,
"delta": -0.0049,
"percent_delta": -0.0094,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.7182,
"after": 0.7114,
"delta": -0.0068,
"percent_delta": -0.0095,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4159,
"after": 0.405,
"delta": -0.0109,
"percent_delta": -0.0262,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.6636,
"after": 0.6627,
"delta": -0.0009,
"percent_delta": -0.0014,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_OBP",
"before": 0.2916,
"after": 0.3013,
"delta": 0.0097,
"percent_delta": 0.0333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.4159,
"after": 0.405,
"delta": -0.0109,
"percent_delta": -0.0262,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=4.88), rates preserved: AVG=0.202 HR/AB=0.037",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.161,
"after": 0.0,
"delta": -0.161,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0191,
"after": 0.0,
"delta": -0.0191,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.4544,
"after": 4.0,
"delta": -0.4544,
"percent_delta": -0.102,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.4014,
"after": 0.0,
"delta": -0.4014,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0618,
"after": 1.0,
"delta": -0.0618,
"percent_delta": -0.0582,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.002,
"after": 0.0,
"delta": -0.002,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1811,
"after": 0.0,
"delta": -0.1811,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.7114,
"after": 1.0,
"delta": 0.2886,
"percent_delta": 0.4057,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.6627,
"after": 1.0,
"delta": 0.3373,
"percent_delta": 0.509,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 2,
"deboosted_metrics": 5,
"better_metrics": 1,
"worse_metrics": 6,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.6627,
"after": 1.0,
"delta": 0.3373,
"percent_delta": 0.509,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.4544,
"after": 4.0,
"delta": -0.4544,
"percent_delta": -0.102,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "bvp_blend",
"description": "Sample-size BvP blend (BvP AB=18.0, weight=0.150, BvP AVG=0.222)",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {
"model_expectation": 0.85,
"bvp": 0.15
},
"window_games": {}
},
{
"index": 7,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.517,
"after": 1.0,
"delta": 0.483,
"percent_delta": 0.9342,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.517,
"after": 1.0,
"delta": 0.483,
"percent_delta": 0.9342,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1805,
"predicted_3B": 0.0148,
"predicted_BB": 0.332,
"predicted_H": 0.9371,
"predicted_HR": 0.1364,
"predicted_RBI": 0.5153,
"predicted_SO": 0.7
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1805,
"delta": 0.1805,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0148,
"delta": 0.0148,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.332,
"delta": 0.332,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.9371,
"delta": -0.0629,
"percent_delta": -0.0629,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1364,
"delta": 0.1364,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.5153,
"delta": -0.4847,
"percent_delta": -0.4847,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.7,
"delta": -0.3,
"percent_delta": -0.3,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 3,
"deboosted_metrics": 3,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 0.332,
"delta": 0.332,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.5153,
"delta": -0.4847,
"percent_delta": -0.4847,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1805,
"after": 0.0,
"delta": -0.1805,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0148,
"after": 0.0,
"delta": -0.0148,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.332,
"after": 1.0,
"delta": 0.668,
"percent_delta": 2.012,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.9371,
"after": 1.0,
"delta": 0.0629,
"percent_delta": 0.0671,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1364,
"after": 0.0,
"delta": -0.1364,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5153,
"after": 1.0,
"delta": 0.4847,
"percent_delta": 0.9406,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.7,
"after": 1.0,
"delta": 0.3,
"percent_delta": 0.4286,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 3,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.332,
"after": 1.0,
"delta": 0.668,
"percent_delta": 2.012,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_2B",
"before": 0.1805,
"after": 0.0,
"delta": -0.1805,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.235,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SLG": 0.39,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2384,
"after": 0.235,
"delta": -0.0034,
"percent_delta": -0.0143,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3013,
"after": 0.3,
"delta": -0.0013,
"percent_delta": -0.0043,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.405,
"after": 0.39,
"delta": -0.015,
"percent_delta": -0.037,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 1.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 2,
"deboosted_metrics": 1,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_2B",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 12,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 1.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.2384,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_LF": 0.0,
"predicted_OBP": 0.3013,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.405,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.235,
"after": 0.2384,
"delta": 0.0034,
"percent_delta": 0.0144,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.3,
"after": 0.3013,
"delta": 0.0013,
"percent_delta": 0.0044,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.39,
"after": 0.405,
"delta": 0.015,
"percent_delta": 0.0386,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.39,
"after": 0.405,
"delta": 0.015,
"percent_delta": 0.0386,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.191,
"after": 1.0,
"delta": 0.809,
"percent_delta": 4.2356,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.023,
"after": 0.0,
"delta": -0.023,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.88,
"after": 3.0,
"delta": -1.88,
"percent_delta": -0.3852,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.243,
"after": 0.2384,
"delta": -0.0046,
"percent_delta": -0.0189,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.443,
"after": 1.0,
"delta": 0.557,
"percent_delta": 1.2573,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.19,
"after": 1.0,
"delta": -0.19,
"percent_delta": -0.1597,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.2,
"after": 0.0,
"delta": -0.2,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.291,
"after": 0.3013,
"delta": 0.0103,
"percent_delta": 0.0354,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.565,
"after": 1.0,
"delta": 0.435,
"percent_delta": 0.7699,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.79,
"after": 1.0,
"delta": 0.21,
"percent_delta": 0.2658,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.432,
"after": 0.405,
"delta": -0.027,
"percent_delta": -0.0625,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.641,
"after": 1.0,
"delta": 0.359,
"percent_delta": 0.5601,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 10,
"boosted_metrics": 6,
"deboosted_metrics": 4,
"better_metrics": 5,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_2B",
"before": 0.191,
"after": 1.0,
"delta": 0.809,
"percent_delta": 4.2356,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.88,
"after": 3.0,
"delta": -1.88,
"percent_delta": -0.3852,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "boosted"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.191 | - |
| predicted_3B | 0.023 | - |
| predicted_AB | 4.880 | - |
| predicted_AVG | 0.243 | - |
| predicted_BB | 0.443 | - |
| predicted_H | 1.190 | - |
| predicted_HR | 0.200 | - |
| predicted_OBP | 0.291 | - |
| predicted_R | 0.565 | - |
| predicted_RBI | 0.790 | - |
| predicted_SLG | 0.432 | - |
| predicted_SO | 0.641 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.161 | -0.030 |
| predicted_3B | 0.019 | -0.004 |
| predicted_AB | 4.454 | -0.426 |
| predicted_AVG | 0.239 | -0.004 |
| predicted_BB | 0.401 | -0.042 |
| predicted_H | 1.069 | -0.121 |
| predicted_HBP | 0.002 | - |
| predicted_HR | 0.183 | -0.017 |
| predicted_OBP | 0.292 | 0.001 |
| predicted_R | 0.522 | -0.043 |
| predicted_RBI | 0.718 | -0.072 |
| predicted_SLG | 0.416 | -0.016 |
| predicted_SO | 0.664 | 0.023 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.161 | 0.000 |
| predicted_3B | 0.019 | 0.000 |
| predicted_AB | 4.454 | 0.000 |
| predicted_AVG | 0.238 | -0.001 |
| predicted_BB | 0.401 | 0.001 |
| predicted_H | 1.062 | -0.007 |
| predicted_HBP | 0.002 | 0.000 |
| predicted_HR | 0.181 | -0.002 |
| predicted_OBP | 0.301 | 0.010 |
| predicted_R | 0.517 | -0.005 |
| predicted_RBI | 0.711 | -0.007 |
| predicted_SLG | 0.405 | -0.011 |
| predicted_SO | 0.663 | -0.001 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=4.88), rates preserved: AVG=0.202 HR/AB=0.037
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=18.0, weight=0.150, BvP AVG=0.222)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.180 | 0.180 |
| 3B | 0.015 | 0.015 |
| BB | 0.332 | 0.332 |
| H | 0.937 | -0.063 |
| HR | 0.136 | 0.136 |
| RBI | 0.515 | -0.485 |
| SO | 0.700 | -0.300 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.180 |
| 3B | 0.000 | -0.015 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 0.668 |
| H | 1.000 | 0.063 |
| HR | 0.000 | -0.136 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.485 |
| SO | 1.000 | 0.300 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.161 |
| predicted_3B | 0.000 | -0.019 |
| predicted_AB | 4.000 | -0.454 |
| predicted_AVG | 0.235 | -0.003 |
| predicted_BB | 0.000 | -0.401 |
| predicted_H | 1.000 | -0.062 |
| predicted_HR | 0.000 | -0.181 |
| predicted_OBP | 0.300 | -0.001 |
| predicted_R | 1.000 | 0.483 |
| predicted_RBI | 1.000 | 0.289 |
| predicted_SLG | 0.390 | -0.015 |
| predicted_SO | 1.000 | 0.337 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 1.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | -1.000 |
| BB | 1.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 20.000 | 3.000 | 0.000 | 0.000 | 1.000 | 4.000 | 1.000 | 1.000 | 4.000 | 0.1500 | 0.1905 | 0.3000 | 0.1500 | 0.0500 | 0.2000 | 0.0500 | 0.2000 |
| last_10 | 0.20 | 10 | - | 42.000 | 9.000 | 0.000 | 0.000 | 2.000 | 6.000 | 4.000 | 2.000 | 7.000 | 0.2143 | 0.2500 | 0.3571 | 0.2143 | 0.0476 | 0.1429 | 0.0476 | 0.1667 |
| season | 0.60 | 131 | - | 495.000 | 132.000 | 25.000 | 3.000 | 18.000 | 77.000 | 74.000 | 58.000 | 84.000 | 0.2667 | 0.3393 | 0.4384 | 0.2667 | 0.0364 | 0.1556 | 0.1172 | 0.1697 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1220 |
| predicted_3B | 0.0140 |
| predicted_AB | 3.9020 |
| predicted_AVG | 0.2337 |
| predicted_BB | 0.3460 |
| predicted_H | 0.9120 |
| predicted_HBP | 0.0020 |
| predicted_HR | 0.1600 |
| predicted_OBP | 0.2924 |
| predicted_R | 0.4660 |
| predicted_RBI | 0.6250 |
| predicted_SLG | 0.3951 |
| predicted_SO | 0.6930 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1910 | 0.1220 | 0.1610 | model_form_blend |
| predicted_3B | 0.0230 | 0.0140 | 0.0191 | model_form_blend |
| predicted_AB | 4.8800 | 3.9020 | 4.4544 | model_form_blend |
| predicted_AVG | 0.2430 | 0.2337 | 0.2390 | model_form_blend |
| predicted_BB | 0.4430 | 0.3460 | 0.4008 | model_form_blend |
| predicted_H | 1.1900 | 0.9120 | 1.0690 | model_form_blend |
| predicted_HBP | - | 0.0020 | 0.0020 | form_only |
| predicted_HR | 0.2000 | 0.1600 | 0.1826 | model_form_blend |
| predicted_OBP | 0.2910 | 0.2924 | 0.2916 | model_form_blend |
| predicted_R | 0.5650 | 0.4660 | 0.5219 | model_form_blend |
| predicted_RBI | 0.7900 | 0.6250 | 0.7182 | model_form_blend |
| predicted_SLG | 0.4320 | 0.3951 | 0.4159 | model_form_blend |
| predicted_SO | 0.6410 | 0.6930 | 0.6636 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 537 |
| Season rows before report date | 537 |
| Report year | 2026 |
| Profile rows used | 131 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 3 |
| H | 1 |
| 2B | 1 |
| 3B | 0 |
| HR | 0 |
| R | 1 |
| RBI | 1 |
| BB | 1 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 5 |
| Hitting_AVG | 0.4 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 2 |
| Hitting_HBP | 0 |
| Hitting_HR | 1 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 4 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 5 |
| Hitting_battingOrder | 2 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | LF |
| gameID | 20260930_BOS@NYY |
| game_type | full |
| mlbID | 641355 |
| playerID | 641355 |
| playerName | Cody Bellinger |
| pos | LF |
| started | True |
| startingPosition | LF |
| team | NYY |
| teamID | 19 |
| game_date | 2026-09-30 |
| sl_k_percent | 15.8 |
| sl_bb_percent | 10.5 |
| sl_woba | 0.336 |
| sl_xwoba | 0.335 |
| sl_xba | 0.271 |
| sl_xslg | 0.411 |
| sl_sweet_spot_percent | 38.2 |
| sl_barrel_batted_rate | 6.6 |
| sl_hard_hit_percent | 37.8 |
| sl_exit_velocity_avg | 89.2 |
| sl_launch_angle_avg | 17.6 |
| sl_whiff_percent | 20.0 |
| sl_swing_percent | 47.1 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.176 | 0.000 | 1.000 | Hitting_2B | 0.174 | 0.000 | -0.174 | 0.000 |
| predicted_3B | 0.034 | 0.000 | 0.000 | Hitting_3B | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_AB | 4.380 | 4.000 | 4.000 | Hitting_AB | 3.919 | 5.000 | 0.081 | -1.000 |
| predicted_AVG | 0.260 | 0.000 | 0.250 | Hitting_AVG | 0.300 | 0.600 | -0.300 | -0.600 |
| predicted_BB | 0.169 | 0.000 | 0.000 | Hitting_BB | 0.235 | 0.000 | -0.235 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.027 | 0.000 | -0.027 | 0.000 |
| predicted_H | 1.140 | 0.000 | 1.000 | Hitting_H | 1.174 | 3.000 | -1.174 | -3.000 |
| predicted_HR | 0.290 | 0.000 | 0.000 | Hitting_HR | 0.215 | 1.000 | -0.215 | -1.000 |
| predicted_OBP | 0.300 | 0.000 | 0.250 | Hitting_OBP | 0.337 | 0.600 | -0.337 | -0.600 |
| predicted_R | 0.473 | 0.000 | 0.000 | Hitting_R | 0.550 | 1.000 | -0.550 | -1.000 |
| predicted_RBI | 0.680 | 0.000 | 1.000 | Hitting_RBI | 0.477 | 1.000 | -0.477 | -1.000 |
| predicted_SLG | 0.488 | 0.000 | 0.500 | Hitting_SLG | 0.509 | 1.200 | -0.509 | -1.200 |
| predicted_SO | 0.662 | 0.000 | 1.000 | Hitting_SO | 0.805 | 1.000 | -0.805 | -1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 9 |
| Boosted Metrics | 0 |
| Deboosted Metrics | 9 |
| Better Metrics | 1 |
| Worse Metrics | 8 |
| Biggest Boost | - |
| Biggest Deboost | predicted_H: 1.1400 -> 0.0000 (deboost -1.1400, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 5 | 1 | 4 | 0 | 5 | predicted_SO: 0.6620 -> 0.7129 (boost 0.0509, worse) | predicted_AB: 4.3800 -> 4.0174 (deboost -0.3626, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 2 | 1 | 1 | 1 | 1 | predicted_SLG: 0.4767 -> 0.4910 (boost 0.0143, better) | predicted_OBP: 0.3030 -> 0.2940 (deboost -0.0090, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 5 | 2 | 3 | 1 | 4 | predicted_RBI: 0.5956 -> 1.0000 (boost 0.4044, better) | predicted_HR: 0.2419 -> 0.0000 (deboost -0.2419, worse) | AB rounded to 4 (raw=4.38), rates preserved: AVG=0.221 HR/AB=0.055 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=6.0, weight=0.067, BvP AVG=0.000) |
| 7 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.4823 -> 0.0000 (deboost -0.4823, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 3 | 3 | 4 | 2 | predicted_HR: 0.0000 -> 0.2147 (boost 0.2147, better) | predicted_RBI: 1.0000 -> 0.6245 (deboost -0.3755, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 9 | lineup_integer_allocation | 6 | 4 | 2 | 3 | 3 | predicted_2B: 0.1904 -> 1.0000 (boost 0.8096, better) | predicted_HR: 0.2147 -> 0.0000 (deboost -0.2147, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 10 | embedded_savant_player_context | 4 | 0 | 4 | 0 | 4 | - | predicted_2B: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | simulation_box_score_reference | 3 | 0 | 3 | 1 | 2 | - | predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 12 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_SLG: 0.4680 -> 0.4910 (boost 0.0230, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "671277",
"player_name": "Luis García Jr.",
"position": "1B",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.176,
"predicted_3B": 0.034,
"predicted_AB": 4.38,
"predicted_AVG": 0.26,
"predicted_BB": 0.169,
"predicted_H": 1.14,
"predicted_HR": 0.29,
"predicted_OBP": 0.3,
"predicted_R": 0.473,
"predicted_RBI": 0.68,
"predicted_SLG": 0.488,
"predicted_SO": 0.662
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1469,
"predicted_3B": 0.0279,
"predicted_AB": 4.0174,
"predicted_AVG": 0.2617,
"predicted_BB": 0.1933,
"predicted_H": 1.0513,
"predicted_HBP": 0.002,
"predicted_HR": 0.2439,
"predicted_OBP": 0.303,
"predicted_R": 0.4869,
"predicted_RBI": 0.6013,
"predicted_SLG": 0.4767,
"predicted_SO": 0.7129
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.176,
"after": 0.1469,
"delta": -0.0291,
"percent_delta": -0.1653,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.034,
"after": 0.0279,
"delta": -0.0061,
"percent_delta": -0.1794,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.38,
"after": 4.0174,
"delta": -0.3626,
"percent_delta": -0.0828,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.26,
"after": 0.2617,
"delta": 0.0017,
"percent_delta": 0.0065,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.169,
"after": 0.1933,
"delta": 0.0243,
"percent_delta": 0.1438,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.14,
"after": 1.0513,
"delta": -0.0887,
"percent_delta": -0.0778,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.29,
"after": 0.2439,
"delta": -0.0461,
"percent_delta": -0.159,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3,
"after": 0.303,
"delta": 0.003,
"percent_delta": 0.01,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.473,
"after": 0.4869,
"delta": 0.0139,
"percent_delta": 0.0294,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.68,
"after": 0.6013,
"delta": -0.0787,
"percent_delta": -0.1157,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.488,
"after": 0.4767,
"delta": -0.0113,
"percent_delta": -0.0232,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.662,
"after": 0.7129,
"delta": 0.0509,
"percent_delta": 0.0769,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 1,
"deboosted_metrics": 4,
"better_metrics": 0,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.662,
"after": 0.7129,
"delta": 0.0509,
"percent_delta": 0.0769,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.38,
"after": 4.0174,
"delta": -0.3626,
"percent_delta": -0.0828,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 148
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1469,
"predicted_3B": 0.0279,
"predicted_AB": 4.0174,
"predicted_AVG": 0.2599,
"predicted_BB": 0.1936,
"predicted_H": 1.0443,
"predicted_HBP": 0.002,
"predicted_HR": 0.2419,
"predicted_OBP": 0.294,
"predicted_R": 0.4823,
"predicted_RBI": 0.5956,
"predicted_SLG": 0.491,
"predicted_SO": 0.7119
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1469,
"after": 0.1469,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0279,
"after": 0.0279,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0174,
"after": 4.0174,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2617,
"after": 0.2599,
"delta": -0.0018,
"percent_delta": -0.0069,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.1933,
"after": 0.1936,
"delta": 0.0003,
"percent_delta": 0.0016,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0513,
"after": 1.0443,
"delta": -0.007,
"percent_delta": -0.0067,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.002,
"after": 0.002,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.2439,
"after": 0.2419,
"delta": -0.002,
"percent_delta": -0.0082,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.303,
"after": 0.294,
"delta": -0.009,
"percent_delta": -0.0297,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.4869,
"after": 0.4823,
"delta": -0.0046,
"percent_delta": -0.0094,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.6013,
"after": 0.5956,
"delta": -0.0057,
"percent_delta": -0.0095,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4767,
"after": 0.491,
"delta": 0.0143,
"percent_delta": 0.03,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.7129,
"after": 0.7119,
"delta": -0.001,
"percent_delta": -0.0014,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.4767,
"after": 0.491,
"delta": 0.0143,
"percent_delta": 0.03,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.303,
"after": 0.294,
"delta": -0.009,
"percent_delta": -0.0297,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=4.38), rates preserved: AVG=0.221 HR/AB=0.055",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1469,
"after": 0.0,
"delta": -0.1469,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0279,
"after": 0.0,
"delta": -0.0279,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0174,
"after": 4.0,
"delta": -0.0174,
"percent_delta": -0.0043,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.1936,
"after": 0.0,
"delta": -0.1936,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0443,
"after": 1.0,
"delta": -0.0443,
"percent_delta": -0.0424,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.002,
"after": 0.0,
"delta": -0.002,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.2419,
"after": 0.0,
"delta": -0.2419,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.5956,
"after": 1.0,
"delta": 0.4044,
"percent_delta": 0.679,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.7119,
"after": 1.0,
"delta": 0.2881,
"percent_delta": 0.4047,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 2,
"deboosted_metrics": 3,
"better_metrics": 1,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.5956,
"after": 1.0,
"delta": 0.4044,
"percent_delta": 0.679,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_HR",
"before": 0.2419,
"after": 0.0,
"delta": -0.2419,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "bvp_blend",
"description": "Sample-size BvP blend (BvP AB=6.0, weight=0.067, BvP AVG=0.000)",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {
"model_expectation": 0.9333,
"bvp": 0.0667
},
"window_games": {}
},
{
"index": 7,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.4823,
"after": 0.0,
"delta": -0.4823,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_R",
"before": 0.4823,
"after": 0.0,
"delta": -0.4823,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1904,
"predicted_3B": 0.0202,
"predicted_BB": 0.1719,
"predicted_H": 0.9486,
"predicted_HR": 0.2147,
"predicted_RBI": 0.6245,
"predicted_SO": 0.8233
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1904,
"delta": 0.1904,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0202,
"delta": 0.0202,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.1719,
"delta": 0.1719,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.9486,
"delta": -0.0514,
"percent_delta": -0.0514,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.2147,
"delta": 0.2147,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.6245,
"delta": -0.3755,
"percent_delta": -0.3755,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.8233,
"delta": -0.1767,
"percent_delta": -0.1767,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 3,
"deboosted_metrics": 3,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_HR",
"before": 0.0,
"after": 0.2147,
"delta": 0.2147,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.6245,
"delta": -0.3755,
"percent_delta": -0.3755,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 1.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1904,
"after": 1.0,
"delta": 0.8096,
"percent_delta": 4.2521,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0202,
"after": 0.0,
"delta": -0.0202,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.1719,
"after": 0.0,
"delta": -0.1719,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.9486,
"after": 1.0,
"delta": 0.0514,
"percent_delta": 0.0542,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.2147,
"after": 0.0,
"delta": -0.2147,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.6245,
"after": 1.0,
"delta": 0.3755,
"percent_delta": 0.6013,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.8233,
"after": 1.0,
"delta": 0.1767,
"percent_delta": 0.2146,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 3,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_2B",
"before": 0.1904,
"after": 1.0,
"delta": 0.8096,
"percent_delta": 4.2521,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_HR",
"before": 0.2147,
"after": 0.0,
"delta": -0.2147,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.244,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.281,
"predicted_R": 0.0,
"predicted_RBI": 1.0,
"predicted_SLG": 0.468,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2599,
"after": 0.244,
"delta": -0.0159,
"percent_delta": -0.0612,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.294,
"after": 0.281,
"delta": -0.013,
"percent_delta": -0.0442,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.491,
"after": 0.468,
"delta": -0.023,
"percent_delta": -0.0468,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 0,
"deboosted_metrics": 4,
"better_metrics": 0,
"worse_metrics": 4,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_2B",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 1,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 12,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.2599,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_FB": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.294,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.491,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.244,
"after": 0.2599,
"delta": 0.0159,
"percent_delta": 0.0653,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.281,
"after": 0.294,
"delta": 0.013,
"percent_delta": 0.0461,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.468,
"after": 0.491,
"delta": 0.023,
"percent_delta": 0.0491,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.468,
"after": 0.491,
"delta": 0.023,
"percent_delta": 0.0491,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.176,
"after": 0.0,
"delta": -0.176,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.034,
"after": 0.0,
"delta": -0.034,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.38,
"after": 4.0,
"delta": -0.38,
"percent_delta": -0.0868,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.26,
"after": 0.2599,
"delta": -0.0001,
"percent_delta": -0.0004,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.169,
"after": 0.0,
"delta": -0.169,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.14,
"after": 0.0,
"delta": -1.14,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.29,
"after": 0.0,
"delta": -0.29,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.3,
"after": 0.294,
"delta": -0.006,
"percent_delta": -0.02,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.473,
"after": 0.0,
"delta": -0.473,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.68,
"after": 0.0,
"delta": -0.68,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.488,
"after": 0.491,
"delta": 0.003,
"percent_delta": 0.0061,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.662,
"after": 0.0,
"delta": -0.662,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 9,
"boosted_metrics": 0,
"deboosted_metrics": 9,
"better_metrics": 1,
"worse_metrics": 8,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.14,
"after": 0.0,
"delta": -1.14,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.176 | - |
| predicted_3B | 0.034 | - |
| predicted_AB | 4.380 | - |
| predicted_AVG | 0.260 | - |
| predicted_BB | 0.169 | - |
| predicted_H | 1.140 | - |
| predicted_HR | 0.290 | - |
| predicted_OBP | 0.300 | - |
| predicted_R | 0.473 | - |
| predicted_RBI | 0.680 | - |
| predicted_SLG | 0.488 | - |
| predicted_SO | 0.662 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.147 | -0.029 |
| predicted_3B | 0.028 | -0.006 |
| predicted_AB | 4.017 | -0.363 |
| predicted_AVG | 0.262 | 0.002 |
| predicted_BB | 0.193 | 0.024 |
| predicted_H | 1.051 | -0.089 |
| predicted_HBP | 0.002 | - |
| predicted_HR | 0.244 | -0.046 |
| predicted_OBP | 0.303 | 0.003 |
| predicted_R | 0.487 | 0.014 |
| predicted_RBI | 0.601 | -0.079 |
| predicted_SLG | 0.477 | -0.011 |
| predicted_SO | 0.713 | 0.051 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.147 | 0.000 |
| predicted_3B | 0.028 | 0.000 |
| predicted_AB | 4.017 | 0.000 |
| predicted_AVG | 0.260 | -0.002 |
| predicted_BB | 0.194 | 0.000 |
| predicted_H | 1.044 | -0.007 |
| predicted_HBP | 0.002 | 0.000 |
| predicted_HR | 0.242 | -0.002 |
| predicted_OBP | 0.294 | -0.009 |
| predicted_R | 0.482 | -0.005 |
| predicted_RBI | 0.596 | -0.006 |
| predicted_SLG | 0.491 | 0.014 |
| predicted_SO | 0.712 | -0.001 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=4.38), rates preserved: AVG=0.221 HR/AB=0.055
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=6.0, weight=0.067, BvP AVG=0.000)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.190 | 0.190 |
| 3B | 0.020 | 0.020 |
| BB | 0.172 | 0.172 |
| H | 0.949 | -0.051 |
| HR | 0.215 | 0.215 |
| RBI | 0.625 | -0.375 |
| SO | 0.823 | -0.177 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 0.810 |
| 3B | 0.000 | -0.020 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -0.172 |
| H | 1.000 | 0.051 |
| HR | 0.000 | -0.215 |
| R | 0.000 | 0.000 |
| RBI | 1.000 | 0.375 |
| SO | 1.000 | 0.177 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.147 |
| predicted_3B | 0.000 | -0.028 |
| predicted_AB | 4.000 | -0.017 |
| predicted_AVG | 0.244 | -0.016 |
| predicted_BB | 0.000 | -0.194 |
| predicted_H | 1.000 | -0.044 |
| predicted_HR | 0.000 | -0.242 |
| predicted_OBP | 0.281 | -0.013 |
| predicted_R | 0.000 | -0.482 |
| predicted_RBI | 1.000 | 0.404 |
| predicted_SLG | 0.468 | -0.023 |
| predicted_SO | 1.000 | 0.288 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -1.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | -1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -1.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 17.000 | 5.000 | 0.000 | 0.000 | 1.000 | 2.000 | 3.000 | 2.000 | 4.000 | 0.2941 | 0.3684 | 0.4706 | 0.2941 | 0.0588 | 0.1177 | 0.1177 | 0.2353 |
| last_10 | 0.20 | 10 | - | 37.000 | 7.000 | 0.000 | 0.000 | 1.000 | 2.000 | 5.000 | 2.000 | 11.000 | 0.1892 | 0.2308 | 0.2703 | 0.1892 | 0.0270 | 0.0541 | 0.0541 | 0.2973 |
| season | 0.60 | 148 | - | 521.000 | 146.000 | 26.000 | 5.000 | 31.000 | 93.000 | 70.000 | 25.000 | 98.000 | 0.2802 | 0.3120 | 0.5278 | 0.2802 | 0.0595 | 0.1785 | 0.0480 | 0.1881 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1090 |
| predicted_3B | 0.0200 |
| predicted_AB | 3.5460 |
| predicted_AVG | 0.2639 |
| predicted_BB | 0.2250 |
| predicted_H | 0.9360 |
| predicted_HBP | 0.0020 |
| predicted_HR | 0.1840 |
| predicted_OBP | 0.3070 |
| predicted_R | 0.5050 |
| predicted_RBI | 0.4990 |
| predicted_SLG | 0.4619 |
| predicted_SO | 0.7790 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1760 | 0.1090 | 0.1469 | model_form_blend |
| predicted_3B | 0.0340 | 0.0200 | 0.0279 | model_form_blend |
| predicted_AB | 4.3800 | 3.5460 | 4.0174 | model_form_blend |
| predicted_AVG | 0.2600 | 0.2639 | 0.2617 | model_form_blend |
| predicted_BB | 0.1690 | 0.2250 | 0.1933 | model_form_blend |
| predicted_H | 1.1400 | 0.9360 | 1.0513 | model_form_blend |
| predicted_HBP | - | 0.0020 | 0.0020 | form_only |
| predicted_HR | 0.2900 | 0.1840 | 0.2439 | model_form_blend |
| predicted_OBP | 0.3000 | 0.3070 | 0.3030 | model_form_blend |
| predicted_R | 0.4730 | 0.5050 | 0.4869 | model_form_blend |
| predicted_RBI | 0.6800 | 0.4990 | 0.6013 | model_form_blend |
| predicted_SLG | 0.4880 | 0.4619 | 0.4767 | model_form_blend |
| predicted_SO | 0.6620 | 0.7790 | 0.7129 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 149 |
| Season rows before report date | 149 |
| Report year | 2026 |
| Profile rows used | 148 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 5 |
| Hitting_AVG | 0.6 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 3 |
| Hitting_HBP | 0 |
| Hitting_HR | 1 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 1 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 6 |
| Hitting_battingOrder | 3 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | 1B |
| gameID | 20260930_BOS@NYY |
| game_type | full |
| mlbID | 671277 |
| playerID | 671277 |
| playerName | Luis García Jr. |
| pos | 1B |
| started | True |
| startingPosition | 1B |
| team | NYY |
| teamID | 19 |
| game_date | 2026-09-30 |
| sl_k_percent | 17.9 |
| sl_bb_percent | 4.6 |
| sl_woba | 0.355 |
| sl_xwoba | 0.341 |
| sl_xba | 0.276 |
| sl_xslg | 0.486 |
| sl_sweet_spot_percent | 33.0 |
| sl_barrel_batted_rate | 12.2 |
| sl_hard_hit_percent | 46.1 |
| sl_exit_velocity_avg | 91.4 |
| sl_launch_angle_avg | 11.5 |
| sl_whiff_percent | 20.8 |
| sl_swing_percent | 52.6 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.158 | 0.000 | 0.000 | Hitting_2B | 0.159 | 0.000 | -0.159 | 0.000 |
| predicted_3B | 0.026 | 0.000 | 0.000 | Hitting_3B | 0.024 | 0.000 | -0.024 | 0.000 |
| predicted_AB | 4.610 | 4.000 | 4.000 | Hitting_AB | 3.833 | 4.000 | 0.167 | 0.000 |
| predicted_AVG | 0.278 | 0.000 | 0.250 | Hitting_AVG | 0.271 | 0.250 | -0.271 | -0.250 |
| predicted_BB | 0.566 | 0.000 | 1.000 | Hitting_BB | 0.603 | 1.000 | -0.603 | -1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.002 | 0.000 | -0.002 | 0.000 |
| predicted_H | 1.280 | 0.000 | 1.000 | Hitting_H | 1.038 | 1.000 | -1.038 | -1.000 |
| predicted_HR | 0.280 | 0.000 | 1.000 | Hitting_HR | 0.267 | 0.000 | -0.267 | 0.000 |
| predicted_OBP | 0.392 | 0.000 | 0.400 | Hitting_OBP | 0.375 | 0.400 | -0.375 | -0.400 |
| predicted_R | 0.704 | 0.000 | 1.000 | Hitting_R | 0.719 | 1.000 | -0.719 | -1.000 |
| predicted_RBI | 1.130 | 0.000 | 1.000 | Hitting_RBI | 0.680 | 0.000 | -0.680 | 0.000 |
| predicted_SLG | 0.566 | 0.000 | 1.000 | Hitting_SLG | 0.533 | 0.250 | -0.533 | -0.250 |
| predicted_SO | 1.039 | 1.000 | 1.000 | Hitting_SO | 1.057 | 1.000 | -0.057 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 10 |
| Boosted Metrics | 1 |
| Deboosted Metrics | 9 |
| Better Metrics | 1 |
| Worse Metrics | 9 |
| Biggest Boost | predicted_AVG: 0.2780 -> 0.2863 (boost 0.0083, better) |
| Biggest Deboost | predicted_H: 1.2800 -> 0.0000 (deboost -1.2800, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 5 | 2 | 3 | 2 | 3 | predicted_SLG: 0.5660 -> 0.5918 (boost 0.0258, better) | predicted_AB: 4.6100 -> 4.2501 (deboost -0.3599, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 2 | 0 | 2 | 0 | 2 | - | predicted_SLG: 0.5918 -> 0.5484 (deboost -0.0434, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 6 | 0 | 6 | 1 | 5 | - | predicted_BB: 0.5668 -> 0.0000 (deboost -0.5668, worse) | AB rounded to 4 (raw=4.61), rates preserved: AVG=0.245 HR/AB=0.064 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=16.0, weight=0.139, BvP AVG=0.062) |
| 7 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.7251 -> 1.0000 (boost 0.2749, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 4 | 2 | 3 | 3 | predicted_BB: 0.0000 -> 0.3877 (boost 0.3877, better) | predicted_RBI: 1.0000 -> 0.5751 (deboost -0.4249, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 9 | lineup_integer_allocation | 6 | 4 | 2 | 5 | 1 | predicted_HR: 0.2480 -> 1.0000 (boost 0.7520, better) | predicted_2B: 0.1613 -> 0.0000 (deboost -0.1613, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 10 | embedded_savant_player_context | 5 | 0 | 5 | 0 | 5 | - | predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | simulation_box_score_reference | 3 | 0 | 3 | 0 | 3 | - | predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 12 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_SLG: 0.4690 -> 0.5484 (boost 0.0794, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "700250",
"player_name": "Ben Rice",
"position": "DH",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.158,
"predicted_3B": 0.026,
"predicted_AB": 4.61,
"predicted_AVG": 0.278,
"predicted_BB": 0.566,
"predicted_H": 1.28,
"predicted_HR": 0.28,
"predicted_OBP": 0.392,
"predicted_R": 0.704,
"predicted_RBI": 1.13,
"predicted_SLG": 0.566,
"predicted_SO": 1.039
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1899,
"predicted_3B": 0.0216,
"predicted_AB": 4.2501,
"predicted_AVG": 0.2897,
"predicted_BB": 0.566,
"predicted_H": 1.2249,
"predicted_HBP": 0.024,
"predicted_HR": 0.2962,
"predicted_OBP": 0.3937,
"predicted_R": 0.732,
"predicted_RBI": 0.9826,
"predicted_SLG": 0.5918,
"predicted_SO": 1.0784
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.158,
"after": 0.1899,
"delta": 0.0319,
"percent_delta": 0.2019,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.026,
"after": 0.0216,
"delta": -0.0044,
"percent_delta": -0.1692,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.61,
"after": 4.2501,
"delta": -0.3599,
"percent_delta": -0.0781,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.278,
"after": 0.2897,
"delta": 0.0117,
"percent_delta": 0.0421,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.566,
"after": 0.566,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.28,
"after": 1.2249,
"delta": -0.0551,
"percent_delta": -0.043,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.28,
"after": 0.2962,
"delta": 0.0162,
"percent_delta": 0.0579,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.392,
"after": 0.3937,
"delta": 0.0017,
"percent_delta": 0.0043,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.704,
"after": 0.732,
"delta": 0.028,
"percent_delta": 0.0398,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.13,
"after": 0.9826,
"delta": -0.1474,
"percent_delta": -0.1304,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.566,
"after": 0.5918,
"delta": 0.0258,
"percent_delta": 0.0456,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.039,
"after": 1.0784,
"delta": 0.0394,
"percent_delta": 0.0379,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 2,
"deboosted_metrics": 3,
"better_metrics": 2,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.566,
"after": 0.5918,
"delta": 0.0258,
"percent_delta": 0.0456,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.61,
"after": 4.2501,
"delta": -0.3599,
"percent_delta": -0.0781,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 152
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1899,
"predicted_3B": 0.0216,
"predicted_AB": 4.2501,
"predicted_AVG": 0.2863,
"predicted_BB": 0.5668,
"predicted_H": 1.2167,
"predicted_HBP": 0.024,
"predicted_HR": 0.2937,
"predicted_OBP": 0.3703,
"predicted_R": 0.7251,
"predicted_RBI": 0.9734,
"predicted_SLG": 0.5484,
"predicted_SO": 1.0769
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1899,
"after": 0.1899,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0216,
"after": 0.0216,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.2501,
"after": 4.2501,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2897,
"after": 0.2863,
"delta": -0.0034,
"percent_delta": -0.0117,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.566,
"after": 0.5668,
"delta": 0.0008,
"percent_delta": 0.0014,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.2249,
"after": 1.2167,
"delta": -0.0082,
"percent_delta": -0.0067,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.024,
"after": 0.024,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.2962,
"after": 0.2937,
"delta": -0.0025,
"percent_delta": -0.0084,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3937,
"after": 0.3703,
"delta": -0.0234,
"percent_delta": -0.0594,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.732,
"after": 0.7251,
"delta": -0.0069,
"percent_delta": -0.0094,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.9826,
"after": 0.9734,
"delta": -0.0092,
"percent_delta": -0.0094,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.5918,
"after": 0.5484,
"delta": -0.0434,
"percent_delta": -0.0733,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0784,
"after": 1.0769,
"delta": -0.0015,
"percent_delta": -0.0014,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.5918,
"after": 0.5484,
"delta": -0.0434,
"percent_delta": -0.0733,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=4.61), rates preserved: AVG=0.245 HR/AB=0.064",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1899,
"after": 0.0,
"delta": -0.1899,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0216,
"after": 0.0,
"delta": -0.0216,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.2501,
"after": 4.0,
"delta": -0.2501,
"percent_delta": -0.0588,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.5668,
"after": 0.0,
"delta": -0.5668,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.2167,
"after": 1.0,
"delta": -0.2167,
"percent_delta": -0.1781,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.024,
"after": 0.0,
"delta": -0.024,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.2937,
"after": 0.0,
"delta": -0.2937,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.9734,
"after": 1.0,
"delta": 0.0266,
"percent_delta": 0.0273,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0769,
"after": 1.0,
"delta": -0.0769,
"percent_delta": -0.0714,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 0,
"deboosted_metrics": 6,
"better_metrics": 1,
"worse_metrics": 5,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.5668,
"after": 0.0,
"delta": -0.5668,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "bvp_blend",
"description": "Sample-size BvP blend (BvP AB=16.0, weight=0.139, BvP AVG=0.062)",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {
"model_expectation": 0.8609,
"bvp": 0.1391
},
"window_games": {}
},
{
"index": 7,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.7251,
"after": 1.0,
"delta": 0.2749,
"percent_delta": 0.3791,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.7251,
"after": 1.0,
"delta": 0.2749,
"percent_delta": 0.3791,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1613,
"predicted_3B": 0.0154,
"predicted_BB": 0.3877,
"predicted_H": 0.8493,
"predicted_HR": 0.248,
"predicted_RBI": 0.5751,
"predicted_SO": 1.117
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1613,
"delta": 0.1613,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0154,
"delta": 0.0154,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.3877,
"delta": 0.3877,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.8493,
"delta": -0.1507,
"percent_delta": -0.1507,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.248,
"delta": 0.248,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.5751,
"delta": -0.4249,
"percent_delta": -0.4249,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.117,
"delta": 0.117,
"percent_delta": 0.117,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 3,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 0.3877,
"delta": 0.3877,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.5751,
"delta": -0.4249,
"percent_delta": -0.4249,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1613,
"after": 0.0,
"delta": -0.1613,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0154,
"after": 0.0,
"delta": -0.0154,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.3877,
"after": 1.0,
"delta": 0.6123,
"percent_delta": 1.5793,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8493,
"after": 1.0,
"delta": 0.1507,
"percent_delta": 0.1774,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.248,
"after": 1.0,
"delta": 0.752,
"percent_delta": 3.0323,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5751,
"after": 1.0,
"delta": 0.4249,
"percent_delta": 0.7388,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.117,
"after": 1.0,
"delta": -0.117,
"percent_delta": -0.1047,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 5,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_HR",
"before": 0.248,
"after": 1.0,
"delta": 0.752,
"percent_delta": 3.0323,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_2B",
"before": 0.1613,
"after": 0.0,
"delta": -0.1613,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.223,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SLG": 0.469,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2863,
"after": 0.223,
"delta": -0.0633,
"percent_delta": -0.2211,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.3703,
"after": 0.3,
"delta": -0.0703,
"percent_delta": -0.1898,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.5484,
"after": 0.469,
"delta": -0.0794,
"percent_delta": -0.1448,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 0,
"deboosted_metrics": 5,
"better_metrics": 0,
"worse_metrics": 5,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 12,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.2863,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_DH": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3703,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.5484,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.223,
"after": 0.2863,
"delta": 0.0633,
"percent_delta": 0.2837,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.3,
"after": 0.3703,
"delta": 0.0703,
"percent_delta": 0.2342,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.469,
"after": 0.5484,
"delta": 0.0794,
"percent_delta": 0.1694,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.469,
"after": 0.5484,
"delta": 0.0794,
"percent_delta": 0.1694,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.158,
"after": 0.0,
"delta": -0.158,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.026,
"after": 0.0,
"delta": -0.026,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.61,
"after": 4.0,
"delta": -0.61,
"percent_delta": -0.1323,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.278,
"after": 0.2863,
"delta": 0.0083,
"percent_delta": 0.0299,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.566,
"after": 0.0,
"delta": -0.566,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.28,
"after": 0.0,
"delta": -1.28,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.28,
"after": 0.0,
"delta": -0.28,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.392,
"after": 0.3703,
"delta": -0.0217,
"percent_delta": -0.0554,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.704,
"after": 0.0,
"delta": -0.704,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.13,
"after": 0.0,
"delta": -1.13,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.566,
"after": 0.5484,
"delta": -0.0176,
"percent_delta": -0.0311,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.039,
"after": 1.0,
"delta": -0.039,
"percent_delta": -0.0375,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 10,
"boosted_metrics": 1,
"deboosted_metrics": 9,
"better_metrics": 1,
"worse_metrics": 9,
"biggest_boost": {
"metric": "predicted_AVG",
"before": 0.278,
"after": 0.2863,
"delta": 0.0083,
"percent_delta": 0.0299,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.28,
"after": 0.0,
"delta": -1.28,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.158 | - |
| predicted_3B | 0.026 | - |
| predicted_AB | 4.610 | - |
| predicted_AVG | 0.278 | - |
| predicted_BB | 0.566 | - |
| predicted_H | 1.280 | - |
| predicted_HR | 0.280 | - |
| predicted_OBP | 0.392 | - |
| predicted_R | 0.704 | - |
| predicted_RBI | 1.130 | - |
| predicted_SLG | 0.566 | - |
| predicted_SO | 1.039 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.190 | 0.032 |
| predicted_3B | 0.022 | -0.004 |
| predicted_AB | 4.250 | -0.360 |
| predicted_AVG | 0.290 | 0.012 |
| predicted_BB | 0.566 | 0.000 |
| predicted_H | 1.225 | -0.055 |
| predicted_HBP | 0.024 | - |
| predicted_HR | 0.296 | 0.016 |
| predicted_OBP | 0.394 | 0.002 |
| predicted_R | 0.732 | 0.028 |
| predicted_RBI | 0.983 | -0.147 |
| predicted_SLG | 0.592 | 0.026 |
| predicted_SO | 1.078 | 0.039 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.190 | 0.000 |
| predicted_3B | 0.022 | 0.000 |
| predicted_AB | 4.250 | 0.000 |
| predicted_AVG | 0.286 | -0.003 |
| predicted_BB | 0.567 | 0.001 |
| predicted_H | 1.217 | -0.008 |
| predicted_HBP | 0.024 | 0.000 |
| predicted_HR | 0.294 | -0.003 |
| predicted_OBP | 0.370 | -0.023 |
| predicted_R | 0.725 | -0.007 |
| predicted_RBI | 0.973 | -0.009 |
| predicted_SLG | 0.548 | -0.043 |
| predicted_SO | 1.077 | -0.002 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=4.61), rates preserved: AVG=0.245 HR/AB=0.064
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=16.0, weight=0.139, BvP AVG=0.062)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.161 | 0.161 |
| 3B | 0.015 | 0.015 |
| BB | 0.388 | 0.388 |
| H | 0.849 | -0.151 |
| HR | 0.248 | 0.248 |
| RBI | 0.575 | -0.425 |
| SO | 1.117 | 0.117 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.161 |
| 3B | 0.000 | -0.015 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 0.612 |
| H | 1.000 | 0.151 |
| HR | 1.000 | 0.752 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.425 |
| SO | 1.000 | -0.117 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.190 |
| predicted_3B | 0.000 | -0.022 |
| predicted_AB | 4.000 | -0.250 |
| predicted_AVG | 0.223 | -0.063 |
| predicted_BB | 0.000 | -0.567 |
| predicted_H | 1.000 | -0.217 |
| predicted_HR | 0.000 | -0.294 |
| predicted_OBP | 0.300 | -0.070 |
| predicted_R | 1.000 | 0.275 |
| predicted_RBI | 1.000 | 0.027 |
| predicted_SLG | 0.469 | -0.079 |
| predicted_SO | 1.000 | -0.077 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -1.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | -1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | -1.000 |
| PA | 4.000 | - |
| R | 0.000 | -1.000 |
| RBI | 0.000 | -1.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 20.000 | 8.000 | 2.000 | 0.000 | 2.000 | 6.000 | 5.000 | 3.000 | 7.000 | 0.4000 | 0.4783 | 0.8000 | 0.4000 | 0.1000 | 0.3000 | 0.1500 | 0.3500 |
| last_10 | 0.20 | 10 | - | 37.000 | 12.000 | 3.000 | 0.000 | 4.000 | 9.000 | 8.000 | 6.000 | 12.000 | 0.3243 | 0.4091 | 0.7297 | 0.3243 | 0.1081 | 0.2432 | 0.1622 | 0.3243 |
| season | 0.60 | 152 | - | 569.000 | 154.000 | 24.000 | 4.000 | 42.000 | 99.000 | 107.000 | 86.000 | 158.000 | 0.2707 | 0.3710 | 0.5483 | 0.2707 | 0.0738 | 0.1740 | 0.1511 | 0.2777 |
| Metric | Value |
|---|---|
| predicted_2B | 0.2310 |
| predicted_3B | 0.0160 |
| predicted_AB | 3.7870 |
| predicted_AVG | 0.3047 |
| predicted_BB | 0.5660 |
| predicted_H | 1.1540 |
| predicted_HBP | 0.0240 |
| predicted_HR | 0.3170 |
| predicted_OBP | 0.3960 |
| predicted_R | 0.7680 |
| predicted_RBI | 0.7930 |
| predicted_SLG | 0.6251 |
| predicted_SO | 1.1290 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1580 | 0.2310 | 0.1899 | model_form_blend |
| predicted_3B | 0.0260 | 0.0160 | 0.0216 | model_form_blend |
| predicted_AB | 4.6100 | 3.7870 | 4.2501 | model_form_blend |
| predicted_AVG | 0.2780 | 0.3047 | 0.2897 | model_form_blend |
| predicted_BB | 0.5660 | 0.5660 | 0.5660 | model_form_blend |
| predicted_H | 1.2800 | 1.1540 | 1.2249 | model_form_blend |
| predicted_HBP | - | 0.0240 | 0.0240 | form_only |
| predicted_HR | 0.2800 | 0.3170 | 0.2962 | model_form_blend |
| predicted_OBP | 0.3920 | 0.3960 | 0.3937 | model_form_blend |
| predicted_R | 0.7040 | 0.7680 | 0.7320 | model_form_blend |
| predicted_RBI | 1.1300 | 0.7930 | 0.9826 | model_form_blend |
| predicted_SLG | 0.5660 | 0.6251 | 0.5918 | model_form_blend |
| predicted_SO | 1.0390 | 1.1290 | 1.0784 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 634 |
| Season rows before report date | 634 |
| Report year | 2026 |
| Profile rows used | 152 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.25 |
| Hitting_BB | 1 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 1 |
| Hitting_R | 1 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 1 |
| Hitting_battingOrder | 1 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | DH |
| gameID | 20260930_BOS@NYY |
| game_type | full |
| mlbID | 700250 |
| playerID | 700250 |
| playerName | Ben Rice |
| pos | DH |
| started | True |
| startingPosition | DH |
| team | NYY |
| teamID | 19 |
| game_date | 2026-09-30 |
| sl_k_percent | 24.3 |
| sl_bb_percent | 12.7 |
| sl_woba | 0.384 |
| sl_xwoba | 0.378 |
| sl_xba | 0.267 |
| sl_xslg | 0.511 |
| sl_sweet_spot_percent | 38.4 |
| sl_barrel_batted_rate | 14.3 |
| sl_hard_hit_percent | 48.6 |
| sl_exit_velocity_avg | 91.9 |
| sl_launch_angle_avg | 14.5 |
| sl_whiff_percent | 25.4 |
| sl_swing_percent | 43.2 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.093 | 0.000 | 0.000 | Hitting_2B | 0.093 | 0.000 | -0.093 | 0.000 |
| predicted_3B | 0.023 | 1.000 | 0.000 | Hitting_3B | 0.029 | 0.000 | 0.971 | 1.000 |
| predicted_AB | 4.090 | 3.000 | 4.000 | Hitting_AB | 3.643 | 4.000 | -0.643 | -1.000 |
| predicted_AVG | 0.273 | 0.333 | 0.250 | Hitting_AVG | 0.229 | 0.250 | 0.104 | 0.083 |
| predicted_BB | 0.233 | 1.000 | 0.000 | Hitting_BB | 0.250 | 0.000 | 0.750 | 1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.029 | 0.000 | -0.029 | 0.000 |
| predicted_H | 1.120 | 1.000 | 1.000 | Hitting_H | 0.836 | 1.000 | 0.164 | 0.000 |
| predicted_HR | 0.200 | 0.000 | 0.000 | Hitting_HR | 0.107 | 0.000 | -0.107 | 0.000 |
| predicted_OBP | 0.318 | 0.500 | 0.250 | Hitting_OBP | 0.281 | 0.250 | 0.219 | 0.250 |
| predicted_R | 0.605 | 1.000 | 1.000 | Hitting_R | 0.579 | 1.000 | 0.421 | 0.000 |
| predicted_RBI | 0.760 | 0.000 | 0.000 | Hitting_RBI | 0.400 | 1.000 | -0.400 | -1.000 |
| predicted_SLG | 0.475 | 1.000 | 0.250 | Hitting_SLG | 0.359 | 0.250 | 0.641 | 0.750 |
| predicted_SO | 1.023 | 0.000 | 1.000 | Hitting_SO | 1.036 | 2.000 | -1.036 | -2.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 10 |
| Boosted Metrics | 3 |
| Deboosted Metrics | 7 |
| Better Metrics | 4 |
| Worse Metrics | 6 |
| Biggest Boost | predicted_3B: 0.0230 -> 1.0000 (boost 0.9770, better) |
| Biggest Deboost | predicted_AB: 4.0900 -> 3.0000 (deboost -1.0900, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 2 | 1 | 1 | 1 | 1 | predicted_SLG: 0.4750 -> 0.4862 (boost 0.0112, better) | predicted_AB: 4.0900 -> 3.9828 (deboost -0.1072, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 2 | 0 | 2 | 0 | 2 | - | predicted_SLG: 0.4862 -> 0.4702 (deboost -0.0160, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 6 | 1 | 5 | 2 | 4 | predicted_RBI: 0.7255 -> 1.0000 (boost 0.2745, better) | predicted_HR: 0.2120 -> 0.0000 (deboost -0.2120, worse) | AB rounded to 4 (raw=4.09), rates preserved: AVG=0.247 HR/AB=0.052 |
| 6 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.6432 -> 1.0000 (boost 0.3568, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 4 | 2 | 3 | 3 | predicted_BB: 0.0000 -> 0.2060 (boost 0.2060, better) | predicted_RBI: 1.0000 -> 0.5132 (deboost -0.4868, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 6 | 1 | 5 | 2 | 4 | predicted_H: 0.8748 -> 1.0000 (boost 0.1252, better) | predicted_RBI: 0.5132 -> 0.0000 (deboost -0.5132, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 4 | 1 | 3 | 1 | 3 | predicted_RBI: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_SLG: 0.4702 -> 0.4050 (deboost -0.0652, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 5 | 2 | 3 | 3 | 2 | predicted_3B: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_AB: 4.0000 -> 3.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_SLG: 0.4050 -> 0.4702 (boost 0.0652, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "806146",
"player_name": "George Lombard Jr.",
"position": "SS",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.093,
"predicted_3B": 0.023,
"predicted_AB": 4.09,
"predicted_AVG": 0.273,
"predicted_BB": 0.233,
"predicted_H": 1.12,
"predicted_HR": 0.2,
"predicted_OBP": 0.318,
"predicted_R": 0.605,
"predicted_RBI": 0.76,
"predicted_SLG": 0.475,
"predicted_SO": 1.023
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1056,
"predicted_3B": 0.0198,
"predicted_AB": 3.9828,
"predicted_AVG": 0.2755,
"predicted_BB": 0.205,
"predicted_H": 1.0989,
"predicted_HBP": 0.017,
"predicted_HR": 0.2138,
"predicted_OBP": 0.315,
"predicted_R": 0.6493,
"predicted_RBI": 0.7324,
"predicted_SLG": 0.4862,
"predicted_SO": 1.0551
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.093,
"after": 0.1056,
"delta": 0.0126,
"percent_delta": 0.1355,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.023,
"after": 0.0198,
"delta": -0.0032,
"percent_delta": -0.1391,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.09,
"after": 3.9828,
"delta": -0.1072,
"percent_delta": -0.0262,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.273,
"after": 0.2755,
"delta": 0.0025,
"percent_delta": 0.0092,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.233,
"after": 0.205,
"delta": -0.028,
"percent_delta": -0.1202,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.12,
"after": 1.0989,
"delta": -0.0211,
"percent_delta": -0.0188,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.2,
"after": 0.2138,
"delta": 0.0138,
"percent_delta": 0.069,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.318,
"after": 0.315,
"delta": -0.003,
"percent_delta": -0.0094,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.605,
"after": 0.6493,
"delta": 0.0443,
"percent_delta": 0.0732,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.76,
"after": 0.7324,
"delta": -0.0276,
"percent_delta": -0.0363,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.475,
"after": 0.4862,
"delta": 0.0112,
"percent_delta": 0.0236,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.023,
"after": 1.0551,
"delta": 0.0321,
"percent_delta": 0.0314,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.475,
"after": 0.4862,
"delta": 0.0112,
"percent_delta": 0.0236,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.09,
"after": 3.9828,
"delta": -0.1072,
"percent_delta": -0.0262,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 43
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1056,
"predicted_3B": 0.0198,
"predicted_AB": 3.9828,
"predicted_AVG": 0.2741,
"predicted_BB": 0.2053,
"predicted_H": 1.0915,
"predicted_HBP": 0.017,
"predicted_HR": 0.212,
"predicted_OBP": 0.3096,
"predicted_R": 0.6432,
"predicted_RBI": 0.7255,
"predicted_SLG": 0.4702,
"predicted_SO": 1.0536
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1056,
"after": 0.1056,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0198,
"after": 0.0198,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.9828,
"after": 3.9828,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2755,
"after": 0.2741,
"delta": -0.0014,
"percent_delta": -0.0051,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.205,
"after": 0.2053,
"delta": 0.0003,
"percent_delta": 0.0015,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0989,
"after": 1.0915,
"delta": -0.0074,
"percent_delta": -0.0067,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.017,
"after": 0.017,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.2138,
"after": 0.212,
"delta": -0.0018,
"percent_delta": -0.0084,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.315,
"after": 0.3096,
"delta": -0.0054,
"percent_delta": -0.0171,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.6493,
"after": 0.6432,
"delta": -0.0061,
"percent_delta": -0.0094,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.7324,
"after": 0.7255,
"delta": -0.0069,
"percent_delta": -0.0094,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4862,
"after": 0.4702,
"delta": -0.016,
"percent_delta": -0.0329,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0551,
"after": 1.0536,
"delta": -0.0015,
"percent_delta": -0.0014,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.4862,
"after": 0.4702,
"delta": -0.016,
"percent_delta": -0.0329,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=4.09), rates preserved: AVG=0.247 HR/AB=0.052",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1056,
"after": 0.0,
"delta": -0.1056,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0198,
"after": 0.0,
"delta": -0.0198,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.9828,
"after": 4.0,
"delta": 0.0172,
"percent_delta": 0.0043,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.2053,
"after": 0.0,
"delta": -0.2053,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0915,
"after": 1.0,
"delta": -0.0915,
"percent_delta": -0.0838,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.017,
"after": 0.0,
"delta": -0.017,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.212,
"after": 0.0,
"delta": -0.212,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.7255,
"after": 1.0,
"delta": 0.2745,
"percent_delta": 0.3784,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0536,
"after": 1.0,
"delta": -0.0536,
"percent_delta": -0.0509,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 1,
"deboosted_metrics": 5,
"better_metrics": 2,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.7255,
"after": 1.0,
"delta": 0.2745,
"percent_delta": 0.3784,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_HR",
"before": 0.212,
"after": 0.0,
"delta": -0.212,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.6432,
"after": 1.0,
"delta": 0.3568,
"percent_delta": 0.5547,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.6432,
"after": 1.0,
"delta": 0.3568,
"percent_delta": 0.5547,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1609,
"predicted_3B": 0.0141,
"predicted_BB": 0.206,
"predicted_H": 0.8748,
"predicted_HR": 0.154,
"predicted_RBI": 0.5132,
"predicted_SO": 1.1258
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1609,
"delta": 0.1609,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0141,
"delta": 0.0141,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.206,
"delta": 0.206,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.8748,
"delta": -0.1252,
"percent_delta": -0.1252,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.154,
"delta": 0.154,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.5132,
"delta": -0.4868,
"percent_delta": -0.4868,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.1258,
"delta": 0.1258,
"percent_delta": 0.1258,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 3,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 0.206,
"delta": 0.206,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.5132,
"delta": -0.4868,
"percent_delta": -0.4868,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1609,
"after": 0.0,
"delta": -0.1609,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0141,
"after": 0.0,
"delta": -0.0141,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.206,
"after": 0.0,
"delta": -0.206,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8748,
"after": 1.0,
"delta": 0.1252,
"percent_delta": 0.1431,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.154,
"after": 0.0,
"delta": -0.154,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5132,
"after": 0.0,
"delta": -0.5132,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.1258,
"after": 1.0,
"delta": -0.1258,
"percent_delta": -0.1117,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 1,
"deboosted_metrics": 5,
"better_metrics": 2,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.8748,
"after": 1.0,
"delta": 0.1252,
"percent_delta": 0.1431,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.5132,
"after": 0.0,
"delta": -0.5132,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.232,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.278,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SLG": 0.405,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2741,
"after": 0.232,
"delta": -0.0421,
"percent_delta": -0.1536,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3096,
"after": 0.278,
"delta": -0.0316,
"percent_delta": -0.1021,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.4702,
"after": 0.405,
"delta": -0.0652,
"percent_delta": -0.1387,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 1,
"deboosted_metrics": 3,
"better_metrics": 1,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.4702,
"after": 0.405,
"delta": -0.0652,
"percent_delta": -0.1387,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 1.0,
"predicted_AB": 3.0,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 2,
"deboosted_metrics": 3,
"better_metrics": 3,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_3B",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 1.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.2741,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3096,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.4702,
"predicted_SO": 0.0,
"predicted_SS": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.232,
"after": 0.2741,
"delta": 0.0421,
"percent_delta": 0.1813,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.278,
"after": 0.3096,
"delta": 0.0316,
"percent_delta": 0.1138,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.405,
"after": 0.4702,
"delta": 0.0652,
"percent_delta": 0.161,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.405,
"after": 0.4702,
"delta": 0.0652,
"percent_delta": 0.161,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.093,
"after": 0.0,
"delta": -0.093,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.023,
"after": 1.0,
"delta": 0.977,
"percent_delta": 42.4783,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AB",
"before": 4.09,
"after": 3.0,
"delta": -1.09,
"percent_delta": -0.2665,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.273,
"after": 0.2741,
"delta": 0.0011,
"percent_delta": 0.004,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.233,
"after": 1.0,
"delta": 0.767,
"percent_delta": 3.2918,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.12,
"after": 1.0,
"delta": -0.12,
"percent_delta": -0.1071,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.2,
"after": 0.0,
"delta": -0.2,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.318,
"after": 0.3096,
"delta": -0.0084,
"percent_delta": -0.0264,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.605,
"after": 1.0,
"delta": 0.395,
"percent_delta": 0.6529,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.76,
"after": 0.0,
"delta": -0.76,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.475,
"after": 0.4702,
"delta": -0.0048,
"percent_delta": -0.0101,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.023,
"after": 0.0,
"delta": -1.023,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 10,
"boosted_metrics": 3,
"deboosted_metrics": 7,
"better_metrics": 4,
"worse_metrics": 6,
"biggest_boost": {
"metric": "predicted_3B",
"before": 0.023,
"after": 1.0,
"delta": 0.977,
"percent_delta": 42.4783,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.09,
"after": 3.0,
"delta": -1.09,
"percent_delta": -0.2665,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.093 | - |
| predicted_3B | 0.023 | - |
| predicted_AB | 4.090 | - |
| predicted_AVG | 0.273 | - |
| predicted_BB | 0.233 | - |
| predicted_H | 1.120 | - |
| predicted_HR | 0.200 | - |
| predicted_OBP | 0.318 | - |
| predicted_R | 0.605 | - |
| predicted_RBI | 0.760 | - |
| predicted_SLG | 0.475 | - |
| predicted_SO | 1.023 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.106 | 0.013 |
| predicted_3B | 0.020 | -0.003 |
| predicted_AB | 3.983 | -0.107 |
| predicted_AVG | 0.276 | 0.003 |
| predicted_BB | 0.205 | -0.028 |
| predicted_H | 1.099 | -0.021 |
| predicted_HBP | 0.017 | - |
| predicted_HR | 0.214 | 0.014 |
| predicted_OBP | 0.315 | -0.003 |
| predicted_R | 0.649 | 0.044 |
| predicted_RBI | 0.732 | -0.028 |
| predicted_SLG | 0.486 | 0.011 |
| predicted_SO | 1.055 | 0.032 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.106 | 0.000 |
| predicted_3B | 0.020 | 0.000 |
| predicted_AB | 3.983 | 0.000 |
| predicted_AVG | 0.274 | -0.001 |
| predicted_BB | 0.205 | 0.000 |
| predicted_H | 1.091 | -0.007 |
| predicted_HBP | 0.017 | 0.000 |
| predicted_HR | 0.212 | -0.002 |
| predicted_OBP | 0.310 | -0.005 |
| predicted_R | 0.643 | -0.006 |
| predicted_RBI | 0.726 | -0.007 |
| predicted_SLG | 0.470 | -0.016 |
| predicted_SO | 1.054 | -0.001 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=4.09), rates preserved: AVG=0.247 HR/AB=0.052
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.161 | 0.161 |
| 3B | 0.014 | 0.014 |
| BB | 0.206 | 0.206 |
| H | 0.875 | -0.125 |
| HR | 0.154 | 0.154 |
| RBI | 0.513 | -0.487 |
| SO | 1.126 | 0.126 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.161 |
| 3B | 0.000 | -0.014 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -0.206 |
| H | 1.000 | 0.125 |
| HR | 0.000 | -0.154 |
| R | 1.000 | 0.000 |
| RBI | 0.000 | -0.513 |
| SO | 1.000 | -0.126 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.106 |
| predicted_3B | 0.000 | -0.020 |
| predicted_AB | 4.000 | 0.017 |
| predicted_AVG | 0.232 | -0.042 |
| predicted_BB | 0.000 | -0.205 |
| predicted_H | 1.000 | -0.091 |
| predicted_HR | 0.000 | -0.212 |
| predicted_OBP | 0.278 | -0.032 |
| predicted_R | 1.000 | 0.357 |
| predicted_RBI | 1.000 | 0.274 |
| predicted_SLG | 0.405 | -0.065 |
| predicted_SO | 1.000 | -0.054 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 1.000 | 1.000 |
| AB | 3.000 | -1.000 |
| BB | 1.000 | 1.000 |
| CS | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 1.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 21.000 | 7.000 | 1.000 | 0.000 | 2.000 | 5.000 | 6.000 | 0.000 | 8.000 | 0.3333 | 0.3333 | 0.6667 | 0.3333 | 0.0952 | 0.2381 | 0.0000 | 0.3810 |
| last_10 | 0.20 | 10 | - | 40.000 | 13.000 | 1.000 | 0.000 | 4.000 | 11.000 | 8.000 | 0.000 | 11.000 | 0.3250 | 0.3250 | 0.6500 | 0.3250 | 0.1000 | 0.2750 | 0.0000 | 0.2750 |
| season | 0.60 | 43 | - | 157.000 | 40.000 | 4.000 | 1.000 | 7.000 | 23.000 | 26.000 | 10.000 | 44.000 | 0.2548 | 0.3000 | 0.4268 | 0.2548 | 0.0446 | 0.1465 | 0.0637 | 0.2802 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1240 |
| predicted_3B | 0.0150 |
| predicted_AB | 3.8260 |
| predicted_AVG | 0.2791 |
| predicted_BB | 0.1640 |
| predicted_H | 1.0680 |
| predicted_HBP | 0.0170 |
| predicted_HR | 0.2340 |
| predicted_OBP | 0.3107 |
| predicted_R | 0.7140 |
| predicted_RBI | 0.6920 |
| predicted_SLG | 0.5026 |
| predicted_SO | 1.1020 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.0930 | 0.1240 | 0.1056 | model_form_blend |
| predicted_3B | 0.0230 | 0.0150 | 0.0198 | model_form_blend |
| predicted_AB | 4.0900 | 3.8260 | 3.9828 | model_form_blend |
| predicted_AVG | 0.2730 | 0.2791 | 0.2755 | model_form_blend |
| predicted_BB | 0.2330 | 0.1640 | 0.2050 | model_form_blend |
| predicted_H | 1.1200 | 1.0680 | 1.0989 | model_form_blend |
| predicted_HBP | - | 0.0170 | 0.0170 | form_only |
| predicted_HR | 0.2000 | 0.2340 | 0.2138 | model_form_blend |
| predicted_OBP | 0.3180 | 0.3107 | 0.3150 | model_form_blend |
| predicted_R | 0.6050 | 0.7140 | 0.6493 | model_form_blend |
| predicted_RBI | 0.7600 | 0.6920 | 0.7324 | model_form_blend |
| predicted_SLG | 0.4750 | 0.5026 | 0.4862 | model_form_blend |
| predicted_SO | 1.0230 | 1.1020 | 1.0551 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 140 |
| Season rows before report date | 140 |
| Report year | 2026 |
| Profile rows used | 43 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 3 |
| H | 1 |
| 2B | 0 |
| 3B | 1 |
| HR | 0 |
| R | 1 |
| RBI | 0 |
| BB | 1 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.25 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 1 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 2 |
| Hitting_TB | 1 |
| Hitting_battingOrder | 5 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | SS |
| gameID | 20260930_BOS@NYY |
| game_type | full |
| mlbID | 806146 |
| playerID | 806146 |
| playerName | George Lombard Jr. |
| pos | SS |
| started | True |
| startingPosition | SS |
| team | NYY |
| teamID | 19 |
| game_date | 2026-09-30 |
| sl_k_percent | 26.5 |
| sl_bb_percent | 6.0 |
| sl_woba | 0.303 |
| sl_xwoba | 0.298 |
| sl_xba | 0.24 |
| sl_xslg | 0.388 |
| sl_sweet_spot_percent | 33.3 |
| sl_barrel_batted_rate | 8.2 |
| sl_hard_hit_percent | 35.1 |
| sl_exit_velocity_avg | 87.1 |
| sl_launch_angle_avg | 8.5 |
| sl_whiff_percent | 25.6 |
| sl_swing_percent | 46.8 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.112 | 0.000 | 0.000 | Hitting_2B | 0.122 | 0.000 | -0.122 | 0.000 |
| predicted_3B | 0.022 | 0.000 | 0.000 | Hitting_3B | 0.025 | 0.000 | -0.025 | 0.000 |
| predicted_AB | 3.478 | 3.000 | 3.000 | Hitting_AB | 3.619 | 3.000 | -0.619 | 0.000 |
| predicted_AVG | 0.262 | 0.000 | 0.333 | Hitting_AVG | 0.238 | 0.667 | -0.238 | -0.667 |
| predicted_BB | 0.403 | 1.000 | 0.000 | Hitting_BB | 0.446 | 1.000 | 0.554 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.072 | 0.000 | -0.072 | 0.000 |
| predicted_H | 0.900 | 0.000 | 1.000 | Hitting_H | 0.863 | 2.000 | -0.863 | -2.000 |
| predicted_HR | 0.110 | 0.000 | 0.000 | Hitting_HR | 0.158 | 0.000 | -0.158 | 0.000 |
| predicted_OBP | 0.353 | 0.250 | 0.333 | Hitting_OBP | 0.321 | 0.750 | -0.071 | -0.500 |
| predicted_R | 0.515 | 0.000 | 1.000 | Hitting_R | 0.562 | 2.000 | -0.562 | -2.000 |
| predicted_RBI | 0.310 | 0.000 | 0.000 | Hitting_RBI | 0.457 | 0.000 | -0.457 | 0.000 |
| predicted_SB | - | 0.000 | 0.000 | BaseRunning_SB | 0.318 | 2.000 | -0.318 | -2.000 |
| predicted_SLG | 0.379 | 0.000 | 0.333 | Hitting_SLG | 0.417 | 0.667 | -0.417 | -0.667 |
| predicted_SO | 1.157 | 1.000 | 1.000 | Hitting_SO | 1.179 | 0.000 | -0.179 | 1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 10 |
| Boosted Metrics | 2 |
| Deboosted Metrics | 8 |
| Better Metrics | 3 |
| Worse Metrics | 7 |
| Biggest Boost | predicted_BB: 0.4030 -> 1.0000 (boost 0.5970, better) |
| Biggest Deboost | predicted_H: 0.9000 -> 0.0000 (deboost -0.9000, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 3 | 2 | 1 | 3 | 0 | predicted_SLG: 0.3790 -> 0.3863 (boost 0.0073, better) | predicted_SO: 1.1570 -> 1.0993 (deboost -0.0577, better) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 2 | 1 | 1 | 1 | 1 | predicted_SLG: 0.3863 -> 0.3945 (boost 0.0082, better) | predicted_OBP: 0.3550 -> 0.3444 (deboost -0.0106, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 1 | 6 | 2 | 5 | predicted_H: 0.9172 -> 1.0000 (boost 0.0828, better) | predicted_AB: 3.4728 -> 3.0000 (deboost -0.4728, worse) | AB rounded to 3 (raw=3.48), rates preserved: AVG=0.244 HR/AB=0.031 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=14.0, weight=0.127, BvP AVG=0.143) |
| 7 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5239 -> 1.0000 (boost 0.4761, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 5 | 1 | 4 | 2 | predicted_RBI: 0.0000 -> 0.3783 (boost 0.3783, better) | predicted_H: 1.0000 -> 0.7283 (deboost -0.2717, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 9 | lineup_integer_allocation | 6 | 1 | 5 | 2 | 4 | predicted_H: 0.7283 -> 1.0000 (boost 0.2717, better) | predicted_RBI: 0.3783 -> 0.0000 (deboost -0.3783, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 10 | embedded_savant_player_context | 3 | 0 | 3 | 0 | 3 | - | predicted_OBP: 0.3444 -> 0.2820 (deboost -0.0624, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | simulation_box_score_reference | 3 | 1 | 2 | 1 | 2 | predicted_BB: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 12 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_OBP: 0.2820 -> 0.3444 (boost 0.0624, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "665862",
"player_name": "Jazz Chisholm Jr.",
"position": "2B",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.112,
"predicted_3B": 0.022,
"predicted_AB": 3.478,
"predicted_AVG": 0.262,
"predicted_BB": 0.403,
"predicted_H": 0.9,
"predicted_HR": 0.11,
"predicted_OBP": 0.353,
"predicted_R": 0.515,
"predicted_RBI": 0.31,
"predicted_SLG": 0.379,
"predicted_SO": 1.157
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.0946,
"predicted_3B": 0.0181,
"predicted_AB": 3.4728,
"predicted_AVG": 0.2678,
"predicted_BB": 0.4247,
"predicted_H": 0.9234,
"predicted_HBP": 0.006,
"predicted_HR": 0.1083,
"predicted_OBP": 0.355,
"predicted_R": 0.5289,
"predicted_RBI": 0.2948,
"predicted_SLG": 0.3863,
"predicted_SO": 1.0993
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.112,
"after": 0.0946,
"delta": -0.0174,
"percent_delta": -0.1554,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.022,
"after": 0.0181,
"delta": -0.0039,
"percent_delta": -0.1773,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.478,
"after": 3.4728,
"delta": -0.0052,
"percent_delta": -0.0015,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.262,
"after": 0.2678,
"delta": 0.0058,
"percent_delta": 0.0221,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.403,
"after": 0.4247,
"delta": 0.0217,
"percent_delta": 0.0538,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.9,
"after": 0.9234,
"delta": 0.0234,
"percent_delta": 0.026,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.11,
"after": 0.1083,
"delta": -0.0017,
"percent_delta": -0.0155,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.353,
"after": 0.355,
"delta": 0.002,
"percent_delta": 0.0057,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.515,
"after": 0.5289,
"delta": 0.0139,
"percent_delta": 0.027,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.31,
"after": 0.2948,
"delta": -0.0152,
"percent_delta": -0.049,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.379,
"after": 0.3863,
"delta": 0.0073,
"percent_delta": 0.0193,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.157,
"after": 1.0993,
"delta": -0.0577,
"percent_delta": -0.0499,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 2,
"deboosted_metrics": 1,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.379,
"after": 0.3863,
"delta": 0.0073,
"percent_delta": 0.0193,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.157,
"after": 1.0993,
"delta": -0.0577,
"percent_delta": -0.0499,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 134
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.0946,
"predicted_3B": 0.0181,
"predicted_AB": 3.4728,
"predicted_AVG": 0.2641,
"predicted_BB": 0.4253,
"predicted_H": 0.9172,
"predicted_HBP": 0.006,
"predicted_HR": 0.1074,
"predicted_OBP": 0.3444,
"predicted_R": 0.5239,
"predicted_RBI": 0.292,
"predicted_SLG": 0.3945,
"predicted_SO": 1.0978
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0946,
"after": 0.0946,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0181,
"after": 0.0181,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.4728,
"after": 3.4728,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2678,
"after": 0.2641,
"delta": -0.0037,
"percent_delta": -0.0138,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.4247,
"after": 0.4253,
"delta": 0.0006,
"percent_delta": 0.0014,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.9234,
"after": 0.9172,
"delta": -0.0062,
"percent_delta": -0.0067,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.006,
"after": 0.006,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1083,
"after": 0.1074,
"delta": -0.0009,
"percent_delta": -0.0083,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.355,
"after": 0.3444,
"delta": -0.0106,
"percent_delta": -0.0299,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.5289,
"after": 0.5239,
"delta": -0.005,
"percent_delta": -0.0095,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.2948,
"after": 0.292,
"delta": -0.0028,
"percent_delta": -0.0095,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3863,
"after": 0.3945,
"delta": 0.0082,
"percent_delta": 0.0212,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0993,
"after": 1.0978,
"delta": -0.0015,
"percent_delta": -0.0014,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.3863,
"after": 0.3945,
"delta": 0.0082,
"percent_delta": 0.0212,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.355,
"after": 0.3444,
"delta": -0.0106,
"percent_delta": -0.0299,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 3 (raw=3.48), rates preserved: AVG=0.244 HR/AB=0.031",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0946,
"after": 0.0,
"delta": -0.0946,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0181,
"after": 0.0,
"delta": -0.0181,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.4728,
"after": 3.0,
"delta": -0.4728,
"percent_delta": -0.1361,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.4253,
"after": 0.0,
"delta": -0.4253,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.9172,
"after": 1.0,
"delta": 0.0828,
"percent_delta": 0.0903,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.006,
"after": 0.0,
"delta": -0.006,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1074,
"after": 0.0,
"delta": -0.1074,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.292,
"after": 0.0,
"delta": -0.292,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0978,
"after": 1.0,
"delta": -0.0978,
"percent_delta": -0.0891,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 1,
"deboosted_metrics": 6,
"better_metrics": 2,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.9172,
"after": 1.0,
"delta": 0.0828,
"percent_delta": 0.0903,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 3.4728,
"after": 3.0,
"delta": -0.4728,
"percent_delta": -0.1361,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "bvp_blend",
"description": "Sample-size BvP blend (BvP AB=14.0, weight=0.127, BvP AVG=0.143)",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {
"model_expectation": 0.8727,
"bvp": 0.1273
},
"window_games": {}
},
{
"index": 7,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.5239,
"after": 1.0,
"delta": 0.4761,
"percent_delta": 0.9088,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.5239,
"after": 1.0,
"delta": 0.4761,
"percent_delta": 0.9088,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1527,
"predicted_3B": 0.0129,
"predicted_BB": 0.2788,
"predicted_H": 0.7283,
"predicted_HR": 0.1264,
"predicted_RBI": 0.3783,
"predicted_SO": 1.1501
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1527,
"delta": 0.1527,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0129,
"delta": 0.0129,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.2788,
"delta": 0.2788,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.7283,
"delta": -0.2717,
"percent_delta": -0.2717,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1264,
"delta": 0.1264,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.3783,
"delta": 0.3783,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.1501,
"delta": 0.1501,
"percent_delta": 0.1501,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 5,
"deboosted_metrics": 1,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.3783,
"delta": 0.3783,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.7283,
"delta": -0.2717,
"percent_delta": -0.2717,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1527,
"after": 0.0,
"delta": -0.1527,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0129,
"after": 0.0,
"delta": -0.0129,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.2788,
"after": 0.0,
"delta": -0.2788,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.7283,
"after": 1.0,
"delta": 0.2717,
"percent_delta": 0.3731,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1264,
"after": 0.0,
"delta": -0.1264,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.3783,
"after": 0.0,
"delta": -0.3783,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.1501,
"after": 1.0,
"delta": -0.1501,
"percent_delta": -0.1305,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 1,
"deboosted_metrics": 5,
"better_metrics": 2,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.7283,
"after": 1.0,
"delta": 0.2717,
"percent_delta": 0.3731,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.3783,
"after": 0.0,
"delta": -0.3783,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.216,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.282,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.381,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2641,
"after": 0.216,
"delta": -0.0481,
"percent_delta": -0.1821,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3444,
"after": 0.282,
"delta": -0.0624,
"percent_delta": -0.1812,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3945,
"after": 0.381,
"delta": -0.0135,
"percent_delta": -0.0342,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.3444,
"after": 0.282,
"delta": -0.0624,
"percent_delta": -0.1812,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 12,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.2641,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3444,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.3945,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.216,
"after": 0.2641,
"delta": 0.0481,
"percent_delta": 0.2227,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.282,
"after": 0.3444,
"delta": 0.0624,
"percent_delta": 0.2213,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.381,
"after": 0.3945,
"delta": 0.0135,
"percent_delta": 0.0356,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_OBP",
"before": 0.282,
"after": 0.3444,
"delta": 0.0624,
"percent_delta": 0.2213,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.112,
"after": 0.0,
"delta": -0.112,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.022,
"after": 0.0,
"delta": -0.022,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.478,
"after": 3.0,
"delta": -0.478,
"percent_delta": -0.1374,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.262,
"after": 0.2641,
"delta": 0.0021,
"percent_delta": 0.008,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.403,
"after": 1.0,
"delta": 0.597,
"percent_delta": 1.4814,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.9,
"after": 0.0,
"delta": -0.9,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.11,
"after": 0.0,
"delta": -0.11,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.353,
"after": 0.3444,
"delta": -0.0086,
"percent_delta": -0.0244,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.515,
"after": 0.0,
"delta": -0.515,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.31,
"after": 0.0,
"delta": -0.31,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.379,
"after": 0.3945,
"delta": 0.0155,
"percent_delta": 0.0409,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.157,
"after": 1.0,
"delta": -0.157,
"percent_delta": -0.1357,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 10,
"boosted_metrics": 2,
"deboosted_metrics": 8,
"better_metrics": 3,
"worse_metrics": 7,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.403,
"after": 1.0,
"delta": 0.597,
"percent_delta": 1.4814,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 0.9,
"after": 0.0,
"delta": -0.9,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.112 | - |
| predicted_3B | 0.022 | - |
| predicted_AB | 3.478 | - |
| predicted_AVG | 0.262 | - |
| predicted_BB | 0.403 | - |
| predicted_H | 0.900 | - |
| predicted_HR | 0.110 | - |
| predicted_OBP | 0.353 | - |
| predicted_R | 0.515 | - |
| predicted_RBI | 0.310 | - |
| predicted_SLG | 0.379 | - |
| predicted_SO | 1.157 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.095 | -0.017 |
| predicted_3B | 0.018 | -0.004 |
| predicted_AB | 3.473 | -0.005 |
| predicted_AVG | 0.268 | 0.006 |
| predicted_BB | 0.425 | 0.022 |
| predicted_H | 0.923 | 0.023 |
| predicted_HBP | 0.006 | - |
| predicted_HR | 0.108 | -0.002 |
| predicted_OBP | 0.355 | 0.002 |
| predicted_R | 0.529 | 0.014 |
| predicted_RBI | 0.295 | -0.015 |
| predicted_SLG | 0.386 | 0.007 |
| predicted_SO | 1.099 | -0.058 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.095 | 0.000 |
| predicted_3B | 0.018 | 0.000 |
| predicted_AB | 3.473 | 0.000 |
| predicted_AVG | 0.264 | -0.004 |
| predicted_BB | 0.425 | 0.001 |
| predicted_H | 0.917 | -0.006 |
| predicted_HBP | 0.006 | 0.000 |
| predicted_HR | 0.107 | -0.001 |
| predicted_OBP | 0.344 | -0.011 |
| predicted_R | 0.524 | -0.005 |
| predicted_RBI | 0.292 | -0.003 |
| predicted_SLG | 0.395 | 0.008 |
| predicted_SO | 1.098 | -0.001 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=3.48), rates preserved: AVG=0.244 HR/AB=0.031
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=14.0, weight=0.127, BvP AVG=0.143)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.153 | 0.153 |
| 3B | 0.013 | 0.013 |
| BB | 0.279 | 0.279 |
| H | 0.728 | -0.272 |
| HR | 0.126 | 0.126 |
| RBI | 0.378 | 0.378 |
| SO | 1.150 | 0.150 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.153 |
| 3B | 0.000 | -0.013 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | -0.279 |
| H | 1.000 | 0.272 |
| HR | 0.000 | -0.126 |
| R | 1.000 | 0.000 |
| RBI | 0.000 | -0.378 |
| SO | 1.000 | -0.150 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.095 |
| predicted_3B | 0.000 | -0.018 |
| predicted_AB | 3.000 | -0.473 |
| predicted_AVG | 0.216 | -0.048 |
| predicted_BB | 0.000 | -0.425 |
| predicted_H | 1.000 | 0.083 |
| predicted_HR | 0.000 | -0.107 |
| predicted_OBP | 0.282 | -0.062 |
| predicted_R | 1.000 | 0.476 |
| predicted_RBI | 0.000 | -0.292 |
| predicted_SLG | 0.381 | -0.014 |
| predicted_SO | 1.000 | -0.098 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 1.000 | 1.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | -1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | -1.000 |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 17.000 | 6.000 | 0.000 | 0.000 | 0.000 | 0.000 | 3.000 | 3.000 | 4.000 | 0.3529 | 0.4500 | 0.3529 | 0.3529 | 0.0000 | 0.0000 | 0.1765 | 0.2353 |
| last_10 | 0.20 | 10 | - | 34.000 | 11.000 | 0.000 | 0.000 | 1.000 | 1.000 | 6.000 | 5.000 | 9.000 | 0.3235 | 0.4103 | 0.4118 | 0.3235 | 0.0294 | 0.0294 | 0.1471 | 0.2647 |
| season | 0.60 | 134 | - | 466.000 | 110.000 | 15.000 | 3.000 | 19.000 | 55.000 | 69.000 | 54.000 | 155.000 | 0.2361 | 0.3143 | 0.4034 | 0.2361 | 0.0408 | 0.1180 | 0.1159 | 0.3326 |
| Metric | Value |
|---|---|
| predicted_2B | 0.0720 |
| predicted_3B | 0.0130 |
| predicted_AB | 3.4660 |
| predicted_AVG | 0.2754 |
| predicted_BB | 0.4530 |
| predicted_H | 0.9540 |
| predicted_HBP | 0.0060 |
| predicted_HR | 0.1060 |
| predicted_OBP | 0.3577 |
| predicted_R | 0.5470 |
| predicted_RBI | 0.2750 |
| predicted_SLG | 0.3957 |
| predicted_SO | 1.0240 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1120 | 0.0720 | 0.0946 | model_form_blend |
| predicted_3B | 0.0220 | 0.0130 | 0.0181 | model_form_blend |
| predicted_AB | 3.4780 | 3.4660 | 3.4728 | model_form_blend |
| predicted_AVG | 0.2620 | 0.2754 | 0.2678 | model_form_blend |
| predicted_BB | 0.4030 | 0.4530 | 0.4247 | model_form_blend |
| predicted_H | 0.9000 | 0.9540 | 0.9234 | model_form_blend |
| predicted_HBP | - | 0.0060 | 0.0060 | form_only |
| predicted_HR | 0.1100 | 0.1060 | 0.1083 | model_form_blend |
| predicted_OBP | 0.3530 | 0.3577 | 0.3550 | model_form_blend |
| predicted_R | 0.5150 | 0.5470 | 0.5289 | model_form_blend |
| predicted_RBI | 0.3100 | 0.2750 | 0.2948 | model_form_blend |
| predicted_SLG | 0.3790 | 0.3957 | 0.3863 | model_form_blend |
| predicted_SO | 1.1570 | 1.0240 | 1.0993 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 525 |
| Season rows before report date | 525 |
| Report year | 2026 |
| Profile rows used | 134 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 3 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 1 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 2 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 3 |
| Hitting_AVG | 0.667 |
| Hitting_BB | 1 |
| Hitting_GIDP | 1 |
| Hitting_H | 2 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 2 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 2 |
| Hitting_battingOrder | 6 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | 2B |
| gameID | 20260930_BOS@NYY |
| game_type | full |
| mlbID | 665862 |
| playerID | 665862 |
| playerName | Jazz Chisholm Jr. |
| pos | 2B |
| started | True |
| startingPosition | 2B |
| team | NYY |
| teamID | 19 |
| game_date | 2026-09-30 |
| sl_k_percent | 29.5 |
| sl_bb_percent | 10.5 |
| sl_woba | 0.312 |
| sl_xwoba | 0.294 |
| sl_xba | 0.216 |
| sl_xslg | 0.366 |
| sl_sweet_spot_percent | 29.9 |
| sl_barrel_batted_rate | 8.2 |
| sl_hard_hit_percent | 42.8 |
| sl_exit_velocity_avg | 90.4 |
| sl_launch_angle_avg | 16.3 |
| sl_whiff_percent | 30.9 |
| sl_swing_percent | 45.8 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.164 | 1.000 | 0.000 | Hitting_2B | 0.169 | 0.000 | 0.831 | 1.000 |
| predicted_3B | 0.017 | 0.000 | 0.000 | Hitting_3B | 0.020 | 0.000 | -0.020 | 0.000 |
| predicted_AB | 3.552 | 3.000 | 3.000 | Hitting_AB | 3.759 | 3.000 | -0.759 | 0.000 |
| predicted_AVG | 0.250 | 0.667 | 0.333 | Hitting_AVG | 0.210 | 0.667 | 0.457 | 0.000 |
| predicted_BB | 0.500 | 1.000 | 0.000 | Hitting_BB | 0.543 | 1.000 | 0.457 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.020 | 0.000 | -0.020 | 0.000 |
| predicted_H | 0.880 | 2.000 | 1.000 | Hitting_H | 0.788 | 2.000 | 1.212 | 0.000 |
| predicted_HR | 0.100 | 1.000 | 0.000 | Hitting_HR | 0.157 | 0.000 | 0.843 | 1.000 |
| predicted_OBP | 0.320 | 0.750 | 0.333 | Hitting_OBP | 0.306 | 0.750 | 0.444 | 0.000 |
| predicted_R | 0.569 | 1.000 | 0.000 | Hitting_R | 0.600 | 1.000 | 0.400 | 0.000 |
| predicted_RBI | 0.460 | 2.000 | 0.000 | Hitting_RBI | 0.531 | 0.000 | 1.469 | 2.000 |
| predicted_SLG | 0.367 | 2.000 | 0.333 | Hitting_SLG | 0.391 | 0.667 | 1.609 | 1.333 |
| predicted_SO | 0.759 | 0.000 | 1.000 | Hitting_SO | 0.786 | 0.000 | -0.786 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 10 |
| Boosted Metrics | 6 |
| Deboosted Metrics | 4 |
| Better Metrics | 7 |
| Worse Metrics | 3 |
| Biggest Boost | predicted_RBI: 0.4600 -> 2.0000 (boost 1.5400, better) |
| Biggest Deboost | predicted_SO: 0.7590 -> 0.0000 (deboost -0.7590, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 6 | 0 | 6 | 0 | 6 | - | predicted_H: 0.8800 -> 0.8155 (deboost -0.0645, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 2 | 2 | 0 | 2 | 0 | predicted_OBP: 0.3093 -> 0.3213 (boost 0.0120, better) | - | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 2 | 5 | 1 | 6 | predicted_SO: 0.7774 -> 1.0000 (boost 0.2226, worse) | predicted_AB: 3.4927 -> 3.0000 (deboost -0.4927, worse) | AB rounded to 3 (raw=3.55), rates preserved: AVG=0.211 HR/AB=0.026 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=16.0, weight=0.139, BvP AVG=0.375) |
| 7 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5071 -> 1.0000 (boost 0.4929, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 4 | 2 | 5 | 1 | predicted_RBI: 0.0000 -> 0.4648 (boost 0.4648, better) | predicted_SO: 1.0000 -> 0.7731 (deboost -0.2269, better) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 9 | lineup_integer_allocation | 7 | 2 | 5 | 1 | 6 | predicted_SO: 0.7731 -> 1.0000 (boost 0.2269, worse) | predicted_R: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 10 | embedded_savant_player_context | 3 | 2 | 1 | 2 | 1 | predicted_R: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_OBP: 0.3213 -> 0.3000 (deboost -0.0213, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | simulation_box_score_reference | 6 | 5 | 1 | 6 | 0 | predicted_RBI: 0.0000 -> 2.0000 (boost 2.0000, better) | predicted_SO: 1.0000 -> 0.0000 (deboost -1.0000, better) | Attached simulation box score without overwriting model prediction |
| 12 | current_json_final | 2 | 1 | 1 | 1 | 1 | predicted_OBP: 0.3000 -> 0.3213 (boost 0.0213, better) | predicted_SLG: 0.4070 -> 0.3591 (deboost -0.0479, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "663757",
"player_name": "Trent Grisham",
"position": "CF",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.164,
"predicted_3B": 0.017,
"predicted_AB": 3.552,
"predicted_AVG": 0.25,
"predicted_BB": 0.5,
"predicted_H": 0.88,
"predicted_HR": 0.1,
"predicted_OBP": 0.32,
"predicted_R": 0.569,
"predicted_RBI": 0.46,
"predicted_SLG": 0.367,
"predicted_SO": 0.759
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1354,
"predicted_3B": 0.014,
"predicted_AB": 3.4927,
"predicted_AVG": 0.2344,
"predicted_BB": 0.4593,
"predicted_H": 0.8155,
"predicted_HBP": 0.002,
"predicted_HR": 0.0944,
"predicted_OBP": 0.3093,
"predicted_R": 0.5119,
"predicted_RBI": 0.4518,
"predicted_SLG": 0.3487,
"predicted_SO": 0.7785
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.164,
"after": 0.1354,
"delta": -0.0286,
"percent_delta": -0.1744,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.017,
"after": 0.014,
"delta": -0.003,
"percent_delta": -0.1765,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.552,
"after": 3.4927,
"delta": -0.0593,
"percent_delta": -0.0167,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.25,
"after": 0.2344,
"delta": -0.0156,
"percent_delta": -0.0624,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.5,
"after": 0.4593,
"delta": -0.0407,
"percent_delta": -0.0814,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.88,
"after": 0.8155,
"delta": -0.0645,
"percent_delta": -0.0733,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1,
"after": 0.0944,
"delta": -0.0056,
"percent_delta": -0.056,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.32,
"after": 0.3093,
"delta": -0.0107,
"percent_delta": -0.0334,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.569,
"after": 0.5119,
"delta": -0.0571,
"percent_delta": -0.1004,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.46,
"after": 0.4518,
"delta": -0.0082,
"percent_delta": -0.0178,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.367,
"after": 0.3487,
"delta": -0.0183,
"percent_delta": -0.0499,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.759,
"after": 0.7785,
"delta": 0.0195,
"percent_delta": 0.0257,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 0,
"deboosted_metrics": 6,
"better_metrics": 0,
"worse_metrics": 6,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 0.88,
"after": 0.8155,
"delta": -0.0645,
"percent_delta": -0.0733,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 116
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1354,
"predicted_3B": 0.014,
"predicted_AB": 3.4927,
"predicted_AVG": 0.2319,
"predicted_BB": 0.4599,
"predicted_H": 0.81,
"predicted_HBP": 0.002,
"predicted_HR": 0.0936,
"predicted_OBP": 0.3213,
"predicted_R": 0.5071,
"predicted_RBI": 0.4476,
"predicted_SLG": 0.3591,
"predicted_SO": 0.7774
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1354,
"after": 0.1354,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.014,
"after": 0.014,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.4927,
"after": 3.4927,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2344,
"after": 0.2319,
"delta": -0.0025,
"percent_delta": -0.0107,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.4593,
"after": 0.4599,
"delta": 0.0006,
"percent_delta": 0.0013,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.8155,
"after": 0.81,
"delta": -0.0055,
"percent_delta": -0.0067,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.002,
"after": 0.002,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0944,
"after": 0.0936,
"delta": -0.0008,
"percent_delta": -0.0085,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3093,
"after": 0.3213,
"delta": 0.012,
"percent_delta": 0.0388,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.5119,
"after": 0.5071,
"delta": -0.0048,
"percent_delta": -0.0094,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.4518,
"after": 0.4476,
"delta": -0.0042,
"percent_delta": -0.0093,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3487,
"after": 0.3591,
"delta": 0.0104,
"percent_delta": 0.0298,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.7785,
"after": 0.7774,
"delta": -0.0011,
"percent_delta": -0.0014,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_OBP",
"before": 0.3093,
"after": 0.3213,
"delta": 0.012,
"percent_delta": 0.0388,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 3 (raw=3.55), rates preserved: AVG=0.211 HR/AB=0.026",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1354,
"after": 0.0,
"delta": -0.1354,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.014,
"after": 0.0,
"delta": -0.014,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.4927,
"after": 3.0,
"delta": -0.4927,
"percent_delta": -0.1411,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.4599,
"after": 0.0,
"delta": -0.4599,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.81,
"after": 1.0,
"delta": 0.19,
"percent_delta": 0.2346,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.002,
"after": 0.0,
"delta": -0.002,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0936,
"after": 0.0,
"delta": -0.0936,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.4476,
"after": 0.0,
"delta": -0.4476,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.7774,
"after": 1.0,
"delta": 0.2226,
"percent_delta": 0.2863,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 2,
"deboosted_metrics": 5,
"better_metrics": 1,
"worse_metrics": 6,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.7774,
"after": 1.0,
"delta": 0.2226,
"percent_delta": 0.2863,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 3.4927,
"after": 3.0,
"delta": -0.4927,
"percent_delta": -0.1411,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "bvp_blend",
"description": "Sample-size BvP blend (BvP AB=16.0, weight=0.139, BvP AVG=0.375)",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {
"model_expectation": 0.8609,
"bvp": 0.1391
},
"window_games": {}
},
{
"index": 7,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.5071,
"after": 1.0,
"delta": 0.4929,
"percent_delta": 0.972,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.5071,
"after": 1.0,
"delta": 0.4929,
"percent_delta": 0.972,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1513,
"predicted_3B": 0.0115,
"predicted_BB": 0.3268,
"predicted_H": 0.7787,
"predicted_HR": 0.1476,
"predicted_RBI": 0.4648,
"predicted_SO": 0.7731
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1513,
"delta": 0.1513,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0115,
"delta": 0.0115,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.3268,
"delta": 0.3268,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.7787,
"delta": -0.2213,
"percent_delta": -0.2213,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1476,
"delta": 0.1476,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.4648,
"delta": 0.4648,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.7731,
"delta": -0.2269,
"percent_delta": -0.2269,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 5,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.4648,
"delta": 0.4648,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 0.7731,
"delta": -0.2269,
"percent_delta": -0.2269,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1513,
"after": 0.0,
"delta": -0.1513,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0115,
"after": 0.0,
"delta": -0.0115,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.3268,
"after": 0.0,
"delta": -0.3268,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.7787,
"after": 1.0,
"delta": 0.2213,
"percent_delta": 0.2842,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1476,
"after": 0.0,
"delta": -0.1476,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.4648,
"after": 0.0,
"delta": -0.4648,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.7731,
"after": 1.0,
"delta": 0.2269,
"percent_delta": 0.2935,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 2,
"deboosted_metrics": 5,
"better_metrics": 1,
"worse_metrics": 6,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.7731,
"after": 1.0,
"delta": 0.2269,
"percent_delta": 0.2935,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.227,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.407,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2319,
"after": 0.227,
"delta": -0.0049,
"percent_delta": -0.0211,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3213,
"after": 0.3,
"delta": -0.0213,
"percent_delta": -0.0663,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3591,
"after": 0.407,
"delta": 0.0479,
"percent_delta": 0.1334,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 2,
"deboosted_metrics": 1,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.3213,
"after": 0.3,
"delta": -0.0213,
"percent_delta": -0.0663,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 1.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 2.0,
"predicted_HBP": 0.0,
"predicted_HR": 1.0,
"predicted_R": 1.0,
"predicted_RBI": 2.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 2.0,
"delta": 2.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 5,
"deboosted_metrics": 1,
"better_metrics": 6,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 2.0,
"delta": 2.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 12,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 1.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.2319,
"predicted_BB": 1.0,
"predicted_CF": 0.0,
"predicted_CS": 0.0,
"predicted_H": 2.0,
"predicted_HBP": 0.0,
"predicted_HR": 1.0,
"predicted_OBP": 0.3213,
"predicted_R": 1.0,
"predicted_RBI": 2.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.3591,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.227,
"after": 0.2319,
"delta": 0.0049,
"percent_delta": 0.0217,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_CS",
"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_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.3,
"after": 0.3213,
"delta": 0.0213,
"percent_delta": 0.071,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.407,
"after": 0.3591,
"delta": -0.0479,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_OBP",
"before": 0.3,
"after": 0.3213,
"delta": 0.0213,
"percent_delta": 0.071,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.407,
"after": 0.3591,
"delta": -0.0479,
"percent_delta": -0.1177,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.164,
"after": 1.0,
"delta": 0.836,
"percent_delta": 5.0976,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.017,
"after": 0.0,
"delta": -0.017,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.552,
"after": 3.0,
"delta": -0.552,
"percent_delta": -0.1554,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.25,
"after": 0.2319,
"delta": -0.0181,
"percent_delta": -0.0724,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.5,
"after": 1.0,
"delta": 0.5,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.88,
"after": 2.0,
"delta": 1.12,
"percent_delta": 1.2727,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1,
"after": 1.0,
"delta": 0.9,
"percent_delta": 9.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.32,
"after": 0.3213,
"delta": 0.0013,
"percent_delta": 0.0041,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.569,
"after": 1.0,
"delta": 0.431,
"percent_delta": 0.7575,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.46,
"after": 2.0,
"delta": 1.54,
"percent_delta": 3.3478,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.367,
"after": 0.3591,
"delta": -0.0079,
"percent_delta": -0.0215,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.759,
"after": 0.0,
"delta": -0.759,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 10,
"boosted_metrics": 6,
"deboosted_metrics": 4,
"better_metrics": 7,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.46,
"after": 2.0,
"delta": 1.54,
"percent_delta": 3.3478,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 0.759,
"after": 0.0,
"delta": -0.759,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.164 | - |
| predicted_3B | 0.017 | - |
| predicted_AB | 3.552 | - |
| predicted_AVG | 0.250 | - |
| predicted_BB | 0.500 | - |
| predicted_H | 0.880 | - |
| predicted_HR | 0.100 | - |
| predicted_OBP | 0.320 | - |
| predicted_R | 0.569 | - |
| predicted_RBI | 0.460 | - |
| predicted_SLG | 0.367 | - |
| predicted_SO | 0.759 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.135 | -0.029 |
| predicted_3B | 0.014 | -0.003 |
| predicted_AB | 3.493 | -0.059 |
| predicted_AVG | 0.234 | -0.016 |
| predicted_BB | 0.459 | -0.041 |
| predicted_H | 0.816 | -0.065 |
| predicted_HBP | 0.002 | - |
| predicted_HR | 0.094 | -0.006 |
| predicted_OBP | 0.309 | -0.011 |
| predicted_R | 0.512 | -0.057 |
| predicted_RBI | 0.452 | -0.008 |
| predicted_SLG | 0.349 | -0.018 |
| predicted_SO | 0.778 | 0.019 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.135 | 0.000 |
| predicted_3B | 0.014 | 0.000 |
| predicted_AB | 3.493 | 0.000 |
| predicted_AVG | 0.232 | -0.003 |
| predicted_BB | 0.460 | 0.001 |
| predicted_H | 0.810 | -0.005 |
| predicted_HBP | 0.002 | 0.000 |
| predicted_HR | 0.094 | -0.001 |
| predicted_OBP | 0.321 | 0.012 |
| predicted_R | 0.507 | -0.005 |
| predicted_RBI | 0.448 | -0.004 |
| predicted_SLG | 0.359 | 0.010 |
| predicted_SO | 0.777 | -0.001 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=3.55), rates preserved: AVG=0.211 HR/AB=0.026
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=16.0, weight=0.139, BvP AVG=0.375)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.151 | 0.151 |
| 3B | 0.011 | 0.011 |
| BB | 0.327 | 0.327 |
| H | 0.779 | -0.221 |
| HR | 0.148 | 0.148 |
| RBI | 0.465 | 0.465 |
| SO | 0.773 | -0.227 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.151 |
| 3B | 0.000 | -0.011 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | -0.327 |
| H | 1.000 | 0.221 |
| HR | 0.000 | -0.148 |
| R | 0.000 | -1.000 |
| RBI | 0.000 | -0.465 |
| SO | 1.000 | 0.227 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.135 |
| predicted_3B | 0.000 | -0.014 |
| predicted_AB | 3.000 | -0.493 |
| predicted_AVG | 0.227 | -0.005 |
| predicted_BB | 0.000 | -0.460 |
| predicted_H | 1.000 | 0.190 |
| predicted_HR | 0.000 | -0.094 |
| predicted_OBP | 0.300 | -0.021 |
| predicted_R | 1.000 | 0.493 |
| predicted_RBI | 0.000 | -0.448 |
| predicted_SLG | 0.407 | 0.048 |
| predicted_SO | 1.000 | 0.223 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 1.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 1.000 | 1.000 |
| CS | 0.000 | 0.000 |
| H | 2.000 | 1.000 |
| HBP | 0.000 | 0.000 |
| HR | 1.000 | 1.000 |
| PA | 4.000 | - |
| R | 1.000 | 1.000 |
| RBI | 2.000 | 2.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 15.000 | 4.000 | 0.000 | 0.000 | 0.000 | 2.000 | 1.000 | 1.000 | 4.000 | 0.2667 | 0.3125 | 0.2667 | 0.2667 | 0.0000 | 0.1333 | 0.0667 | 0.2667 |
| last_10 | 0.20 | 10 | - | 33.000 | 5.000 | 0.000 | 0.000 | 0.000 | 3.000 | 3.000 | 4.000 | 9.000 | 0.1515 | 0.2368 | 0.1515 | 0.1515 | 0.0000 | 0.0909 | 0.1212 | 0.2727 |
| season | 0.60 | 116 | - | 412.000 | 88.000 | 19.000 | 2.000 | 17.000 | 58.000 | 66.000 | 58.000 | 88.000 | 0.2136 | 0.3080 | 0.3932 | 0.2136 | 0.0413 | 0.1408 | 0.1408 | 0.2136 |
| Metric | Value |
|---|---|
| predicted_2B | 0.0980 |
| predicted_3B | 0.0100 |
| predicted_AB | 3.4150 |
| predicted_AVG | 0.2140 |
| predicted_BB | 0.4060 |
| predicted_H | 0.7310 |
| predicted_HBP | 0.0020 |
| predicted_HR | 0.0870 |
| predicted_OBP | 0.2953 |
| predicted_R | 0.4370 |
| predicted_RBI | 0.4410 |
| predicted_SLG | 0.3248 |
| predicted_SO | 0.8040 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1640 | 0.0980 | 0.1354 | model_form_blend |
| predicted_3B | 0.0170 | 0.0100 | 0.0140 | model_form_blend |
| predicted_AB | 3.5520 | 3.4150 | 3.4927 | model_form_blend |
| predicted_AVG | 0.2500 | 0.2140 | 0.2344 | model_form_blend |
| predicted_BB | 0.5000 | 0.4060 | 0.4593 | model_form_blend |
| predicted_H | 0.8800 | 0.7310 | 0.8155 | model_form_blend |
| predicted_HBP | - | 0.0020 | 0.0020 | form_only |
| predicted_HR | 0.1000 | 0.0870 | 0.0944 | model_form_blend |
| predicted_OBP | 0.3200 | 0.2953 | 0.3093 | model_form_blend |
| predicted_R | 0.5690 | 0.4370 | 0.5119 | model_form_blend |
| predicted_RBI | 0.4600 | 0.4410 | 0.4518 | model_form_blend |
| predicted_SLG | 0.3670 | 0.3248 | 0.3487 | model_form_blend |
| predicted_SO | 0.7590 | 0.8040 | 0.7785 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 490 |
| Season rows before report date | 490 |
| Report year | 2026 |
| Profile rows used | 116 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 3 |
| H | 2 |
| 2B | 1 |
| 3B | 0 |
| HR | 1 |
| R | 1 |
| RBI | 2 |
| BB | 1 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 1 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 3 |
| Hitting_AVG | 0.667 |
| Hitting_BB | 1 |
| Hitting_GIDP | 0 |
| Hitting_H | 2 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 2 |
| Hitting_battingOrder | 7 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | CF |
| gameID | 20260930_BOS@NYY |
| game_type | full |
| mlbID | 663757 |
| playerID | 663757 |
| playerName | Trent Grisham |
| pos | CF |
| started | True |
| startingPosition | CF |
| team | NYY |
| teamID | 19 |
| game_date | 2026-09-30 |
| sl_k_percent | 18.4 |
| sl_bb_percent | 12.6 |
| sl_woba | 0.311 |
| sl_xwoba | 0.337 |
| sl_xba | 0.245 |
| sl_xslg | 0.429 |
| sl_sweet_spot_percent | 35.7 |
| sl_barrel_batted_rate | 9.6 |
| sl_hard_hit_percent | 45.3 |
| sl_exit_velocity_avg | 90.6 |
| sl_launch_angle_avg | 17.5 |
| sl_whiff_percent | 18.2 |
| sl_swing_percent | 39.1 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.058 | 0.000 | 0.000 | Hitting_2B | 0.064 | 0.000 | -0.064 | 0.000 |
| predicted_3B | 0.000 | 0.000 | 0.000 | Hitting_3B | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_AB | 2.802 | 4.000 | 3.000 | Hitting_AB | 3.011 | 3.000 | 0.989 | 1.000 |
| predicted_AVG | 0.226 | 0.000 | 0.000 | Hitting_AVG | 0.193 | 0.333 | -0.193 | -0.333 |
| predicted_BB | 0.388 | 0.000 | 0.000 | Hitting_BB | 0.439 | 0.000 | -0.439 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_H | 0.540 | 0.000 | 0.000 | Hitting_H | 0.580 | 1.000 | -0.580 | -1.000 |
| predicted_HR | 0.120 | 0.000 | 0.000 | Hitting_HR | 0.128 | 0.000 | -0.128 | 0.000 |
| predicted_OBP | 0.339 | 0.000 | 0.000 | Hitting_OBP | 0.299 | 0.250 | -0.299 | -0.250 |
| predicted_R | 0.339 | 0.000 | 0.000 | Hitting_R | 0.372 | 1.000 | -0.372 | -1.000 |
| predicted_RBI | 0.500 | 0.000 | 0.000 | Hitting_RBI | 0.311 | 2.000 | -0.311 | -2.000 |
| predicted_SLG | 0.435 | 0.000 | 0.000 | Hitting_SLG | 0.341 | 0.333 | -0.341 | -0.333 |
| predicted_SO | 0.843 | 1.000 | 1.000 | Hitting_SO | 0.910 | 0.000 | 0.090 | 1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 11 |
| Boosted Metrics | 2 |
| Deboosted Metrics | 9 |
| Better Metrics | 1 |
| Worse Metrics | 10 |
| Biggest Boost | predicted_AB: 2.8020 -> 4.0000 (boost 1.1980, better) |
| Biggest Deboost | predicted_H: 0.5400 -> 0.0000 (deboost -0.5400, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 6 | 5 | 1 | 6 | 0 | predicted_R: 0.3390 -> 0.4347 (boost 0.0957, better) | predicted_SO: 0.8430 -> 0.7863 (deboost -0.0567, better) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 3 | 0 | 3 | 0 | 3 | - | predicted_SLG: 0.4408 -> 0.3846 (deboost -0.0562, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 4 | 3 | 3 | 4 | predicted_RBI: 0.5118 -> 1.0000 (boost 0.4882, better) | predicted_BB: 0.4513 -> 0.0000 (deboost -0.4513, worse) | AB rounded to 3 (raw=2.80), rates preserved: AVG=0.199 HR/AB=0.050 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=8.0, weight=0.084, BvP AVG=0.125) |
| 7 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.4306 -> 0.0000 (deboost -0.4306, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 3 | 3 | 4 | 2 | predicted_BB: 0.0000 -> 0.2712 (boost 0.2712, better) | predicted_RBI: 1.0000 -> 0.3180 (deboost -0.6820, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 9 | lineup_integer_allocation | 6 | 1 | 5 | 0 | 6 | predicted_SO: 0.8419 -> 1.0000 (boost 0.1581, worse) | predicted_H: 0.5894 -> 0.0000 (deboost -0.5894, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 10 | embedded_savant_player_context | 5 | 2 | 3 | 2 | 3 | predicted_H: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_OBP: 0.3242 -> 0.2750 (deboost -0.0492, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | simulation_box_score_reference | 3 | 1 | 2 | 1 | 2 | predicted_AB: 3.0000 -> 4.0000 (boost 1.0000, better) | predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 12 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_OBP: 0.2750 -> 0.3242 (boost 0.0492, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "669224",
"player_name": "Austin Wells",
"position": "C",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.058,
"predicted_3B": 0.0,
"predicted_AB": 2.802,
"predicted_AVG": 0.226,
"predicted_BB": 0.388,
"predicted_H": 0.54,
"predicted_HR": 0.12,
"predicted_OBP": 0.339,
"predicted_R": 0.339,
"predicted_RBI": 0.5,
"predicted_SLG": 0.435,
"predicted_SO": 0.843
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.0507,
"predicted_3B": 0.0004,
"predicted_AB": 2.7921,
"predicted_AVG": 0.2356,
"predicted_BB": 0.4507,
"predicted_H": 0.6044,
"predicted_HBP": 0.015,
"predicted_HR": 0.1419,
"predicted_OBP": 0.3437,
"predicted_R": 0.4347,
"predicted_RBI": 0.5167,
"predicted_SLG": 0.4408,
"predicted_SO": 0.7863
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.058,
"after": 0.0507,
"delta": -0.0073,
"percent_delta": -0.1259,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0004,
"delta": 0.0004,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.802,
"after": 2.7921,
"delta": -0.0099,
"percent_delta": -0.0035,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.226,
"after": 0.2356,
"delta": 0.0096,
"percent_delta": 0.0425,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.388,
"after": 0.4507,
"delta": 0.0627,
"percent_delta": 0.1616,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.54,
"after": 0.6044,
"delta": 0.0644,
"percent_delta": 0.1193,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.12,
"after": 0.1419,
"delta": 0.0219,
"percent_delta": 0.1825,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.339,
"after": 0.3437,
"delta": 0.0047,
"percent_delta": 0.0139,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.339,
"after": 0.4347,
"delta": 0.0957,
"percent_delta": 0.2823,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.5,
"after": 0.5167,
"delta": 0.0167,
"percent_delta": 0.0334,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.435,
"after": 0.4408,
"delta": 0.0058,
"percent_delta": 0.0133,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.843,
"after": 0.7863,
"delta": -0.0567,
"percent_delta": -0.0673,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 5,
"deboosted_metrics": 1,
"better_metrics": 6,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.339,
"after": 0.4347,
"delta": 0.0957,
"percent_delta": 0.2823,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 0.843,
"after": 0.7863,
"delta": -0.0567,
"percent_delta": -0.0673,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 121
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.0507,
"predicted_3B": 0.0004,
"predicted_AB": 2.7921,
"predicted_AVG": 0.215,
"predicted_BB": 0.4513,
"predicted_H": 0.6004,
"predicted_HBP": 0.015,
"predicted_HR": 0.1407,
"predicted_OBP": 0.3242,
"predicted_R": 0.4306,
"predicted_RBI": 0.5118,
"predicted_SLG": 0.3846,
"predicted_SO": 0.7852
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0507,
"after": 0.0507,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0004,
"after": 0.0004,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.7921,
"after": 2.7921,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2356,
"after": 0.215,
"delta": -0.0206,
"percent_delta": -0.0874,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.4507,
"after": 0.4513,
"delta": 0.0006,
"percent_delta": 0.0013,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.6044,
"after": 0.6004,
"delta": -0.004,
"percent_delta": -0.0066,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.015,
"after": 0.015,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1419,
"after": 0.1407,
"delta": -0.0012,
"percent_delta": -0.0085,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3437,
"after": 0.3242,
"delta": -0.0195,
"percent_delta": -0.0567,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.4347,
"after": 0.4306,
"delta": -0.0041,
"percent_delta": -0.0094,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5167,
"after": 0.5118,
"delta": -0.0049,
"percent_delta": -0.0095,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4408,
"after": 0.3846,
"delta": -0.0562,
"percent_delta": -0.1275,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.7863,
"after": 0.7852,
"delta": -0.0011,
"percent_delta": -0.0014,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.4408,
"after": 0.3846,
"delta": -0.0562,
"percent_delta": -0.1275,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 3 (raw=2.80), rates preserved: AVG=0.199 HR/AB=0.050",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0507,
"after": 0.0,
"delta": -0.0507,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0004,
"after": 0.0,
"delta": -0.0004,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.7921,
"after": 3.0,
"delta": 0.2079,
"percent_delta": 0.0745,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.4513,
"after": 0.0,
"delta": -0.4513,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.6004,
"after": 1.0,
"delta": 0.3996,
"percent_delta": 0.6656,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.015,
"after": 0.0,
"delta": -0.015,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1407,
"after": 0.0,
"delta": -0.1407,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.5118,
"after": 1.0,
"delta": 0.4882,
"percent_delta": 0.9539,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.7852,
"after": 1.0,
"delta": 0.2148,
"percent_delta": 0.2736,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 4,
"deboosted_metrics": 3,
"better_metrics": 3,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.5118,
"after": 1.0,
"delta": 0.4882,
"percent_delta": 0.9539,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.4513,
"after": 0.0,
"delta": -0.4513,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "bvp_blend",
"description": "Sample-size BvP blend (BvP AB=8.0, weight=0.084, BvP AVG=0.125)",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {
"model_expectation": 0.9158,
"bvp": 0.0842
},
"window_games": {}
},
{
"index": 7,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.4306,
"after": 0.0,
"delta": -0.4306,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_R",
"before": 0.4306,
"after": 0.0,
"delta": -0.4306,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1126,
"predicted_3B": 0.0067,
"predicted_BB": 0.2712,
"predicted_H": 0.5894,
"predicted_HR": 0.1312,
"predicted_RBI": 0.318,
"predicted_SO": 0.8419
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1126,
"delta": 0.1126,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0067,
"delta": 0.0067,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.2712,
"delta": 0.2712,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.5894,
"delta": -0.4106,
"percent_delta": -0.4106,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1312,
"delta": 0.1312,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.318,
"delta": -0.682,
"percent_delta": -0.682,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.8419,
"delta": -0.1581,
"percent_delta": -0.1581,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 3,
"deboosted_metrics": 3,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 0.2712,
"delta": 0.2712,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.318,
"delta": -0.682,
"percent_delta": -0.682,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1126,
"after": 0.0,
"delta": -0.1126,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0067,
"after": 0.0,
"delta": -0.0067,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.2712,
"after": 0.0,
"delta": -0.2712,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.5894,
"after": 0.0,
"delta": -0.5894,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1312,
"after": 0.0,
"delta": -0.1312,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.318,
"after": 0.0,
"delta": -0.318,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.8419,
"after": 1.0,
"delta": 0.1581,
"percent_delta": 0.1878,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 1,
"deboosted_metrics": 5,
"better_metrics": 0,
"worse_metrics": 6,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.8419,
"after": 1.0,
"delta": 0.1581,
"percent_delta": 0.1878,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 0.5894,
"after": 0.0,
"delta": -0.5894,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.201,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.275,
"predicted_R": 0.0,
"predicted_RBI": 1.0,
"predicted_SLG": 0.378,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.215,
"after": 0.201,
"delta": -0.014,
"percent_delta": -0.0651,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_H",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_OBP",
"before": 0.3242,
"after": 0.275,
"delta": -0.0492,
"percent_delta": -0.1518,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.3846,
"after": 0.378,
"delta": -0.0066,
"percent_delta": -0.0172,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 2,
"deboosted_metrics": 3,
"better_metrics": 2,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.3242,
"after": 0.275,
"delta": -0.0492,
"percent_delta": -0.1518,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 12,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.215,
"predicted_BB": 0.0,
"predicted_C": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3242,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.3846,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.201,
"after": 0.215,
"delta": 0.014,
"percent_delta": 0.0697,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.275,
"after": 0.3242,
"delta": 0.0492,
"percent_delta": 0.1791,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.378,
"after": 0.3846,
"delta": 0.0066,
"percent_delta": 0.0176,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_OBP",
"before": 0.275,
"after": 0.3242,
"delta": 0.0492,
"percent_delta": 0.1791,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.058,
"after": 0.0,
"delta": -0.058,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.802,
"after": 4.0,
"delta": 1.198,
"percent_delta": 0.4276,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.226,
"after": 0.215,
"delta": -0.011,
"percent_delta": -0.0487,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.388,
"after": 0.0,
"delta": -0.388,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.54,
"after": 0.0,
"delta": -0.54,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.12,
"after": 0.0,
"delta": -0.12,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.339,
"after": 0.3242,
"delta": -0.0148,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.339,
"after": 0.0,
"delta": -0.339,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.5,
"after": 0.0,
"delta": -0.5,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.435,
"after": 0.3846,
"delta": -0.0504,
"percent_delta": -0.1159,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.843,
"after": 1.0,
"delta": 0.157,
"percent_delta": 0.1862,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 11,
"boosted_metrics": 2,
"deboosted_metrics": 9,
"better_metrics": 1,
"worse_metrics": 10,
"biggest_boost": {
"metric": "predicted_AB",
"before": 2.802,
"after": 4.0,
"delta": 1.198,
"percent_delta": 0.4276,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 0.54,
"after": 0.0,
"delta": -0.54,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.058 | - |
| predicted_3B | 0.000 | - |
| predicted_AB | 2.802 | - |
| predicted_AVG | 0.226 | - |
| predicted_BB | 0.388 | - |
| predicted_H | 0.540 | - |
| predicted_HR | 0.120 | - |
| predicted_OBP | 0.339 | - |
| predicted_R | 0.339 | - |
| predicted_RBI | 0.500 | - |
| predicted_SLG | 0.435 | - |
| predicted_SO | 0.843 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.051 | -0.007 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 2.792 | -0.010 |
| predicted_AVG | 0.236 | 0.010 |
| predicted_BB | 0.451 | 0.063 |
| predicted_H | 0.604 | 0.064 |
| predicted_HBP | 0.015 | - |
| predicted_HR | 0.142 | 0.022 |
| predicted_OBP | 0.344 | 0.005 |
| predicted_R | 0.435 | 0.096 |
| predicted_RBI | 0.517 | 0.017 |
| predicted_SLG | 0.441 | 0.006 |
| predicted_SO | 0.786 | -0.057 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.051 | 0.000 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 2.792 | 0.000 |
| predicted_AVG | 0.215 | -0.021 |
| predicted_BB | 0.451 | 0.001 |
| predicted_H | 0.600 | -0.004 |
| predicted_HBP | 0.015 | 0.000 |
| predicted_HR | 0.141 | -0.001 |
| predicted_OBP | 0.324 | -0.020 |
| predicted_R | 0.431 | -0.004 |
| predicted_RBI | 0.512 | -0.005 |
| predicted_SLG | 0.385 | -0.056 |
| predicted_SO | 0.785 | -0.001 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=2.80), rates preserved: AVG=0.199 HR/AB=0.050
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=8.0, weight=0.084, BvP AVG=0.125)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.113 | 0.113 |
| 3B | 0.007 | 0.007 |
| BB | 0.271 | 0.271 |
| H | 0.589 | -0.411 |
| HR | 0.131 | 0.131 |
| RBI | 0.318 | -0.682 |
| SO | 0.842 | -0.158 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.113 |
| 3B | 0.000 | -0.007 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | -0.271 |
| H | 0.000 | -0.589 |
| HR | 0.000 | -0.131 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -0.318 |
| SO | 1.000 | 0.158 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.051 |
| predicted_3B | 0.000 | -0.000 |
| predicted_AB | 3.000 | 0.208 |
| predicted_AVG | 0.201 | -0.014 |
| predicted_BB | 0.000 | -0.451 |
| predicted_H | 1.000 | 0.400 |
| predicted_HR | 0.000 | -0.141 |
| predicted_OBP | 0.275 | -0.049 |
| predicted_R | 0.000 | -0.431 |
| predicted_RBI | 1.000 | 0.488 |
| predicted_SLG | 0.378 | -0.007 |
| predicted_SO | 1.000 | 0.215 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 1.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 12.000 | 4.000 | 0.000 | 0.000 | 1.000 | 5.000 | 5.000 | 4.000 | 2.000 | 0.3333 | 0.4444 | 0.5833 | 0.3333 | 0.0833 | 0.4167 | 0.3333 | 0.1667 |
| last_10 | 0.20 | 10 | - | 27.000 | 9.000 | 0.000 | 0.000 | 3.000 | 7.000 | 7.000 | 7.000 | 6.000 | 0.3333 | 0.4444 | 0.6667 | 0.3333 | 0.1111 | 0.2593 | 0.2593 | 0.2222 |
| season | 0.60 | 121 | - | 339.000 | 65.000 | 7.000 | 0.000 | 14.000 | 36.000 | 41.000 | 47.000 | 102.000 | 0.1917 | 0.2926 | 0.3363 | 0.1917 | 0.0413 | 0.1062 | 0.1386 | 0.3009 |
| Metric | Value |
|---|---|
| predicted_2B | 0.0410 |
| predicted_3B | 0.0010 |
| predicted_AB | 2.7790 |
| predicted_AVG | 0.2483 |
| predicted_BB | 0.5340 |
| predicted_H | 0.6900 |
| predicted_HBP | 0.0150 |
| predicted_HR | 0.1710 |
| predicted_OBP | 0.3499 |
| predicted_R | 0.5620 |
| predicted_RBI | 0.5390 |
| predicted_SLG | 0.4486 |
| predicted_SO | 0.7110 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.0580 | 0.0410 | 0.0507 | model_form_blend |
| predicted_3B | 0.0000 | 0.0010 | 0.0004 | model_form_blend |
| predicted_AB | 2.8020 | 2.7790 | 2.7921 | model_form_blend |
| predicted_AVG | 0.2260 | 0.2483 | 0.2356 | model_form_blend |
| predicted_BB | 0.3880 | 0.5340 | 0.4507 | model_form_blend |
| predicted_H | 0.5400 | 0.6900 | 0.6044 | model_form_blend |
| predicted_HBP | - | 0.0150 | 0.0150 | form_only |
| predicted_HR | 0.1200 | 0.1710 | 0.1419 | model_form_blend |
| predicted_OBP | 0.3390 | 0.3499 | 0.3437 | model_form_blend |
| predicted_R | 0.3390 | 0.5620 | 0.4347 | model_form_blend |
| predicted_RBI | 0.5000 | 0.5390 | 0.5167 | model_form_blend |
| predicted_SLG | 0.4350 | 0.4486 | 0.4408 | model_form_blend |
| predicted_SO | 0.8430 | 0.7110 | 0.7863 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 376 |
| Season rows before report date | 376 |
| Report year | 2026 |
| Profile rows used | 121 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 3 |
| Hitting_AVG | 0.333 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 2 |
| Hitting_SAC | 0 |
| Hitting_SF | 1 |
| Hitting_SO | 0 |
| Hitting_TB | 1 |
| Hitting_battingOrder | 8 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | C |
| gameID | 20260930_BOS@NYY |
| game_type | full |
| mlbID | 669224 |
| playerID | 669224 |
| playerName | Austin Wells |
| pos | C |
| started | True |
| startingPosition | C |
| team | NYY |
| teamID | 19 |
| game_date | 2026-09-30 |
| sl_k_percent | 26.5 |
| sl_bb_percent | 12.4 |
| sl_woba | 0.281 |
| sl_xwoba | 0.3 |
| sl_xba | 0.208 |
| sl_xslg | 0.36 |
| sl_sweet_spot_percent | 33.8 |
| sl_barrel_batted_rate | 7.7 |
| sl_hard_hit_percent | 42.7 |
| sl_exit_velocity_avg | 89.3 |
| sl_launch_angle_avg | 20.5 |
| sl_whiff_percent | 27.9 |
| sl_swing_percent | 46.3 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.115 | 0.000 | 0.000 | Hitting_2B | 0.135 | 0.000 | -0.135 | 0.000 |
| predicted_3B | 0.000 | 0.000 | 0.000 | Hitting_3B | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_AB | 2.876 | 3.000 | 3.000 | Hitting_AB | 3.135 | 3.000 | -0.135 | 0.000 |
| predicted_AVG | 0.251 | 0.000 | 0.000 | Hitting_AVG | 0.214 | 0.333 | -0.214 | -0.333 |
| predicted_BB | 0.248 | 0.000 | 0.000 | Hitting_BB | 0.287 | 0.000 | -0.287 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.019 | 0.000 | -0.019 | 0.000 |
| predicted_H | 0.610 | 0.000 | 0.000 | Hitting_H | 0.669 | 1.000 | -0.669 | -1.000 |
| predicted_HR | 0.100 | 0.000 | 0.000 | Hitting_HR | 0.096 | 0.000 | -0.096 | 0.000 |
| predicted_OBP | 0.302 | 0.000 | 0.000 | Hitting_OBP | 0.281 | 0.333 | -0.281 | -0.333 |
| predicted_R | 0.274 | 0.000 | 0.000 | Hitting_R | 0.309 | 0.000 | -0.309 | 0.000 |
| predicted_RBI | 0.510 | 0.000 | 0.000 | Hitting_RBI | 0.366 | 1.000 | -0.366 | -1.000 |
| predicted_SLG | 0.392 | 0.000 | 0.000 | Hitting_SLG | 0.349 | 0.333 | -0.349 | -0.333 |
| predicted_SO | 0.938 | 0.000 | 1.000 | Hitting_SO | 0.997 | 1.000 | -0.997 | -1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 11 |
| Boosted Metrics | 1 |
| Deboosted Metrics | 10 |
| Better Metrics | 2 |
| Worse Metrics | 9 |
| Biggest Boost | predicted_AB: 2.8760 -> 3.0000 (boost 0.1240, better) |
| Biggest Deboost | predicted_SO: 0.9380 -> 0.0000 (deboost -0.9380, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 2 | 2 | 0 | 2 | 0 | predicted_RBI: 0.5100 -> 0.5741 (boost 0.0641, better) | - | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 3 | 0 | 3 | 0 | 3 | - | predicted_AVG: 0.2474 -> 0.2238 (deboost -0.0236, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 4 | 3 | 3 | 4 | predicted_RBI: 0.5687 -> 1.0000 (boost 0.4313, better) | predicted_BB: 0.2415 -> 0.0000 (deboost -0.2415, worse) | AB rounded to 3 (raw=2.90), rates preserved: AVG=0.207 HR/AB=0.037 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=10.0, weight=0.100, BvP AVG=0.100) |
| 7 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.3066 -> 0.0000 (deboost -0.3066, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 4 | 2 | 3 | 3 | predicted_BB: 0.0000 -> 0.2057 (boost 0.2057, better) | predicted_RBI: 1.0000 -> 0.4009 (deboost -0.5991, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 9 | lineup_integer_allocation | 6 | 0 | 6 | 1 | 5 | - | predicted_H: 0.6515 -> 0.0000 (deboost -0.6515, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 10 | embedded_savant_player_context | 5 | 2 | 3 | 2 | 3 | predicted_H: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_OBP: 0.2834 -> 0.2680 (deboost -0.0154, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | simulation_box_score_reference | 3 | 0 | 3 | 1 | 2 | - | predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 12 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_OBP: 0.2680 -> 0.2834 (boost 0.0154, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "641857",
"player_name": "Ryan McMahon",
"position": "3B",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.115,
"predicted_3B": 0.0,
"predicted_AB": 2.876,
"predicted_AVG": 0.251,
"predicted_BB": 0.248,
"predicted_H": 0.61,
"predicted_HR": 0.1,
"predicted_OBP": 0.302,
"predicted_R": 0.274,
"predicted_RBI": 0.51,
"predicted_SLG": 0.392,
"predicted_SO": 0.938
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1227,
"predicted_3B": 0.0004,
"predicted_AB": 2.9029,
"predicted_AVG": 0.2474,
"predicted_BB": 0.2412,
"predicted_H": 0.654,
"predicted_HBP": 0.007,
"predicted_HR": 0.1085,
"predicted_OBP": 0.3009,
"predicted_R": 0.3095,
"predicted_RBI": 0.5741,
"predicted_SLG": 0.4003,
"predicted_SO": 0.9483
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.115,
"after": 0.1227,
"delta": 0.0077,
"percent_delta": 0.067,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0004,
"delta": 0.0004,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.876,
"after": 2.9029,
"delta": 0.0269,
"percent_delta": 0.0094,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.251,
"after": 0.2474,
"delta": -0.0036,
"percent_delta": -0.0143,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.248,
"after": 0.2412,
"delta": -0.0068,
"percent_delta": -0.0274,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.61,
"after": 0.654,
"delta": 0.044,
"percent_delta": 0.0721,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1,
"after": 0.1085,
"delta": 0.0085,
"percent_delta": 0.085,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.302,
"after": 0.3009,
"delta": -0.0011,
"percent_delta": -0.0036,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.274,
"after": 0.3095,
"delta": 0.0355,
"percent_delta": 0.1296,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.51,
"after": 0.5741,
"delta": 0.0641,
"percent_delta": 0.1257,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.392,
"after": 0.4003,
"delta": 0.0083,
"percent_delta": 0.0212,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.938,
"after": 0.9483,
"delta": 0.0103,
"percent_delta": 0.011,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.51,
"after": 0.5741,
"delta": 0.0641,
"percent_delta": 0.1257,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 113
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1227,
"predicted_3B": 0.0004,
"predicted_AB": 2.9029,
"predicted_AVG": 0.2238,
"predicted_BB": 0.2415,
"predicted_H": 0.6496,
"predicted_HBP": 0.007,
"predicted_HR": 0.1076,
"predicted_OBP": 0.2834,
"predicted_R": 0.3066,
"predicted_RBI": 0.5687,
"predicted_SLG": 0.3775,
"predicted_SO": 0.947
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1227,
"after": 0.1227,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0004,
"after": 0.0004,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.9029,
"after": 2.9029,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2474,
"after": 0.2238,
"delta": -0.0236,
"percent_delta": -0.0954,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.2412,
"after": 0.2415,
"delta": 0.0003,
"percent_delta": 0.0012,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.654,
"after": 0.6496,
"delta": -0.0044,
"percent_delta": -0.0067,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.007,
"after": 0.007,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1085,
"after": 0.1076,
"delta": -0.0009,
"percent_delta": -0.0083,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3009,
"after": 0.2834,
"delta": -0.0175,
"percent_delta": -0.0582,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.3095,
"after": 0.3066,
"delta": -0.0029,
"percent_delta": -0.0094,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5741,
"after": 0.5687,
"delta": -0.0054,
"percent_delta": -0.0094,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4003,
"after": 0.3775,
"delta": -0.0228,
"percent_delta": -0.057,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.9483,
"after": 0.947,
"delta": -0.0013,
"percent_delta": -0.0014,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_AVG",
"before": 0.2474,
"after": 0.2238,
"delta": -0.0236,
"percent_delta": -0.0954,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 3 (raw=2.90), rates preserved: AVG=0.207 HR/AB=0.037",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1227,
"after": 0.0,
"delta": -0.1227,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0004,
"after": 0.0,
"delta": -0.0004,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.9029,
"after": 3.0,
"delta": 0.0971,
"percent_delta": 0.0334,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.2415,
"after": 0.0,
"delta": -0.2415,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.6496,
"after": 1.0,
"delta": 0.3504,
"percent_delta": 0.5394,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.007,
"after": 0.0,
"delta": -0.007,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1076,
"after": 0.0,
"delta": -0.1076,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.5687,
"after": 1.0,
"delta": 0.4313,
"percent_delta": 0.7584,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.947,
"after": 1.0,
"delta": 0.053,
"percent_delta": 0.056,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 4,
"deboosted_metrics": 3,
"better_metrics": 3,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.5687,
"after": 1.0,
"delta": 0.4313,
"percent_delta": 0.7584,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.2415,
"after": 0.0,
"delta": -0.2415,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "bvp_blend",
"description": "Sample-size BvP blend (BvP AB=10.0, weight=0.100, BvP AVG=0.100)",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {
"model_expectation": 0.9,
"bvp": 0.1
},
"window_games": {}
},
{
"index": 7,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.3066,
"after": 0.0,
"delta": -0.3066,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_R",
"before": 0.3066,
"after": 0.0,
"delta": -0.3066,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1549,
"predicted_3B": 0.0072,
"predicted_BB": 0.2057,
"predicted_H": 0.6515,
"predicted_HR": 0.1053,
"predicted_RBI": 0.4009,
"predicted_SO": 1.1034
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1549,
"delta": 0.1549,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0072,
"delta": 0.0072,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.2057,
"delta": 0.2057,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.6515,
"delta": -0.3485,
"percent_delta": -0.3485,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1053,
"delta": 0.1053,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.4009,
"delta": -0.5991,
"percent_delta": -0.5991,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.1034,
"delta": 0.1034,
"percent_delta": 0.1034,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 3,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 0.2057,
"delta": 0.2057,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.4009,
"delta": -0.5991,
"percent_delta": -0.5991,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1549,
"after": 0.0,
"delta": -0.1549,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0072,
"after": 0.0,
"delta": -0.0072,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.2057,
"after": 0.0,
"delta": -0.2057,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.6515,
"after": 0.0,
"delta": -0.6515,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1053,
"after": 0.0,
"delta": -0.1053,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.4009,
"after": 0.0,
"delta": -0.4009,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.1034,
"after": 1.0,
"delta": -0.1034,
"percent_delta": -0.0937,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 0,
"deboosted_metrics": 6,
"better_metrics": 1,
"worse_metrics": 5,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 0.6515,
"after": 0.0,
"delta": -0.6515,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.212,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.268,
"predicted_R": 0.0,
"predicted_RBI": 1.0,
"predicted_SLG": 0.371,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2238,
"after": 0.212,
"delta": -0.0118,
"percent_delta": -0.0527,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_H",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_OBP",
"before": 0.2834,
"after": 0.268,
"delta": -0.0154,
"percent_delta": -0.0543,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.3775,
"after": 0.371,
"delta": -0.0065,
"percent_delta": -0.0172,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 2,
"deboosted_metrics": 3,
"better_metrics": 2,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.2834,
"after": 0.268,
"delta": -0.0154,
"percent_delta": -0.0543,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 1,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 12,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.2238,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.2834,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.3775,
"predicted_SO": 0.0,
"predicted_TB": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.212,
"after": 0.2238,
"delta": 0.0118,
"percent_delta": 0.0556,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.268,
"after": 0.2834,
"delta": 0.0154,
"percent_delta": 0.0575,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.371,
"after": 0.3775,
"delta": 0.0065,
"percent_delta": 0.0176,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_OBP",
"before": 0.268,
"after": 0.2834,
"delta": 0.0154,
"percent_delta": 0.0575,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.115,
"after": 0.0,
"delta": -0.115,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.876,
"after": 3.0,
"delta": 0.124,
"percent_delta": 0.0431,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.251,
"after": 0.2238,
"delta": -0.0272,
"percent_delta": -0.1084,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.248,
"after": 0.0,
"delta": -0.248,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.61,
"after": 0.0,
"delta": -0.61,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1,
"after": 0.0,
"delta": -0.1,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.302,
"after": 0.2834,
"delta": -0.0186,
"percent_delta": -0.0616,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.274,
"after": 0.0,
"delta": -0.274,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.51,
"after": 0.0,
"delta": -0.51,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.392,
"after": 0.3775,
"delta": -0.0145,
"percent_delta": -0.037,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.938,
"after": 0.0,
"delta": -0.938,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 11,
"boosted_metrics": 1,
"deboosted_metrics": 10,
"better_metrics": 2,
"worse_metrics": 9,
"biggest_boost": {
"metric": "predicted_AB",
"before": 2.876,
"after": 3.0,
"delta": 0.124,
"percent_delta": 0.0431,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 0.938,
"after": 0.0,
"delta": -0.938,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.115 | - |
| predicted_3B | 0.000 | - |
| predicted_AB | 2.876 | - |
| predicted_AVG | 0.251 | - |
| predicted_BB | 0.248 | - |
| predicted_H | 0.610 | - |
| predicted_HR | 0.100 | - |
| predicted_OBP | 0.302 | - |
| predicted_R | 0.274 | - |
| predicted_RBI | 0.510 | - |
| predicted_SLG | 0.392 | - |
| predicted_SO | 0.938 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.123 | 0.008 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 2.903 | 0.027 |
| predicted_AVG | 0.247 | -0.004 |
| predicted_BB | 0.241 | -0.007 |
| predicted_H | 0.654 | 0.044 |
| predicted_HBP | 0.007 | - |
| predicted_HR | 0.108 | 0.008 |
| predicted_OBP | 0.301 | -0.001 |
| predicted_R | 0.309 | 0.035 |
| predicted_RBI | 0.574 | 0.064 |
| predicted_SLG | 0.400 | 0.008 |
| predicted_SO | 0.948 | 0.010 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.123 | 0.000 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 2.903 | 0.000 |
| predicted_AVG | 0.224 | -0.024 |
| predicted_BB | 0.241 | 0.000 |
| predicted_H | 0.650 | -0.004 |
| predicted_HBP | 0.007 | 0.000 |
| predicted_HR | 0.108 | -0.001 |
| predicted_OBP | 0.283 | -0.018 |
| predicted_R | 0.307 | -0.003 |
| predicted_RBI | 0.569 | -0.005 |
| predicted_SLG | 0.378 | -0.023 |
| predicted_SO | 0.947 | -0.001 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=2.90), rates preserved: AVG=0.207 HR/AB=0.037
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=10.0, weight=0.100, BvP AVG=0.100)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.155 | 0.155 |
| 3B | 0.007 | 0.007 |
| BB | 0.206 | 0.206 |
| H | 0.651 | -0.349 |
| HR | 0.105 | 0.105 |
| RBI | 0.401 | -0.599 |
| SO | 1.103 | 0.103 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.155 |
| 3B | 0.000 | -0.007 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | -0.206 |
| H | 0.000 | -0.651 |
| HR | 0.000 | -0.105 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -0.401 |
| SO | 1.000 | -0.103 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.123 |
| predicted_3B | 0.000 | -0.000 |
| predicted_AB | 3.000 | 0.097 |
| predicted_AVG | 0.212 | -0.012 |
| predicted_BB | 0.000 | -0.241 |
| predicted_H | 1.000 | 0.350 |
| predicted_HR | 0.000 | -0.108 |
| predicted_OBP | 0.268 | -0.015 |
| predicted_R | 0.000 | -0.307 |
| predicted_RBI | 1.000 | 0.431 |
| predicted_SLG | 0.371 | -0.007 |
| predicted_SO | 1.000 | 0.053 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 3.000 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 14.000 | 5.000 | 1.000 | 0.000 | 1.000 | 7.000 | 3.000 | 1.000 | 5.000 | 0.3571 | 0.4000 | 0.6429 | 0.3571 | 0.0714 | 0.5000 | 0.0714 | 0.3571 |
| last_10 | 0.20 | 10 | - | 29.000 | 6.000 | 1.000 | 0.000 | 1.000 | 8.000 | 3.000 | 2.000 | 10.000 | 0.2069 | 0.2581 | 0.3448 | 0.2069 | 0.0345 | 0.2759 | 0.0690 | 0.3448 |
| season | 0.60 | 113 | - | 325.000 | 70.000 | 13.000 | 0.000 | 11.000 | 42.000 | 31.000 | 28.000 | 106.000 | 0.2154 | 0.2789 | 0.3569 | 0.2154 | 0.0338 | 0.1292 | 0.0862 | 0.3261 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1330 |
| predicted_3B | 0.0010 |
| predicted_AB | 2.9390 |
| predicted_AVG | 0.2425 |
| predicted_BB | 0.2320 |
| predicted_H | 0.7130 |
| predicted_HBP | 0.0070 |
| predicted_HR | 0.1200 |
| predicted_OBP | 0.2995 |
| predicted_R | 0.3570 |
| predicted_RBI | 0.6600 |
| predicted_SLG | 0.4114 |
| predicted_SO | 0.9620 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1150 | 0.1330 | 0.1227 | model_form_blend |
| predicted_3B | 0.0000 | 0.0010 | 0.0004 | model_form_blend |
| predicted_AB | 2.8760 | 2.9390 | 2.9029 | model_form_blend |
| predicted_AVG | 0.2510 | 0.2425 | 0.2474 | model_form_blend |
| predicted_BB | 0.2480 | 0.2320 | 0.2412 | model_form_blend |
| predicted_H | 0.6100 | 0.7130 | 0.6540 | model_form_blend |
| predicted_HBP | - | 0.0070 | 0.0070 | form_only |
| predicted_HR | 0.1000 | 0.1200 | 0.1085 | model_form_blend |
| predicted_OBP | 0.3020 | 0.2995 | 0.3009 | model_form_blend |
| predicted_R | 0.2740 | 0.3570 | 0.3095 | model_form_blend |
| predicted_RBI | 0.5100 | 0.6600 | 0.5741 | model_form_blend |
| predicted_SLG | 0.3920 | 0.4114 | 0.4003 | model_form_blend |
| predicted_SO | 0.9380 | 0.9620 | 0.9483 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 363 |
| Season rows before report date | 363 |
| Report year | 2026 |
| Profile rows used | 113 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 3 |
| AB | 3 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 3 |
| Hitting_AVG | 0.333 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 1 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 1 |
| Hitting_battingOrder | 9 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | 3B |
| gameID | 20260930_BOS@NYY |
| game_type | full |
| mlbID | 641857 |
| playerID | 641857 |
| playerName | Ryan McMahon |
| pos | 3B |
| started | True |
| startingPosition | 3B |
| team | NYY |
| teamID | 19 |
| game_date | 2026-09-30 |
| sl_k_percent | 29.4 |
| sl_bb_percent | 7.8 |
| sl_woba | 0.282 |
| sl_xwoba | 0.297 |
| sl_xba | 0.23 |
| sl_xslg | 0.381 |
| sl_sweet_spot_percent | 32.1 |
| sl_barrel_batted_rate | 9.0 |
| sl_hard_hit_percent | 44.8 |
| sl_exit_velocity_avg | 90.5 |
| sl_launch_angle_avg | 14.3 |
| sl_whiff_percent | 30.2 |
| sl_swing_percent | 45.5 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 3.000 | 3.000 | 3.000 | Pitching_BB | 1.136 | 3.000 | 1.864 | 0.000 |
| predicted_ER | 3.000 | 3.000 | 3.000 | Pitching_ER | 2.318 | 2.000 | 0.682 | 1.000 |
| predicted_H | 7.000 | 7.000 | 7.000 | Pitching_H | 5.227 | 3.000 | 1.773 | 4.000 |
| predicted_IP | 5.200 | 5.200 | 5.200 | Pitching_InningsPitched | 5.645 | 5.200 | -0.445 | 0.000 |
| predicted_SO | 6.000 | 6.000 | 6.000 | Pitching_SO | 5.955 | 8.000 | 0.045 | -2.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_form_blend |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 4 |
| Boosted Metrics | 1 |
| Deboosted Metrics | 3 |
| Better Metrics | 3 |
| Worse Metrics | 1 |
| Biggest Boost | predicted_SO: 5.0000 -> 6.0000 (boost 1.0000, better) |
| Biggest Deboost | predicted_ER: 4.0000 -> 3.0000 (deboost -1.0000, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 2 | pitcher_quality_guardrail | 3 | 1 | 2 | 2 | 1 | predicted_SO: 5.0000 -> 6.0000 (boost 1.0000, better) | predicted_ER: 4.0000 -> 3.0000 (deboost -1.0000, better) | Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form. |
| 3 | current_json_final | 1 | 0 | 1 | 1 | 0 | - | predicted_H: 8.0000 -> 7.0000 (deboost -1.0000, better) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "pitcher",
"player_id": "543037",
"player_name": "Gerrit Cole",
"position": "Starter",
"team": "NYY",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 4.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 5.6667,
"predicted_SO": 5.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 8.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 8.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.6667,
"after": 5.2,
"delta": -0.4667,
"percent_delta": -0.0824,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 3.0,
"predicted_H": 7.0,
"predicted_HR": 0.0,
"predicted_IP": 5.2,
"predicted_R": 3.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 7.0,
"delta": -1.0,
"percent_delta": -0.125,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.2,
"after": 5.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 8.0,
"after": 7.0,
"delta": -1.0,
"percent_delta": -0.125,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 8.0,
"after": 7.0,
"delta": -1.0,
"percent_delta": -0.125,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 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": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 1,
"deboosted_metrics": 3,
"better_metrics": 3,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 5.0,
"after": 6.0,
"delta": 1.0,
"percent_delta": 0.2,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_ER",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
}Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 3.000 | - |
| predicted_ER | 4.000 | - |
| predicted_H | 8.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 5.667 | - |
| predicted_SO | 5.000 | - |
Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 3.000 | 0.000 |
| predicted_ER | 3.000 | -1.000 |
| predicted_H | 8.000 | 0.000 |
| predicted_HR | 0.000 | 0.000 |
| predicted_IP | 5.200 | -0.467 |
| predicted_SO | 6.000 | 1.000 |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 28.100 | 16.000 | 30.000 | 4.000 | 26.000 | 9.000 | 5.0824 | 1.2000 | 0.5647 | 1.0588 | 0.1412 | 0.9176 | 0.3176 |
| last_10 | 0.35 | 10 | 59.000 | 24.000 | 55.000 | 11.000 | 58.000 | 11.000 | 3.6610 | 1.1186 | 0.4068 | 0.9322 | 0.1864 | 0.9830 | 0.1864 |
| season | 0.20 | 22 | 127.000 | 51.000 | 115.000 | 25.000 | 131.000 | 22.000 | 3.6142 | 1.1024 | 0.4016 | 0.9055 | 0.1968 | 1.0315 | 0.1732 |
| Metric | Value |
|---|---|
| predicted_BB | 1.1940 |
| predicted_ER | 2.7850 |
| predicted_ERA | 4.3502 |
| predicted_H | 5.6690 |
| predicted_HR | 1.2980 |
| predicted_IP | 5.2000 |
| predicted_SO | 5.5180 |
| predicted_WHIP | 1.1912 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 3.0000 | 1.1940 | 1.9674 | model_form_blend |
| predicted_ER | 4.0000 | 2.7850 | 3.3053 | model_form_blend |
| predicted_ERA | - | 4.3502 | 4.3502 | form_only |
| predicted_H | 8.0000 | 5.6690 | 6.6672 | model_form_blend |
| predicted_HR | 0.0000 | 1.2980 | 0.7421 | model_form_blend |
| predicted_IP | 5.2000 | 5.2000 | 5.2000 | model_form_blend |
| predicted_SO | 5.0000 | 5.5180 | 5.2962 | model_form_blend |
| predicted_WHIP | - | 1.1912 | 1.1912 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 22 |
| Season rows before report date | 22 |
| Report year | 2026 |
| Profile rows used | 22 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 5.2 |
| H | 7 |
| R | 3 |
| ER | 3 |
| BB | 3 |
| SO | 6 |
| HR | 0 |
| BF | 27 |
| Pitches | 104 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 3 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 22 |
| Pitching_ER | 2 |
| Pitching_ERA | 3.61 |
| Pitching_Flyouts | 1 |
| Pitching_Groundouts | 3 |
| Pitching_H | 3 |
| Pitching_HBP | 0 |
| Pitching_HR | 1 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 5.2 |
| Pitching_Pitches | 105 |
| Pitching_R | 2 |
| Pitching_SO | 8 |
| Pitching_Strikes | 63 |
| Pitching_Wild Pitch | 0 |
| Pitching_decision | W |
| Pitching_pitchingOrder | 1 |
| allPositionsPlayed | P |
| gameID | 20260923_TB@NYY |
| game_type | full |
| mlbID | 543037 |
| playerID | 543037 |
| playerName | Gerrit Cole |
| pos | P |
| started | True |
| startingPosition | P |
| team | NYY |
| teamID | 19 |
| game_date | 2026-09-23 |
| sl_k_percent | 25.2 |
| sl_bb_percent | 4.8 |
| sl_woba | 0.302 |
| sl_xwoba | 0.3 |
| sl_sweet_spot_percent | 36.2 |
| sl_barrel_batted_rate | 9.0 |
| sl_hard_hit_percent | 44.6 |
| sl_whiff_percent | 21.3 |
| sl_swing_percent | 49.2 |
| sl_avg_best_speed | 81.410383164 |
| sl_avg_hyper_speed | 94.50239887 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 0.000 | 0.000 | 0.000 | Pitching_BB | 0.329 | 0.000 | -0.329 | 0.000 |
| predicted_ER | 0.000 | 0.000 | 0.000 | Pitching_ER | 0.232 | 0.000 | -0.232 | 0.000 |
| predicted_H | 0.000 | 0.000 | 0.000 | Pitching_H | 0.829 | 0.000 | -0.829 | 0.000 |
| predicted_IP | 1.200 | 1.200 | 1.200 | Pitching_InningsPitched | 0.766 | 0.100 | 0.434 | 1.100 |
| predicted_SO | 1.000 | 1.000 | 1.000 | Pitching_SO | 1.195 | 0.000 | -0.195 | 1.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_form_blend |
| To | current_json_final |
| Dominant Effect | neutral |
| Changed Metrics | 2 |
| Boosted Metrics | 1 |
| Deboosted Metrics | 1 |
| Better Metrics | 1 |
| Worse Metrics | 1 |
| Biggest Boost | predicted_IP: 0.6667 -> 1.2000 (boost 0.5333, better) |
| Biggest Deboost | predicted_SO: 2.0000 -> 1.0000 (deboost -1.0000, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 2 | current_json_final | 2 | 1 | 1 | 1 | 1 | predicted_IP: 0.6667 -> 1.2000 (boost 0.5333, better) | predicted_SO: 2.0000 -> 1.0000 (deboost -1.0000, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "pitcher",
"player_id": "687396",
"player_name": "Brent Headrick",
"position": "Setup Man",
"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": 0.0,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 0.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": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 1.2,
"predicted_R": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 0.6667,
"after": 1.2,
"delta": 0.5333,
"percent_delta": 0.8,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_IP",
"before": 0.6667,
"after": 1.2,
"delta": 0.5333,
"percent_delta": 0.8,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 0.6667,
"after": 1.2,
"delta": 0.5333,
"percent_delta": 0.7999,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_IP",
"before": 0.6667,
"after": 1.2,
"delta": 0.5333,
"percent_delta": 0.7999,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "neutral"
}
}
}Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 0.000 | - |
| predicted_ER | 0.000 | - |
| predicted_H | 0.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 0.667 | - |
| predicted_SO | 2.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 3.000 | 3.000 | 4.000 | 3.000 | 4.000 | 1.000 | 9.0000 | 2.3333 | 1.0000 | 1.3333 | 1.0000 | 1.3333 | 0.3333 |
| last_10 | 0.35 | 10 | 7.100 | 4.000 | 6.000 | 6.000 | 9.000 | 1.000 | 4.9091 | 1.6364 | 0.5454 | 0.8182 | 0.8182 | 1.2273 | 0.1364 |
| season | 0.20 | 82 | 78.200 | 19.000 | 68.000 | 27.000 | 98.000 | 5.000 | 2.1737 | 1.2076 | 0.2415 | 0.8644 | 0.3432 | 1.2458 | 0.0636 |
| Metric | Value |
|---|---|
| predicted_BB | 0.5060 |
| predicted_ER | 0.4650 |
| predicted_ERA | 5.8273 |
| predicted_H | 0.7470 |
| predicted_HR | 0.1400 |
| predicted_IP | 0.2000 |
| predicted_SO | 0.8590 |
| predicted_WHIP | 1.7462 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 0.0000 | 0.5060 | 0.2785 | model_form_blend |
| predicted_ER | 0.0000 | 0.4650 | 0.2559 | model_form_blend |
| predicted_ERA | - | 5.8273 | 5.8273 | form_only |
| predicted_H | 0.0000 | 0.7470 | 0.4112 | model_form_blend |
| predicted_HR | 0.0000 | 0.1400 | 0.0771 | model_form_blend |
| predicted_IP | 0.2000 | 0.2000 | 0.2000 | model_form_blend |
| predicted_SO | 2.0000 | 0.8590 | 1.3720 | model_form_blend |
| predicted_WHIP | - | 1.7462 | 1.7462 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 82 |
| Season rows before report date | 82 |
| Report year | 2026 |
| Profile rows used | 82 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 1.2 |
| H | 0 |
| R | 0 |
| ER | 0 |
| BB | 0 |
| SO | 1 |
| HR | 0 |
| BF | 5 |
| Pitches | 17 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 1 |
| Pitching_ER | 0 |
| Pitching_ERA | 0.00 |
| Pitching_Flyouts | 1 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.1 |
| Pitching_Pitches | 3 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 2 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 3 |
| allPositionsPlayed | P |
| gameID | 20260930_BOS@NYY |
| game_type | full |
| mlbID | 687396 |
| playerID | 687396 |
| playerName | Brent Headrick |
| pos | P |
| started | False |
| startingPosition | P |
| team | NYY |
| teamID | 19 |
| game_date | 2026-09-30 |
| sl_k_percent | 30.1 |
| sl_bb_percent | 8.3 |
| sl_woba | 0.29 |
| sl_xwoba | 0.271 |
| sl_sweet_spot_percent | 38.8 |
| sl_barrel_batted_rate | 4.5 |
| sl_hard_hit_percent | 37.3 |
| sl_whiff_percent | 31.8 |
| sl_swing_percent | 52.6 |
| sl_avg_best_speed | 77.012885876 |
| sl_avg_hyper_speed | 93.769256218 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 0.000 | 0.000 | 0.000 | Pitching_BB | 0.323 | 1.000 | -0.323 | -1.000 |
| predicted_ER | 1.000 | 1.000 | 1.000 | Pitching_ER | 0.292 | 0.000 | 0.708 | 1.000 |
| predicted_H | 1.000 | 1.000 | 1.000 | Pitching_H | 0.800 | 0.000 | 0.200 | 1.000 |
| predicted_IP | 0.200 | 0.200 | 0.200 | Pitching_InningsPitched | 1.014 | 1.000 | -0.814 | -0.800 |
| predicted_SO | 0.000 | 0.000 | 0.000 | Pitching_SO | 1.185 | 1.000 | -1.185 | -1.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_form_blend |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 3 |
| Boosted Metrics | 2 |
| Deboosted Metrics | 1 |
| Better Metrics | 0 |
| Worse Metrics | 3 |
| Biggest Boost | predicted_ER: 0.0000 -> 1.0000 (boost 1.0000, worse) |
| Biggest Deboost | predicted_IP: 0.3333 -> 0.2000 (deboost -0.1333, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 2 | pitcher_quality_run_redistribution | 3 | 2 | 1 | 0 | 3 | predicted_ER: 0.0000 -> 1.0000 (boost 1.0000, worse) | predicted_IP: 0.3333 -> 0.2000 (deboost -0.1333, worse) | Runs moved off a protected strong starter and assigned to bullpen exposure to keep team totals coherent. |
| 3 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "pitcher",
"player_id": "670280",
"player_name": "David Bednar",
"position": "Closer",
"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": 0.0,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 0.3333,
"predicted_SO": 0.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_run_redistribution",
"description": "Runs moved off a protected strong starter and assigned to bullpen exposure to keep team totals coherent.",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 0.2,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 0.3333,
"after": 0.2,
"delta": -0.1333,
"percent_delta": -0.4,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 2,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_ER",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 0.3333,
"after": 0.2,
"delta": -0.1333,
"percent_delta": -0.4,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 0.2,
"predicted_R": 1.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 0.2,
"after": 0.2,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 0.3333,
"after": 0.2,
"delta": -0.1333,
"percent_delta": -0.3999,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 2,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_ER",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_IP",
"before": 0.3333,
"after": 0.2,
"delta": -0.1333,
"percent_delta": -0.3999,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 0.000 | - |
| predicted_ER | 0.000 | - |
| predicted_H | 0.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 0.333 | - |
| predicted_SO | 0.000 | - |
Runs moved off a protected strong starter and assigned to bullpen exposure to keep team totals coherent.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 0.000 | 0.000 |
| predicted_ER | 1.000 | 1.000 |
| predicted_H | 1.000 | 1.000 |
| predicted_HR | 0.000 | 0.000 |
| predicted_IP | 0.200 | -0.133 |
| predicted_SO | 0.000 | 0.000 |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 6.000 | 0.000 | 4.000 | 3.000 | 5.000 | 0.000 | 0.0000 | 1.1667 | 0.0000 | 0.6667 | 0.5000 | 0.8333 | 0.0000 |
| last_10 | 0.35 | 10 | 11.000 | 1.000 | 9.000 | 3.000 | 12.000 | 1.000 | 0.8182 | 1.0909 | 0.0909 | 0.8182 | 0.2727 | 1.0909 | 0.0909 |
| season | 0.20 | 65 | 70.100 | 19.000 | 52.000 | 21.000 | 77.000 | 4.000 | 2.4313 | 1.0379 | 0.2701 | 0.7393 | 0.2986 | 1.0948 | 0.0569 |
| Metric | Value |
|---|---|
| predicted_BB | 0.3570 |
| predicted_ER | 0.1840 |
| predicted_ERA | 1.7568 |
| predicted_H | 0.7510 |
| predicted_HR | 0.0660 |
| predicted_IP | 1.0000 |
| predicted_SO | 0.9070 |
| predicted_WHIP | 1.1783 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 0.0000 | 0.3570 | 0.1934 | model_form_blend |
| predicted_ER | 0.0000 | 0.1840 | 0.0997 | model_form_blend |
| predicted_ERA | - | 1.7568 | 1.7568 | form_only |
| predicted_H | 0.0000 | 0.7510 | 0.4068 | model_form_blend |
| predicted_HR | 0.0000 | 0.0660 | 0.0357 | model_form_blend |
| predicted_IP | 0.1000 | 1.0000 | 0.2000 | model_form_blend |
| predicted_SO | 0.0000 | 0.9070 | 0.4913 | model_form_blend |
| predicted_WHIP | - | 1.1783 | 1.1783 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 65 |
| Season rows before report date | 65 |
| Report year | 2026 |
| Profile rows used | 65 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 0.2 |
| H | 1 |
| R | 1 |
| ER | 1 |
| BB | 0 |
| SO | 0 |
| HR | 0 |
| BF | 3 |
| Pitches | 11 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 1 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 4 |
| Pitching_ER | 0 |
| Pitching_ERA | 0.00 |
| Pitching_Flyouts | 1 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 1.0 |
| Pitching_Pitches | 22 |
| Pitching_R | 0 |
| Pitching_SO | 1 |
| Pitching_Strikes | 13 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 4 |
| allPositionsPlayed | P |
| gameID | 20260930_BOS@NYY |
| game_type | full |
| mlbID | 670280 |
| playerID | 670280 |
| playerName | David Bednar |
| pos | P |
| started | False |
| startingPosition | P |
| team | NYY |
| teamID | 19 |
| game_date | 2026-09-30 |
| sl_k_percent | 27.1 |
| sl_bb_percent | 7.1 |
| sl_woba | 0.249 |
| sl_xwoba | 0.263 |
| sl_sweet_spot_percent | 26.4 |
| sl_barrel_batted_rate | 4.9 |
| sl_hard_hit_percent | 35.7 |
| sl_whiff_percent | 30.8 |
| sl_swing_percent | 53.1 |
| sl_avg_best_speed | 76.065211111 |
| sl_avg_hyper_speed | 93.295998994 |
| Field | Value |
|---|---|
| Pitcher | Drew Rasmussen |
| Role | Starter |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 0.5597 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | 0.1407 |
| Avg Velo | 92.3759 |
| Avg Spin | 2355.1144 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 6 |
| Pre ER | 2 |
| Pre H | 1 |
| Pre BB | 3 |
| Pre SO | 5 |
| Season ERA | 2.6686 |
| Season WHIP | 0.9128 |
| Role Avg IP | 5.7330 |
| Recent Avg IP | 6.3330 |
| Last Start IP | 6.2000 |
{
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TB",
"games": 162,
"wins": 98,
"losses": 64,
"win_pct": 0.6049,
"runs_scored": 736.0,
"runs_allowed": 650.0,
"run_differential": 86.0,
"run_differential_per_game": 0.5309,
"avg_runs_scored": 4.5432,
"avg_runs_allowed": 4.0123,
"offense_index": 1.0116,
"defense_index": 1.1193,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 3.2,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.1542
},
"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.0221,
"defense_index": 1.2031,
"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.0167,
"offense_edge": 0.0116,
"opponent_offense_edge": 0.0221,
"defense_strength": 0.1193,
"opponent_defense_weakness": -0.2031,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.002,
"run_prevention": 0.9924,
"strikeout": 0.9977
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "656876",
"profile": {
"available": true,
"pitcher_id": "656876",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 645.0,
"k_percent": 26.0,
"bb_percent": 4.8,
"woba": 0.243,
"xwoba": 0.271,
"sweet_spot_percent": 32.5,
"barrel_batted_rate": 5.9,
"hard_hit_percent": 33.8,
"avg_best_speed": 77.4285,
"avg_hyper_speed": 93.597,
"whiff_percent": 25.1,
"swing_percent": 50.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.906,
"command_and_miss": 0.4657,
"regression_edge": -0.8,
"xwoba_edge": 1.1714,
"barrel_edge": 0.2889,
"hard_hit_edge": 0.5857,
"whiff_edge": -0.0143,
"bb_edge": 1.1,
"pitch_design_score": 0.1407
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "656876",
"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": 92.37588033984052,
"release_spin_rate": 2355.1143668897917,
"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": 92.37588033984052,
"release_spin_rate": 2355.1143668897917,
"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.3759,
"release_spin_rate": 2355.1144,
"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.1407,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.0047,
"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.5597,
"sample_weight": 1.0,
"run_prevention_factor": 0.9524,
"strikeout_factor": 1.0217,
"walk_factor": 0.912,
"homer_factor": 0.9183,
"woba_minus_xwoba": -0.028,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "656876",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.9524,
"adjusted": 1
},
"predicted_H": {
"original": 4.0,
"factor": 0.9524,
"adjusted": 4
},
"predicted_BB": {
"original": 1.0,
"factor": 0.912,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9183,
"adjusted": 0
},
"predicted_SO": {
"original": 6.0,
"factor": 1.0217,
"adjusted": 6
}
}
}
}{
"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.2,
"ER": 13,
"H": 40,
"BB": 13,
"SO": 62,
"HR": 2,
"ERA": 1.9285714285714284,
"WHIP": 0.8736263736263735,
"K9": 9.197802197802197,
"HR9": 0.2967032967032967,
"games_pitched": 10,
"quality_starts": 7,
"dominant_form": true,
"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"
}{
"available": true,
"pitcher_id": "656876",
"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": 92.37588033984052,
"release_spin_rate": 2355.1143668897917,
"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": 92.37588033984052,
"release_spin_rate": 2355.1143668897917,
"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.3759,
"release_spin_rate": 2355.1144,
"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.1407,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.0047,
"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."
}{
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "656876",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 31.2,
"ER": 5.0,
"R": 5.0,
"H": 20.0,
"BB": 7.0,
"SO": 31.0,
"HR": 1.0,
"BF": 119.0,
"Pitches": 476.0
},
"per_game": {
"IP": 6.1,
"ER": 1.0,
"R": 1.0,
"H": 4.0,
"BB": 1.4,
"SO": 6.2,
"HR": 0.2,
"BF": 23.8,
"Pitches": 95.2
},
"rates": {
"ERA": 1.4211,
"WHIP": 0.8526,
"ER_per_IP": 0.15789,
"H_per_IP": 0.63158,
"BB_per_IP": 0.22105,
"SO_per_IP": 0.97895,
"HR_per_IP": 0.03158
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 60.2,
"ER": 13.0,
"R": 13.0,
"H": 40.0,
"BB": 13.0,
"SO": 62.0,
"HR": 2.0,
"BF": 230.0,
"Pitches": 936.0
},
"per_game": {
"IP": 6.0,
"ER": 1.3,
"R": 1.3,
"H": 4.0,
"BB": 1.3,
"SO": 6.2,
"HR": 0.2,
"BF": 23.0,
"Pitches": 93.6
},
"rates": {
"ERA": 1.9286,
"WHIP": 0.8736,
"ER_per_IP": 0.21429,
"H_per_IP": 0.65934,
"BB_per_IP": 0.21429,
"SO_per_IP": 1.02198,
"HR_per_IP": 0.03297
}
},
"season": {
"games": 30,
"totals": {
"IP": 172.0,
"ER": 51.0,
"R": 53.0,
"H": 125.0,
"BB": 32.0,
"SO": 174.0,
"HR": 14.0,
"BF": 669.0,
"Pitches": 2660.0
},
"per_game": {
"IP": 5.2,
"ER": 1.7,
"R": 1.7667,
"H": 4.1667,
"BB": 1.0667,
"SO": 5.8,
"HR": 0.4667,
"BF": 22.3,
"Pitches": 88.6667
},
"rates": {
"ERA": 2.6686,
"WHIP": 0.9128,
"ER_per_IP": 0.29651,
"H_per_IP": 0.72674,
"BB_per_IP": 0.18605,
"SO_per_IP": 1.01163,
"HR_per_IP": 0.0814
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 6.0,
"predicted_ER": 1.513,
"predicted_H": 4.29,
"predicted_BB": 1.431,
"predicted_SO": 6.016,
"predicted_HR": 0.347,
"predicted_ERA": 2.2428,
"predicted_WHIP": 0.9422
}
}{
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4104,
"form_weight": 0.5896,
"form_reliability": 0.8571,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 6.0,
"final": 6.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 1.513,
"final": 1.7129,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 4.29,
"final": 2.9399,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 3.0,
"form": 1.431,
"final": 2.0749,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 6.016,
"final": 5.1887,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.347,
"final": 0.2046,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.2428,
"final": 2.2428,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9422,
"final": 0.9422,
"source": "form_only"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | Bryan Baker |
| Role | Closer |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 0.4562 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | 0.0670 |
| Avg Velo | 91.0610 |
| Avg Spin | 2094.4919 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 1 |
| Pre ER | 0 |
| Pre H | 1 |
| Pre BB | 1 |
| Pre SO | 0 |
| Season ERA | 1.2995 |
| Season WHIP | 0.8663 |
| Role Avg IP | 0.9890 |
| Recent Avg IP | 1.0670 |
| Last Start IP | 0 |
{
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TB",
"games": 162,
"wins": 98,
"losses": 64,
"win_pct": 0.6049,
"runs_scored": 736.0,
"runs_allowed": 650.0,
"run_differential": 86.0,
"run_differential_per_game": 0.5309,
"avg_runs_scored": 4.5432,
"avg_runs_allowed": 4.0123,
"offense_index": 1.0116,
"defense_index": 1.1193,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 3.2,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.1542
},
"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.0221,
"defense_index": 1.2031,
"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.0167,
"offense_edge": 0.0116,
"opponent_offense_edge": 0.0221,
"defense_strength": 0.1193,
"opponent_defense_weakness": -0.2031,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.002,
"run_prevention": 0.9924,
"strikeout": 0.9977
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "641329",
"profile": {
"available": true,
"pitcher_id": "641329",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 227.0,
"k_percent": 25.8,
"bb_percent": 9.0,
"woba": 0.231,
"xwoba": 0.272,
"sweet_spot_percent": 33.1,
"barrel_batted_rate": 7.0,
"hard_hit_percent": 35.7,
"avg_best_speed": 74.9962,
"avg_hyper_speed": 93.5589,
"whiff_percent": 27.2,
"swing_percent": 52.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.9354,
"command_and_miss": 0.3479,
"regression_edge": -1.1714,
"xwoba_edge": 1.1429,
"barrel_edge": 0.0444,
"hard_hit_edge": 0.3143,
"whiff_edge": 0.2857,
"bb_edge": 0.05,
"pitch_design_score": 0.067
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "641329",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 17,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 17,
"pitch_usage": 0.0,
"release_speed": 91.0609741789056,
"release_spin_rate": 2094.491937190086,
"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": 17,
"pitch_usage": 0.0,
"release_speed": 91.0609741789056,
"release_spin_rate": 2094.491937190086,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 91.061,
"release_spin_rate": 2094.4919,
"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.067,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.4787,
"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.4562,
"sample_weight": 0.908,
"run_prevention_factor": 0.9612,
"strikeout_factor": 1.0296,
"walk_factor": 0.9964,
"homer_factor": 0.9542,
"woba_minus_xwoba": -0.041,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "641329",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9648,
"adjusted": 0
},
"predicted_H": {
"original": 1.0,
"factor": 0.9648,
"adjusted": 1
},
"predicted_BB": {
"original": 0.0,
"factor": 0.9967,
"adjusted": 0
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9584,
"adjusted": 0
},
"predicted_SO": {
"original": 2.0,
"factor": 1.0269,
"adjusted": 2
}
}
}
}{
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 9.1,
"ER": 0,
"H": 5,
"BB": 3,
"SO": 4,
"HR": 0,
"ERA": 0.0,
"WHIP": 0.8571428571428572,
"K9": 3.8571428571428577,
"HR9": 0.0,
"games_pitched": 9,
"quality_starts": 0,
"dominant_form": true,
"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"
}{
"available": true,
"pitcher_id": "641329",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 17,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 17,
"pitch_usage": 0.0,
"release_speed": 91.0609741789056,
"release_spin_rate": 2094.491937190086,
"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": 17,
"pitch_usage": 0.0,
"release_speed": 91.0609741789056,
"release_spin_rate": 2094.491937190086,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 91.061,
"release_spin_rate": 2094.4919,
"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.067,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.4787,
"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."
}{
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.847,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7198,
"prior_weight": 0.2802
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "641329",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 63,
"reference_playing_time": 1.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 5.1,
"ER": 0.0,
"R": 0.0,
"H": 4.0,
"BB": 1.0,
"SO": 2.0,
"HR": 0.0,
"BF": 20.0,
"Pitches": 78.0
},
"per_game": {
"IP": 1.0,
"ER": 0.0,
"R": 0.0,
"H": 0.8,
"BB": 0.2,
"SO": 0.4,
"HR": 0.0,
"BF": 4.0,
"Pitches": 15.6
},
"rates": {
"ERA": 0.0,
"WHIP": 0.9375,
"ER_per_IP": 0.0,
"H_per_IP": 0.75,
"BB_per_IP": 0.1875,
"SO_per_IP": 0.375,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 10.1,
"ER": 0.0,
"R": 0.0,
"H": 5.0,
"BB": 4.0,
"SO": 5.0,
"HR": 0.0,
"BF": 38.0,
"Pitches": 144.0
},
"per_game": {
"IP": 1.0,
"ER": 0.0,
"R": 0.0,
"H": 0.5,
"BB": 0.4,
"SO": 0.5,
"HR": 0.0,
"BF": 3.8,
"Pitches": 14.4
},
"rates": {
"ERA": 0.0,
"WHIP": 0.871,
"ER_per_IP": 0.0,
"H_per_IP": 0.48387,
"BB_per_IP": 0.3871,
"SO_per_IP": 0.48387,
"HR_per_IP": 0.0
}
},
"season": {
"games": 63,
"totals": {
"IP": 62.1,
"ER": 9.0,
"R": 10.0,
"H": 34.0,
"BB": 20.0,
"SO": 63.0,
"HR": 4.0,
"BF": 241.0,
"Pitches": 957.0
},
"per_game": {
"IP": 1.0,
"ER": 0.1429,
"R": 0.1587,
"H": 0.5397,
"BB": 0.3175,
"SO": 1.0,
"HR": 0.0635,
"BF": 3.8254,
"Pitches": 15.1905
},
"rates": {
"ERA": 1.2995,
"WHIP": 0.8663,
"ER_per_IP": 0.14439,
"H_per_IP": 0.54545,
"BB_per_IP": 0.32086,
"SO_per_IP": 1.0107,
"HR_per_IP": 0.06417
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 1.0,
"predicted_ER": 0.164,
"predicted_H": 0.719,
"predicted_BB": 0.311,
"predicted_SO": 0.65,
"predicted_HR": 0.051,
"predicted_ERA": 1.4787,
"predicted_WHIP": 1.0299
}
}{
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4684,
"form_weight": 0.5316,
"form_reliability": 0.7198,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.847,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7198,
"prior_weight": 0.2802
},
"applied_metrics": {
"predicted_IP": {
"model": 1.0,
"form": 1.0,
"final": 1.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 0.164,
"final": 0.0872,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 0.719,
"final": 0.8506,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 0.311,
"final": 0.6337,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 0.0,
"form": 0.65,
"final": 0.3456,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.051,
"final": 0.0271,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 1.4787,
"final": 1.4787,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0299,
"final": 1.0299,
"source": "form_only"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | Cam Booser |
| Role | Middle Reliever (High Leverage) |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 0.4179 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | 0.0509 |
| Avg Velo | 90.7732 |
| Avg Spin | 2027.3870 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 1 |
| Pre ER | 1 |
| Pre H | 1 |
| Pre BB | 0 |
| Pre SO | 0 |
| Season ERA | 1.9756 |
| Season WHIP | 0.7561 |
| Role Avg IP | 0.9760 |
| Recent Avg IP | 0.8000 |
| Last Start IP | 0 |
{
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TB",
"games": 162,
"wins": 98,
"losses": 64,
"win_pct": 0.6049,
"runs_scored": 736.0,
"runs_allowed": 650.0,
"run_differential": 86.0,
"run_differential_per_game": 0.5309,
"avg_runs_scored": 4.5432,
"avg_runs_allowed": 4.0123,
"offense_index": 1.0116,
"defense_index": 1.1193,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 3.2,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.1542
},
"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.0221,
"defense_index": 1.2031,
"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.0167,
"offense_edge": 0.0116,
"opponent_offense_edge": 0.0221,
"defense_strength": 0.1193,
"opponent_defense_weakness": -0.2031,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.002,
"run_prevention": 0.9924,
"strikeout": 0.9977
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "592155",
"profile": {
"available": true,
"pitcher_id": "592155",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 137.0,
"k_percent": 29.6,
"bb_percent": 3.9,
"woba": 0.222,
"xwoba": 0.252,
"sweet_spot_percent": 32.7,
"barrel_batted_rate": 5.9,
"hard_hit_percent": 37.6,
"avg_best_speed": 81.0831,
"avg_hyper_speed": 94.1974,
"whiff_percent": 28.6,
"swing_percent": 55.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.0817,
"command_and_miss": 0.9171,
"regression_edge": -0.8571,
"xwoba_edge": 1.7143,
"barrel_edge": 0.2889,
"hard_hit_edge": 0.0429,
"whiff_edge": 0.4857,
"bb_edge": 1.325,
"pitch_design_score": 0.0509
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "592155",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 9,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 9,
"pitch_usage": 0.0,
"release_speed": 90.77323781639957,
"release_spin_rate": 2027.3869910134617,
"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": 9,
"pitch_usage": 0.0,
"release_speed": 90.77323781639957,
"release_spin_rate": 2027.3869910134617,
"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.7732,
"release_spin_rate": 2027.387,
"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.0509,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.3636,
"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.4179,
"sample_weight": 0.548,
"run_prevention_factor": 0.9645,
"strikeout_factor": 1.0341,
"walk_factor": 0.9419,
"homer_factor": 0.9582,
"woba_minus_xwoba": -0.03,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "592155",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9805,
"adjusted": 0
},
"predicted_H": {
"original": 1.0,
"factor": 0.9805,
"adjusted": 1
},
"predicted_BB": {
"original": 0.0,
"factor": 0.9682,
"adjusted": 0
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9771,
"adjusted": 0
},
"predicted_SO": {
"original": 2.0,
"factor": 1.0187,
"adjusted": 2
}
}
}
}{
"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": 7.2,
"ER": 0,
"H": 2,
"BB": 0,
"SO": 6,
"HR": 0,
"ERA": 0.0,
"WHIP": 0.2608695652173913,
"K9": 7.0434782608695645,
"HR9": 0.0,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": true,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-26T00:00:00"
}{
"available": true,
"pitcher_id": "592155",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 9,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 9,
"pitch_usage": 0.0,
"release_speed": 90.77323781639957,
"release_spin_rate": 2027.3869910134617,
"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": 9,
"pitch_usage": 0.0,
"release_speed": 90.77323781639957,
"release_spin_rate": 2027.3869910134617,
"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.7732,
"release_spin_rate": 2027.387,
"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.0509,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 0.3636,
"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."
}{
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.45,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6283,
"prior_weight": 0.3717
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "592155",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 42,
"reference_playing_time": 1.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 4.0,
"ER": 0.0,
"R": 0.0,
"H": 1.0,
"BB": 0.0,
"SO": 4.0,
"HR": 0.0,
"BF": 13.0,
"Pitches": 47.0
},
"per_game": {
"IP": 0.2,
"ER": 0.0,
"R": 0.0,
"H": 0.2,
"BB": 0.0,
"SO": 0.8,
"HR": 0.0,
"BF": 2.6,
"Pitches": 9.4
},
"rates": {
"ERA": 0.0,
"WHIP": 0.25,
"ER_per_IP": 0.0,
"H_per_IP": 0.25,
"BB_per_IP": 0.0,
"SO_per_IP": 1.0,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 7.2,
"ER": 0.0,
"R": 0.0,
"H": 2.0,
"BB": 0.0,
"SO": 6.0,
"HR": 0.0,
"BF": 24.0,
"Pitches": 86.0
},
"per_game": {
"IP": 0.2,
"ER": 0.0,
"R": 0.0,
"H": 0.2,
"BB": 0.0,
"SO": 0.6,
"HR": 0.0,
"BF": 2.4,
"Pitches": 8.6
},
"rates": {
"ERA": 0.0,
"WHIP": 0.2609,
"ER_per_IP": 0.0,
"H_per_IP": 0.26087,
"BB_per_IP": 0.0,
"SO_per_IP": 0.78261,
"HR_per_IP": 0.0
}
},
"season": {
"games": 42,
"totals": {
"IP": 41.0,
"ER": 9.0,
"R": 10.0,
"H": 25.0,
"BB": 6.0,
"SO": 45.0,
"HR": 5.0,
"BF": 152.0,
"Pitches": 573.0
},
"per_game": {
"IP": 1.0,
"ER": 0.2143,
"R": 0.2381,
"H": 0.5952,
"BB": 0.1429,
"SO": 1.0714,
"HR": 0.119,
"BF": 3.619,
"Pitches": 13.6429
},
"rates": {
"ERA": 1.9756,
"WHIP": 0.7561,
"ER_per_IP": 0.21951,
"H_per_IP": 0.60976,
"BB_per_IP": 0.14634,
"SO_per_IP": 1.09756,
"HR_per_IP": 0.12195
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 0.2,
"predicted_ER": 0.181,
"predicted_H": 0.475,
"predicted_BB": 0.133,
"predicted_SO": 0.782,
"predicted_HR": 0.058,
"predicted_ERA": 1.9616,
"predicted_WHIP": 0.7299
}
}{
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.507,
"form_weight": 0.493,
"form_reliability": 0.6283,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 8.45,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.6283,
"prior_weight": 0.3717
},
"applied_metrics": {
"predicted_IP": {
"model": 1.0,
"form": 0.2,
"final": 1.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 0.181,
"final": 0.5963,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 0.475,
"final": 0.7412,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 0.133,
"final": 0.0656,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 0.782,
"final": 0.8925,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.058,
"final": 0.5356,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 1.9616,
"final": 1.9616,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.7299,
"final": 0.7299,
"source": "form_only"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | Kevin Kelly |
| Role | Setup Man |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 0.2796 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | -0.0402 |
| Avg Velo | 89.1464 |
| Avg Spin | 2031.0064 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 1 |
| Pre ER | 0 |
| Pre H | 1 |
| Pre BB | 0 |
| Pre SO | 0 |
| Season ERA | 2.4434 |
| Season WHIP | 0.8959 |
| Role Avg IP | 1.0380 |
| Recent Avg IP | 0.9330 |
| Last Start IP | 0 |
{
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "TB",
"games": 162,
"wins": 98,
"losses": 64,
"win_pct": 0.6049,
"runs_scored": 736.0,
"runs_allowed": 650.0,
"run_differential": 86.0,
"run_differential_per_game": 0.5309,
"avg_runs_scored": 4.5432,
"avg_runs_allowed": 4.0123,
"offense_index": 1.0116,
"defense_index": 1.1193,
"current_streak": "L1",
"recent": {
"games": 10,
"wins": 5,
"losses": 5,
"win_pct": 0.5,
"avg_runs_scored": 3.8,
"avg_runs_allowed": 3.2,
"run_differential": 6.0
},
"available": true,
"quality_score": 0.1542
},
"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.0221,
"defense_index": 1.2031,
"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.0167,
"offense_edge": 0.0116,
"opponent_offense_edge": 0.0221,
"defense_strength": 0.1193,
"opponent_defense_weakness": -0.2031,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.002,
"run_prevention": 0.9924,
"strikeout": 0.9977
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "687330",
"profile": {
"available": true,
"pitcher_id": "687330",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 260.0,
"k_percent": 22.6,
"bb_percent": 3.9,
"woba": 0.246,
"xwoba": 0.284,
"sweet_spot_percent": 31.2,
"barrel_batted_rate": 6.0,
"hard_hit_percent": 44.6,
"avg_best_speed": 78.7371,
"avg_hyper_speed": 94.6069,
"whiff_percent": 24.0,
"swing_percent": 49.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.5887,
"command_and_miss": 0.2371,
"regression_edge": -1.0857,
"xwoba_edge": 0.8,
"barrel_edge": 0.2667,
"hard_hit_edge": -0.9571,
"whiff_edge": -0.1714,
"bb_edge": 1.325,
"pitch_design_score": -0.0402
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "687330",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 28,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 28,
"pitch_usage": 0.0,
"release_speed": 89.1463705272063,
"release_spin_rate": 2031.0064061373982,
"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": 28,
"pitch_usage": 0.0,
"release_speed": 89.1463705272063,
"release_spin_rate": 2031.0064061373982,
"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.1464,
"release_spin_rate": 2031.0064,
"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.0402,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2871,
"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.2796,
"sample_weight": 1.0,
"run_prevention_factor": 0.9762,
"strikeout_factor": 0.996,
"walk_factor": 0.894,
"homer_factor": 0.993,
"woba_minus_xwoba": -0.038,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "687330",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9762,
"adjusted": 0
},
"predicted_H": {
"original": 1.0,
"factor": 0.9762,
"adjusted": 1
},
"predicted_BB": {
"original": 0.0,
"factor": 0.894,
"adjusted": 0
},
"predicted_HR": {
"original": 0.0,
"factor": 0.993,
"adjusted": 0
},
"predicted_SO": {
"original": 2.0,
"factor": 0.996,
"adjusted": 2
}
}
}
}{
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 8.0,
"ER": 6,
"H": 12,
"BB": 0,
"SO": 11,
"HR": 1,
"ERA": 6.75,
"WHIP": 1.5,
"K9": 12.375,
"HR9": 1.125,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-25T00:00:00"
}{
"available": true,
"pitcher_id": "687330",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 28,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 28,
"pitch_usage": 0.0,
"release_speed": 89.1463705272063,
"release_spin_rate": 2031.0064061373982,
"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": 28,
"pitch_usage": 0.0,
"release_speed": 89.1463705272063,
"release_spin_rate": 2031.0064061373982,
"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.1464,
"release_spin_rate": 2031.0064,
"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.0402,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.2871,
"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."
}{
"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": 15.182,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7523,
"prior_weight": 0.2477
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "687330",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 71,
"reference_playing_time": 1.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 4.2,
"ER": 1.0,
"R": 1.0,
"H": 5.0,
"BB": 0.0,
"SO": 6.0,
"HR": 0.0,
"BF": 19.0,
"Pitches": 59.0
},
"per_game": {
"IP": 1.0,
"ER": 0.2,
"R": 0.2,
"H": 1.0,
"BB": 0.0,
"SO": 1.2,
"HR": 0.0,
"BF": 3.8,
"Pitches": 11.8
},
"rates": {
"ERA": 1.9286,
"WHIP": 1.0714,
"ER_per_IP": 0.21429,
"H_per_IP": 1.07143,
"BB_per_IP": 0.0,
"SO_per_IP": 1.28571,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 8.0,
"ER": 6.0,
"R": 7.0,
"H": 12.0,
"BB": 0.0,
"SO": 11.0,
"HR": 1.0,
"BF": 36.0,
"Pitches": 131.0
},
"per_game": {
"IP": 0.2,
"ER": 0.6,
"R": 0.7,
"H": 1.2,
"BB": 0.0,
"SO": 1.1,
"HR": 0.1,
"BF": 3.6,
"Pitches": 13.1
},
"rates": {
"ERA": 6.75,
"WHIP": 1.5,
"ER_per_IP": 0.75,
"H_per_IP": 1.5,
"BB_per_IP": 0.0,
"SO_per_IP": 1.375,
"HR_per_IP": 0.125
}
},
"season": {
"games": 71,
"totals": {
"IP": 73.2,
"ER": 20.0,
"R": 23.0,
"H": 55.0,
"BB": 11.0,
"SO": 63.0,
"HR": 6.0,
"BF": 279.0,
"Pitches": 987.0
},
"per_game": {
"IP": 1.0,
"ER": 0.2817,
"R": 0.3239,
"H": 0.7746,
"BB": 0.1549,
"SO": 0.8873,
"HR": 0.0845,
"BF": 3.9296,
"Pitches": 13.9014
},
"rates": {
"ERA": 2.4434,
"WHIP": 0.8959,
"ER_per_IP": 0.27149,
"H_per_IP": 0.74661,
"BB_per_IP": 0.14932,
"SO_per_IP": 0.8552,
"HR_per_IP": 0.08145
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 1.0,
"predicted_ER": 0.399,
"predicted_H": 1.016,
"predicted_BB": 0.106,
"predicted_SO": 1.056,
"predicted_HR": 0.075,
"predicted_ERA": 3.9396,
"predicted_WHIP": 1.2302
}
}{
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4547,
"form_weight": 0.5453,
"form_reliability": 0.7523,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.182,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7523,
"prior_weight": 0.2477
},
"applied_metrics": {
"predicted_IP": {
"model": 1.0,
"form": 1.0,
"final": 1.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 0.399,
"final": 0.2176,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 1.016,
"final": 1.0087,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 0.106,
"final": 0.0578,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 0.0,
"form": 1.056,
"final": 0.5759,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.075,
"final": 0.0409,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.9396,
"final": 3.9396,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.2302,
"final": 1.2302,
"source": "form_only"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.113 | 0.000 | 0.000 | Hitting_2B | 0.203 | 2.000 | -0.203 | -2.000 |
| predicted_3B | 0.007 | 0.000 | 0.000 | Hitting_3B | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_AB | 4.510 | 3.000 | 4.000 | Hitting_AB | 3.374 | 4.000 | -0.374 | -1.000 |
| predicted_AVG | 0.263 | 0.000 | 0.250 | Hitting_AVG | 0.318 | 0.500 | -0.318 | -0.500 |
| predicted_BB | 0.394 | 1.000 | 0.000 | Hitting_BB | 0.439 | 0.000 | 0.561 | 1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_H | 1.190 | 0.000 | 1.000 | Hitting_H | 1.073 | 2.000 | -1.073 | -2.000 |
| predicted_HR | 0.100 | 0.000 | 0.000 | Hitting_HR | 0.146 | 0.000 | -0.146 | 0.000 |
| predicted_OBP | 0.344 | 0.250 | 0.250 | Hitting_OBP | 0.411 | 0.500 | -0.161 | -0.250 |
| predicted_R | 0.465 | 0.000 | 0.000 | Hitting_R | 0.374 | 0.000 | -0.374 | 0.000 |
| predicted_RBI | 0.570 | 0.000 | 1.000 | Hitting_RBI | 0.740 | 0.000 | -0.740 | 0.000 |
| predicted_SLG | 0.387 | 0.000 | 0.250 | Hitting_SLG | 0.508 | 1.000 | -0.508 | -1.000 |
| predicted_SO | 0.387 | 0.000 | 0.000 | Hitting_SO | 0.350 | 0.000 | -0.350 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 10 |
| Boosted Metrics | 1 |
| Deboosted Metrics | 9 |
| Better Metrics | 2 |
| Worse Metrics | 8 |
| Biggest Boost | predicted_BB: 0.3940 -> 1.0000 (boost 0.6060, better) |
| Biggest Deboost | predicted_AB: 4.5100 -> 3.0000 (deboost -1.5100, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 2 | 0 | 2 | 0 | 2 | - | predicted_AB: 4.5100 -> 4.0542 (deboost -0.4558, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 2 | 0 | 2 | 0 | 2 | - | predicted_SLG: 0.3867 -> 0.3633 (deboost -0.0234, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 6 | 0 | 6 | 1 | 5 | - | predicted_RBI: 0.5080 -> 0.0000 (deboost -0.5080, worse) | AB rounded to 4 (raw=4.51), rates preserved: AVG=0.233 HR/AB=0.020 |
| 6 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.4365 -> 0.0000 (deboost -0.4365, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 5 | 5 | 0 | 4 | 1 | predicted_RBI: 0.0000 -> 0.5462 (boost 0.5462, better) | - | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 5 | 1 | 4 | 2 | 3 | predicted_RBI: 0.5462 -> 1.0000 (boost 0.4538, better) | predicted_SO: 0.4569 -> 0.0000 (deboost -0.4569, better) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 2 | 1 | 1 | 1 | 1 | predicted_SLG: 0.3633 -> 0.4250 (boost 0.0617, better) | predicted_RBI: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 3 | 1 | 2 | 1 | 2 | predicted_BB: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_AB: 4.0000 -> 3.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 1 | 0 | 1 | 0 | 1 | - | predicted_SLG: 0.4250 -> 0.3633 (deboost -0.0617, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "689414",
"player_name": "Liam Hicks",
"position": "C",
"team": "TB",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.113,
"predicted_3B": 0.007,
"predicted_AB": 4.51,
"predicted_AVG": 0.263,
"predicted_BB": 0.394,
"predicted_H": 1.19,
"predicted_HR": 0.1,
"predicted_OBP": 0.344,
"predicted_R": 0.465,
"predicted_RBI": 0.57,
"predicted_SLG": 0.387,
"predicted_SO": 0.387
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.143,
"predicted_3B": 0.0061,
"predicted_AB": 4.0542,
"predicted_AVG": 0.2623,
"predicted_BB": 0.4027,
"predicted_H": 1.066,
"predicted_HBP": 0.047,
"predicted_HR": 0.0913,
"predicted_OBP": 0.3444,
"predicted_R": 0.4472,
"predicted_RBI": 0.5204,
"predicted_SLG": 0.3867,
"predicted_SO": 0.4235
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.113,
"after": 0.143,
"delta": 0.03,
"percent_delta": 0.2655,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.007,
"after": 0.0061,
"delta": -0.0009,
"percent_delta": -0.1286,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.51,
"after": 4.0542,
"delta": -0.4558,
"percent_delta": -0.1011,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.263,
"after": 0.2623,
"delta": -0.0007,
"percent_delta": -0.0027,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.394,
"after": 0.4027,
"delta": 0.0087,
"percent_delta": 0.0221,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.19,
"after": 1.066,
"delta": -0.124,
"percent_delta": -0.1042,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1,
"after": 0.0913,
"delta": -0.0087,
"percent_delta": -0.087,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.344,
"after": 0.3444,
"delta": 0.0004,
"percent_delta": 0.0012,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.465,
"after": 0.4472,
"delta": -0.0178,
"percent_delta": -0.0383,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.57,
"after": 0.5204,
"delta": -0.0496,
"percent_delta": -0.087,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.387,
"after": 0.3867,
"delta": -0.0003,
"percent_delta": -0.0008,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.387,
"after": 0.4235,
"delta": 0.0365,
"percent_delta": 0.0943,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.51,
"after": 4.0542,
"delta": -0.4558,
"percent_delta": -0.1011,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 142
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.143,
"predicted_3B": 0.0061,
"predicted_AB": 4.0542,
"predicted_AVG": 0.2588,
"predicted_BB": 0.4027,
"predicted_H": 1.0492,
"predicted_HBP": 0.047,
"predicted_HR": 0.0895,
"predicted_OBP": 0.3258,
"predicted_R": 0.4365,
"predicted_RBI": 0.508,
"predicted_SLG": 0.3633,
"predicted_SO": 0.4235
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.143,
"after": 0.143,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0061,
"after": 0.0061,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0542,
"after": 4.0542,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2623,
"after": 0.2588,
"delta": -0.0035,
"percent_delta": -0.0133,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.4027,
"after": 0.4027,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.066,
"after": 1.0492,
"delta": -0.0168,
"percent_delta": -0.0158,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.047,
"after": 0.047,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0913,
"after": 0.0895,
"delta": -0.0018,
"percent_delta": -0.0197,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3444,
"after": 0.3258,
"delta": -0.0186,
"percent_delta": -0.054,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.4472,
"after": 0.4365,
"delta": -0.0107,
"percent_delta": -0.0239,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5204,
"after": 0.508,
"delta": -0.0124,
"percent_delta": -0.0238,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3867,
"after": 0.3633,
"delta": -0.0234,
"percent_delta": -0.0605,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.4235,
"after": 0.4235,
"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": 0,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.3867,
"after": 0.3633,
"delta": -0.0234,
"percent_delta": -0.0605,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=4.51), rates preserved: AVG=0.233 HR/AB=0.020",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.143,
"after": 0.0,
"delta": -0.143,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0061,
"after": 0.0,
"delta": -0.0061,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0542,
"after": 4.0,
"delta": -0.0542,
"percent_delta": -0.0134,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.4027,
"after": 0.0,
"delta": -0.4027,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0492,
"after": 1.0,
"delta": -0.0492,
"percent_delta": -0.0469,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.047,
"after": 0.0,
"delta": -0.047,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0895,
"after": 0.0,
"delta": -0.0895,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.508,
"after": 0.0,
"delta": -0.508,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.4235,
"after": 0.0,
"delta": -0.4235,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 0,
"deboosted_metrics": 6,
"better_metrics": 1,
"worse_metrics": 5,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.508,
"after": 0.0,
"delta": -0.508,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.4365,
"after": 0.0,
"delta": -0.4365,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_R",
"before": 0.4365,
"after": 0.0,
"delta": -0.4365,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.157,
"predicted_3B": 0.0102,
"predicted_BB": 0.2971,
"predicted_H": 0.9541,
"predicted_HR": 0.1378,
"predicted_RBI": 0.5462,
"predicted_SO": 0.4569
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.157,
"delta": 0.157,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0102,
"delta": 0.0102,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.2971,
"delta": 0.2971,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.9541,
"delta": -0.0459,
"percent_delta": -0.0459,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1378,
"delta": 0.1378,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.5462,
"delta": 0.5462,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.4569,
"delta": 0.4569,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 5,
"deboosted_metrics": 0,
"better_metrics": 4,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.5462,
"delta": 0.5462,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 1.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.157,
"after": 0.0,
"delta": -0.157,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0102,
"after": 0.0,
"delta": -0.0102,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.2971,
"after": 0.0,
"delta": -0.2971,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.9541,
"after": 1.0,
"delta": 0.0459,
"percent_delta": 0.0481,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1378,
"after": 0.0,
"delta": -0.1378,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5462,
"after": 1.0,
"delta": 0.4538,
"percent_delta": 0.8308,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.4569,
"after": 0.0,
"delta": -0.4569,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 1,
"deboosted_metrics": 4,
"better_metrics": 2,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.5462,
"after": 1.0,
"delta": 0.4538,
"percent_delta": 0.8308,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 0.4569,
"after": 0.0,
"delta": -0.4569,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.262,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.324,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.425,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2588,
"after": 0.262,
"delta": 0.0032,
"percent_delta": 0.0124,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3258,
"after": 0.324,
"delta": -0.0018,
"percent_delta": -0.0055,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.3633,
"after": 0.425,
"delta": 0.0617,
"percent_delta": 0.1698,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.3633,
"after": 0.425,
"delta": 0.0617,
"percent_delta": 0.1698,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.2588,
"predicted_BB": 1.0,
"predicted_C": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3258,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.3633,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.262,
"after": 0.2588,
"delta": -0.0032,
"percent_delta": -0.0123,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.324,
"after": 0.3258,
"delta": 0.0018,
"percent_delta": 0.0054,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.425,
"after": 0.3633,
"delta": -0.0617,
"percent_delta": -0.1452,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.425,
"after": 0.3633,
"delta": -0.0617,
"percent_delta": -0.1452,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.113,
"after": 0.0,
"delta": -0.113,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.007,
"after": 0.0,
"delta": -0.007,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.51,
"after": 3.0,
"delta": -1.51,
"percent_delta": -0.3348,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.263,
"after": 0.2588,
"delta": -0.0042,
"percent_delta": -0.016,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.394,
"after": 1.0,
"delta": 0.606,
"percent_delta": 1.5381,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.19,
"after": 0.0,
"delta": -1.19,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1,
"after": 0.0,
"delta": -0.1,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.344,
"after": 0.3258,
"delta": -0.0182,
"percent_delta": -0.0529,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.465,
"after": 0.0,
"delta": -0.465,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.57,
"after": 0.0,
"delta": -0.57,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.387,
"after": 0.3633,
"delta": -0.0237,
"percent_delta": -0.0612,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.387,
"after": 0.0,
"delta": -0.387,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 10,
"boosted_metrics": 1,
"deboosted_metrics": 9,
"better_metrics": 2,
"worse_metrics": 8,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.394,
"after": 1.0,
"delta": 0.606,
"percent_delta": 1.5381,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.51,
"after": 3.0,
"delta": -1.51,
"percent_delta": -0.3348,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.113 | - |
| predicted_3B | 0.007 | - |
| predicted_AB | 4.510 | - |
| predicted_AVG | 0.263 | - |
| predicted_BB | 0.394 | - |
| predicted_H | 1.190 | - |
| predicted_HR | 0.100 | - |
| predicted_OBP | 0.344 | - |
| predicted_R | 0.465 | - |
| predicted_RBI | 0.570 | - |
| predicted_SLG | 0.387 | - |
| predicted_SO | 0.387 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.143 | 0.030 |
| predicted_3B | 0.006 | -0.001 |
| predicted_AB | 4.054 | -0.456 |
| predicted_AVG | 0.262 | -0.001 |
| predicted_BB | 0.403 | 0.009 |
| predicted_H | 1.066 | -0.124 |
| predicted_HBP | 0.047 | - |
| predicted_HR | 0.091 | -0.009 |
| predicted_OBP | 0.344 | 0.000 |
| predicted_R | 0.447 | -0.018 |
| predicted_RBI | 0.520 | -0.050 |
| predicted_SLG | 0.387 | -0.000 |
| predicted_SO | 0.423 | 0.036 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.143 | 0.000 |
| predicted_3B | 0.006 | 0.000 |
| predicted_AB | 4.054 | 0.000 |
| predicted_AVG | 0.259 | -0.004 |
| predicted_BB | 0.403 | 0.000 |
| predicted_H | 1.049 | -0.017 |
| predicted_HBP | 0.047 | 0.000 |
| predicted_HR | 0.089 | -0.002 |
| predicted_OBP | 0.326 | -0.019 |
| predicted_R | 0.436 | -0.011 |
| predicted_RBI | 0.508 | -0.012 |
| predicted_SLG | 0.363 | -0.023 |
| predicted_SO | 0.423 | 0.000 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=4.51), rates preserved: AVG=0.233 HR/AB=0.020
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 0.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 0.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.157 | 0.157 |
| 3B | 0.010 | 0.010 |
| BB | 0.297 | 0.297 |
| H | 0.954 | -0.046 |
| HR | 0.138 | 0.138 |
| RBI | 0.546 | 0.546 |
| SO | 0.457 | 0.457 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.157 |
| 3B | 0.000 | -0.010 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -0.297 |
| H | 1.000 | 0.046 |
| HR | 0.000 | -0.138 |
| R | 0.000 | 0.000 |
| RBI | 1.000 | 0.454 |
| SO | 0.000 | -0.457 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.143 |
| predicted_3B | 0.000 | -0.006 |
| predicted_AB | 4.000 | -0.054 |
| predicted_AVG | 0.262 | 0.003 |
| predicted_BB | 0.000 | -0.403 |
| predicted_H | 1.000 | -0.049 |
| predicted_HR | 0.000 | -0.089 |
| predicted_OBP | 0.324 | -0.002 |
| predicted_R | 0.000 | -0.436 |
| predicted_RBI | 0.000 | -0.508 |
| predicted_SLG | 0.425 | 0.062 |
| predicted_SO | 0.000 | -0.423 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | -1.000 |
| BB | 1.000 | 1.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | -1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -1.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 20.000 | 4.000 | 2.000 | 0.000 | 0.000 | 1.000 | 2.000 | 2.000 | 3.000 | 0.2000 | 0.2727 | 0.3000 | 0.2000 | 0.0000 | 0.0500 | 0.1000 | 0.1500 |
| last_10 | 0.20 | 10 | - | 31.000 | 8.000 | 2.000 | 0.000 | 0.000 | 3.000 | 3.000 | 5.000 | 5.000 | 0.2581 | 0.3611 | 0.3226 | 0.2581 | 0.0000 | 0.0968 | 0.1613 | 0.1613 |
| season | 0.60 | 142 | - | 479.000 | 136.000 | 16.000 | 1.000 | 18.000 | 82.000 | 66.000 | 56.000 | 55.000 | 0.2839 | 0.3671 | 0.4342 | 0.2839 | 0.0376 | 0.1712 | 0.1169 | 0.1148 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1820 |
| predicted_3B | 0.0050 |
| predicted_AB | 3.4620 |
| predicted_AVG | 0.2613 |
| predicted_BB | 0.4140 |
| predicted_H | 0.9050 |
| predicted_HBP | 0.0470 |
| predicted_HR | 0.0800 |
| predicted_OBP | 0.3449 |
| predicted_R | 0.4240 |
| predicted_RBI | 0.4560 |
| predicted_SLG | 0.3862 |
| predicted_SO | 0.4710 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1130 | 0.1820 | 0.1430 | model_form_blend |
| predicted_3B | 0.0070 | 0.0050 | 0.0061 | model_form_blend |
| predicted_AB | 4.5100 | 3.4620 | 4.0542 | model_form_blend |
| predicted_AVG | 0.2630 | 0.2613 | 0.2623 | model_form_blend |
| predicted_BB | 0.3940 | 0.4140 | 0.4027 | model_form_blend |
| predicted_H | 1.1900 | 0.9050 | 1.0660 | model_form_blend |
| predicted_HBP | - | 0.0470 | 0.0470 | form_only |
| predicted_HR | 0.1000 | 0.0800 | 0.0913 | model_form_blend |
| predicted_OBP | 0.3440 | 0.3449 | 0.3444 | model_form_blend |
| predicted_R | 0.4650 | 0.4240 | 0.4472 | model_form_blend |
| predicted_RBI | 0.5700 | 0.4560 | 0.5204 | model_form_blend |
| predicted_SLG | 0.3870 | 0.3862 | 0.3867 | model_form_blend |
| predicted_SO | 0.3870 | 0.4710 | 0.4235 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 123 |
| Season rows before report date | 123 |
| Report year | 2026 |
| Profile rows used | 142 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 3 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 1 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 2 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.5 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 2 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 4 |
| Hitting_battingOrder | 4 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | DH |
| gameID | 20260927_TB@PHI |
| game_type | full |
| mlbID | 689414 |
| playerID | 689414 |
| playerName | Liam Hicks |
| pos | C |
| started | True |
| startingPosition | DH |
| team | TB |
| teamID | 27 |
| game_date | 2026-09-27 |
| sl_k_percent | 9.9 |
| sl_bb_percent | 10.1 |
| sl_woba | 0.352 |
| sl_xwoba | 0.319 |
| sl_xba | 0.261 |
| sl_xslg | 0.358 |
| sl_sweet_spot_percent | 30.8 |
| sl_barrel_batted_rate | 3.7 |
| sl_hard_hit_percent | 27.1 |
| sl_exit_velocity_avg | 84.6 |
| sl_launch_angle_avg | 14.5 |
| sl_whiff_percent | 11.4 |
| sl_swing_percent | 41.7 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.175 | 0.000 | 0.000 | Hitting_2B | 0.176 | 1.000 | -0.176 | -1.000 |
| predicted_3B | 0.000 | 0.000 | 0.000 | Hitting_3B | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_AB | 3.890 | 4.000 | 4.000 | Hitting_AB | 3.905 | 2.000 | 0.095 | 2.000 |
| predicted_AVG | 0.249 | 0.000 | 0.250 | Hitting_AVG | 0.283 | 0.500 | -0.283 | -0.500 |
| predicted_BB | 0.442 | 0.000 | 1.000 | Hitting_BB | 0.461 | 0.000 | -0.461 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.008 | 0.000 | -0.008 | 0.000 |
| predicted_H | 0.970 | 0.000 | 1.000 | Hitting_H | 1.106 | 1.000 | -1.106 | -1.000 |
| predicted_HR | 0.130 | 0.000 | 0.000 | Hitting_HR | 0.151 | 0.000 | -0.151 | 0.000 |
| predicted_OBP | 0.312 | 0.000 | 0.400 | Hitting_OBP | 0.364 | 0.500 | -0.364 | -0.500 |
| predicted_R | 0.474 | 0.000 | 0.000 | Hitting_R | 0.516 | 0.000 | -0.516 | 0.000 |
| predicted_RBI | 0.520 | 0.000 | 1.000 | Hitting_RBI | 0.654 | 0.000 | -0.654 | 0.000 |
| predicted_SLG | 0.433 | 0.000 | 0.250 | Hitting_SLG | 0.444 | 1.000 | -0.444 | -1.000 |
| predicted_SO | 1.052 | 3.000 | 1.000 | Hitting_SO | 1.070 | 1.000 | 1.930 | 2.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 11 |
| Boosted Metrics | 3 |
| Deboosted Metrics | 8 |
| Better Metrics | 2 |
| Worse Metrics | 9 |
| Biggest Boost | predicted_SO: 1.0520 -> 3.0000 (boost 1.9480, worse) |
| Biggest Deboost | predicted_H: 0.9700 -> 0.0000 (deboost -0.9700, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 8 | 2 | 6 | 1 | 7 | predicted_SO: 1.0520 -> 1.1504 (boost 0.0984, worse) | predicted_AB: 3.8900 -> 3.7203 (deboost -0.1697, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 1 | 0 | 1 | 0 | 1 | - | predicted_SLG: 0.4109 -> 0.3841 (deboost -0.0268, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 2 | 5 | 3 | 4 | predicted_AB: 3.7203 -> 4.0000 (boost 0.2797, better) | predicted_RBI: 0.4559 -> 0.0000 (deboost -0.4559, worse) | AB rounded to 4 (raw=3.89), rates preserved: AVG=0.230 HR/AB=0.030 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=9.0, weight=0.092, BvP AVG=0.222) |
| 7 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.3943 -> 0.0000 (deboost -0.3943, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 5 | 5 | 0 | 4 | 1 | predicted_RBI: 0.0000 -> 0.5669 (boost 0.5669, better) | - | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 9 | lineup_integer_allocation | 5 | 2 | 3 | 3 | 2 | predicted_BB: 0.3156 -> 1.0000 (boost 0.6844, better) | predicted_2B: 0.1996 -> 0.0000 (deboost -0.1996, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 10 | embedded_savant_player_context | 4 | 2 | 2 | 2 | 2 | predicted_SLG: 0.3841 -> 0.4250 (boost 0.0409, better) | predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | simulation_box_score_reference | 2 | 1 | 1 | 0 | 2 | predicted_SO: 1.0000 -> 3.0000 (boost 2.0000, worse) | predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 12 | current_json_final | 2 | 0 | 2 | 0 | 2 | - | predicted_SLG: 0.4250 -> 0.3841 (deboost -0.0409, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "666018",
"player_name": "Jonathan Aranda",
"position": "1B",
"team": "TB",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.175,
"predicted_3B": 0.0,
"predicted_AB": 3.89,
"predicted_AVG": 0.249,
"predicted_BB": 0.442,
"predicted_H": 0.97,
"predicted_HR": 0.13,
"predicted_OBP": 0.312,
"predicted_R": 0.474,
"predicted_RBI": 0.52,
"predicted_SLG": 0.433,
"predicted_SO": 1.052
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1894,
"predicted_3B": 0.0004,
"predicted_AB": 3.7203,
"predicted_AVG": 0.2432,
"predicted_BB": 0.4542,
"predicted_H": 0.9066,
"predicted_HBP": 0.04,
"predicted_HR": 0.1178,
"predicted_OBP": 0.3201,
"predicted_R": 0.404,
"predicted_RBI": 0.4671,
"predicted_SLG": 0.4109,
"predicted_SO": 1.1504
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.175,
"after": 0.1894,
"delta": 0.0144,
"percent_delta": 0.0823,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0004,
"delta": 0.0004,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.89,
"after": 3.7203,
"delta": -0.1697,
"percent_delta": -0.0436,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.249,
"after": 0.2432,
"delta": -0.0058,
"percent_delta": -0.0233,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.442,
"after": 0.4542,
"delta": 0.0122,
"percent_delta": 0.0276,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.97,
"after": 0.9066,
"delta": -0.0634,
"percent_delta": -0.0654,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.13,
"after": 0.1178,
"delta": -0.0122,
"percent_delta": -0.0938,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.312,
"after": 0.3201,
"delta": 0.0081,
"percent_delta": 0.026,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.474,
"after": 0.404,
"delta": -0.07,
"percent_delta": -0.1477,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.52,
"after": 0.4671,
"delta": -0.0529,
"percent_delta": -0.1017,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.433,
"after": 0.4109,
"delta": -0.0221,
"percent_delta": -0.051,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.052,
"after": 1.1504,
"delta": 0.0984,
"percent_delta": 0.0935,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 8,
"boosted_metrics": 2,
"deboosted_metrics": 6,
"better_metrics": 1,
"worse_metrics": 7,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.052,
"after": 1.1504,
"delta": 0.0984,
"percent_delta": 0.0935,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 3.89,
"after": 3.7203,
"delta": -0.1697,
"percent_delta": -0.0436,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 154
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1894,
"predicted_3B": 0.0004,
"predicted_AB": 3.7203,
"predicted_AVG": 0.2398,
"predicted_BB": 0.4542,
"predicted_H": 0.8923,
"predicted_HBP": 0.04,
"predicted_HR": 0.1155,
"predicted_OBP": 0.3225,
"predicted_R": 0.3943,
"predicted_RBI": 0.4559,
"predicted_SLG": 0.3841,
"predicted_SO": 1.1504
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1894,
"after": 0.1894,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0004,
"after": 0.0004,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.7203,
"after": 3.7203,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2432,
"after": 0.2398,
"delta": -0.0034,
"percent_delta": -0.014,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.4542,
"after": 0.4542,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.9066,
"after": 0.8923,
"delta": -0.0143,
"percent_delta": -0.0158,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.04,
"after": 0.04,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1178,
"after": 0.1155,
"delta": -0.0023,
"percent_delta": -0.0195,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3201,
"after": 0.3225,
"delta": 0.0024,
"percent_delta": 0.0075,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.404,
"after": 0.3943,
"delta": -0.0097,
"percent_delta": -0.024,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.4671,
"after": 0.4559,
"delta": -0.0112,
"percent_delta": -0.024,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4109,
"after": 0.3841,
"delta": -0.0268,
"percent_delta": -0.0652,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.1504,
"after": 1.1504,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.4109,
"after": 0.3841,
"delta": -0.0268,
"percent_delta": -0.0652,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=3.89), rates preserved: AVG=0.230 HR/AB=0.030",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1894,
"after": 0.0,
"delta": -0.1894,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0004,
"after": 0.0,
"delta": -0.0004,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.7203,
"after": 4.0,
"delta": 0.2797,
"percent_delta": 0.0752,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.4542,
"after": 0.0,
"delta": -0.4542,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8923,
"after": 1.0,
"delta": 0.1077,
"percent_delta": 0.1207,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.04,
"after": 0.0,
"delta": -0.04,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1155,
"after": 0.0,
"delta": -0.1155,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.4559,
"after": 0.0,
"delta": -0.4559,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.1504,
"after": 1.0,
"delta": -0.1504,
"percent_delta": -0.1307,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 2,
"deboosted_metrics": 5,
"better_metrics": 3,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.7203,
"after": 4.0,
"delta": 0.2797,
"percent_delta": 0.0752,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.4559,
"after": 0.0,
"delta": -0.4559,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "bvp_blend",
"description": "Sample-size BvP blend (BvP AB=9.0, weight=0.092, BvP AVG=0.222)",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {
"model_expectation": 0.9077,
"bvp": 0.0923
},
"window_games": {}
},
{
"index": 7,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.3943,
"after": 0.0,
"delta": -0.3943,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_R",
"before": 0.3943,
"after": 0.0,
"delta": -0.3943,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1996,
"predicted_3B": 0.0072,
"predicted_BB": 0.3156,
"predicted_H": 0.9883,
"predicted_HR": 0.1389,
"predicted_RBI": 0.5669,
"predicted_SO": 1.0987
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1996,
"delta": 0.1996,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0072,
"delta": 0.0072,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.3156,
"delta": 0.3156,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.9883,
"delta": -0.0117,
"percent_delta": -0.0117,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1389,
"delta": 0.1389,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.5669,
"delta": 0.5669,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0987,
"delta": 0.0987,
"percent_delta": 0.0987,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 5,
"deboosted_metrics": 0,
"better_metrics": 4,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.5669,
"delta": 0.5669,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1996,
"after": 0.0,
"delta": -0.1996,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0072,
"after": 0.0,
"delta": -0.0072,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.3156,
"after": 1.0,
"delta": 0.6844,
"percent_delta": 2.1686,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.9883,
"after": 1.0,
"delta": 0.0117,
"percent_delta": 0.0118,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1389,
"after": 0.0,
"delta": -0.1389,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5669,
"after": 1.0,
"delta": 0.4331,
"percent_delta": 0.764,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0987,
"after": 1.0,
"delta": -0.0987,
"percent_delta": -0.0898,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 2,
"deboosted_metrics": 3,
"better_metrics": 3,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.3156,
"after": 1.0,
"delta": 0.6844,
"percent_delta": 2.1686,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_2B",
"before": 0.1996,
"after": 0.0,
"delta": -0.1996,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.259,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.321,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.425,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2398,
"after": 0.259,
"delta": 0.0192,
"percent_delta": 0.0801,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3225,
"after": 0.321,
"delta": -0.0015,
"percent_delta": -0.0047,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.3841,
"after": 0.425,
"delta": 0.0409,
"percent_delta": 0.1065,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 2,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.3841,
"after": 0.425,
"delta": 0.0409,
"percent_delta": 0.1065,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 12,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.2398,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_FB": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3225,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.3841,
"predicted_SO": 3.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.259,
"after": 0.2398,
"delta": -0.0192,
"percent_delta": -0.074,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.321,
"after": 0.3225,
"delta": 0.0015,
"percent_delta": 0.0048,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.425,
"after": 0.3841,
"delta": -0.0409,
"percent_delta": -0.0963,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.425,
"after": 0.3841,
"delta": -0.0409,
"percent_delta": -0.0963,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.175,
"after": 0.0,
"delta": -0.175,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.89,
"after": 4.0,
"delta": 0.11,
"percent_delta": 0.0283,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.249,
"after": 0.2398,
"delta": -0.0092,
"percent_delta": -0.0369,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.442,
"after": 0.0,
"delta": -0.442,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.97,
"after": 0.0,
"delta": -0.97,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.13,
"after": 0.0,
"delta": -0.13,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.312,
"after": 0.3225,
"delta": 0.0105,
"percent_delta": 0.0337,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.474,
"after": 0.0,
"delta": -0.474,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.52,
"after": 0.0,
"delta": -0.52,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.433,
"after": 0.3841,
"delta": -0.0489,
"percent_delta": -0.1129,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.052,
"after": 3.0,
"delta": 1.948,
"percent_delta": 1.8517,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 11,
"boosted_metrics": 3,
"deboosted_metrics": 8,
"better_metrics": 2,
"worse_metrics": 9,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.052,
"after": 3.0,
"delta": 1.948,
"percent_delta": 1.8517,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 0.97,
"after": 0.0,
"delta": -0.97,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.175 | - |
| predicted_3B | 0.000 | - |
| predicted_AB | 3.890 | - |
| predicted_AVG | 0.249 | - |
| predicted_BB | 0.442 | - |
| predicted_H | 0.970 | - |
| predicted_HR | 0.130 | - |
| predicted_OBP | 0.312 | - |
| predicted_R | 0.474 | - |
| predicted_RBI | 0.520 | - |
| predicted_SLG | 0.433 | - |
| predicted_SO | 1.052 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.189 | 0.014 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 3.720 | -0.170 |
| predicted_AVG | 0.243 | -0.006 |
| predicted_BB | 0.454 | 0.012 |
| predicted_H | 0.907 | -0.063 |
| predicted_HBP | 0.040 | - |
| predicted_HR | 0.118 | -0.012 |
| predicted_OBP | 0.320 | 0.008 |
| predicted_R | 0.404 | -0.070 |
| predicted_RBI | 0.467 | -0.053 |
| predicted_SLG | 0.411 | -0.022 |
| predicted_SO | 1.150 | 0.098 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.189 | 0.000 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 3.720 | 0.000 |
| predicted_AVG | 0.240 | -0.003 |
| predicted_BB | 0.454 | 0.000 |
| predicted_H | 0.892 | -0.014 |
| predicted_HBP | 0.040 | 0.000 |
| predicted_HR | 0.116 | -0.002 |
| predicted_OBP | 0.323 | 0.002 |
| predicted_R | 0.394 | -0.010 |
| predicted_RBI | 0.456 | -0.011 |
| predicted_SLG | 0.384 | -0.027 |
| predicted_SO | 1.150 | 0.000 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=3.89), rates preserved: AVG=0.230 HR/AB=0.030
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=9.0, weight=0.092, BvP AVG=0.222)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.200 | 0.200 |
| 3B | 0.007 | 0.007 |
| BB | 0.316 | 0.316 |
| H | 0.988 | -0.012 |
| HR | 0.139 | 0.139 |
| RBI | 0.567 | 0.567 |
| SO | 1.099 | 0.099 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.200 |
| 3B | 0.000 | -0.007 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 0.684 |
| H | 1.000 | 0.012 |
| HR | 0.000 | -0.139 |
| R | 0.000 | 0.000 |
| RBI | 1.000 | 0.433 |
| SO | 1.000 | -0.099 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.189 |
| predicted_3B | 0.000 | -0.000 |
| predicted_AB | 4.000 | 0.280 |
| predicted_AVG | 0.259 | 0.019 |
| predicted_BB | 0.000 | -0.454 |
| predicted_H | 1.000 | 0.108 |
| predicted_HR | 0.000 | -0.116 |
| predicted_OBP | 0.321 | -0.002 |
| predicted_R | 0.000 | -0.394 |
| predicted_RBI | 0.000 | -0.456 |
| predicted_SLG | 0.425 | 0.041 |
| predicted_SO | 1.000 | -0.150 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -1.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | -1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -1.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 3.000 | 2.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 14.000 | 2.000 | 1.000 | 0.000 | 0.000 | 0.000 | 0.000 | 3.000 | 8.000 | 0.1429 | 0.2941 | 0.2143 | 0.1429 | 0.0000 | 0.0000 | 0.2143 | 0.5714 |
| last_10 | 0.20 | 10 | - | 34.000 | 7.000 | 3.000 | 0.000 | 1.000 | 3.000 | 2.000 | 4.000 | 15.000 | 0.2059 | 0.2895 | 0.3824 | 0.2059 | 0.0294 | 0.0882 | 0.1177 | 0.4412 |
| season | 0.60 | 154 | - | 577.000 | 159.000 | 27.000 | 0.000 | 22.000 | 92.000 | 73.000 | 68.000 | 162.000 | 0.2756 | 0.3584 | 0.4367 | 0.2756 | 0.0381 | 0.1595 | 0.1178 | 0.2808 |
| Metric | Value |
|---|---|
| predicted_2B | 0.2080 |
| predicted_3B | 0.0010 |
| predicted_AB | 3.5020 |
| predicted_AVG | 0.2357 |
| predicted_BB | 0.4700 |
| predicted_H | 0.8250 |
| predicted_HBP | 0.0400 |
| predicted_HR | 0.1020 |
| predicted_OBP | 0.3306 |
| predicted_R | 0.3140 |
| predicted_RBI | 0.3990 |
| predicted_SLG | 0.3825 |
| predicted_SO | 1.2770 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1750 | 0.2080 | 0.1894 | model_form_blend |
| predicted_3B | 0.0000 | 0.0010 | 0.0004 | model_form_blend |
| predicted_AB | 3.8900 | 3.5020 | 3.7203 | model_form_blend |
| predicted_AVG | 0.2490 | 0.2357 | 0.2432 | model_form_blend |
| predicted_BB | 0.4420 | 0.4700 | 0.4542 | model_form_blend |
| predicted_H | 0.9700 | 0.8250 | 0.9066 | model_form_blend |
| predicted_HBP | - | 0.0400 | 0.0400 | form_only |
| predicted_HR | 0.1300 | 0.1020 | 0.1178 | model_form_blend |
| predicted_OBP | 0.3120 | 0.3306 | 0.3201 | model_form_blend |
| predicted_R | 0.4740 | 0.3140 | 0.4040 | model_form_blend |
| predicted_RBI | 0.5200 | 0.3990 | 0.4671 | model_form_blend |
| predicted_SLG | 0.4330 | 0.3825 | 0.4109 | model_form_blend |
| predicted_SO | 1.0520 | 1.2770 | 1.1504 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 642 |
| Season rows before report date | 642 |
| Report year | 2026 |
| Profile rows used | 154 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 3 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 1 |
| Hitting_3B | 0 |
| Hitting_AB | 2 |
| Hitting_AVG | 0.5 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 2 |
| Hitting_battingOrder | 2 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | 1B |
| gameID | 20260927_TB@PHI |
| game_type | full |
| mlbID | 666018 |
| playerID | 666018 |
| playerName | Jonathan Aranda |
| pos | 1B |
| started | True |
| startingPosition | 1B |
| team | TB |
| teamID | 27 |
| game_date | 2026-09-27 |
| sl_k_percent | 24.4 |
| sl_bb_percent | 10.3 |
| sl_woba | 0.348 |
| sl_xwoba | 0.343 |
| sl_xba | 0.254 |
| sl_xslg | 0.438 |
| sl_sweet_spot_percent | 38.8 |
| sl_barrel_batted_rate | 9.9 |
| sl_hard_hit_percent | 46.0 |
| sl_exit_velocity_avg | 91.1 |
| sl_launch_angle_avg | 14.4 |
| sl_whiff_percent | 22.5 |
| sl_swing_percent | 46.7 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.170 | 2.000 | 0.000 | Hitting_2B | 0.174 | 1.000 | 1.826 | 1.000 |
| predicted_3B | 0.007 | 0.000 | 0.000 | Hitting_3B | 0.009 | 0.000 | -0.009 | 0.000 |
| predicted_AB | 5.710 | 4.000 | 4.000 | Hitting_AB | 4.076 | 4.000 | -0.076 | 0.000 |
| predicted_AVG | 0.275 | 0.750 | 0.250 | Hitting_AVG | 0.299 | 0.750 | 0.451 | 0.000 |
| predicted_BB | 0.366 | 0.000 | 0.000 | Hitting_BB | 0.363 | 0.000 | -0.363 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.008 | 0.000 | -0.008 | 0.000 |
| predicted_H | 1.570 | 3.000 | 1.000 | Hitting_H | 1.218 | 3.000 | 1.782 | 0.000 |
| predicted_HR | 0.130 | 0.000 | 0.000 | Hitting_HR | 0.148 | 0.000 | -0.148 | 0.000 |
| predicted_OBP | 0.345 | 0.750 | 0.250 | Hitting_OBP | 0.363 | 0.750 | 0.387 | 0.000 |
| predicted_R | 0.608 | 1.000 | 1.000 | Hitting_R | 0.614 | 3.000 | 0.386 | -2.000 |
| predicted_RBI | 0.720 | 1.000 | 1.000 | Hitting_RBI | 0.579 | 0.000 | 0.421 | 1.000 |
| predicted_SLG | 0.438 | 1.250 | 0.250 | Hitting_SLG | 0.455 | 1.000 | 0.795 | 0.250 |
| predicted_SO | 0.634 | 0.000 | 1.000 | Hitting_SO | 0.641 | 0.000 | -0.641 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | deboosted |
| Changed Metrics | 10 |
| Boosted Metrics | 4 |
| Deboosted Metrics | 6 |
| Better Metrics | 5 |
| Worse Metrics | 5 |
| Biggest Boost | predicted_2B: 0.1700 -> 2.0000 (boost 1.8300, better) |
| Biggest Deboost | predicted_AB: 5.7100 -> 4.0000 (deboost -1.7100, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 4 | 0 | 4 | 0 | 4 | - | predicted_AB: 5.7100 -> 4.9712 (deboost -0.7388, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 2 | 0 | 2 | 0 | 2 | - | predicted_SLG: 0.4155 -> 0.3736 (deboost -0.0419, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 0 | 7 | 1 | 6 | - | predicted_AB: 4.9712 -> 4.0000 (deboost -0.9712, worse) | AB rounded to 4 (raw=5.71), rates preserved: AVG=0.237 HR/AB=0.019 |
| 6 | bvp_blend | 1 | 1 | 0 | 0 | 1 | predicted_SO: 0.0000 -> 1.0000 (boost 1.0000, worse) | - | Sample-size BvP blend (BvP AB=57.0, weight=0.250, BvP AVG=0.298) |
| 7 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.6298 -> 1.0000 (boost 0.3702, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 5 | 1 | 6 | 0 | predicted_RBI: 0.0000 -> 0.5345 (boost 0.5345, better) | predicted_SO: 1.0000 -> 0.7283 (deboost -0.2717, better) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 9 | lineup_integer_allocation | 6 | 2 | 4 | 1 | 5 | predicted_RBI: 0.5345 -> 1.0000 (boost 0.4655, better) | predicted_BB: 0.2616 -> 0.0000 (deboost -0.2616, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 10 | embedded_savant_player_context | 4 | 3 | 1 | 3 | 1 | predicted_SLG: 0.3736 -> 0.4420 (boost 0.0684, better) | predicted_RBI: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | simulation_box_score_reference | 4 | 3 | 1 | 4 | 0 | predicted_2B: 0.0000 -> 2.0000 (boost 2.0000, better) | predicted_SO: 1.0000 -> 0.0000 (deboost -1.0000, better) | Attached simulation box score without overwriting model prediction |
| 12 | current_json_final | 3 | 0 | 3 | 0 | 3 | - | predicted_SLG: 0.4420 -> 0.3736 (deboost -0.0684, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "650490",
"player_name": "Yandy Díaz",
"position": "DH",
"team": "TB",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.17,
"predicted_3B": 0.007,
"predicted_AB": 5.71,
"predicted_AVG": 0.275,
"predicted_BB": 0.366,
"predicted_H": 1.57,
"predicted_HR": 0.13,
"predicted_OBP": 0.345,
"predicted_R": 0.608,
"predicted_RBI": 0.72,
"predicted_SLG": 0.438,
"predicted_SO": 0.634
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1665,
"predicted_3B": 0.0057,
"predicted_AB": 4.9712,
"predicted_AVG": 0.2761,
"predicted_BB": 0.3537,
"predicted_H": 1.3713,
"predicted_HBP": 0.039,
"predicted_HR": 0.1121,
"predicted_OBP": 0.3418,
"predicted_R": 0.6452,
"predicted_RBI": 0.653,
"predicted_SLG": 0.4155,
"predicted_SO": 0.6165
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.17,
"after": 0.1665,
"delta": -0.0035,
"percent_delta": -0.0206,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.007,
"after": 0.0057,
"delta": -0.0013,
"percent_delta": -0.1857,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 5.71,
"after": 4.9712,
"delta": -0.7388,
"percent_delta": -0.1294,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.275,
"after": 0.2761,
"delta": 0.0011,
"percent_delta": 0.004,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.366,
"after": 0.3537,
"delta": -0.0123,
"percent_delta": -0.0336,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.57,
"after": 1.3713,
"delta": -0.1987,
"percent_delta": -0.1266,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.13,
"after": 0.1121,
"delta": -0.0179,
"percent_delta": -0.1377,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.345,
"after": 0.3418,
"delta": -0.0032,
"percent_delta": -0.0093,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.608,
"after": 0.6452,
"delta": 0.0372,
"percent_delta": 0.0612,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.72,
"after": 0.653,
"delta": -0.067,
"percent_delta": -0.0931,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.438,
"after": 0.4155,
"delta": -0.0225,
"percent_delta": -0.0514,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.634,
"after": 0.6165,
"delta": -0.0175,
"percent_delta": -0.0276,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 0,
"deboosted_metrics": 4,
"better_metrics": 0,
"worse_metrics": 4,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_AB",
"before": 5.71,
"after": 4.9712,
"delta": -0.7388,
"percent_delta": -0.1294,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 153
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1665,
"predicted_3B": 0.0057,
"predicted_AB": 4.9712,
"predicted_AVG": 0.2715,
"predicted_BB": 0.3537,
"predicted_H": 1.3496,
"predicted_HBP": 0.039,
"predicted_HR": 0.1099,
"predicted_OBP": 0.3199,
"predicted_R": 0.6298,
"predicted_RBI": 0.6374,
"predicted_SLG": 0.3736,
"predicted_SO": 0.6165
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1665,
"after": 0.1665,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0057,
"after": 0.0057,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.9712,
"after": 4.9712,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2761,
"after": 0.2715,
"delta": -0.0046,
"percent_delta": -0.0167,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.3537,
"after": 0.3537,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.3713,
"after": 1.3496,
"delta": -0.0217,
"percent_delta": -0.0158,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.039,
"after": 0.039,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1121,
"after": 0.1099,
"delta": -0.0022,
"percent_delta": -0.0196,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3418,
"after": 0.3199,
"delta": -0.0219,
"percent_delta": -0.0641,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.6452,
"after": 0.6298,
"delta": -0.0154,
"percent_delta": -0.0239,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.653,
"after": 0.6374,
"delta": -0.0156,
"percent_delta": -0.0239,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4155,
"after": 0.3736,
"delta": -0.0419,
"percent_delta": -0.1008,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.6165,
"after": 0.6165,
"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": 0,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.4155,
"after": 0.3736,
"delta": -0.0419,
"percent_delta": -0.1008,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=5.71), rates preserved: AVG=0.237 HR/AB=0.019",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1665,
"after": 0.0,
"delta": -0.1665,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0057,
"after": 0.0,
"delta": -0.0057,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.9712,
"after": 4.0,
"delta": -0.9712,
"percent_delta": -0.1954,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.3537,
"after": 0.0,
"delta": -0.3537,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.3496,
"after": 1.0,
"delta": -0.3496,
"percent_delta": -0.259,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.039,
"after": 0.0,
"delta": -0.039,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1099,
"after": 0.0,
"delta": -0.1099,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.6374,
"after": 0.0,
"delta": -0.6374,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.6165,
"after": 0.0,
"delta": -0.6165,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 0,
"deboosted_metrics": 7,
"better_metrics": 1,
"worse_metrics": 6,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.9712,
"after": 4.0,
"delta": -0.9712,
"percent_delta": -0.1954,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "bvp_blend",
"description": "Sample-size BvP blend (BvP AB=57.0, weight=0.250, BvP AVG=0.298)",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {
"model_expectation": 0.75,
"bvp": 0.25
},
"window_games": {}
},
{
"index": 7,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.6298,
"after": 1.0,
"delta": 0.3702,
"percent_delta": 0.5878,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.6298,
"after": 1.0,
"delta": 0.3702,
"percent_delta": 0.5878,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1859,
"predicted_3B": 0.0095,
"predicted_BB": 0.2616,
"predicted_H": 1.1404,
"predicted_HR": 0.1529,
"predicted_RBI": 0.5345,
"predicted_SO": 0.7283
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1859,
"delta": 0.1859,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0095,
"delta": 0.0095,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.2616,
"delta": 0.2616,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.1404,
"delta": 0.1404,
"percent_delta": 0.1404,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1529,
"delta": 0.1529,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.5345,
"delta": 0.5345,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.7283,
"delta": -0.2717,
"percent_delta": -0.2717,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 5,
"deboosted_metrics": 1,
"better_metrics": 6,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.5345,
"delta": 0.5345,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 0.7283,
"delta": -0.2717,
"percent_delta": -0.2717,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1859,
"after": 0.0,
"delta": -0.1859,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0095,
"after": 0.0,
"delta": -0.0095,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.2616,
"after": 0.0,
"delta": -0.2616,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.1404,
"after": 1.0,
"delta": -0.1404,
"percent_delta": -0.1231,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1529,
"after": 0.0,
"delta": -0.1529,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5345,
"after": 1.0,
"delta": 0.4655,
"percent_delta": 0.8709,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.7283,
"after": 1.0,
"delta": 0.2717,
"percent_delta": 0.3731,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 2,
"deboosted_metrics": 4,
"better_metrics": 1,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.5345,
"after": 1.0,
"delta": 0.4655,
"percent_delta": 0.8709,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.2616,
"after": 0.0,
"delta": -0.2616,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.279,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.328,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.442,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2715,
"after": 0.279,
"delta": 0.0075,
"percent_delta": 0.0276,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3199,
"after": 0.328,
"delta": 0.0081,
"percent_delta": 0.0253,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.3736,
"after": 0.442,
"delta": 0.0684,
"percent_delta": 0.1831,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 3,
"deboosted_metrics": 1,
"better_metrics": 3,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.3736,
"after": 0.442,
"delta": 0.0684,
"percent_delta": 0.1831,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 2.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 3.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 2.0,
"delta": 2.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 3,
"deboosted_metrics": 1,
"better_metrics": 4,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_2B",
"before": 0.0,
"after": 2.0,
"delta": 2.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 12,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 2.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.2715,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_DH": 0.0,
"predicted_H": 3.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3199,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.3736,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.279,
"after": 0.2715,
"delta": -0.0075,
"percent_delta": -0.0269,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.328,
"after": 0.3199,
"delta": -0.0081,
"percent_delta": -0.0248,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.442,
"after": 0.3736,
"delta": -0.0684,
"percent_delta": -0.1548,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.442,
"after": 0.3736,
"delta": -0.0684,
"percent_delta": -0.1548,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.17,
"after": 2.0,
"delta": 1.83,
"percent_delta": 10.7647,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.007,
"after": 0.0,
"delta": -0.007,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 5.71,
"after": 4.0,
"delta": -1.71,
"percent_delta": -0.2995,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.275,
"after": 0.2715,
"delta": -0.0035,
"percent_delta": -0.0127,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.366,
"after": 0.0,
"delta": -0.366,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.57,
"after": 3.0,
"delta": 1.43,
"percent_delta": 0.9108,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.13,
"after": 0.0,
"delta": -0.13,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.345,
"after": 0.3199,
"delta": -0.0251,
"percent_delta": -0.0728,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.608,
"after": 1.0,
"delta": 0.392,
"percent_delta": 0.6447,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.72,
"after": 1.0,
"delta": 0.28,
"percent_delta": 0.3889,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.438,
"after": 0.3736,
"delta": -0.0644,
"percent_delta": -0.147,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.634,
"after": 0.0,
"delta": -0.634,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 10,
"boosted_metrics": 4,
"deboosted_metrics": 6,
"better_metrics": 5,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_2B",
"before": 0.17,
"after": 2.0,
"delta": 1.83,
"percent_delta": 10.7647,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 5.71,
"after": 4.0,
"delta": -1.71,
"percent_delta": -0.2995,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "deboosted"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.170 | - |
| predicted_3B | 0.007 | - |
| predicted_AB | 5.710 | - |
| predicted_AVG | 0.275 | - |
| predicted_BB | 0.366 | - |
| predicted_H | 1.570 | - |
| predicted_HR | 0.130 | - |
| predicted_OBP | 0.345 | - |
| predicted_R | 0.608 | - |
| predicted_RBI | 0.720 | - |
| predicted_SLG | 0.438 | - |
| predicted_SO | 0.634 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.167 | -0.004 |
| predicted_3B | 0.006 | -0.001 |
| predicted_AB | 4.971 | -0.739 |
| predicted_AVG | 0.276 | 0.001 |
| predicted_BB | 0.354 | -0.012 |
| predicted_H | 1.371 | -0.199 |
| predicted_HBP | 0.039 | - |
| predicted_HR | 0.112 | -0.018 |
| predicted_OBP | 0.342 | -0.003 |
| predicted_R | 0.645 | 0.037 |
| predicted_RBI | 0.653 | -0.067 |
| predicted_SLG | 0.415 | -0.023 |
| predicted_SO | 0.617 | -0.017 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.167 | 0.000 |
| predicted_3B | 0.006 | 0.000 |
| predicted_AB | 4.971 | 0.000 |
| predicted_AVG | 0.272 | -0.005 |
| predicted_BB | 0.354 | 0.000 |
| predicted_H | 1.350 | -0.022 |
| predicted_HBP | 0.039 | 0.000 |
| predicted_HR | 0.110 | -0.002 |
| predicted_OBP | 0.320 | -0.022 |
| predicted_R | 0.630 | -0.015 |
| predicted_RBI | 0.637 | -0.016 |
| predicted_SLG | 0.374 | -0.042 |
| predicted_SO | 0.617 | 0.000 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=5.71), rates preserved: AVG=0.237 HR/AB=0.019
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 0.000 | - |
Sample-size BvP blend (BvP AB=57.0, weight=0.250, BvP AVG=0.298)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SO | 1.000 | 1.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.186 | 0.186 |
| 3B | 0.009 | 0.009 |
| BB | 0.262 | 0.262 |
| H | 1.140 | 0.140 |
| HR | 0.153 | 0.153 |
| RBI | 0.534 | 0.534 |
| SO | 0.728 | -0.272 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.186 |
| 3B | 0.000 | -0.009 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -0.262 |
| H | 1.000 | -0.140 |
| HR | 0.000 | -0.153 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.466 |
| SO | 1.000 | 0.272 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.167 |
| predicted_3B | 0.000 | -0.006 |
| predicted_AB | 4.000 | -0.971 |
| predicted_AVG | 0.279 | 0.008 |
| predicted_BB | 0.000 | -0.354 |
| predicted_H | 1.000 | -0.350 |
| predicted_HR | 0.000 | -0.110 |
| predicted_OBP | 0.328 | 0.008 |
| predicted_R | 1.000 | 0.370 |
| predicted_RBI | 0.000 | -0.637 |
| predicted_SLG | 0.442 | 0.068 |
| predicted_SO | 1.000 | 0.383 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 2.000 | 2.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 3.000 | 2.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 21.000 | 7.000 | 1.000 | 0.000 | 0.000 | 4.000 | 5.000 | 1.000 | 2.000 | 0.3333 | 0.3636 | 0.3810 | 0.3333 | 0.0000 | 0.1905 | 0.0476 | 0.0952 |
| last_10 | 0.20 | 10 | - | 40.000 | 7.000 | 1.000 | 0.000 | 0.000 | 4.000 | 7.000 | 4.000 | 6.000 | 0.1750 | 0.2500 | 0.2000 | 0.1750 | 0.0000 | 0.1000 | 0.1000 | 0.1500 |
| season | 0.60 | 153 | - | 610.000 | 180.000 | 26.000 | 1.000 | 22.000 | 85.000 | 93.000 | 56.000 | 97.000 | 0.2951 | 0.3607 | 0.4492 | 0.2951 | 0.0361 | 0.1393 | 0.0918 | 0.1590 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1620 |
| predicted_3B | 0.0040 |
| predicted_AB | 4.0220 |
| predicted_AVG | 0.2774 |
| predicted_BB | 0.3380 |
| predicted_H | 1.1160 |
| predicted_HBP | 0.0390 |
| predicted_HR | 0.0890 |
| predicted_OBP | 0.3377 |
| predicted_R | 0.6930 |
| predicted_RBI | 0.5670 |
| predicted_SLG | 0.3866 |
| predicted_SO | 0.5940 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1700 | 0.1620 | 0.1665 | model_form_blend |
| predicted_3B | 0.0070 | 0.0040 | 0.0057 | model_form_blend |
| predicted_AB | 5.7100 | 4.0220 | 4.9712 | model_form_blend |
| predicted_AVG | 0.2750 | 0.2774 | 0.2761 | model_form_blend |
| predicted_BB | 0.3660 | 0.3380 | 0.3537 | model_form_blend |
| predicted_H | 1.5700 | 1.1160 | 1.3713 | model_form_blend |
| predicted_HBP | - | 0.0390 | 0.0390 | form_only |
| predicted_HR | 0.1300 | 0.0890 | 0.1121 | model_form_blend |
| predicted_OBP | 0.3450 | 0.3377 | 0.3418 | model_form_blend |
| predicted_R | 0.6080 | 0.6930 | 0.6452 | model_form_blend |
| predicted_RBI | 0.7200 | 0.5670 | 0.6530 | model_form_blend |
| predicted_SLG | 0.4380 | 0.3866 | 0.4155 | model_form_blend |
| predicted_SO | 0.6340 | 0.5940 | 0.6165 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 661 |
| Season rows before report date | 661 |
| Report year | 2026 |
| Profile rows used | 153 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 3 |
| 2B | 2 |
| 3B | 0 |
| HR | 0 |
| R | 1 |
| RBI | 1 |
| BB | 0 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 1 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.75 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 3 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 3 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 4 |
| Hitting_battingOrder | 1 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | DH |
| gameID | 20260926_TB@PHI |
| game_type | full |
| mlbID | 650490 |
| playerID | 650490 |
| playerName | Yandy Díaz |
| pos | DH |
| started | True |
| startingPosition | DH |
| team | TB |
| teamID | 27 |
| game_date | 2026-09-26 |
| sl_k_percent | 14.3 |
| sl_bb_percent | 8.2 |
| sl_woba | 0.35 |
| sl_xwoba | 0.346 |
| sl_xba | 0.281 |
| sl_xslg | 0.439 |
| sl_sweet_spot_percent | 29.7 |
| sl_barrel_batted_rate | 7.1 |
| sl_hard_hit_percent | 48.1 |
| sl_exit_velocity_avg | 90.9 |
| sl_launch_angle_avg | 6.0 |
| sl_whiff_percent | 14.8 |
| sl_swing_percent | 47.5 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.233 | 0.000 | 1.000 | Hitting_2B | 0.267 | 0.000 | -0.267 | 0.000 |
| predicted_3B | 0.000 | 0.000 | 0.000 | Hitting_3B | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_AB | 3.359 | 4.000 | 4.000 | Hitting_AB | 3.675 | 4.000 | 0.325 | 0.000 |
| predicted_AVG | 0.269 | 0.000 | 0.250 | Hitting_AVG | 0.279 | 0.500 | -0.279 | -0.500 |
| predicted_BB | 0.165 | 0.000 | 0.000 | Hitting_BB | 0.178 | 0.000 | -0.178 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.055 | 0.000 | -0.055 | 0.000 |
| predicted_H | 0.903 | 0.000 | 1.000 | Hitting_H | 1.026 | 2.000 | -1.026 | -2.000 |
| predicted_HR | 0.107 | 0.000 | 0.000 | Hitting_HR | 0.109 | 2.000 | -0.109 | -2.000 |
| predicted_OBP | 0.303 | 0.000 | 0.250 | Hitting_OBP | 0.312 | 0.500 | -0.312 | -0.500 |
| predicted_R | 0.417 | 0.000 | 0.000 | Hitting_R | 0.483 | 2.000 | -0.483 | -2.000 |
| predicted_RBI | 0.485 | 0.000 | 0.000 | Hitting_RBI | 0.563 | 2.000 | -0.563 | -2.000 |
| predicted_SLG | 0.434 | 0.000 | 0.500 | Hitting_SLG | 0.441 | 2.000 | -0.441 | -2.000 |
| predicted_SO | 0.757 | 1.000 | 1.000 | Hitting_SO | 0.761 | 0.000 | 0.239 | 1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 11 |
| Boosted Metrics | 5 |
| Deboosted Metrics | 6 |
| Better Metrics | 4 |
| Worse Metrics | 7 |
| Biggest Boost | predicted_AB: 3.3590 -> 4.0000 (boost 0.6410, better) |
| Biggest Deboost | predicted_H: 0.9030 -> 0.0000 (deboost -0.9030, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 5 | 5 | 0 | 5 | 0 | predicted_H: 0.9030 -> 0.9637 (boost 0.0607, better) | - | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 1 | 0 | 1 | 0 | 1 | - | predicted_SLG: 0.4697 -> 0.4637 (deboost -0.0060, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 4 | 3 | 3 | 4 | predicted_AB: 3.4193 -> 4.0000 (boost 0.5807, better) | predicted_2B: 0.2347 -> 0.0000 (deboost -0.2347, worse) | AB rounded to 4 (raw=3.42), rates preserved: AVG=0.278 HR/AB=0.039 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=7.0, weight=0.076, BvP AVG=0.143) |
| 7 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.4217 -> 0.0000 (deboost -0.4217, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 3 | 3 | 4 | 2 | predicted_2B: 0.0000 -> 0.2072 (boost 0.2072, better) | predicted_RBI: 1.0000 -> 0.5158 (deboost -0.4842, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 9 | lineup_integer_allocation | 6 | 3 | 3 | 2 | 4 | predicted_2B: 0.2072 -> 1.0000 (boost 0.7928, better) | predicted_RBI: 0.5158 -> 0.0000 (deboost -0.5158, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 10 | embedded_savant_player_context | 5 | 1 | 4 | 1 | 4 | predicted_RBI: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_2B: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | simulation_box_score_reference | 2 | 0 | 2 | 0 | 2 | - | predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 12 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_SLG: 0.4230 -> 0.4637 (boost 0.0407, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "676356",
"player_name": "Jonny DeLuca",
"position": "CF",
"team": "TB",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.233,
"predicted_3B": 0.0,
"predicted_AB": 3.359,
"predicted_AVG": 0.269,
"predicted_BB": 0.165,
"predicted_H": 0.903,
"predicted_HR": 0.107,
"predicted_OBP": 0.303,
"predicted_R": 0.417,
"predicted_RBI": 0.485,
"predicted_SLG": 0.434,
"predicted_SO": 0.757
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.2347,
"predicted_3B": 0.0004,
"predicted_AB": 3.4193,
"predicted_AVG": 0.2816,
"predicted_BB": 0.2103,
"predicted_H": 0.9637,
"predicted_HBP": 0.002,
"predicted_HR": 0.1365,
"predicted_OBP": 0.3217,
"predicted_R": 0.432,
"predicted_RBI": 0.5175,
"predicted_SLG": 0.4697,
"predicted_SO": 0.7989
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.233,
"after": 0.2347,
"delta": 0.0017,
"percent_delta": 0.0073,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0004,
"delta": 0.0004,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.359,
"after": 3.4193,
"delta": 0.0603,
"percent_delta": 0.018,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.269,
"after": 0.2816,
"delta": 0.0126,
"percent_delta": 0.0468,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.165,
"after": 0.2103,
"delta": 0.0453,
"percent_delta": 0.2745,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.903,
"after": 0.9637,
"delta": 0.0607,
"percent_delta": 0.0672,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.107,
"after": 0.1365,
"delta": 0.0295,
"percent_delta": 0.2757,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.303,
"after": 0.3217,
"delta": 0.0187,
"percent_delta": 0.0617,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.417,
"after": 0.432,
"delta": 0.015,
"percent_delta": 0.036,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.485,
"after": 0.5175,
"delta": 0.0325,
"percent_delta": 0.067,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.434,
"after": 0.4697,
"delta": 0.0357,
"percent_delta": 0.0823,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.757,
"after": 0.7989,
"delta": 0.0419,
"percent_delta": 0.0554,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 5,
"deboosted_metrics": 0,
"better_metrics": 5,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.903,
"after": 0.9637,
"delta": 0.0607,
"percent_delta": 0.0672,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 103
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.2347,
"predicted_3B": 0.0004,
"predicted_AB": 3.4193,
"predicted_AVG": 0.2774,
"predicted_BB": 0.2103,
"predicted_H": 0.9485,
"predicted_HBP": 0.002,
"predicted_HR": 0.1338,
"predicted_OBP": 0.3193,
"predicted_R": 0.4217,
"predicted_RBI": 0.5051,
"predicted_SLG": 0.4637,
"predicted_SO": 0.7989
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.2347,
"after": 0.2347,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0004,
"after": 0.0004,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.4193,
"after": 3.4193,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2816,
"after": 0.2774,
"delta": -0.0042,
"percent_delta": -0.0149,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.2103,
"after": 0.2103,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.9637,
"after": 0.9485,
"delta": -0.0152,
"percent_delta": -0.0158,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.002,
"after": 0.002,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1365,
"after": 0.1338,
"delta": -0.0027,
"percent_delta": -0.0198,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3217,
"after": 0.3193,
"delta": -0.0024,
"percent_delta": -0.0075,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.432,
"after": 0.4217,
"delta": -0.0103,
"percent_delta": -0.0238,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5175,
"after": 0.5051,
"delta": -0.0124,
"percent_delta": -0.024,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4697,
"after": 0.4637,
"delta": -0.006,
"percent_delta": -0.0128,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.7989,
"after": 0.7989,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.4697,
"after": 0.4637,
"delta": -0.006,
"percent_delta": -0.0128,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=3.42), rates preserved: AVG=0.278 HR/AB=0.039",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.2347,
"after": 0.0,
"delta": -0.2347,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0004,
"after": 0.0,
"delta": -0.0004,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.4193,
"after": 4.0,
"delta": 0.5807,
"percent_delta": 0.1698,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.2103,
"after": 0.0,
"delta": -0.2103,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.9485,
"after": 1.0,
"delta": 0.0515,
"percent_delta": 0.0543,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.002,
"after": 0.0,
"delta": -0.002,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1338,
"after": 0.0,
"delta": -0.1338,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.5051,
"after": 1.0,
"delta": 0.4949,
"percent_delta": 0.9798,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.7989,
"after": 1.0,
"delta": 0.2011,
"percent_delta": 0.2517,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 4,
"deboosted_metrics": 3,
"better_metrics": 3,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.4193,
"after": 4.0,
"delta": 0.5807,
"percent_delta": 0.1698,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_2B",
"before": 0.2347,
"after": 0.0,
"delta": -0.2347,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "bvp_blend",
"description": "Sample-size BvP blend (BvP AB=7.0, weight=0.076, BvP AVG=0.143)",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {
"model_expectation": 0.9243,
"bvp": 0.0757
},
"window_games": {}
},
{
"index": 7,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.4217,
"after": 0.0,
"delta": -0.4217,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_R",
"before": 0.4217,
"after": 0.0,
"delta": -0.4217,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.2072,
"predicted_3B": 0.0085,
"predicted_BB": 0.1591,
"predicted_H": 0.9324,
"predicted_HR": 0.1232,
"predicted_RBI": 0.5158,
"predicted_SO": 0.9252
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.2072,
"delta": 0.2072,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0085,
"delta": 0.0085,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.1591,
"delta": 0.1591,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.9324,
"delta": -0.0676,
"percent_delta": -0.0676,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1232,
"delta": 0.1232,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.5158,
"delta": -0.4842,
"percent_delta": -0.4842,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.9252,
"delta": -0.0748,
"percent_delta": -0.0748,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 3,
"deboosted_metrics": 3,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_2B",
"before": 0.0,
"after": 0.2072,
"delta": 0.2072,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.5158,
"delta": -0.4842,
"percent_delta": -0.4842,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 1.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.2072,
"after": 1.0,
"delta": 0.7928,
"percent_delta": 3.8263,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0085,
"after": 0.0,
"delta": -0.0085,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.1591,
"after": 0.0,
"delta": -0.1591,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.9324,
"after": 1.0,
"delta": 0.0676,
"percent_delta": 0.0725,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1232,
"after": 0.0,
"delta": -0.1232,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5158,
"after": 0.0,
"delta": -0.5158,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.9252,
"after": 1.0,
"delta": 0.0748,
"percent_delta": 0.0808,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 3,
"deboosted_metrics": 3,
"better_metrics": 2,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_2B",
"before": 0.2072,
"after": 1.0,
"delta": 0.7928,
"percent_delta": 3.8263,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.5158,
"after": 0.0,
"delta": -0.5158,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.259,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.296,
"predicted_R": 0.0,
"predicted_RBI": 1.0,
"predicted_SLG": 0.423,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2774,
"after": 0.259,
"delta": -0.0184,
"percent_delta": -0.0663,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3193,
"after": 0.296,
"delta": -0.0233,
"percent_delta": -0.073,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.4637,
"after": 0.423,
"delta": -0.0407,
"percent_delta": -0.0878,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 1,
"deboosted_metrics": 4,
"better_metrics": 1,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_2B",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 12,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.2774,
"predicted_BB": 0.0,
"predicted_CF": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3193,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.4637,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.259,
"after": 0.2774,
"delta": 0.0184,
"percent_delta": 0.071,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.296,
"after": 0.3193,
"delta": 0.0233,
"percent_delta": 0.0786,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.423,
"after": 0.4637,
"delta": 0.0407,
"percent_delta": 0.0961,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.423,
"after": 0.4637,
"delta": 0.0407,
"percent_delta": 0.0961,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.233,
"after": 0.0,
"delta": -0.233,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.359,
"after": 4.0,
"delta": 0.641,
"percent_delta": 0.1908,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.269,
"after": 0.2774,
"delta": 0.0084,
"percent_delta": 0.0312,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.165,
"after": 0.0,
"delta": -0.165,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.903,
"after": 0.0,
"delta": -0.903,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.107,
"after": 0.0,
"delta": -0.107,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.303,
"after": 0.3193,
"delta": 0.0163,
"percent_delta": 0.0538,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.417,
"after": 0.0,
"delta": -0.417,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.485,
"after": 0.0,
"delta": -0.485,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.434,
"after": 0.4637,
"delta": 0.0297,
"percent_delta": 0.0684,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.757,
"after": 1.0,
"delta": 0.243,
"percent_delta": 0.321,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 11,
"boosted_metrics": 5,
"deboosted_metrics": 6,
"better_metrics": 4,
"worse_metrics": 7,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.359,
"after": 4.0,
"delta": 0.641,
"percent_delta": 0.1908,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 0.903,
"after": 0.0,
"delta": -0.903,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.233 | - |
| predicted_3B | 0.000 | - |
| predicted_AB | 3.359 | - |
| predicted_AVG | 0.269 | - |
| predicted_BB | 0.165 | - |
| predicted_H | 0.903 | - |
| predicted_HR | 0.107 | - |
| predicted_OBP | 0.303 | - |
| predicted_R | 0.417 | - |
| predicted_RBI | 0.485 | - |
| predicted_SLG | 0.434 | - |
| predicted_SO | 0.757 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.235 | 0.002 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 3.419 | 0.060 |
| predicted_AVG | 0.282 | 0.013 |
| predicted_BB | 0.210 | 0.045 |
| predicted_H | 0.964 | 0.061 |
| predicted_HBP | 0.002 | - |
| predicted_HR | 0.137 | 0.030 |
| predicted_OBP | 0.322 | 0.019 |
| predicted_R | 0.432 | 0.015 |
| predicted_RBI | 0.517 | 0.032 |
| predicted_SLG | 0.470 | 0.036 |
| predicted_SO | 0.799 | 0.042 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.235 | 0.000 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 3.419 | 0.000 |
| predicted_AVG | 0.277 | -0.004 |
| predicted_BB | 0.210 | 0.000 |
| predicted_H | 0.949 | -0.015 |
| predicted_HBP | 0.002 | 0.000 |
| predicted_HR | 0.134 | -0.003 |
| predicted_OBP | 0.319 | -0.002 |
| predicted_R | 0.422 | -0.010 |
| predicted_RBI | 0.505 | -0.012 |
| predicted_SLG | 0.464 | -0.006 |
| predicted_SO | 0.799 | 0.000 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=3.42), rates preserved: AVG=0.278 HR/AB=0.039
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=7.0, weight=0.076, BvP AVG=0.143)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.207 | 0.207 |
| 3B | 0.009 | 0.009 |
| BB | 0.159 | 0.159 |
| H | 0.932 | -0.068 |
| HR | 0.123 | 0.123 |
| RBI | 0.516 | -0.484 |
| SO | 0.925 | -0.075 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 0.793 |
| 3B | 0.000 | -0.009 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -0.159 |
| H | 1.000 | 0.068 |
| HR | 0.000 | -0.123 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -0.516 |
| SO | 1.000 | 0.075 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.235 |
| predicted_3B | 0.000 | -0.000 |
| predicted_AB | 4.000 | 0.581 |
| predicted_AVG | 0.259 | -0.018 |
| predicted_BB | 0.000 | -0.210 |
| predicted_H | 1.000 | 0.051 |
| predicted_HR | 0.000 | -0.134 |
| predicted_OBP | 0.296 | -0.023 |
| predicted_R | 0.000 | -0.422 |
| predicted_RBI | 1.000 | 0.495 |
| predicted_SLG | 0.423 | -0.041 |
| predicted_SO | 1.000 | 0.201 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -1.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | -1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 19.000 | 8.000 | 1.000 | 0.000 | 2.000 | 4.000 | 3.000 | 3.000 | 4.000 | 0.4211 | 0.5000 | 0.7895 | 0.4210 | 0.1053 | 0.2105 | 0.1579 | 0.2105 |
| last_10 | 0.20 | 10 | - | 35.000 | 10.000 | 3.000 | 0.000 | 2.000 | 6.000 | 4.000 | 3.000 | 12.000 | 0.2857 | 0.3421 | 0.5429 | 0.2857 | 0.0571 | 0.1714 | 0.0857 | 0.3429 |
| season | 0.60 | 103 | - | 346.000 | 93.000 | 24.000 | 0.000 | 11.000 | 50.000 | 43.000 | 17.000 | 78.000 | 0.2688 | 0.3030 | 0.4335 | 0.2688 | 0.0318 | 0.1445 | 0.0491 | 0.2254 |
| Metric | Value |
|---|---|
| predicted_2B | 0.2370 |
| predicted_3B | 0.0010 |
| predicted_AB | 3.5000 |
| predicted_AVG | 0.2985 |
| predicted_BB | 0.2710 |
| predicted_H | 1.0450 |
| predicted_HBP | 0.0020 |
| predicted_HR | 0.1760 |
| predicted_OBP | 0.3468 |
| predicted_R | 0.4520 |
| predicted_RBI | 0.5610 |
| predicted_SLG | 0.5175 |
| predicted_SO | 0.8550 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.2330 | 0.2370 | 0.2347 | model_form_blend |
| predicted_3B | 0.0000 | 0.0010 | 0.0004 | model_form_blend |
| predicted_AB | 3.3590 | 3.5000 | 3.4193 | model_form_blend |
| predicted_AVG | 0.2690 | 0.2985 | 0.2816 | model_form_blend |
| predicted_BB | 0.1650 | 0.2710 | 0.2103 | model_form_blend |
| predicted_H | 0.9030 | 1.0450 | 0.9637 | model_form_blend |
| predicted_HBP | - | 0.0020 | 0.0020 | form_only |
| predicted_HR | 0.1070 | 0.1760 | 0.1365 | model_form_blend |
| predicted_OBP | 0.3030 | 0.3468 | 0.3217 | model_form_blend |
| predicted_R | 0.4170 | 0.4520 | 0.4320 | model_form_blend |
| predicted_RBI | 0.4850 | 0.5610 | 0.5175 | model_form_blend |
| predicted_SLG | 0.4340 | 0.5175 | 0.4697 | model_form_blend |
| predicted_SO | 0.7570 | 0.8550 | 0.7989 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 348 |
| Season rows before report date | 348 |
| Report year | 2026 |
| Profile rows used | 103 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.5 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 2 |
| Hitting_HBP | 0 |
| Hitting_HR | 2 |
| Hitting_IBB | 0 |
| Hitting_R | 2 |
| Hitting_RBI | 2 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 8 |
| Hitting_battingOrder | 6 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | RF |
| gameID | 20260927_TB@PHI |
| game_type | full |
| mlbID | 676356 |
| playerID | 676356 |
| playerName | Jonny DeLuca |
| pos | RF |
| started | True |
| startingPosition | RF |
| team | TB |
| teamID | 27 |
| game_date | 2026-09-27 |
| sl_k_percent | 21.1 |
| sl_bb_percent | 4.6 |
| sl_woba | 0.317 |
| sl_xwoba | 0.261 |
| sl_xba | 0.232 |
| sl_xslg | 0.325 |
| sl_sweet_spot_percent | 28.7 |
| sl_barrel_batted_rate | 3.6 |
| sl_hard_hit_percent | 30.2 |
| sl_exit_velocity_avg | 85.8 |
| sl_launch_angle_avg | 13.9 |
| sl_whiff_percent | 24.9 |
| sl_swing_percent | 52.9 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.155 | 0.000 | 0.000 | Hitting_2B | 0.162 | 0.000 | -0.162 | 0.000 |
| predicted_3B | 0.006 | 0.000 | 0.000 | Hitting_3B | 0.006 | 0.000 | -0.006 | 0.000 |
| predicted_AB | 3.801 | 3.000 | 4.000 | Hitting_AB | 3.893 | 2.000 | -0.893 | 1.000 |
| predicted_AVG | 0.268 | 0.000 | 0.250 | Hitting_AVG | 0.284 | 0.000 | -0.284 | 0.000 |
| predicted_BB | 0.491 | 1.000 | 1.000 | Hitting_BB | 0.534 | 0.000 | 0.466 | 1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.021 | 0.000 | -0.021 | 0.000 |
| predicted_H | 0.970 | 0.000 | 1.000 | Hitting_H | 1.107 | 0.000 | -1.107 | 0.000 |
| predicted_HR | 0.210 | 0.000 | 1.000 | Hitting_HR | 0.278 | 0.000 | -0.278 | 0.000 |
| predicted_OBP | 0.334 | 0.250 | 0.400 | Hitting_OBP | 0.373 | 0.000 | -0.123 | 0.250 |
| predicted_R | 0.621 | 0.000 | 1.000 | Hitting_R | 0.671 | 0.000 | -0.671 | 0.000 |
| predicted_RBI | 0.650 | 0.000 | 1.000 | Hitting_RBI | 0.674 | 0.000 | -0.674 | 0.000 |
| predicted_SLG | 0.503 | 0.000 | 1.000 | Hitting_SLG | 0.544 | 0.000 | -0.544 | 0.000 |
| predicted_SO | 0.795 | 0.000 | 1.000 | Hitting_SO | 0.789 | 1.000 | -0.789 | -1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 11 |
| Boosted Metrics | 2 |
| Deboosted Metrics | 9 |
| Better Metrics | 3 |
| Worse Metrics | 8 |
| Biggest Boost | predicted_BB: 0.4910 -> 1.0000 (boost 0.5090, better) |
| Biggest Deboost | predicted_H: 0.9700 -> 0.0000 (deboost -0.9700, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 2 | 1 | 1 | 1 | 1 | predicted_OBP: 0.3340 -> 0.3404 (boost 0.0064, better) | predicted_AB: 3.8010 -> 3.7252 (deboost -0.0758, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 2 | 0 | 2 | 0 | 2 | - | predicted_SLG: 0.4982 -> 0.4690 (deboost -0.0292, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 6 | 3 | 3 | 2 | 4 | predicted_RBI: 0.6289 -> 1.0000 (boost 0.3711, better) | predicted_BB: 0.4437 -> 0.0000 (deboost -0.4437, worse) | AB rounded to 4 (raw=3.80), rates preserved: AVG=0.256 HR/AB=0.054 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=7.0, weight=0.076, BvP AVG=0.000) |
| 7 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.6203 -> 1.0000 (boost 0.3797, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 3 | 3 | 4 | 2 | predicted_BB: 0.0000 -> 0.3100 (boost 0.3100, better) | predicted_RBI: 1.0000 -> 0.5305 (deboost -0.4695, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 9 | lineup_integer_allocation | 6 | 5 | 1 | 4 | 2 | predicted_HR: 0.2144 -> 1.0000 (boost 0.7856, better) | predicted_2B: 0.1506 -> 0.0000 (deboost -0.1506, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 10 | embedded_savant_player_context | 4 | 0 | 4 | 0 | 4 | - | predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | simulation_box_score_reference | 6 | 1 | 5 | 2 | 4 | predicted_BB: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_AB: 4.0000 -> 3.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 12 | current_json_final | 2 | 2 | 0 | 2 | 0 | predicted_OBP: 0.3130 -> 0.3396 (boost 0.0266, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "691406",
"player_name": "Junior Caminero",
"position": "3B",
"team": "TB",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.155,
"predicted_3B": 0.006,
"predicted_AB": 3.801,
"predicted_AVG": 0.268,
"predicted_BB": 0.491,
"predicted_H": 0.97,
"predicted_HR": 0.21,
"predicted_OBP": 0.334,
"predicted_R": 0.621,
"predicted_RBI": 0.65,
"predicted_SLG": 0.503,
"predicted_SO": 0.795
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1449,
"predicted_3B": 0.0051,
"predicted_AB": 3.7252,
"predicted_AVG": 0.2725,
"predicted_BB": 0.4437,
"predicted_H": 0.9875,
"predicted_HBP": 0.015,
"predicted_HR": 0.2109,
"predicted_OBP": 0.3404,
"predicted_R": 0.6355,
"predicted_RBI": 0.6443,
"predicted_SLG": 0.4982,
"predicted_SO": 0.7709
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.155,
"after": 0.1449,
"delta": -0.0101,
"percent_delta": -0.0652,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.006,
"after": 0.0051,
"delta": -0.0009,
"percent_delta": -0.15,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.801,
"after": 3.7252,
"delta": -0.0758,
"percent_delta": -0.0199,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.268,
"after": 0.2725,
"delta": 0.0045,
"percent_delta": 0.0168,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.491,
"after": 0.4437,
"delta": -0.0473,
"percent_delta": -0.0963,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.97,
"after": 0.9875,
"delta": 0.0175,
"percent_delta": 0.018,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.21,
"after": 0.2109,
"delta": 0.0009,
"percent_delta": 0.0043,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.334,
"after": 0.3404,
"delta": 0.0064,
"percent_delta": 0.0192,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.621,
"after": 0.6355,
"delta": 0.0145,
"percent_delta": 0.0233,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.65,
"after": 0.6443,
"delta": -0.0057,
"percent_delta": -0.0088,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.503,
"after": 0.4982,
"delta": -0.0048,
"percent_delta": -0.0095,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.795,
"after": 0.7709,
"delta": -0.0241,
"percent_delta": -0.0303,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_OBP",
"before": 0.334,
"after": 0.3404,
"delta": 0.0064,
"percent_delta": 0.0192,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 3.801,
"after": 3.7252,
"delta": -0.0758,
"percent_delta": -0.0199,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 161
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1449,
"predicted_3B": 0.0051,
"predicted_AB": 3.7252,
"predicted_AVG": 0.2609,
"predicted_BB": 0.4437,
"predicted_H": 0.9719,
"predicted_HBP": 0.015,
"predicted_HR": 0.2067,
"predicted_OBP": 0.3396,
"predicted_R": 0.6203,
"predicted_RBI": 0.6289,
"predicted_SLG": 0.469,
"predicted_SO": 0.7709
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1449,
"after": 0.1449,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0051,
"after": 0.0051,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.7252,
"after": 3.7252,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2725,
"after": 0.2609,
"delta": -0.0116,
"percent_delta": -0.0426,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.4437,
"after": 0.4437,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.9875,
"after": 0.9719,
"delta": -0.0156,
"percent_delta": -0.0158,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.015,
"after": 0.015,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.2109,
"after": 0.2067,
"delta": -0.0042,
"percent_delta": -0.0199,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3404,
"after": 0.3396,
"delta": -0.0008,
"percent_delta": -0.0024,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.6355,
"after": 0.6203,
"delta": -0.0152,
"percent_delta": -0.0239,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.6443,
"after": 0.6289,
"delta": -0.0154,
"percent_delta": -0.0239,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4982,
"after": 0.469,
"delta": -0.0292,
"percent_delta": -0.0586,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.7709,
"after": 0.7709,
"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": 0,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.4982,
"after": 0.469,
"delta": -0.0292,
"percent_delta": -0.0586,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=3.80), rates preserved: AVG=0.256 HR/AB=0.054",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1449,
"after": 0.0,
"delta": -0.1449,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0051,
"after": 0.0,
"delta": -0.0051,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.7252,
"after": 4.0,
"delta": 0.2748,
"percent_delta": 0.0738,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.4437,
"after": 0.0,
"delta": -0.4437,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.9719,
"after": 1.0,
"delta": 0.0281,
"percent_delta": 0.0289,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.015,
"after": 0.0,
"delta": -0.015,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.2067,
"after": 0.0,
"delta": -0.2067,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.6289,
"after": 1.0,
"delta": 0.3711,
"percent_delta": 0.5901,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.7709,
"after": 1.0,
"delta": 0.2291,
"percent_delta": 0.2972,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 3,
"deboosted_metrics": 3,
"better_metrics": 2,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.6289,
"after": 1.0,
"delta": 0.3711,
"percent_delta": 0.5901,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.4437,
"after": 0.0,
"delta": -0.4437,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "bvp_blend",
"description": "Sample-size BvP blend (BvP AB=7.0, weight=0.076, BvP AVG=0.000)",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {
"model_expectation": 0.9243,
"bvp": 0.0757
},
"window_games": {}
},
{
"index": 7,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.6203,
"after": 1.0,
"delta": 0.3797,
"percent_delta": 0.6121,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.6203,
"after": 1.0,
"delta": 0.3797,
"percent_delta": 0.6121,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1506,
"predicted_3B": 0.0088,
"predicted_BB": 0.31,
"predicted_H": 0.912,
"predicted_HR": 0.2144,
"predicted_RBI": 0.5305,
"predicted_SO": 0.7881
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1506,
"delta": 0.1506,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0088,
"delta": 0.0088,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.31,
"delta": 0.31,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.912,
"delta": -0.088,
"percent_delta": -0.088,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.2144,
"delta": 0.2144,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.5305,
"delta": -0.4695,
"percent_delta": -0.4695,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.7881,
"delta": -0.2119,
"percent_delta": -0.2119,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 3,
"deboosted_metrics": 3,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 0.31,
"delta": 0.31,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.5305,
"delta": -0.4695,
"percent_delta": -0.4695,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1506,
"after": 0.0,
"delta": -0.1506,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0088,
"after": 0.0,
"delta": -0.0088,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.31,
"after": 1.0,
"delta": 0.69,
"percent_delta": 2.2258,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.912,
"after": 1.0,
"delta": 0.088,
"percent_delta": 0.0965,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.2144,
"after": 1.0,
"delta": 0.7856,
"percent_delta": 3.6642,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5305,
"after": 1.0,
"delta": 0.4695,
"percent_delta": 0.885,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.7881,
"after": 1.0,
"delta": 0.2119,
"percent_delta": 0.2689,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 5,
"deboosted_metrics": 1,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_HR",
"before": 0.2144,
"after": 1.0,
"delta": 0.7856,
"percent_delta": 3.6642,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_2B",
"before": 0.1506,
"after": 0.0,
"delta": -0.1506,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.248,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.313,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SLG": 0.47,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2609,
"after": 0.248,
"delta": -0.0129,
"percent_delta": -0.0494,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.3396,
"after": 0.313,
"delta": -0.0266,
"percent_delta": -0.0783,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.469,
"after": 0.47,
"delta": 0.001,
"percent_delta": 0.0021,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 0,
"deboosted_metrics": 4,
"better_metrics": 0,
"worse_metrics": 4,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 1,
"deboosted_metrics": 5,
"better_metrics": 2,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 12,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.2609,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3396,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.469,
"predicted_SO": 0.0,
"predicted_TB": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.248,
"after": 0.2609,
"delta": 0.0129,
"percent_delta": 0.052,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.313,
"after": 0.3396,
"delta": 0.0266,
"percent_delta": 0.0849,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.47,
"after": 0.469,
"delta": -0.001,
"percent_delta": -0.0021,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_OBP",
"before": 0.313,
"after": 0.3396,
"delta": 0.0266,
"percent_delta": 0.0849,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.155,
"after": 0.0,
"delta": -0.155,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.006,
"after": 0.0,
"delta": -0.006,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.801,
"after": 3.0,
"delta": -0.801,
"percent_delta": -0.2107,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.268,
"after": 0.2609,
"delta": -0.0071,
"percent_delta": -0.0265,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.491,
"after": 1.0,
"delta": 0.509,
"percent_delta": 1.0367,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.97,
"after": 0.0,
"delta": -0.97,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.21,
"after": 0.0,
"delta": -0.21,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.334,
"after": 0.3396,
"delta": 0.0056,
"percent_delta": 0.0168,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.621,
"after": 0.0,
"delta": -0.621,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.65,
"after": 0.0,
"delta": -0.65,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.503,
"after": 0.469,
"delta": -0.034,
"percent_delta": -0.0676,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.795,
"after": 0.0,
"delta": -0.795,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 11,
"boosted_metrics": 2,
"deboosted_metrics": 9,
"better_metrics": 3,
"worse_metrics": 8,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.491,
"after": 1.0,
"delta": 0.509,
"percent_delta": 1.0367,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 0.97,
"after": 0.0,
"delta": -0.97,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.155 | - |
| predicted_3B | 0.006 | - |
| predicted_AB | 3.801 | - |
| predicted_AVG | 0.268 | - |
| predicted_BB | 0.491 | - |
| predicted_H | 0.970 | - |
| predicted_HR | 0.210 | - |
| predicted_OBP | 0.334 | - |
| predicted_R | 0.621 | - |
| predicted_RBI | 0.650 | - |
| predicted_SLG | 0.503 | - |
| predicted_SO | 0.795 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.145 | -0.010 |
| predicted_3B | 0.005 | -0.001 |
| predicted_AB | 3.725 | -0.076 |
| predicted_AVG | 0.273 | 0.005 |
| predicted_BB | 0.444 | -0.047 |
| predicted_H | 0.988 | 0.018 |
| predicted_HBP | 0.015 | - |
| predicted_HR | 0.211 | 0.001 |
| predicted_OBP | 0.340 | 0.006 |
| predicted_R | 0.635 | 0.014 |
| predicted_RBI | 0.644 | -0.006 |
| predicted_SLG | 0.498 | -0.005 |
| predicted_SO | 0.771 | -0.024 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.145 | 0.000 |
| predicted_3B | 0.005 | 0.000 |
| predicted_AB | 3.725 | 0.000 |
| predicted_AVG | 0.261 | -0.012 |
| predicted_BB | 0.444 | 0.000 |
| predicted_H | 0.972 | -0.016 |
| predicted_HBP | 0.015 | 0.000 |
| predicted_HR | 0.207 | -0.004 |
| predicted_OBP | 0.340 | -0.001 |
| predicted_R | 0.620 | -0.015 |
| predicted_RBI | 0.629 | -0.015 |
| predicted_SLG | 0.469 | -0.029 |
| predicted_SO | 0.771 | 0.000 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=3.80), rates preserved: AVG=0.256 HR/AB=0.054
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=7.0, weight=0.076, BvP AVG=0.000)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.151 | 0.151 |
| 3B | 0.009 | 0.009 |
| BB | 0.310 | 0.310 |
| H | 0.912 | -0.088 |
| HR | 0.214 | 0.214 |
| RBI | 0.530 | -0.470 |
| SO | 0.788 | -0.212 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.151 |
| 3B | 0.000 | -0.009 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 0.690 |
| H | 1.000 | 0.088 |
| HR | 1.000 | 0.786 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.470 |
| SO | 1.000 | 0.212 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.145 |
| predicted_3B | 0.000 | -0.005 |
| predicted_AB | 4.000 | 0.275 |
| predicted_AVG | 0.248 | -0.013 |
| predicted_BB | 0.000 | -0.444 |
| predicted_H | 1.000 | 0.028 |
| predicted_HR | 0.000 | -0.207 |
| predicted_OBP | 0.313 | -0.027 |
| predicted_R | 1.000 | 0.380 |
| predicted_RBI | 1.000 | 0.371 |
| predicted_SLG | 0.470 | 0.001 |
| predicted_SO | 1.000 | 0.229 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | -1.000 |
| BB | 1.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | -1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | -1.000 |
| PA | 4.000 | - |
| R | 0.000 | -1.000 |
| RBI | 0.000 | -1.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 16.000 | 5.000 | 0.000 | 0.000 | 1.000 | 4.000 | 4.000 | 1.000 | 3.000 | 0.3125 | 0.3529 | 0.5000 | 0.3125 | 0.0625 | 0.2500 | 0.0625 | 0.1875 |
| last_10 | 0.20 | 10 | - | 35.000 | 9.000 | 2.000 | 0.000 | 1.000 | 5.000 | 6.000 | 3.000 | 7.000 | 0.2571 | 0.3158 | 0.4000 | 0.2571 | 0.0286 | 0.1429 | 0.0857 | 0.2000 |
| season | 0.60 | 161 | - | 612.000 | 169.000 | 25.000 | 1.000 | 42.000 | 101.000 | 100.000 | 79.000 | 128.000 | 0.2761 | 0.3610 | 0.5261 | 0.2761 | 0.0686 | 0.1650 | 0.1291 | 0.2092 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1320 |
| predicted_3B | 0.0040 |
| predicted_AB | 3.6280 |
| predicted_AVG | 0.2783 |
| predicted_BB | 0.3830 |
| predicted_H | 1.0100 |
| predicted_HBP | 0.0150 |
| predicted_HR | 0.2120 |
| predicted_OBP | 0.3485 |
| predicted_R | 0.6540 |
| predicted_RBI | 0.6370 |
| predicted_SLG | 0.4920 |
| predicted_SO | 0.7400 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1550 | 0.1320 | 0.1449 | model_form_blend |
| predicted_3B | 0.0060 | 0.0040 | 0.0051 | model_form_blend |
| predicted_AB | 3.8010 | 3.6280 | 3.7252 | model_form_blend |
| predicted_AVG | 0.2680 | 0.2783 | 0.2725 | model_form_blend |
| predicted_BB | 0.4910 | 0.3830 | 0.4437 | model_form_blend |
| predicted_H | 0.9700 | 1.0100 | 0.9875 | model_form_blend |
| predicted_HBP | - | 0.0150 | 0.0150 | form_only |
| predicted_HR | 0.2100 | 0.2120 | 0.2109 | model_form_blend |
| predicted_OBP | 0.3340 | 0.3485 | 0.3404 | model_form_blend |
| predicted_R | 0.6210 | 0.6540 | 0.6355 | model_form_blend |
| predicted_RBI | 0.6500 | 0.6370 | 0.6443 | model_form_blend |
| predicted_SLG | 0.5030 | 0.4920 | 0.4982 | model_form_blend |
| predicted_SO | 0.7950 | 0.7400 | 0.7709 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 672 |
| Season rows before report date | 672 |
| Report year | 2026 |
| Profile rows used | 161 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 3 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 1 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 2 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 3 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | 3B |
| gameID | 20260927_TB@PHI |
| game_type | full |
| mlbID | 691406 |
| playerID | 691406 |
| playerName | Junior Caminero |
| pos | 3B |
| started | True |
| startingPosition | 3B |
| team | TB |
| teamID | 27 |
| game_date | 2026-09-27 |
| sl_k_percent | 18.4 |
| sl_bb_percent | 11.3 |
| sl_woba | 0.375 |
| sl_xwoba | 0.364 |
| sl_xba | 0.273 |
| sl_xslg | 0.499 |
| sl_sweet_spot_percent | 27.1 |
| sl_barrel_batted_rate | 13.1 |
| sl_hard_hit_percent | 49.7 |
| sl_exit_velocity_avg | 92.7 |
| sl_launch_angle_avg | 10.4 |
| sl_whiff_percent | 24.1 |
| sl_swing_percent | 44.4 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.109 | 0.000 | 0.000 | Hitting_2B | 0.115 | 0.000 | -0.115 | 0.000 |
| predicted_3B | 0.041 | 0.000 | 0.000 | Hitting_3B | 0.035 | 0.000 | -0.035 | 0.000 |
| predicted_AB | 4.570 | 4.000 | 4.000 | Hitting_AB | 3.978 | 3.000 | 0.022 | 1.000 |
| predicted_AVG | 0.275 | 0.500 | 0.250 | Hitting_AVG | 0.307 | 0.000 | 0.193 | 0.500 |
| predicted_BB | 0.170 | 0.000 | 0.000 | Hitting_BB | 0.192 | 0.000 | -0.192 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.103 | 0.000 | -0.103 | 0.000 |
| predicted_H | 1.260 | 2.000 | 1.000 | Hitting_H | 1.221 | 0.000 | 0.779 | 2.000 |
| predicted_HR | 0.000 | 0.000 | 0.000 | Hitting_HR | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_OBP | 0.295 | 0.500 | 0.250 | Hitting_OBP | 0.335 | 0.000 | 0.165 | 0.500 |
| predicted_R | 0.442 | 1.000 | 0.000 | Hitting_R | 0.454 | 0.000 | 0.546 | 1.000 |
| predicted_RBI | 0.370 | 0.000 | 0.000 | Hitting_RBI | 0.263 | 0.000 | -0.263 | 0.000 |
| predicted_SLG | 0.333 | 0.500 | 0.250 | Hitting_SLG | 0.354 | 0.000 | 0.146 | 0.500 |
| predicted_SO | 0.327 | 0.000 | 0.000 | Hitting_SO | 0.342 | 1.000 | -0.342 | -1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 9 |
| Boosted Metrics | 3 |
| Deboosted Metrics | 6 |
| Better Metrics | 4 |
| Worse Metrics | 5 |
| Biggest Boost | predicted_H: 1.2600 -> 2.0000 (boost 0.7400, better) |
| Biggest Deboost | predicted_AB: 4.5700 -> 4.0000 (deboost -0.5700, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 4 | 2 | 2 | 2 | 2 | predicted_AVG: 0.2750 -> 0.2828 (boost 0.0078, better) | predicted_AB: 4.5700 -> 4.2468 (deboost -0.3232, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 1 | 0 | 1 | 0 | 1 | - | predicted_SLG: 0.3352 -> 0.3210 (deboost -0.0142, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 6 | 0 | 6 | 1 | 5 | - | predicted_RBI: 0.3496 -> 0.0000 (deboost -0.3496, worse) | AB rounded to 4 (raw=4.57), rates preserved: AVG=0.259 HR/AB=0.001 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=6.0, weight=0.067, BvP AVG=0.333) |
| 7 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.4085 -> 0.0000 (deboost -0.4085, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 5 | 5 | 0 | 4 | 1 | predicted_SO: 0.0000 -> 0.3819 (boost 0.3819, worse) | - | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 9 | lineup_integer_allocation | 5 | 0 | 5 | 1 | 4 | - | predicted_SO: 0.3819 -> 0.0000 (deboost -0.3819, better) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 10 | embedded_savant_player_context | 3 | 3 | 0 | 3 | 0 | predicted_SLG: 0.3210 -> 0.3750 (boost 0.0540, better) | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | simulation_box_score_reference | 2 | 2 | 0 | 2 | 0 | predicted_H: 1.0000 -> 2.0000 (boost 1.0000, better) | - | Attached simulation box score without overwriting model prediction |
| 12 | current_json_final | 3 | 0 | 3 | 0 | 3 | - | predicted_SLG: 0.3750 -> 0.3210 (deboost -0.0540, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "802415",
"player_name": "Chandler Simpson",
"position": "LF",
"team": "TB",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.109,
"predicted_3B": 0.041,
"predicted_AB": 4.57,
"predicted_AVG": 0.275,
"predicted_BB": 0.17,
"predicted_H": 1.26,
"predicted_HR": 0.0,
"predicted_OBP": 0.295,
"predicted_R": 0.442,
"predicted_RBI": 0.37,
"predicted_SLG": 0.333,
"predicted_SO": 0.327
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1081,
"predicted_3B": 0.0336,
"predicted_AB": 4.2468,
"predicted_AVG": 0.2828,
"predicted_BB": 0.143,
"predicted_H": 1.1994,
"predicted_HBP": 0.002,
"predicted_HR": 0.0026,
"predicted_OBP": 0.3016,
"predicted_R": 0.4185,
"predicted_RBI": 0.3582,
"predicted_SLG": 0.3352,
"predicted_SO": 0.334
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.109,
"after": 0.1081,
"delta": -0.0009,
"percent_delta": -0.0083,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.041,
"after": 0.0336,
"delta": -0.0074,
"percent_delta": -0.1805,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.57,
"after": 4.2468,
"delta": -0.3232,
"percent_delta": -0.0707,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.275,
"after": 0.2828,
"delta": 0.0078,
"percent_delta": 0.0284,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.17,
"after": 0.143,
"delta": -0.027,
"percent_delta": -0.1588,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.26,
"after": 1.1994,
"delta": -0.0606,
"percent_delta": -0.0481,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0026,
"delta": 0.0026,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.295,
"after": 0.3016,
"delta": 0.0066,
"percent_delta": 0.0224,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.442,
"after": 0.4185,
"delta": -0.0235,
"percent_delta": -0.0532,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.37,
"after": 0.3582,
"delta": -0.0118,
"percent_delta": -0.0319,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.333,
"after": 0.3352,
"delta": 0.0022,
"percent_delta": 0.0066,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.327,
"after": 0.334,
"delta": 0.007,
"percent_delta": 0.0214,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 2,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_AVG",
"before": 0.275,
"after": 0.2828,
"delta": 0.0078,
"percent_delta": 0.0284,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.57,
"after": 4.2468,
"delta": -0.3232,
"percent_delta": -0.0707,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 147
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1081,
"predicted_3B": 0.0336,
"predicted_AB": 4.2468,
"predicted_AVG": 0.278,
"predicted_BB": 0.143,
"predicted_H": 1.1804,
"predicted_HBP": 0.002,
"predicted_HR": 0.0025,
"predicted_OBP": 0.3015,
"predicted_R": 0.4085,
"predicted_RBI": 0.3496,
"predicted_SLG": 0.321,
"predicted_SO": 0.334
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1081,
"after": 0.1081,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0336,
"after": 0.0336,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.2468,
"after": 4.2468,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2828,
"after": 0.278,
"delta": -0.0048,
"percent_delta": -0.017,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.143,
"after": 0.143,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.1994,
"after": 1.1804,
"delta": -0.019,
"percent_delta": -0.0158,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.002,
"after": 0.002,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0026,
"after": 0.0025,
"delta": -0.0001,
"percent_delta": -0.0385,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3016,
"after": 0.3015,
"delta": -0.0001,
"percent_delta": -0.0003,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.4185,
"after": 0.4085,
"delta": -0.01,
"percent_delta": -0.0239,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.3582,
"after": 0.3496,
"delta": -0.0086,
"percent_delta": -0.024,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3352,
"after": 0.321,
"delta": -0.0142,
"percent_delta": -0.0424,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.334,
"after": 0.334,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.3352,
"after": 0.321,
"delta": -0.0142,
"percent_delta": -0.0424,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=4.57), rates preserved: AVG=0.259 HR/AB=0.001",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1081,
"after": 0.0,
"delta": -0.1081,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0336,
"after": 0.0,
"delta": -0.0336,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.2468,
"after": 4.0,
"delta": -0.2468,
"percent_delta": -0.0581,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.143,
"after": 0.0,
"delta": -0.143,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.1804,
"after": 1.0,
"delta": -0.1804,
"percent_delta": -0.1528,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.002,
"after": 0.0,
"delta": -0.002,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0025,
"after": 0.0,
"delta": -0.0025,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.3496,
"after": 0.0,
"delta": -0.3496,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.334,
"after": 0.0,
"delta": -0.334,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 0,
"deboosted_metrics": 6,
"better_metrics": 1,
"worse_metrics": 5,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.3496,
"after": 0.0,
"delta": -0.3496,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "bvp_blend",
"description": "Sample-size BvP blend (BvP AB=6.0, weight=0.067, BvP AVG=0.333)",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {
"model_expectation": 0.9333,
"bvp": 0.0667
},
"window_games": {}
},
{
"index": 7,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.4085,
"after": 0.0,
"delta": -0.4085,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_R",
"before": 0.4085,
"after": 0.0,
"delta": -0.4085,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1536,
"predicted_3B": 0.0214,
"predicted_BB": 0.1559,
"predicted_H": 1.1166,
"predicted_HR": 0.0397,
"predicted_RBI": 0.3046,
"predicted_SO": 0.3819
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1536,
"delta": 0.1536,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0214,
"delta": 0.0214,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.1559,
"delta": 0.1559,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.1166,
"delta": 0.1166,
"percent_delta": 0.1166,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0397,
"delta": 0.0397,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.3046,
"delta": 0.3046,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.3819,
"delta": 0.3819,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 5,
"deboosted_metrics": 0,
"better_metrics": 4,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.0,
"after": 0.3819,
"delta": 0.3819,
"percent_delta": null,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1536,
"after": 0.0,
"delta": -0.1536,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0214,
"after": 0.0,
"delta": -0.0214,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.1559,
"after": 0.0,
"delta": -0.1559,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.1166,
"after": 1.0,
"delta": -0.1166,
"percent_delta": -0.1044,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0397,
"after": 0.0,
"delta": -0.0397,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.3046,
"after": 0.0,
"delta": -0.3046,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.3819,
"after": 0.0,
"delta": -0.3819,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 0,
"deboosted_metrics": 5,
"better_metrics": 1,
"worse_metrics": 4,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SO",
"before": 0.3819,
"after": 0.0,
"delta": -0.3819,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.292,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.326,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.375,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.278,
"after": 0.292,
"delta": 0.014,
"percent_delta": 0.0504,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3015,
"after": 0.326,
"delta": 0.0245,
"percent_delta": 0.0813,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.321,
"after": 0.375,
"delta": 0.054,
"percent_delta": 0.1682,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.321,
"after": 0.375,
"delta": 0.054,
"percent_delta": 0.1682,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 2.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_H",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 12,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.278,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 2.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_LF": 0.0,
"predicted_OBP": 0.3015,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.321,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.292,
"after": 0.278,
"delta": -0.014,
"percent_delta": -0.0481,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_CS",
"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_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.326,
"after": 0.3015,
"delta": -0.0245,
"percent_delta": -0.0752,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.375,
"after": 0.321,
"delta": -0.054,
"percent_delta": -0.1439,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.375,
"after": 0.321,
"delta": -0.054,
"percent_delta": -0.1439,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.109,
"after": 0.0,
"delta": -0.109,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.041,
"after": 0.0,
"delta": -0.041,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.57,
"after": 4.0,
"delta": -0.57,
"percent_delta": -0.1247,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.275,
"after": 0.278,
"delta": 0.003,
"percent_delta": 0.0109,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.17,
"after": 0.0,
"delta": -0.17,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.26,
"after": 2.0,
"delta": 0.74,
"percent_delta": 0.5873,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_OBP",
"before": 0.295,
"after": 0.3015,
"delta": 0.0065,
"percent_delta": 0.022,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.442,
"after": 1.0,
"delta": 0.558,
"percent_delta": 1.2624,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.37,
"after": 0.0,
"delta": -0.37,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.333,
"after": 0.321,
"delta": -0.012,
"percent_delta": -0.036,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.327,
"after": 0.0,
"delta": -0.327,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 9,
"boosted_metrics": 3,
"deboosted_metrics": 6,
"better_metrics": 4,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_H",
"before": 1.26,
"after": 2.0,
"delta": 0.74,
"percent_delta": 0.5873,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.57,
"after": 4.0,
"delta": -0.57,
"percent_delta": -0.1247,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.109 | - |
| predicted_3B | 0.041 | - |
| predicted_AB | 4.570 | - |
| predicted_AVG | 0.275 | - |
| predicted_BB | 0.170 | - |
| predicted_H | 1.260 | - |
| predicted_HR | 0.000 | - |
| predicted_OBP | 0.295 | - |
| predicted_R | 0.442 | - |
| predicted_RBI | 0.370 | - |
| predicted_SLG | 0.333 | - |
| predicted_SO | 0.327 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.108 | -0.001 |
| predicted_3B | 0.034 | -0.007 |
| predicted_AB | 4.247 | -0.323 |
| predicted_AVG | 0.283 | 0.008 |
| predicted_BB | 0.143 | -0.027 |
| predicted_H | 1.199 | -0.061 |
| predicted_HBP | 0.002 | - |
| predicted_HR | 0.003 | 0.003 |
| predicted_OBP | 0.302 | 0.007 |
| predicted_R | 0.418 | -0.024 |
| predicted_RBI | 0.358 | -0.012 |
| predicted_SLG | 0.335 | 0.002 |
| predicted_SO | 0.334 | 0.007 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.108 | 0.000 |
| predicted_3B | 0.034 | 0.000 |
| predicted_AB | 4.247 | 0.000 |
| predicted_AVG | 0.278 | -0.005 |
| predicted_BB | 0.143 | 0.000 |
| predicted_H | 1.180 | -0.019 |
| predicted_HBP | 0.002 | 0.000 |
| predicted_HR | 0.003 | -0.000 |
| predicted_OBP | 0.301 | -0.000 |
| predicted_R | 0.408 | -0.010 |
| predicted_RBI | 0.350 | -0.009 |
| predicted_SLG | 0.321 | -0.014 |
| predicted_SO | 0.334 | 0.000 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=4.57), rates preserved: AVG=0.259 HR/AB=0.001
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 0.000 | - |
Sample-size BvP blend (BvP AB=6.0, weight=0.067, BvP AVG=0.333)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SO | 0.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 0.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.154 | 0.154 |
| 3B | 0.021 | 0.021 |
| BB | 0.156 | 0.156 |
| H | 1.117 | 0.117 |
| HR | 0.040 | 0.040 |
| RBI | 0.305 | 0.305 |
| SO | 0.382 | 0.382 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.154 |
| 3B | 0.000 | -0.021 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -0.156 |
| H | 1.000 | -0.117 |
| HR | 0.000 | -0.040 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -0.305 |
| SO | 0.000 | -0.382 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.108 |
| predicted_3B | 0.000 | -0.034 |
| predicted_AB | 4.000 | -0.247 |
| predicted_AVG | 0.292 | 0.014 |
| predicted_BB | 0.000 | -0.143 |
| predicted_H | 1.000 | -0.180 |
| predicted_HR | 0.000 | -0.003 |
| predicted_OBP | 0.326 | 0.025 |
| predicted_R | 0.000 | -0.408 |
| predicted_RBI | 0.000 | -0.350 |
| predicted_SLG | 0.375 | 0.054 |
| predicted_SO | 0.000 | -0.334 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 2.000 | 1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 1.000 | 1.000 |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 18.000 | 4.000 | 0.000 | 0.000 | 0.000 | 2.000 | 1.000 | 0.000 | 2.000 | 0.2222 | 0.2222 | 0.2222 | 0.2222 | 0.0000 | 0.1111 | 0.0000 | 0.1111 |
| last_10 | 0.20 | 10 | - | 39.000 | 13.000 | 2.000 | 0.000 | 0.000 | 5.000 | 4.000 | 0.000 | 2.000 | 0.3333 | 0.3333 | 0.3846 | 0.3333 | 0.0000 | 0.1282 | 0.0000 | 0.0513 |
| season | 0.60 | 147 | - | 571.000 | 175.000 | 16.000 | 6.000 | 0.000 | 38.000 | 65.000 | 25.000 | 48.000 | 0.3065 | 0.3322 | 0.3555 | 0.3065 | 0.0000 | 0.0665 | 0.0438 | 0.0841 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1070 |
| predicted_3B | 0.0240 |
| predicted_AB | 3.8290 |
| predicted_AVG | 0.2928 |
| predicted_BB | 0.1080 |
| predicted_H | 1.1210 |
| predicted_HBP | 0.0020 |
| predicted_HR | 0.0060 |
| predicted_OBP | 0.3102 |
| predicted_R | 0.3880 |
| predicted_RBI | 0.3430 |
| predicted_SLG | 0.3381 |
| predicted_SO | 0.3430 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1090 | 0.1070 | 0.1081 | model_form_blend |
| predicted_3B | 0.0410 | 0.0240 | 0.0336 | model_form_blend |
| predicted_AB | 4.5700 | 3.8290 | 4.2468 | model_form_blend |
| predicted_AVG | 0.2750 | 0.2928 | 0.2828 | model_form_blend |
| predicted_BB | 0.1700 | 0.1080 | 0.1430 | model_form_blend |
| predicted_H | 1.2600 | 1.1210 | 1.1994 | model_form_blend |
| predicted_HBP | - | 0.0020 | 0.0020 | form_only |
| predicted_HR | 0.0000 | 0.0060 | 0.0026 | model_form_blend |
| predicted_OBP | 0.2950 | 0.3102 | 0.3016 | model_form_blend |
| predicted_R | 0.4420 | 0.3880 | 0.4185 | model_form_blend |
| predicted_RBI | 0.3700 | 0.3430 | 0.3582 | model_form_blend |
| predicted_SLG | 0.3330 | 0.3381 | 0.3352 | model_form_blend |
| predicted_SO | 0.3270 | 0.3430 | 0.3340 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 593 |
| Season rows before report date | 593 |
| Report year | 2026 |
| Profile rows used | 147 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 2 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 1 |
| RBI | 0 |
| BB | 0 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 3 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 6 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | LF |
| gameID | 20260925_TB@PHI |
| game_type | full |
| mlbID | 802415 |
| playerID | 802415 |
| playerName | Chandler Simpson |
| pos | LF |
| started | True |
| startingPosition | LF |
| team | TB |
| teamID | 27 |
| game_date | 2026-09-25 |
| sl_k_percent | 7.8 |
| sl_bb_percent | 4.2 |
| sl_woba | 0.305 |
| sl_xwoba | 0.263 |
| sl_xba | 0.261 |
| sl_xslg | 0.297 |
| sl_sweet_spot_percent | 25.7 |
| sl_barrel_batted_rate | 0.0 |
| sl_hard_hit_percent | 13.4 |
| sl_exit_velocity_avg | 83.6 |
| sl_launch_angle_avg | 1.2 |
| sl_whiff_percent | 10.8 |
| sl_swing_percent | 48.5 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.119 | 1.000 | 0.000 | Hitting_2B | 0.128 | 0.000 | 0.872 | 1.000 |
| predicted_3B | 0.017 | 0.000 | 0.000 | Hitting_3B | 0.023 | 0.000 | -0.023 | 0.000 |
| predicted_AB | 2.924 | 4.000 | 3.000 | Hitting_AB | 3.159 | 4.000 | 0.841 | 0.000 |
| predicted_AVG | 0.246 | 0.500 | 0.333 | Hitting_AVG | 0.245 | 0.000 | 0.255 | 0.500 |
| predicted_BB | 0.390 | 0.000 | 0.000 | Hitting_BB | 0.466 | 0.000 | -0.466 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.052 | 0.000 | -0.052 | 0.000 |
| predicted_H | 0.680 | 2.000 | 1.000 | Hitting_H | 0.773 | 0.000 | 1.227 | 2.000 |
| predicted_HR | 0.100 | 0.000 | 0.000 | Hitting_HR | 0.102 | 0.000 | -0.102 | 0.000 |
| predicted_OBP | 0.323 | 0.500 | 0.333 | Hitting_OBP | 0.347 | 0.000 | 0.153 | 0.500 |
| predicted_R | 0.407 | 1.000 | 0.000 | Hitting_R | 0.497 | 0.000 | 0.503 | 1.000 |
| predicted_RBI | 0.530 | 2.000 | 0.000 | Hitting_RBI | 0.518 | 0.000 | 1.482 | 2.000 |
| predicted_SB | - | 0.000 | 0.000 | BaseRunning_SB | 0.143 | 0.000 | -0.143 | 0.000 |
| predicted_SLG | 0.365 | 0.750 | 0.333 | Hitting_SLG | 0.397 | 0.000 | 0.353 | 0.750 |
| predicted_SO | 0.576 | 1.000 | 1.000 | Hitting_SO | 0.628 | 0.000 | 0.372 | 1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 10 |
| Boosted Metrics | 7 |
| Deboosted Metrics | 3 |
| Better Metrics | 6 |
| Worse Metrics | 4 |
| Biggest Boost | predicted_RBI: 0.5300 -> 2.0000 (boost 1.4700, better) |
| Biggest Deboost | predicted_BB: 0.3900 -> 0.0000 (deboost -0.3900, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 1 | 1 | 0 | 1 | 0 | predicted_AB: 2.9240 -> 2.9785 (boost 0.0545, better) | - | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 2 | 1 | 1 | 1 | 1 | predicted_SLG: 0.3697 -> 0.3770 (boost 0.0073, better) | predicted_AVG: 0.2454 -> 0.2340 (deboost -0.0114, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 6 | 3 | 3 | 2 | 4 | predicted_RBI: 0.5630 -> 1.0000 (boost 0.4370, better) | predicted_BB: 0.3891 -> 0.0000 (deboost -0.3891, worse) | AB rounded to 3 (raw=2.98), rates preserved: AVG=0.234 HR/AB=0.030 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=8.0, weight=0.084, BvP AVG=0.250) |
| 7 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.3616 -> 0.0000 (deboost -0.3616, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 3 | 3 | 4 | 2 | predicted_BB: 0.0000 -> 0.2848 (boost 0.2848, better) | predicted_RBI: 1.0000 -> 0.4310 (deboost -0.5690, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 9 | lineup_integer_allocation | 6 | 2 | 4 | 1 | 5 | predicted_SO: 0.6672 -> 1.0000 (boost 0.3328, worse) | predicted_RBI: 0.4310 -> 0.0000 (deboost -0.4310, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 10 | embedded_savant_player_context | 4 | 3 | 1 | 3 | 1 | predicted_RBI: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_OBP: 0.3225 -> 0.3090 (deboost -0.0135, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | simulation_box_score_reference | 5 | 5 | 0 | 5 | 0 | predicted_2B: 0.0000 -> 1.0000 (boost 1.0000, better) | - | Attached simulation box score without overwriting model prediction |
| 12 | current_json_final | 3 | 1 | 2 | 1 | 2 | predicted_OBP: 0.3090 -> 0.3225 (boost 0.0135, better) | predicted_AVG: 0.2410 -> 0.2340 (deboost -0.0070, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "680700",
"player_name": "Richie Palacios",
"position": "2B",
"team": "TB",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.119,
"predicted_3B": 0.017,
"predicted_AB": 2.924,
"predicted_AVG": 0.246,
"predicted_BB": 0.39,
"predicted_H": 0.68,
"predicted_HR": 0.1,
"predicted_OBP": 0.323,
"predicted_R": 0.407,
"predicted_RBI": 0.53,
"predicted_SLG": 0.365,
"predicted_SO": 0.576
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1332,
"predicted_3B": 0.0144,
"predicted_AB": 2.9785,
"predicted_AVG": 0.2454,
"predicted_BB": 0.3891,
"predicted_H": 0.7083,
"predicted_HBP": 0.022,
"predicted_HR": 0.0897,
"predicted_OBP": 0.3274,
"predicted_R": 0.3705,
"predicted_RBI": 0.5768,
"predicted_SLG": 0.3697,
"predicted_SO": 0.5794
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.119,
"after": 0.1332,
"delta": 0.0142,
"percent_delta": 0.1193,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.017,
"after": 0.0144,
"delta": -0.0026,
"percent_delta": -0.1529,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.924,
"after": 2.9785,
"delta": 0.0545,
"percent_delta": 0.0186,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.246,
"after": 0.2454,
"delta": -0.0006,
"percent_delta": -0.0024,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.39,
"after": 0.3891,
"delta": -0.0009,
"percent_delta": -0.0023,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.68,
"after": 0.7083,
"delta": 0.0283,
"percent_delta": 0.0416,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1,
"after": 0.0897,
"delta": -0.0103,
"percent_delta": -0.103,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.323,
"after": 0.3274,
"delta": 0.0044,
"percent_delta": 0.0136,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.407,
"after": 0.3705,
"delta": -0.0365,
"percent_delta": -0.0897,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.53,
"after": 0.5768,
"delta": 0.0468,
"percent_delta": 0.0883,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.365,
"after": 0.3697,
"delta": 0.0047,
"percent_delta": 0.0129,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.576,
"after": 0.5794,
"delta": 0.0034,
"percent_delta": 0.0059,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_AB",
"before": 2.924,
"after": 2.9785,
"delta": 0.0545,
"percent_delta": 0.0186,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 118
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1332,
"predicted_3B": 0.0144,
"predicted_AB": 2.9785,
"predicted_AVG": 0.234,
"predicted_BB": 0.3891,
"predicted_H": 0.6971,
"predicted_HBP": 0.022,
"predicted_HR": 0.0879,
"predicted_OBP": 0.3225,
"predicted_R": 0.3616,
"predicted_RBI": 0.563,
"predicted_SLG": 0.377,
"predicted_SO": 0.5794
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1332,
"after": 0.1332,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0144,
"after": 0.0144,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.9785,
"after": 2.9785,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2454,
"after": 0.234,
"delta": -0.0114,
"percent_delta": -0.0465,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.3891,
"after": 0.3891,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.7083,
"after": 0.6971,
"delta": -0.0112,
"percent_delta": -0.0158,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.022,
"after": 0.022,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0897,
"after": 0.0879,
"delta": -0.0018,
"percent_delta": -0.0201,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3274,
"after": 0.3225,
"delta": -0.0049,
"percent_delta": -0.015,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.3705,
"after": 0.3616,
"delta": -0.0089,
"percent_delta": -0.024,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5768,
"after": 0.563,
"delta": -0.0138,
"percent_delta": -0.0239,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3697,
"after": 0.377,
"delta": 0.0073,
"percent_delta": 0.0197,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.5794,
"after": 0.5794,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.3697,
"after": 0.377,
"delta": 0.0073,
"percent_delta": 0.0197,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AVG",
"before": 0.2454,
"after": 0.234,
"delta": -0.0114,
"percent_delta": -0.0465,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 3 (raw=2.98), rates preserved: AVG=0.234 HR/AB=0.030",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1332,
"after": 0.0,
"delta": -0.1332,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0144,
"after": 0.0,
"delta": -0.0144,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.9785,
"after": 3.0,
"delta": 0.0215,
"percent_delta": 0.0072,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.3891,
"after": 0.0,
"delta": -0.3891,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.6971,
"after": 1.0,
"delta": 0.3029,
"percent_delta": 0.4345,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.022,
"after": 0.0,
"delta": -0.022,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0879,
"after": 0.0,
"delta": -0.0879,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.563,
"after": 1.0,
"delta": 0.437,
"percent_delta": 0.7762,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.5794,
"after": 1.0,
"delta": 0.4206,
"percent_delta": 0.7259,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 3,
"deboosted_metrics": 3,
"better_metrics": 2,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.563,
"after": 1.0,
"delta": 0.437,
"percent_delta": 0.7762,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.3891,
"after": 0.0,
"delta": -0.3891,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "bvp_blend",
"description": "Sample-size BvP blend (BvP AB=8.0, weight=0.084, BvP AVG=0.250)",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {
"model_expectation": 0.9158,
"bvp": 0.0842
},
"window_games": {}
},
{
"index": 7,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.3616,
"after": 0.0,
"delta": -0.3616,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_R",
"before": 0.3616,
"after": 0.0,
"delta": -0.3616,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1383,
"predicted_3B": 0.0115,
"predicted_BB": 0.2848,
"predicted_H": 0.7599,
"predicted_HR": 0.0968,
"predicted_RBI": 0.431,
"predicted_SO": 0.6672
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1383,
"delta": 0.1383,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0115,
"delta": 0.0115,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.2848,
"delta": 0.2848,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.7599,
"delta": -0.2401,
"percent_delta": -0.2401,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0968,
"delta": 0.0968,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.431,
"delta": -0.569,
"percent_delta": -0.569,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.6672,
"delta": -0.3328,
"percent_delta": -0.3328,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 3,
"deboosted_metrics": 3,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 0.2848,
"delta": 0.2848,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.431,
"delta": -0.569,
"percent_delta": -0.569,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1383,
"after": 0.0,
"delta": -0.1383,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0115,
"after": 0.0,
"delta": -0.0115,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.2848,
"after": 0.0,
"delta": -0.2848,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.7599,
"after": 1.0,
"delta": 0.2401,
"percent_delta": 0.316,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0968,
"after": 0.0,
"delta": -0.0968,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.431,
"after": 0.0,
"delta": -0.431,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.6672,
"after": 1.0,
"delta": 0.3328,
"percent_delta": 0.4988,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 2,
"deboosted_metrics": 4,
"better_metrics": 1,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.6672,
"after": 1.0,
"delta": 0.3328,
"percent_delta": 0.4988,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.431,
"after": 0.0,
"delta": -0.431,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.241,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.309,
"predicted_R": 0.0,
"predicted_RBI": 1.0,
"predicted_SLG": 0.384,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.234,
"after": 0.241,
"delta": 0.007,
"percent_delta": 0.0299,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3225,
"after": 0.309,
"delta": -0.0135,
"percent_delta": -0.0419,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.377,
"after": 0.384,
"delta": 0.007,
"percent_delta": 0.0186,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 3,
"deboosted_metrics": 1,
"better_metrics": 3,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.3225,
"after": 0.309,
"delta": -0.0135,
"percent_delta": -0.0419,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 1.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 2.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 2.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 5,
"deboosted_metrics": 0,
"better_metrics": 5,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_2B",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 12,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 1.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.234,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 2.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3225,
"predicted_R": 1.0,
"predicted_RBI": 2.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.377,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.241,
"after": 0.234,
"delta": -0.007,
"percent_delta": -0.0289,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_CS",
"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_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.309,
"after": 0.3225,
"delta": 0.0135,
"percent_delta": 0.0438,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.384,
"after": 0.377,
"delta": -0.007,
"percent_delta": -0.0182,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_OBP",
"before": 0.309,
"after": 0.3225,
"delta": 0.0135,
"percent_delta": 0.0438,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AVG",
"before": 0.241,
"after": 0.234,
"delta": -0.007,
"percent_delta": -0.0289,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.119,
"after": 1.0,
"delta": 0.881,
"percent_delta": 7.4034,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.017,
"after": 0.0,
"delta": -0.017,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.924,
"after": 4.0,
"delta": 1.076,
"percent_delta": 0.368,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.246,
"after": 0.234,
"delta": -0.012,
"percent_delta": -0.0488,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.39,
"after": 0.0,
"delta": -0.39,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.68,
"after": 2.0,
"delta": 1.32,
"percent_delta": 1.9412,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1,
"after": 0.0,
"delta": -0.1,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.323,
"after": 0.3225,
"delta": -0.0005,
"percent_delta": -0.0015,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.407,
"after": 1.0,
"delta": 0.593,
"percent_delta": 1.457,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.53,
"after": 2.0,
"delta": 1.47,
"percent_delta": 2.7736,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.365,
"after": 0.377,
"delta": 0.012,
"percent_delta": 0.0329,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.576,
"after": 1.0,
"delta": 0.424,
"percent_delta": 0.7361,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 10,
"boosted_metrics": 7,
"deboosted_metrics": 3,
"better_metrics": 6,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.53,
"after": 2.0,
"delta": 1.47,
"percent_delta": 2.7736,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.39,
"after": 0.0,
"delta": -0.39,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.119 | - |
| predicted_3B | 0.017 | - |
| predicted_AB | 2.924 | - |
| predicted_AVG | 0.246 | - |
| predicted_BB | 0.390 | - |
| predicted_H | 0.680 | - |
| predicted_HR | 0.100 | - |
| predicted_OBP | 0.323 | - |
| predicted_R | 0.407 | - |
| predicted_RBI | 0.530 | - |
| predicted_SLG | 0.365 | - |
| predicted_SO | 0.576 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.133 | 0.014 |
| predicted_3B | 0.014 | -0.003 |
| predicted_AB | 2.978 | 0.054 |
| predicted_AVG | 0.245 | -0.001 |
| predicted_BB | 0.389 | -0.001 |
| predicted_H | 0.708 | 0.028 |
| predicted_HBP | 0.022 | - |
| predicted_HR | 0.090 | -0.010 |
| predicted_OBP | 0.327 | 0.004 |
| predicted_R | 0.370 | -0.036 |
| predicted_RBI | 0.577 | 0.047 |
| predicted_SLG | 0.370 | 0.005 |
| predicted_SO | 0.579 | 0.003 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.133 | 0.000 |
| predicted_3B | 0.014 | 0.000 |
| predicted_AB | 2.978 | 0.000 |
| predicted_AVG | 0.234 | -0.011 |
| predicted_BB | 0.389 | 0.000 |
| predicted_H | 0.697 | -0.011 |
| predicted_HBP | 0.022 | 0.000 |
| predicted_HR | 0.088 | -0.002 |
| predicted_OBP | 0.323 | -0.005 |
| predicted_R | 0.362 | -0.009 |
| predicted_RBI | 0.563 | -0.014 |
| predicted_SLG | 0.377 | 0.007 |
| predicted_SO | 0.579 | 0.000 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=2.98), rates preserved: AVG=0.234 HR/AB=0.030
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=8.0, weight=0.084, BvP AVG=0.250)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.138 | 0.138 |
| 3B | 0.011 | 0.011 |
| BB | 0.285 | 0.285 |
| H | 0.760 | -0.240 |
| HR | 0.097 | 0.097 |
| RBI | 0.431 | -0.569 |
| SO | 0.667 | -0.333 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.138 |
| 3B | 0.000 | -0.011 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | -0.285 |
| H | 1.000 | 0.240 |
| HR | 0.000 | -0.097 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -0.431 |
| SO | 1.000 | 0.333 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.133 |
| predicted_3B | 0.000 | -0.014 |
| predicted_AB | 3.000 | 0.022 |
| predicted_AVG | 0.241 | 0.007 |
| predicted_BB | 0.000 | -0.389 |
| predicted_H | 1.000 | 0.303 |
| predicted_HR | 0.000 | -0.088 |
| predicted_OBP | 0.309 | -0.014 |
| predicted_R | 0.000 | -0.362 |
| predicted_RBI | 1.000 | 0.437 |
| predicted_SLG | 0.384 | 0.007 |
| predicted_SO | 1.000 | 0.421 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 1.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 1.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 2.000 | 1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 1.000 | 1.000 |
| RBI | 2.000 | 2.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 16.000 | 4.000 | 1.000 | 0.000 | 0.000 | 4.000 | 0.000 | 2.000 | 3.000 | 0.2500 | 0.3333 | 0.3125 | 0.2500 | 0.0000 | 0.2500 | 0.1250 | 0.1875 |
| last_10 | 0.20 | 10 | - | 30.000 | 8.000 | 2.000 | 0.000 | 1.000 | 10.000 | 3.000 | 4.000 | 5.000 | 0.2667 | 0.3529 | 0.4333 | 0.2667 | 0.0333 | 0.3333 | 0.1333 | 0.1667 |
| season | 0.60 | 118 | - | 345.000 | 81.000 | 14.000 | 2.000 | 10.000 | 57.000 | 48.000 | 46.000 | 68.000 | 0.2348 | 0.3300 | 0.3739 | 0.2348 | 0.0290 | 0.1652 | 0.1333 | 0.1971 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1520 |
| predicted_3B | 0.0110 |
| predicted_AB | 3.0510 |
| predicted_AVG | 0.2445 |
| predicted_BB | 0.3880 |
| predicted_H | 0.7460 |
| predicted_HBP | 0.0220 |
| predicted_HR | 0.0760 |
| predicted_OBP | 0.3332 |
| predicted_R | 0.3220 |
| predicted_RBI | 0.6390 |
| predicted_SLG | 0.3759 |
| predicted_SO | 0.5840 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1190 | 0.1520 | 0.1332 | model_form_blend |
| predicted_3B | 0.0170 | 0.0110 | 0.0144 | model_form_blend |
| predicted_AB | 2.9240 | 3.0510 | 2.9785 | model_form_blend |
| predicted_AVG | 0.2460 | 0.2445 | 0.2454 | model_form_blend |
| predicted_BB | 0.3900 | 0.3880 | 0.3891 | model_form_blend |
| predicted_H | 0.6800 | 0.7460 | 0.7083 | model_form_blend |
| predicted_HBP | - | 0.0220 | 0.0220 | form_only |
| predicted_HR | 0.1000 | 0.0760 | 0.0897 | model_form_blend |
| predicted_OBP | 0.3230 | 0.3332 | 0.3274 | model_form_blend |
| predicted_R | 0.4070 | 0.3220 | 0.3705 | model_form_blend |
| predicted_RBI | 0.5300 | 0.6390 | 0.5768 | model_form_blend |
| predicted_SLG | 0.3650 | 0.3759 | 0.3697 | model_form_blend |
| predicted_SO | 0.5760 | 0.5840 | 0.5794 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 384 |
| Season rows before report date | 384 |
| Report year | 2026 |
| Profile rows used | 118 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 2 |
| 2B | 1 |
| 3B | 0 |
| HR | 0 |
| R | 1 |
| RBI | 2 |
| BB | 0 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 5 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | 2B |
| gameID | 20260927_TB@PHI |
| game_type | full |
| mlbID | 680700 |
| playerID | 680700 |
| playerName | Richie Palacios |
| pos | 2B |
| started | True |
| startingPosition | 2B |
| team | TB |
| teamID | 27 |
| game_date | 2026-09-27 |
| sl_k_percent | 17.0 |
| sl_bb_percent | 11.5 |
| sl_woba | 0.316 |
| sl_xwoba | 0.306 |
| sl_xba | 0.243 |
| sl_xslg | 0.334 |
| sl_sweet_spot_percent | 33.1 |
| sl_barrel_batted_rate | 4.0 |
| sl_hard_hit_percent | 28.8 |
| sl_exit_velocity_avg | 86.2 |
| sl_launch_angle_avg | 13.4 |
| sl_whiff_percent | 20.7 |
| sl_swing_percent | 46.6 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.113 | 0.000 | 0.000 | Hitting_2B | 0.107 | 0.000 | -0.107 | 0.000 |
| predicted_3B | 0.042 | 1.000 | 0.000 | Hitting_3B | 0.054 | 0.000 | 0.946 | 1.000 |
| predicted_AB | 3.680 | 4.000 | 4.000 | Hitting_AB | 3.421 | 4.000 | 0.579 | 0.000 |
| predicted_AVG | 0.248 | 0.250 | 0.250 | Hitting_AVG | 0.262 | 0.250 | -0.012 | 0.000 |
| predicted_BB | 0.310 | 0.000 | 0.000 | Hitting_BB | 0.339 | 0.000 | -0.339 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.050 | 0.000 | -0.050 | 0.000 |
| predicted_H | 0.910 | 1.000 | 1.000 | Hitting_H | 0.897 | 1.000 | 0.103 | 0.000 |
| predicted_HR | 0.160 | 0.000 | 0.000 | Hitting_HR | 0.215 | 0.000 | -0.215 | 0.000 |
| predicted_OBP | 0.323 | 0.250 | 0.250 | Hitting_OBP | 0.328 | 0.250 | -0.078 | 0.000 |
| predicted_R | 0.521 | 1.000 | 1.000 | Hitting_R | 0.558 | 0.000 | 0.442 | 1.000 |
| predicted_RBI | 0.510 | 1.000 | 0.000 | Hitting_RBI | 0.529 | 1.000 | 0.471 | 0.000 |
| predicted_SLG | 0.446 | 0.750 | 0.250 | Hitting_SLG | 0.513 | 0.250 | 0.237 | 0.500 |
| predicted_SO | 0.746 | 2.000 | 1.000 | Hitting_SO | 0.723 | 2.000 | 1.277 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | boosted |
| Changed Metrics | 12 |
| Boosted Metrics | 7 |
| Deboosted Metrics | 5 |
| Better Metrics | 6 |
| Worse Metrics | 6 |
| Biggest Boost | predicted_SO: 0.7460 -> 2.0000 (boost 1.2540, worse) |
| Biggest Deboost | predicted_BB: 0.3100 -> 0.0000 (deboost -0.3100, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 3 | 2 | 1 | 2 | 1 | predicted_AVG: 0.2480 -> 0.2584 (boost 0.0104, better) | predicted_AB: 3.6800 -> 3.6200 (deboost -0.0600, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 2 | 0 | 2 | 0 | 2 | - | predicted_SLG: 0.4520 -> 0.4368 (deboost -0.0152, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 3 | 4 | 2 | 5 | predicted_AB: 3.6200 -> 4.0000 (boost 0.3800, better) | predicted_RBI: 0.4884 -> 0.0000 (deboost -0.4884, worse) | AB rounded to 4 (raw=3.68), rates preserved: AVG=0.250 HR/AB=0.041 |
| 6 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5126 -> 1.0000 (boost 0.4874, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 4 | 2 | 5 | 1 | predicted_RBI: 0.0000 -> 0.4900 (boost 0.4900, better) | predicted_SO: 1.0000 -> 0.8638 (deboost -0.1362, better) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 6 | 2 | 4 | 1 | 5 | predicted_SO: 0.8638 -> 1.0000 (boost 0.1362, worse) | predicted_RBI: 0.4900 -> 0.0000 (deboost -0.4900, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 1 | 1 | 0 | 1 | 0 | predicted_SLG: 0.4368 -> 0.4620 (boost 0.0252, better) | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 3 | 3 | 0 | 2 | 1 | predicted_3B: 0.0000 -> 1.0000 (boost 1.0000, better) | - | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 1 | 0 | 1 | 0 | 1 | - | predicted_SLG: 0.4620 -> 0.4368 (deboost -0.0252, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "683748",
"player_name": "Victor Mesa Jr.",
"position": "RF",
"team": "TB",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.113,
"predicted_3B": 0.042,
"predicted_AB": 3.68,
"predicted_AVG": 0.248,
"predicted_BB": 0.31,
"predicted_H": 0.91,
"predicted_HR": 0.16,
"predicted_OBP": 0.323,
"predicted_R": 0.521,
"predicted_RBI": 0.51,
"predicted_SLG": 0.446,
"predicted_SO": 0.746
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1415,
"predicted_3B": 0.0353,
"predicted_AB": 3.62,
"predicted_AVG": 0.2584,
"predicted_BB": 0.3008,
"predicted_H": 0.9331,
"predicted_HBP": 0.003,
"predicted_HR": 0.1533,
"predicted_OBP": 0.3251,
"predicted_R": 0.5252,
"predicted_RBI": 0.5004,
"predicted_SLG": 0.452,
"predicted_SO": 0.767
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.113,
"after": 0.1415,
"delta": 0.0285,
"percent_delta": 0.2522,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.042,
"after": 0.0353,
"delta": -0.0067,
"percent_delta": -0.1595,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.68,
"after": 3.62,
"delta": -0.06,
"percent_delta": -0.0163,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.248,
"after": 0.2584,
"delta": 0.0104,
"percent_delta": 0.0419,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.31,
"after": 0.3008,
"delta": -0.0092,
"percent_delta": -0.0297,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.91,
"after": 0.9331,
"delta": 0.0231,
"percent_delta": 0.0254,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.16,
"after": 0.1533,
"delta": -0.0067,
"percent_delta": -0.0419,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.323,
"after": 0.3251,
"delta": 0.0021,
"percent_delta": 0.0065,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.521,
"after": 0.5252,
"delta": 0.0042,
"percent_delta": 0.0081,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.51,
"after": 0.5004,
"delta": -0.0096,
"percent_delta": -0.0188,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.446,
"after": 0.452,
"delta": 0.006,
"percent_delta": 0.0135,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.746,
"after": 0.767,
"delta": 0.021,
"percent_delta": 0.0282,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 2,
"deboosted_metrics": 1,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_AVG",
"before": 0.248,
"after": 0.2584,
"delta": 0.0104,
"percent_delta": 0.0419,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 3.68,
"after": 3.62,
"delta": -0.06,
"percent_delta": -0.0163,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 71
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1415,
"predicted_3B": 0.0353,
"predicted_AB": 3.62,
"predicted_AVG": 0.2537,
"predicted_BB": 0.3008,
"predicted_H": 0.9184,
"predicted_HBP": 0.003,
"predicted_HR": 0.1503,
"predicted_OBP": 0.3109,
"predicted_R": 0.5126,
"predicted_RBI": 0.4884,
"predicted_SLG": 0.4368,
"predicted_SO": 0.767
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1415,
"after": 0.1415,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0353,
"after": 0.0353,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.62,
"after": 3.62,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2584,
"after": 0.2537,
"delta": -0.0047,
"percent_delta": -0.0182,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.3008,
"after": 0.3008,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.9331,
"after": 0.9184,
"delta": -0.0147,
"percent_delta": -0.0158,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.003,
"after": 0.003,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1533,
"after": 0.1503,
"delta": -0.003,
"percent_delta": -0.0196,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3251,
"after": 0.3109,
"delta": -0.0142,
"percent_delta": -0.0437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.5252,
"after": 0.5126,
"delta": -0.0126,
"percent_delta": -0.024,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5004,
"after": 0.4884,
"delta": -0.012,
"percent_delta": -0.024,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.452,
"after": 0.4368,
"delta": -0.0152,
"percent_delta": -0.0336,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.767,
"after": 0.767,
"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": 0,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.452,
"after": 0.4368,
"delta": -0.0152,
"percent_delta": -0.0336,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=3.68), rates preserved: AVG=0.250 HR/AB=0.041",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1415,
"after": 0.0,
"delta": -0.1415,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0353,
"after": 0.0,
"delta": -0.0353,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.62,
"after": 4.0,
"delta": 0.38,
"percent_delta": 0.105,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.3008,
"after": 0.0,
"delta": -0.3008,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.9184,
"after": 1.0,
"delta": 0.0816,
"percent_delta": 0.0889,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.003,
"after": 0.0,
"delta": -0.003,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1503,
"after": 0.0,
"delta": -0.1503,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.4884,
"after": 0.0,
"delta": -0.4884,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.767,
"after": 1.0,
"delta": 0.233,
"percent_delta": 0.3038,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 3,
"deboosted_metrics": 4,
"better_metrics": 2,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.62,
"after": 4.0,
"delta": 0.38,
"percent_delta": 0.105,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.4884,
"after": 0.0,
"delta": -0.4884,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.5126,
"after": 1.0,
"delta": 0.4874,
"percent_delta": 0.9508,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.5126,
"after": 1.0,
"delta": 0.4874,
"percent_delta": 0.9508,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1624,
"predicted_3B": 0.0198,
"predicted_BB": 0.2499,
"predicted_H": 0.9178,
"predicted_HR": 0.1803,
"predicted_RBI": 0.49,
"predicted_SO": 0.8638
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1624,
"delta": 0.1624,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0198,
"delta": 0.0198,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.2499,
"delta": 0.2499,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.9178,
"delta": -0.0822,
"percent_delta": -0.0822,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1803,
"delta": 0.1803,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.49,
"delta": 0.49,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.8638,
"delta": -0.1362,
"percent_delta": -0.1362,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 5,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.49,
"delta": 0.49,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 0.8638,
"delta": -0.1362,
"percent_delta": -0.1362,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1624,
"after": 0.0,
"delta": -0.1624,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0198,
"after": 0.0,
"delta": -0.0198,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.2499,
"after": 0.0,
"delta": -0.2499,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.9178,
"after": 1.0,
"delta": 0.0822,
"percent_delta": 0.0896,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1803,
"after": 0.0,
"delta": -0.1803,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.49,
"after": 0.0,
"delta": -0.49,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.8638,
"after": 1.0,
"delta": 0.1362,
"percent_delta": 0.1577,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 2,
"deboosted_metrics": 4,
"better_metrics": 1,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.8638,
"after": 1.0,
"delta": 0.1362,
"percent_delta": 0.1577,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.49,
"after": 0.0,
"delta": -0.49,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.255,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.309,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.462,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2537,
"after": 0.255,
"delta": 0.0013,
"percent_delta": 0.0051,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3109,
"after": 0.309,
"delta": -0.0019,
"percent_delta": -0.0061,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4368,
"after": 0.462,
"delta": 0.0252,
"percent_delta": 0.0577,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.4368,
"after": 0.462,
"delta": 0.0252,
"percent_delta": 0.0577,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 1.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_3B",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 1.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.2537,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3109,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_RF": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.4368,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.255,
"after": 0.2537,
"delta": -0.0013,
"percent_delta": -0.0051,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.309,
"after": 0.3109,
"delta": 0.0019,
"percent_delta": 0.0063,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.462,
"after": 0.4368,
"delta": -0.0252,
"percent_delta": -0.0545,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.462,
"after": 0.4368,
"delta": -0.0252,
"percent_delta": -0.0545,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.113,
"after": 0.0,
"delta": -0.113,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.042,
"after": 1.0,
"delta": 0.958,
"percent_delta": 22.8095,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AB",
"before": 3.68,
"after": 4.0,
"delta": 0.32,
"percent_delta": 0.087,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.248,
"after": 0.2537,
"delta": 0.0057,
"percent_delta": 0.023,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.31,
"after": 0.0,
"delta": -0.31,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.91,
"after": 1.0,
"delta": 0.09,
"percent_delta": 0.0989,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.16,
"after": 0.0,
"delta": -0.16,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.323,
"after": 0.3109,
"delta": -0.0121,
"percent_delta": -0.0375,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.521,
"after": 1.0,
"delta": 0.479,
"percent_delta": 0.9194,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.51,
"after": 1.0,
"delta": 0.49,
"percent_delta": 0.9608,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.446,
"after": 0.4368,
"delta": -0.0092,
"percent_delta": -0.0206,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.746,
"after": 2.0,
"delta": 1.254,
"percent_delta": 1.681,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 12,
"boosted_metrics": 7,
"deboosted_metrics": 5,
"better_metrics": 6,
"worse_metrics": 6,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.746,
"after": 2.0,
"delta": 1.254,
"percent_delta": 1.681,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.31,
"after": 0.0,
"delta": -0.31,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "boosted"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.113 | - |
| predicted_3B | 0.042 | - |
| predicted_AB | 3.680 | - |
| predicted_AVG | 0.248 | - |
| predicted_BB | 0.310 | - |
| predicted_H | 0.910 | - |
| predicted_HR | 0.160 | - |
| predicted_OBP | 0.323 | - |
| predicted_R | 0.521 | - |
| predicted_RBI | 0.510 | - |
| predicted_SLG | 0.446 | - |
| predicted_SO | 0.746 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.141 | 0.028 |
| predicted_3B | 0.035 | -0.007 |
| predicted_AB | 3.620 | -0.060 |
| predicted_AVG | 0.258 | 0.010 |
| predicted_BB | 0.301 | -0.009 |
| predicted_H | 0.933 | 0.023 |
| predicted_HBP | 0.003 | - |
| predicted_HR | 0.153 | -0.007 |
| predicted_OBP | 0.325 | 0.002 |
| predicted_R | 0.525 | 0.004 |
| predicted_RBI | 0.500 | -0.010 |
| predicted_SLG | 0.452 | 0.006 |
| predicted_SO | 0.767 | 0.021 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.141 | 0.000 |
| predicted_3B | 0.035 | 0.000 |
| predicted_AB | 3.620 | 0.000 |
| predicted_AVG | 0.254 | -0.005 |
| predicted_BB | 0.301 | 0.000 |
| predicted_H | 0.918 | -0.015 |
| predicted_HBP | 0.003 | 0.000 |
| predicted_HR | 0.150 | -0.003 |
| predicted_OBP | 0.311 | -0.014 |
| predicted_R | 0.513 | -0.013 |
| predicted_RBI | 0.488 | -0.012 |
| predicted_SLG | 0.437 | -0.015 |
| predicted_SO | 0.767 | 0.000 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=3.68), rates preserved: AVG=0.250 HR/AB=0.041
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.162 | 0.162 |
| 3B | 0.020 | 0.020 |
| BB | 0.250 | 0.250 |
| H | 0.918 | -0.082 |
| HR | 0.180 | 0.180 |
| RBI | 0.490 | 0.490 |
| SO | 0.864 | -0.136 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.162 |
| 3B | 0.000 | -0.020 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -0.250 |
| H | 1.000 | 0.082 |
| HR | 0.000 | -0.180 |
| R | 1.000 | 0.000 |
| RBI | 0.000 | -0.490 |
| SO | 1.000 | 0.136 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.141 |
| predicted_3B | 0.000 | -0.035 |
| predicted_AB | 4.000 | 0.380 |
| predicted_AVG | 0.255 | 0.001 |
| predicted_BB | 0.000 | -0.301 |
| predicted_H | 1.000 | 0.082 |
| predicted_HR | 0.000 | -0.150 |
| predicted_OBP | 0.309 | -0.002 |
| predicted_R | 1.000 | 0.487 |
| predicted_RBI | 0.000 | -0.488 |
| predicted_SLG | 0.462 | 0.025 |
| predicted_SO | 1.000 | 0.233 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 1.000 | 1.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 1.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 2.000 | 1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 20.000 | 7.000 | 2.000 | 0.000 | 0.000 | 3.000 | 3.000 | 1.000 | 4.000 | 0.3500 | 0.3810 | 0.4500 | 0.3500 | 0.0000 | 0.1500 | 0.0500 | 0.2000 |
| last_10 | 0.20 | 10 | - | 36.000 | 9.000 | 2.000 | 0.000 | 1.000 | 4.000 | 5.000 | 3.000 | 9.000 | 0.2500 | 0.3077 | 0.3889 | 0.2500 | 0.0278 | 0.1111 | 0.0833 | 0.2500 |
| season | 0.60 | 71 | - | 235.000 | 61.000 | 8.000 | 3.000 | 14.000 | 34.000 | 37.000 | 22.000 | 53.000 | 0.2596 | 0.3217 | 0.4979 | 0.2596 | 0.0596 | 0.1447 | 0.0936 | 0.2255 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1810 |
| predicted_3B | 0.0260 |
| predicted_AB | 3.5370 |
| predicted_AVG | 0.2729 |
| predicted_BB | 0.2880 |
| predicted_H | 0.9650 |
| predicted_HBP | 0.0030 |
| predicted_HR | 0.1440 |
| predicted_OBP | 0.3281 |
| predicted_R | 0.5310 |
| predicted_RBI | 0.4870 |
| predicted_SLG | 0.4604 |
| predicted_SO | 0.7960 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1130 | 0.1810 | 0.1415 | model_form_blend |
| predicted_3B | 0.0420 | 0.0260 | 0.0353 | model_form_blend |
| predicted_AB | 3.6800 | 3.5370 | 3.6200 | model_form_blend |
| predicted_AVG | 0.2480 | 0.2729 | 0.2584 | model_form_blend |
| predicted_BB | 0.3100 | 0.2880 | 0.3008 | model_form_blend |
| predicted_H | 0.9100 | 0.9650 | 0.9331 | model_form_blend |
| predicted_HBP | - | 0.0030 | 0.0030 | form_only |
| predicted_HR | 0.1600 | 0.1440 | 0.1533 | model_form_blend |
| predicted_OBP | 0.3230 | 0.3281 | 0.3251 | model_form_blend |
| predicted_R | 0.5210 | 0.5310 | 0.5252 | model_form_blend |
| predicted_RBI | 0.5100 | 0.4870 | 0.5004 | model_form_blend |
| predicted_SLG | 0.4460 | 0.4604 | 0.4520 | model_form_blend |
| predicted_SO | 0.7460 | 0.7960 | 0.7670 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 242 |
| Season rows before report date | 242 |
| Report year | 2026 |
| Profile rows used | 71 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 1 |
| 2B | 0 |
| 3B | 1 |
| HR | 0 |
| R | 1 |
| RBI | 1 |
| BB | 0 |
| SO | 2 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.25 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 1 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 2 |
| Hitting_TB | 1 |
| Hitting_battingOrder | 1 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | LF |
| gameID | 20260927_TB@PHI |
| game_type | full |
| mlbID | 683748 |
| playerID | 683748 |
| playerName | Victor Mesa Jr. |
| pos | RF |
| started | True |
| startingPosition | LF |
| team | TB |
| teamID | 27 |
| game_date | 2026-09-27 |
| sl_k_percent | 20.2 |
| sl_bb_percent | 8.8 |
| sl_woba | 0.355 |
| sl_xwoba | 0.329 |
| sl_xba | 0.249 |
| sl_xslg | 0.439 |
| sl_sweet_spot_percent | 31.9 |
| sl_barrel_batted_rate | 10.8 |
| sl_hard_hit_percent | 42.2 |
| sl_exit_velocity_avg | 89.4 |
| sl_launch_angle_avg | 21.0 |
| sl_whiff_percent | 25.5 |
| sl_swing_percent | 55.0 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.145 | 0.000 | 0.000 | Hitting_2B | 0.141 | 1.000 | -0.141 | -1.000 |
| predicted_3B | 0.017 | 0.000 | 0.000 | Hitting_3B | 0.019 | 0.000 | -0.019 | 0.000 |
| predicted_AB | 3.128 | 2.000 | 3.000 | Hitting_AB | 3.221 | 5.000 | -1.221 | -3.000 |
| predicted_AVG | 0.219 | 0.000 | 0.000 | Hitting_AVG | 0.221 | 0.200 | -0.221 | -0.200 |
| predicted_BB | 0.385 | 1.000 | 0.000 | Hitting_BB | 0.407 | 0.000 | 0.593 | 1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.028 | 0.000 | -0.028 | 0.000 |
| predicted_H | 0.640 | 0.000 | 0.000 | Hitting_H | 0.713 | 1.000 | -0.713 | -1.000 |
| predicted_HR | 0.020 | 0.000 | 0.000 | Hitting_HR | 0.019 | 0.000 | -0.019 | 0.000 |
| predicted_OBP | 0.312 | 0.333 | 0.000 | Hitting_OBP | 0.310 | 0.200 | 0.023 | 0.133 |
| predicted_R | 0.504 | 0.000 | 1.000 | Hitting_R | 0.529 | 1.000 | -0.529 | -1.000 |
| predicted_RBI | 0.310 | 0.000 | 0.000 | Hitting_RBI | 0.329 | 0.000 | -0.329 | 0.000 |
| predicted_SLG | 0.310 | 0.000 | 0.000 | Hitting_SLG | 0.294 | 0.400 | -0.294 | -0.400 |
| predicted_SO | 0.897 | 0.000 | 1.000 | Hitting_SO | 0.932 | 3.000 | -0.932 | -3.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 9 |
| Boosted Metrics | 1 |
| Deboosted Metrics | 8 |
| Better Metrics | 2 |
| Worse Metrics | 7 |
| Biggest Boost | predicted_BB: 0.3850 -> 1.0000 (boost 0.6150, better) |
| Biggest Deboost | predicted_AB: 3.1280 -> 2.0000 (deboost -1.1280, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 5 | 5 | 0 | 5 | 0 | predicted_R: 0.5040 -> 0.5608 (boost 0.0568, better) | - | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 3 | 0 | 3 | 0 | 3 | - | predicted_SLG: 0.3223 -> 0.3020 (deboost -0.0203, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 6 | 2 | 4 | 1 | 5 | predicted_H: 0.6837 -> 1.0000 (boost 0.3163, better) | predicted_BB: 0.3781 -> 0.0000 (deboost -0.3781, worse) | AB rounded to 3 (raw=3.13), rates preserved: AVG=0.218 HR/AB=0.006 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=11.0, weight=0.107, BvP AVG=0.000) |
| 7 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5474 -> 1.0000 (boost 0.4526, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 5 | 3 | 2 | 4 | 1 | predicted_RBI: 0.0000 -> 0.2964 (boost 0.2964, better) | predicted_H: 1.0000 -> 0.6725 (deboost -0.3275, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 9 | lineup_integer_allocation | 5 | 1 | 4 | 0 | 5 | predicted_SO: 0.8960 -> 1.0000 (boost 0.1040, worse) | predicted_H: 0.6725 -> 0.0000 (deboost -0.6725, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 10 | embedded_savant_player_context | 3 | 2 | 1 | 2 | 1 | predicted_H: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_OBP: 0.3023 -> 0.2850 (deboost -0.0173, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | simulation_box_score_reference | 5 | 1 | 4 | 2 | 3 | predicted_BB: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_AB: 3.0000 -> 2.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 12 | current_json_final | 2 | 1 | 1 | 1 | 1 | predicted_OBP: 0.2850 -> 0.3023 (boost 0.0173, better) | predicted_SLG: 0.3170 -> 0.3020 (deboost -0.0150, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "670764",
"player_name": "Taylor Walls",
"position": "SS",
"team": "TB",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.145,
"predicted_3B": 0.017,
"predicted_AB": 3.128,
"predicted_AVG": 0.219,
"predicted_BB": 0.385,
"predicted_H": 0.64,
"predicted_HR": 0.02,
"predicted_OBP": 0.312,
"predicted_R": 0.504,
"predicted_RBI": 0.31,
"predicted_SLG": 0.31,
"predicted_SO": 0.897
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1799,
"predicted_3B": 0.014,
"predicted_AB": 3.1349,
"predicted_AVG": 0.2297,
"predicted_BB": 0.3781,
"predicted_H": 0.6947,
"predicted_HBP": 0.016,
"predicted_HR": 0.0187,
"predicted_OBP": 0.3176,
"predicted_R": 0.5608,
"predicted_RBI": 0.3044,
"predicted_SLG": 0.3223,
"predicted_SO": 0.9056
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.145,
"after": 0.1799,
"delta": 0.0349,
"percent_delta": 0.2407,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.017,
"after": 0.014,
"delta": -0.003,
"percent_delta": -0.1765,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.128,
"after": 3.1349,
"delta": 0.0069,
"percent_delta": 0.0022,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.219,
"after": 0.2297,
"delta": 0.0107,
"percent_delta": 0.0489,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.385,
"after": 0.3781,
"delta": -0.0069,
"percent_delta": -0.0179,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.64,
"after": 0.6947,
"delta": 0.0547,
"percent_delta": 0.0855,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.02,
"after": 0.0187,
"delta": -0.0013,
"percent_delta": -0.065,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.312,
"after": 0.3176,
"delta": 0.0056,
"percent_delta": 0.0179,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.504,
"after": 0.5608,
"delta": 0.0568,
"percent_delta": 0.1127,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.31,
"after": 0.3044,
"delta": -0.0056,
"percent_delta": -0.0181,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.31,
"after": 0.3223,
"delta": 0.0123,
"percent_delta": 0.0397,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.897,
"after": 0.9056,
"delta": 0.0086,
"percent_delta": 0.0096,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 5,
"deboosted_metrics": 0,
"better_metrics": 5,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.504,
"after": 0.5608,
"delta": 0.0568,
"percent_delta": 0.1127,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 117
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1799,
"predicted_3B": 0.014,
"predicted_AB": 3.1349,
"predicted_AVG": 0.2181,
"predicted_BB": 0.3781,
"predicted_H": 0.6837,
"predicted_HBP": 0.016,
"predicted_HR": 0.0183,
"predicted_OBP": 0.3023,
"predicted_R": 0.5474,
"predicted_RBI": 0.2971,
"predicted_SLG": 0.302,
"predicted_SO": 0.9056
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1799,
"after": 0.1799,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.014,
"after": 0.014,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.1349,
"after": 3.1349,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2297,
"after": 0.2181,
"delta": -0.0116,
"percent_delta": -0.0505,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.3781,
"after": 0.3781,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.6947,
"after": 0.6837,
"delta": -0.011,
"percent_delta": -0.0158,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.016,
"after": 0.016,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0187,
"after": 0.0183,
"delta": -0.0004,
"percent_delta": -0.0214,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3176,
"after": 0.3023,
"delta": -0.0153,
"percent_delta": -0.0482,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.5608,
"after": 0.5474,
"delta": -0.0134,
"percent_delta": -0.0239,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.3044,
"after": 0.2971,
"delta": -0.0073,
"percent_delta": -0.024,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3223,
"after": 0.302,
"delta": -0.0203,
"percent_delta": -0.063,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.9056,
"after": 0.9056,
"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": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.3223,
"after": 0.302,
"delta": -0.0203,
"percent_delta": -0.063,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 3 (raw=3.13), rates preserved: AVG=0.218 HR/AB=0.006",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1799,
"after": 0.0,
"delta": -0.1799,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.014,
"after": 0.0,
"delta": -0.014,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.1349,
"after": 3.0,
"delta": -0.1349,
"percent_delta": -0.043,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.3781,
"after": 0.0,
"delta": -0.3781,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.6837,
"after": 1.0,
"delta": 0.3163,
"percent_delta": 0.4626,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.016,
"after": 0.0,
"delta": -0.016,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0183,
"after": 0.0,
"delta": -0.0183,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.2971,
"after": 0.0,
"delta": -0.2971,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.9056,
"after": 1.0,
"delta": 0.0944,
"percent_delta": 0.1042,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 2,
"deboosted_metrics": 4,
"better_metrics": 1,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.6837,
"after": 1.0,
"delta": 0.3163,
"percent_delta": 0.4626,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.3781,
"after": 0.0,
"delta": -0.3781,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "bvp_blend",
"description": "Sample-size BvP blend (BvP AB=11.0, weight=0.107, BvP AVG=0.000)",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {
"model_expectation": 0.8927,
"bvp": 0.1073
},
"window_games": {}
},
{
"index": 7,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.5474,
"after": 1.0,
"delta": 0.4526,
"percent_delta": 0.8268,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.5474,
"after": 1.0,
"delta": 0.4526,
"percent_delta": 0.8268,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1375,
"predicted_3B": 0.0109,
"predicted_BB": 0.2635,
"predicted_H": 0.6725,
"predicted_HR": 0.0494,
"predicted_RBI": 0.2964,
"predicted_SO": 0.896
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1375,
"delta": 0.1375,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0109,
"delta": 0.0109,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.2635,
"delta": 0.2635,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.6725,
"delta": -0.3275,
"percent_delta": -0.3275,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0494,
"delta": 0.0494,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.2964,
"delta": 0.2964,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.896,
"delta": -0.104,
"percent_delta": -0.104,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 3,
"deboosted_metrics": 2,
"better_metrics": 4,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.2964,
"delta": 0.2964,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.6725,
"delta": -0.3275,
"percent_delta": -0.3275,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1375,
"after": 0.0,
"delta": -0.1375,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0109,
"after": 0.0,
"delta": -0.0109,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.2635,
"after": 0.0,
"delta": -0.2635,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.6725,
"after": 0.0,
"delta": -0.6725,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0494,
"after": 0.0,
"delta": -0.0494,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.2964,
"after": 0.0,
"delta": -0.2964,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.896,
"after": 1.0,
"delta": 0.104,
"percent_delta": 0.1161,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 1,
"deboosted_metrics": 4,
"better_metrics": 0,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.896,
"after": 1.0,
"delta": 0.104,
"percent_delta": 0.1161,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 0.6725,
"after": 0.0,
"delta": -0.6725,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.218,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.285,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.317,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2181,
"after": 0.218,
"delta": -0.0001,
"percent_delta": -0.0005,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_OBP",
"before": 0.3023,
"after": 0.285,
"delta": -0.0173,
"percent_delta": -0.0572,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.302,
"after": 0.317,
"delta": 0.015,
"percent_delta": 0.0497,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 2,
"deboosted_metrics": 1,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.3023,
"after": 0.285,
"delta": -0.0173,
"percent_delta": -0.0572,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 2.0,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 1,
"deboosted_metrics": 4,
"better_metrics": 2,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 12,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 2.0,
"predicted_AVG": 0.2181,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3023,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.302,
"predicted_SO": 0.0,
"predicted_SS": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.218,
"after": 0.2181,
"delta": 0.0001,
"percent_delta": 0.0005,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.285,
"after": 0.3023,
"delta": 0.0173,
"percent_delta": 0.0605,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.317,
"after": 0.302,
"delta": -0.015,
"percent_delta": -0.0474,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_OBP",
"before": 0.285,
"after": 0.3023,
"delta": 0.0173,
"percent_delta": 0.0605,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.317,
"after": 0.302,
"delta": -0.015,
"percent_delta": -0.0474,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.145,
"after": 0.0,
"delta": -0.145,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.017,
"after": 0.0,
"delta": -0.017,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.128,
"after": 2.0,
"delta": -1.128,
"percent_delta": -0.3606,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.219,
"after": 0.2181,
"delta": -0.0009,
"percent_delta": -0.0041,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.385,
"after": 1.0,
"delta": 0.615,
"percent_delta": 1.5974,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.64,
"after": 0.0,
"delta": -0.64,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.02,
"after": 0.0,
"delta": -0.02,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.312,
"after": 0.3023,
"delta": -0.0097,
"percent_delta": -0.0311,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.504,
"after": 0.0,
"delta": -0.504,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.31,
"after": 0.0,
"delta": -0.31,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.31,
"after": 0.302,
"delta": -0.008,
"percent_delta": -0.0258,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.897,
"after": 0.0,
"delta": -0.897,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 9,
"boosted_metrics": 1,
"deboosted_metrics": 8,
"better_metrics": 2,
"worse_metrics": 7,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.385,
"after": 1.0,
"delta": 0.615,
"percent_delta": 1.5974,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 3.128,
"after": 2.0,
"delta": -1.128,
"percent_delta": -0.3606,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.145 | - |
| predicted_3B | 0.017 | - |
| predicted_AB | 3.128 | - |
| predicted_AVG | 0.219 | - |
| predicted_BB | 0.385 | - |
| predicted_H | 0.640 | - |
| predicted_HR | 0.020 | - |
| predicted_OBP | 0.312 | - |
| predicted_R | 0.504 | - |
| predicted_RBI | 0.310 | - |
| predicted_SLG | 0.310 | - |
| predicted_SO | 0.897 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.180 | 0.035 |
| predicted_3B | 0.014 | -0.003 |
| predicted_AB | 3.135 | 0.007 |
| predicted_AVG | 0.230 | 0.011 |
| predicted_BB | 0.378 | -0.007 |
| predicted_H | 0.695 | 0.055 |
| predicted_HBP | 0.016 | - |
| predicted_HR | 0.019 | -0.001 |
| predicted_OBP | 0.318 | 0.006 |
| predicted_R | 0.561 | 0.057 |
| predicted_RBI | 0.304 | -0.006 |
| predicted_SLG | 0.322 | 0.012 |
| predicted_SO | 0.906 | 0.009 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.180 | 0.000 |
| predicted_3B | 0.014 | 0.000 |
| predicted_AB | 3.135 | 0.000 |
| predicted_AVG | 0.218 | -0.012 |
| predicted_BB | 0.378 | 0.000 |
| predicted_H | 0.684 | -0.011 |
| predicted_HBP | 0.016 | 0.000 |
| predicted_HR | 0.018 | -0.000 |
| predicted_OBP | 0.302 | -0.015 |
| predicted_R | 0.547 | -0.013 |
| predicted_RBI | 0.297 | -0.007 |
| predicted_SLG | 0.302 | -0.020 |
| predicted_SO | 0.906 | 0.000 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=3.13), rates preserved: AVG=0.218 HR/AB=0.006
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=11.0, weight=0.107, BvP AVG=0.000)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.138 | 0.138 |
| 3B | 0.011 | 0.011 |
| BB | 0.264 | 0.264 |
| H | 0.672 | -0.328 |
| HR | 0.049 | 0.049 |
| RBI | 0.296 | 0.296 |
| SO | 0.896 | -0.104 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.138 |
| 3B | 0.000 | -0.011 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | -0.264 |
| H | 0.000 | -0.672 |
| HR | 0.000 | -0.049 |
| R | 1.000 | 0.000 |
| RBI | 0.000 | -0.296 |
| SO | 1.000 | 0.104 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.180 |
| predicted_3B | 0.000 | -0.014 |
| predicted_AB | 3.000 | -0.135 |
| predicted_AVG | 0.218 | -0.000 |
| predicted_BB | 0.000 | -0.378 |
| predicted_H | 1.000 | 0.316 |
| predicted_HR | 0.000 | -0.018 |
| predicted_OBP | 0.285 | -0.017 |
| predicted_R | 1.000 | 0.453 |
| predicted_RBI | 0.000 | -0.297 |
| predicted_SLG | 0.317 | 0.015 |
| predicted_SO | 1.000 | 0.094 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 2.000 | -1.000 |
| BB | 1.000 | 1.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 3.000 | - |
| R | 0.000 | -1.000 |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 16.000 | 5.000 | 2.000 | 0.000 | 0.000 | 1.000 | 5.000 | 1.000 | 5.000 | 0.3125 | 0.3529 | 0.4375 | 0.3125 | 0.0000 | 0.0625 | 0.0625 | 0.3125 |
| last_10 | 0.20 | 10 | - | 29.000 | 7.000 | 3.000 | 0.000 | 0.000 | 3.000 | 7.000 | 5.000 | 9.000 | 0.2414 | 0.3529 | 0.3448 | 0.2414 | 0.0000 | 0.1035 | 0.1724 | 0.3103 |
| season | 0.60 | 117 | - | 366.000 | 81.000 | 17.000 | 2.000 | 2.000 | 36.000 | 59.000 | 45.000 | 105.000 | 0.2213 | 0.3086 | 0.2951 | 0.2213 | 0.0055 | 0.0984 | 0.1230 | 0.2869 |
| Metric | Value |
|---|---|
| predicted_2B | 0.2260 |
| predicted_3B | 0.0100 |
| predicted_AB | 3.1440 |
| predicted_AVG | 0.2439 |
| predicted_BB | 0.3690 |
| predicted_H | 0.7670 |
| predicted_HBP | 0.0160 |
| predicted_HR | 0.0170 |
| predicted_OBP | 0.3249 |
| predicted_R | 0.6360 |
| predicted_RBI | 0.2970 |
| predicted_SLG | 0.3385 |
| predicted_SO | 0.9170 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1450 | 0.2260 | 0.1799 | model_form_blend |
| predicted_3B | 0.0170 | 0.0100 | 0.0140 | model_form_blend |
| predicted_AB | 3.1280 | 3.1440 | 3.1349 | model_form_blend |
| predicted_AVG | 0.2190 | 0.2439 | 0.2297 | model_form_blend |
| predicted_BB | 0.3850 | 0.3690 | 0.3781 | model_form_blend |
| predicted_H | 0.6400 | 0.7670 | 0.6947 | model_form_blend |
| predicted_HBP | - | 0.0160 | 0.0160 | form_only |
| predicted_HR | 0.0200 | 0.0170 | 0.0187 | model_form_blend |
| predicted_OBP | 0.3120 | 0.3249 | 0.3176 | model_form_blend |
| predicted_R | 0.5040 | 0.6360 | 0.5608 | model_form_blend |
| predicted_RBI | 0.3100 | 0.2970 | 0.3044 | model_form_blend |
| predicted_SLG | 0.3100 | 0.3385 | 0.3223 | model_form_blend |
| predicted_SO | 0.8970 | 0.9170 | 0.9056 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 425 |
| Season rows before report date | 425 |
| Report year | 2026 |
| Profile rows used | 117 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 3 |
| AB | 2 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 1 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 1 |
| Hitting_3B | 0 |
| Hitting_AB | 5 |
| Hitting_AVG | 0.2 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 3 |
| Hitting_TB | 2 |
| Hitting_battingOrder | 9 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | SS |
| gameID | 20260926_TB@PHI |
| game_type | full |
| mlbID | 670764 |
| playerID | 670764 |
| playerName | Taylor Walls |
| pos | SS |
| started | True |
| startingPosition | SS |
| team | TB |
| teamID | 27 |
| game_date | 2026-09-26 |
| sl_k_percent | 24.2 |
| sl_bb_percent | 10.4 |
| sl_woba | 0.278 |
| sl_xwoba | 0.251 |
| sl_xba | 0.19 |
| sl_xslg | 0.261 |
| sl_sweet_spot_percent | 32.1 |
| sl_barrel_batted_rate | 2.2 |
| sl_hard_hit_percent | 21.9 |
| sl_exit_velocity_avg | 85.6 |
| sl_launch_angle_avg | 19.4 |
| sl_whiff_percent | 22.0 |
| sl_swing_percent | 43.2 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 3.000 | 3.000 | 3.000 | Pitching_BB | 1.067 | 3.000 | 1.933 | 0.000 |
| predicted_ER | 2.000 | 2.000 | 2.000 | Pitching_ER | 1.700 | 1.000 | 0.300 | 1.000 |
| predicted_H | 1.000 | 1.000 | 1.000 | Pitching_H | 4.167 | 1.000 | -3.167 | 0.000 |
| predicted_IP | 6.000 | 6.000 | 6.000 | Pitching_InningsPitched | 5.687 | 6.200 | 0.313 | -0.200 |
| predicted_SO | 5.000 | 5.000 | 5.000 | Pitching_SO | 5.800 | 11.000 | -0.800 | -6.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_form_blend |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 1 |
| Boosted Metrics | 1 |
| Deboosted Metrics | 0 |
| Better Metrics | 1 |
| Worse Metrics | 0 |
| Biggest Boost | predicted_SO: 4.0000 -> 5.0000 (boost 1.0000, better) |
| Biggest Deboost | - |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 2 | pitcher_quality_guardrail | 1 | 1 | 0 | 1 | 0 | predicted_SO: 4.0000 -> 6.0000 (boost 2.0000, better) | - | Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form. |
| 3 | current_json_final | 1 | 0 | 1 | 0 | 1 | - | predicted_SO: 6.0000 -> 5.0000 (deboost -1.0000, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "pitcher",
"player_id": "656876",
"player_name": "Drew Rasmussen",
"position": "Starter",
"team": "TB",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 1.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": 3.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 3.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 2.0,
"predicted_SO": 5.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SO",
"before": 6.0,
"after": 5.0,
"delta": -1.0,
"percent_delta": -0.1667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 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"
}
}
}Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 3.000 | - |
| predicted_ER | 2.000 | - |
| predicted_H | 1.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 6.000 | - |
| predicted_SO | 4.000 | - |
Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 3.000 | 0.000 |
| predicted_ER | 2.000 | 0.000 |
| predicted_H | 1.000 | 0.000 |
| predicted_HR | 0.000 | 0.000 |
| predicted_IP | 6.000 | 0.000 |
| predicted_SO | 6.000 | 2.000 |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 31.200 | 5.000 | 20.000 | 7.000 | 31.000 | 1.000 | 1.4211 | 0.8526 | 0.1579 | 0.6316 | 0.2210 | 0.9789 | 0.0316 |
| last_10 | 0.35 | 10 | 60.200 | 13.000 | 40.000 | 13.000 | 62.000 | 2.000 | 1.9286 | 0.8736 | 0.2143 | 0.6593 | 0.2143 | 1.0220 | 0.0330 |
| season | 0.20 | 30 | 172.000 | 51.000 | 125.000 | 32.000 | 174.000 | 14.000 | 2.6686 | 0.9128 | 0.2965 | 0.7267 | 0.1860 | 1.0116 | 0.0814 |
| Metric | Value |
|---|---|
| predicted_BB | 1.4310 |
| predicted_ER | 1.5130 |
| predicted_ERA | 2.2428 |
| predicted_H | 4.2900 |
| predicted_HR | 0.3470 |
| predicted_IP | 6.0000 |
| predicted_SO | 6.0160 |
| predicted_WHIP | 0.9422 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 3.0000 | 1.4310 | 2.0749 | model_form_blend |
| predicted_ER | 2.0000 | 1.5130 | 1.7129 | model_form_blend |
| predicted_ERA | - | 2.2428 | 2.2428 | form_only |
| predicted_H | 1.0000 | 4.2900 | 2.9399 | model_form_blend |
| predicted_HR | 0.0000 | 0.3470 | 0.2046 | model_form_blend |
| predicted_IP | 6.0000 | 6.0000 | 6.0000 | model_form_blend |
| predicted_SO | 4.0000 | 6.0160 | 5.1887 | model_form_blend |
| predicted_WHIP | - | 0.9422 | 0.9422 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 30 |
| Season rows before report date | 30 |
| Report year | 2026 |
| Profile rows used | 30 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 6.0 |
| H | 1 |
| R | 2 |
| ER | 2 |
| BB | 3 |
| SO | 5 |
| HR | 0 |
| BF | 22 |
| Pitches | 103 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 3 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 24 |
| Pitching_ER | 1 |
| Pitching_ERA | 2.67 |
| Pitching_Flyouts | 4 |
| Pitching_Groundouts | 3 |
| Pitching_H | 1 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 6.2 |
| Pitching_Pitches | 114 |
| Pitching_R | 1 |
| Pitching_SO | 11 |
| Pitching_Strikes | 72 |
| Pitching_Wild Pitch | 0 |
| Pitching_decision | W |
| Pitching_pitchingOrder | 1 |
| allPositionsPlayed | P |
| gameID | 20260922_TB@NYY_2 |
| game_type | full |
| mlbID | 656876 |
| playerID | 656876 |
| playerName | Drew Rasmussen |
| pos | P |
| started | True |
| startingPosition | P |
| team | TB |
| teamID | 27 |
| game_date | 2026-09-22 |
| sl_k_percent | 26.0 |
| sl_bb_percent | 4.8 |
| sl_woba | 0.243 |
| sl_xwoba | 0.271 |
| sl_sweet_spot_percent | 32.5 |
| sl_barrel_batted_rate | 5.9 |
| sl_hard_hit_percent | 33.8 |
| sl_whiff_percent | 25.1 |
| sl_swing_percent | 50.1 |
| sl_avg_best_speed | 77.428542965 |
| sl_avg_hyper_speed | 93.596998204 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 1.000 | 1.000 | 1.000 | Pitching_BB | 0.338 | 0.000 | 0.662 | 1.000 |
| predicted_ER | 0.000 | 0.000 | 0.000 | Pitching_ER | 0.154 | 0.000 | -0.154 | 0.000 |
| predicted_H | 1.000 | 1.000 | 1.000 | Pitching_H | 0.538 | 0.000 | 0.462 | 1.000 |
| predicted_IP | 1.000 | 1.000 | 1.000 | Pitching_InningsPitched | 0.934 | 1.000 | 0.066 | 0.000 |
| predicted_SO | 0.000 | 0.000 | 0.000 | Pitching_SO | 0.969 | 0.000 | -0.969 | 0.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_form_blend |
| To | current_json_final |
| Dominant Effect | neutral |
| Changed Metrics | 0 |
| Boosted Metrics | 0 |
| Deboosted Metrics | 0 |
| Better Metrics | 0 |
| Worse Metrics | 0 |
| Biggest Boost | - |
| Biggest Deboost | - |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 2 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "pitcher",
"player_id": "641329",
"player_name": "Bryan Baker",
"position": "Closer",
"team": "TB",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 1.0,
"predicted_SO": 0.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 1.0,
"predicted_R": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
}Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 1.000 | - |
| predicted_ER | 0.000 | - |
| predicted_H | 1.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 1.000 | - |
| predicted_SO | 0.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 5.100 | 0.000 | 4.000 | 1.000 | 2.000 | 0.000 | 0.0000 | 0.9375 | 0.0000 | 0.7500 | 0.1875 | 0.3750 | 0.0000 |
| last_10 | 0.35 | 10 | 10.100 | 0.000 | 5.000 | 4.000 | 5.000 | 0.000 | 0.0000 | 0.8710 | 0.0000 | 0.4839 | 0.3871 | 0.4839 | 0.0000 |
| season | 0.20 | 63 | 62.100 | 9.000 | 34.000 | 20.000 | 63.000 | 4.000 | 1.2995 | 0.8663 | 0.1444 | 0.5454 | 0.3209 | 1.0107 | 0.0642 |
| Metric | Value |
|---|---|
| predicted_BB | 0.3110 |
| predicted_ER | 0.1640 |
| predicted_ERA | 1.4787 |
| predicted_H | 0.7190 |
| predicted_HR | 0.0510 |
| predicted_IP | 1.0000 |
| predicted_SO | 0.6500 |
| predicted_WHIP | 1.0299 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 1.0000 | 0.3110 | 0.6337 | model_form_blend |
| predicted_ER | 0.0000 | 0.1640 | 0.0872 | model_form_blend |
| predicted_ERA | - | 1.4787 | 1.4787 | form_only |
| predicted_H | 1.0000 | 0.7190 | 0.8506 | model_form_blend |
| predicted_HR | 0.0000 | 0.0510 | 0.0271 | model_form_blend |
| predicted_IP | 1.0000 | 1.0000 | 1.0000 | model_form_blend |
| predicted_SO | 0.0000 | 0.6500 | 0.3456 | model_form_blend |
| predicted_WHIP | - | 1.0299 | 1.0299 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 65 |
| Season rows before report date | 65 |
| Report year | 2026 |
| Profile rows used | 63 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 1.0 |
| H | 1 |
| R | 0 |
| ER | 0 |
| BB | 1 |
| SO | 0 |
| HR | 0 |
| BF | 5 |
| Pitches | 23 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 3 |
| Pitching_ER | 0 |
| Pitching_ERA | 1.44 |
| Pitching_Flyouts | 2 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 1.0 |
| Pitching_Pitches | 11 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 8 |
| Pitching_Wild Pitch | 0 |
| Pitching_decision | S |
| Pitching_pitchingOrder | 5 |
| allPositionsPlayed | P |
| gameID | 20260925_TB@PHI |
| game_type | full |
| mlbID | 641329 |
| playerID | 641329 |
| playerName | Bryan Baker |
| pos | P |
| started | False |
| startingPosition | P |
| team | TB |
| teamID | 27 |
| game_date | 2026-09-25 |
| sl_k_percent | 25.8 |
| sl_bb_percent | 9.0 |
| sl_woba | 0.231 |
| sl_xwoba | 0.272 |
| sl_sweet_spot_percent | 33.1 |
| sl_barrel_batted_rate | 7.0 |
| sl_hard_hit_percent | 35.7 |
| sl_whiff_percent | 27.2 |
| sl_swing_percent | 52.6 |
| sl_avg_best_speed | 74.996232987 |
| sl_avg_hyper_speed | 93.55885961 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 0.000 | 0.000 | 0.000 | Pitching_BB | 0.143 | 0.000 | -0.143 | 0.000 |
| predicted_ER | 1.000 | 1.000 | 1.000 | Pitching_ER | 0.214 | 0.000 | 0.786 | 1.000 |
| predicted_H | 1.000 | 1.000 | 1.000 | Pitching_H | 0.595 | 1.000 | 0.405 | 0.000 |
| predicted_IP | 1.000 | 1.000 | 1.000 | Pitching_InningsPitched | 0.793 | 1.000 | 0.207 | 0.000 |
| predicted_SO | 0.000 | 0.000 | 0.000 | Pitching_SO | 1.071 | 2.000 | -1.071 | -2.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_form_blend |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 1 |
| Boosted Metrics | 0 |
| Deboosted Metrics | 1 |
| Better Metrics | 0 |
| Worse Metrics | 1 |
| Biggest Boost | - |
| Biggest Deboost | predicted_SO: 1.0000 -> 0.0000 (deboost -1.0000, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 2 | current_json_final | 1 | 0 | 1 | 0 | 1 | - | predicted_SO: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "pitcher",
"player_id": "592155",
"player_name": "Cam Booser",
"position": "Middle Reliever (High Leverage)",
"team": "TB",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_IP": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_IP": 1.0,
"predicted_R": 1.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"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": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"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": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 0.000 | - |
| predicted_ER | 1.000 | - |
| predicted_H | 1.000 | - |
| predicted_HR | 1.000 | - |
| predicted_IP | 1.000 | - |
| predicted_SO | 1.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 4.000 | 0.000 | 1.000 | 0.000 | 4.000 | 0.000 | 0.0000 | 0.2500 | 0.0000 | 0.2500 | 0.0000 | 1.0000 | 0.0000 |
| last_10 | 0.35 | 10 | 7.200 | 0.000 | 2.000 | 0.000 | 6.000 | 0.000 | 0.0000 | 0.2609 | 0.0000 | 0.2609 | 0.0000 | 0.7826 | 0.0000 |
| season | 0.20 | 42 | 41.000 | 9.000 | 25.000 | 6.000 | 45.000 | 5.000 | 1.9756 | 0.7561 | 0.2195 | 0.6098 | 0.1463 | 1.0976 | 0.1220 |
| Metric | Value |
|---|---|
| predicted_BB | 0.1330 |
| predicted_ER | 0.1810 |
| predicted_ERA | 1.9616 |
| predicted_H | 0.4750 |
| predicted_HR | 0.0580 |
| predicted_IP | 0.2000 |
| predicted_SO | 0.7820 |
| predicted_WHIP | 0.7299 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 0.0000 | 0.1330 | 0.0656 | model_form_blend |
| predicted_ER | 1.0000 | 0.1810 | 0.5963 | model_form_blend |
| predicted_ERA | - | 1.9616 | 1.9616 | form_only |
| predicted_H | 1.0000 | 0.4750 | 0.7412 | model_form_blend |
| predicted_HR | 1.0000 | 0.0580 | 0.5356 | model_form_blend |
| predicted_IP | 1.0000 | 0.2000 | 1.0000 | model_form_blend |
| predicted_SO | 1.0000 | 0.7820 | 0.8925 | model_form_blend |
| predicted_WHIP | - | 0.7299 | 0.7299 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 42 |
| Season rows before report date | 42 |
| Report year | 2026 |
| Profile rows used | 42 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 1.0 |
| H | 1 |
| R | 1 |
| ER | 1 |
| BB | 0 |
| SO | 0 |
| HR | 1 |
| BF | 4 |
| Pitches | 16 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 4 |
| Pitching_ER | 0 |
| Pitching_ERA | 1.98 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 1 |
| Pitching_H | 1 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 1.0 |
| Pitching_Pitches | 21 |
| Pitching_R | 0 |
| Pitching_SO | 2 |
| Pitching_Strikes | 13 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 4 |
| allPositionsPlayed | P |
| gameID | 20260926_TB@PHI |
| game_type | full |
| mlbID | 592155 |
| playerID | 592155 |
| playerName | Cam Booser |
| pos | P |
| started | False |
| startingPosition | P |
| team | TB |
| teamID | 27 |
| game_date | 2026-09-26 |
| sl_k_percent | 29.6 |
| sl_bb_percent | 3.9 |
| sl_woba | 0.222 |
| sl_xwoba | 0.252 |
| sl_sweet_spot_percent | 32.7 |
| sl_barrel_batted_rate | 5.9 |
| sl_hard_hit_percent | 37.6 |
| sl_whiff_percent | 28.6 |
| sl_swing_percent | 55.5 |
| sl_avg_best_speed | 81.083061042 |
| sl_avg_hyper_speed | 94.197371771 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 0.000 | 0.000 | 0.000 | Pitching_BB | 0.155 | 0.000 | -0.155 | 0.000 |
| predicted_ER | 0.000 | 0.000 | 0.000 | Pitching_ER | 0.282 | 0.000 | -0.282 | 0.000 |
| predicted_H | 1.000 | 1.000 | 1.000 | Pitching_H | 0.775 | 0.000 | 0.225 | 1.000 |
| predicted_IP | 1.000 | 1.000 | 1.000 | Pitching_InningsPitched | 0.883 | 1.000 | 0.117 | 0.000 |
| predicted_SO | 0.000 | 0.000 | 0.000 | Pitching_SO | 0.887 | 1.000 | -0.887 | -1.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_form_blend |
| To | current_json_final |
| Dominant Effect | neutral |
| Changed Metrics | 0 |
| Boosted Metrics | 0 |
| Deboosted Metrics | 0 |
| Better Metrics | 0 |
| Worse Metrics | 0 |
| Biggest Boost | - |
| Biggest Deboost | - |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 2 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "pitcher",
"player_id": "687330",
"player_name": "Kevin Kelly",
"position": "Setup Man",
"team": "TB",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 1.0,
"predicted_SO": 0.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_IP": 1.0,
"predicted_R": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
}Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 0.000 | - |
| predicted_ER | 0.000 | - |
| predicted_H | 1.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 1.000 | - |
| predicted_SO | 0.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 4.200 | 1.000 | 5.000 | 0.000 | 6.000 | 0.000 | 1.9286 | 1.0714 | 0.2143 | 1.0714 | 0.0000 | 1.2857 | 0.0000 |
| last_10 | 0.35 | 10 | 8.000 | 6.000 | 12.000 | 0.000 | 11.000 | 1.000 | 6.7500 | 1.5000 | 0.7500 | 1.5000 | 0.0000 | 1.3750 | 0.1250 |
| season | 0.20 | 71 | 73.200 | 20.000 | 55.000 | 11.000 | 63.000 | 6.000 | 2.4434 | 0.8959 | 0.2715 | 0.7466 | 0.1493 | 0.8552 | 0.0814 |
| Metric | Value |
|---|---|
| predicted_BB | 0.1060 |
| predicted_ER | 0.3990 |
| predicted_ERA | 3.9396 |
| predicted_H | 1.0160 |
| predicted_HR | 0.0750 |
| predicted_IP | 1.0000 |
| predicted_SO | 1.0560 |
| predicted_WHIP | 1.2302 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 0.0000 | 0.1060 | 0.0578 | model_form_blend |
| predicted_ER | 0.0000 | 0.3990 | 0.2176 | model_form_blend |
| predicted_ERA | - | 3.9396 | 3.9396 | form_only |
| predicted_H | 1.0000 | 1.0160 | 1.0087 | model_form_blend |
| predicted_HR | 0.0000 | 0.0750 | 0.0409 | model_form_blend |
| predicted_IP | 1.0000 | 1.0000 | 1.0000 | model_form_blend |
| predicted_SO | 0.0000 | 1.0560 | 0.5759 | model_form_blend |
| predicted_WHIP | - | 1.2302 | 1.2302 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 71 |
| Season rows before report date | 71 |
| Report year | 2026 |
| Profile rows used | 71 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 1.0 |
| H | 1 |
| R | 0 |
| ER | 0 |
| BB | 0 |
| SO | 0 |
| HR | 0 |
| BF | 4 |
| Pitches | 16 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 3 |
| Pitching_ER | 0 |
| Pitching_ERA | 2.44 |
| Pitching_Flyouts | 1 |
| Pitching_Groundouts | 1 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 1.0 |
| Pitching_Pitches | 9 |
| Pitching_R | 0 |
| Pitching_SO | 1 |
| Pitching_Strikes | 6 |
| Pitching_Wild Pitch | 0 |
| Pitching_decision | H |
| Pitching_pitchingOrder | 3 |
| allPositionsPlayed | P |
| gameID | 20260925_TB@PHI |
| game_type | full |
| mlbID | 687330 |
| playerID | 687330 |
| playerName | Kevin Kelly |
| pos | P |
| started | False |
| startingPosition | P |
| team | TB |
| teamID | 27 |
| game_date | 2026-09-25 |
| sl_k_percent | 22.6 |
| sl_bb_percent | 3.9 |
| sl_woba | 0.246 |
| sl_xwoba | 0.284 |
| sl_sweet_spot_percent | 31.2 |
| sl_barrel_batted_rate | 6.0 |
| sl_hard_hit_percent | 44.6 |
| sl_whiff_percent | 24.0 |
| sl_swing_percent | 49.4 |
| sl_avg_best_speed | 78.7371153 |
| sl_avg_hyper_speed | 94.606937387 |
| Layer | Score | Winner | Confidence | Source or usage | Synced or matches |
|---|---|---|---|---|---|
| Shipped prediction | SD 4 - 6 MIL | MIL | 0.530 | enhanced_prediction.pre_simulation_target | True |
| Simulation draw | SD 4 - 6 MIL | MIL | - | organic_simulation_realized_target | True |
The shipped score is reconciled to the final simulation score. The original model target remains visible as the pre-simulation audit layer.
This table distinguishes newly generated artifacts from older files. Missing trace data is shown as legacy/unavailable, never inferred.
| Priority | Change | Runtime status | Evidence |
|---|---|---|---|
| P1 | Empirical confidence blend | applied | raw=0.5507; empirical=0.5579; weight=0.5000; final=0.5543 |
| P1 | H2H margin as base feature | available | home net=-7; abs=7; home delta=-0.0404; away delta=0.0404 |
| P2 | Wider score distribution | implemented_above_requested_1.4x | variance multiplier=2.2500; floor=2.7500 |
| P2 | Simulation flip control | diagnostic_only_unless_independently_supported | candidate=False; trusted=False; published flip=False |
| P3 | Season edge + recent form | implemented | window=10; season edge=1.1790; recent edge=-0.1240; blended=- |
| P3 | Continuous calibration audit | trace emitted | Checked by CONFIDENCE_CALIBRATION_APPLIED and bucket_calibration_error in learning reports. |
| Process Layer | What It Does | Stored Field | Observed Value |
|---|---|---|---|
| 1. Historical model | Starts from trained game model output. | score_evolution.steps[historical_ml] | - |
| 2. Variance layer | Applies bounded game variance before enhanced corrections. | score_evolution.steps[variance_applied] | - |
| 3. Recent/team form | Uses latest team form, recent scoring, prevention, and streak state. | enhanced_prediction_analysis.recent_form | True |
| 4. Season quality | Uses season run differential and record quality guardrails. | season_run_differential_adjustment, season_quality_guardrail | True |
| 5. Savant hitters | Applies lineup-level Statcast xwOBA, xBA, xSLG, barrel, hard-hit, sweet-spot, EV, launch-angle, whiff, K and BB quality. | savant_batter_quality_adjustment | True |
| 6. Savant pitchers | Applies starter run prevention, strikeout, walk, HR and regression factors from xwOBA, wOBA, contact quality and whiff/command. | savant_pitcher_quality_adjustment | True |
| 7. Low-score analysis | Controls unrealistic totals and preserves the pre-sync low-score expected total. | low_score_analysis | 7 |
| 8. Probability/governors | Applies win probability calibration, matchup guardrails, margin governor and confidence governor. | win_probability_calibration, margin_governor, confidence_governor | 0.5300 |
| 9. Simulation reconciliation | Reconciles final shipped score with the simulation box score while retaining the pre-simulation target. | simulation_reconciliation | organic_simulation_realized_target |
| 10. Score evolution rendered | 7 stored score steps are rendered below. | game.score_evolution.steps | true |
| Step | Layer | Away Runs | Home Runs | Confidence | Description |
|---|---|---|---|---|---|
| 1 | historical_ml | 3.743 | 6.329 | - | Base ML historical model prediction |
| 2 | variance_applied | 4 | 6 | - | Deterministic baseline target (variance factor 1.0) |
| 3 | enhanced_prediction | 5 | 6 | 0.5300 | Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by matchup_recency_guardrail) |
| 4 | embedded_savant_run_environment | 4 | 6 | - | Target score adjusted by temporal Savant lineup quality versus opposing starter quality |
| 5 | fundamental_edge_target_review | 4 | 6 | - | Refreshed score target and win probability after Savant/pitcher/team-strength adjustments |
| 6 | capped_target | 4 | 6 | - | Capped at max 12 realistic runs |
| 7 | simulation_result | 4 | 6 | - | Final inning-by-inning simulation result |
{
"low_score_probability": 0.5114207168176449,
"base_low_score_probability": 0.4257581725088618,
"low_score_signal_threshold": 0.5057581725088618,
"low_score_signal_strength": 0.08566254430878312,
"confidence": 0.7006000000000001,
"factors": {
"environmental": 1.05,
"pitcher_form": 1.1,
"team_form": 1.0,
"situational": 1.04,
"combined": 1.2012000000000003
},
"prediction": "low_scoring",
"expected_total_runs": 10,
"score_scale_mode": "control",
"pre_simulation_expected_total_runs": 7.0,
"low_score_model_expected_total_runs": 7.0,
"final_simulation_total_runs": 10,
"score_source": "enhanced_prediction.pre_simulation_target"
}{
"method": "monotone_reliability_shrinkage",
"policy": "shrink_toward_even_score_floor_v3",
"sample_size": 285,
"near_bucket_sample_size": 285,
"medium_bucket_sample_size": 417,
"wide_bucket_sample_size": 882,
"global_sample_size": 1125,
"bucket_scope": "near_0.05",
"sparse_bucket": false,
"empirical_hit_rate": 0.5579,
"bayesian_hit_rate": 0.5545,
"prior_strength": 18.0,
"raw_pick_probability": 0.6451,
"raw_pick_probability_unclamped": 0.6451,
"score_probability_conflict": false,
"margin_implied_home_probability": 0.5073,
"margin_implied_pick_probability": 0.5073,
"score_blend_weight": 0.45,
"blended_raw_pick_probability": 0.5831,
"score_implied_floor_pick_probability": 0.507,
"max_published_pick_probability": 0.9,
"uncapped_home_win_probability": 0.645098,
"uncapped_away_win_probability": 0.354902,
"calibrated_pick_probability": 0.5799,
"predicted_side": "home",
"reliability": 0.940594,
"shrink_floor": 0.35,
"empirical_penalty": 1.0,
"shrinkage_weight": 0.961386
}{
"method": "empirical_hit_rate_weighted_v1",
"applied": true,
"reason": "raw confidence blended with verified historical bucket hit rate",
"raw_confidence": 0.550696,
"sample_size": 285,
"empirical_hit_rate": 0.5579,
"empirical_weight": 0.5,
"blended_confidence": 0.554298,
"published_confidence": 0.53,
"published_after_governors": true,
"governor_mode": "shrinkage_not_clamp"
}{
"method": "h2h_net_margin_monotonic_v1",
"available": true,
"sample_size": 5,
"sample_weight": 0.0577,
"home_net_margin": -7.0,
"absolute_net_margin": 7.0,
"home_average_margin": -1.4,
"home_run_delta": -0.0404,
"away_run_delta": 0.0404,
"evidence": [
{
"game_id": null,
"home_margin": -1.0
},
{
"game_id": null,
"home_margin": -9.0
},
{
"game_id": null,
"home_margin": -1.0
},
{
"game_id": null,
"home_margin": 6.0
},
{
"game_id": null,
"home_margin": -2.0
}
],
"adaptive_parameters": {
"h2h.history_limit": 5,
"h2h.maximum_weight": 0.15,
"h2h.prior_games": 8.0,
"h2h.maximum_total_shift": 0.65
}
}{
"applied": true,
"home": {
"team": "MIL",
"games": 162,
"wins": 103,
"losses": 59,
"win_pct": 0.6358024691358025,
"runs_scored": 832,
"runs_allowed": 618,
"run_differential": 214,
"run_differential_per_game": 1.3209876543209877,
"available": true
},
"away": {
"team": "SD",
"games": 162,
"wins": 91,
"losses": 71,
"win_pct": 0.5617283950617284,
"runs_scored": 722,
"runs_allowed": 681,
"run_differential": 41,
"run_differential_per_game": 0.25308641975308643,
"available": true
},
"run_differential_edge_per_game": 1.0679,
"win_pct_edge": 0.0741,
"quality_edge": 0.723,
"season_quality_edge": 1.179,
"recent_quality_blend": {
"method": "season_recent_quality_blend_v2_adaptive",
"recent_window": 10,
"season_quality_edge": 1.179,
"recent_quality_edge": -0.124,
"season_weight": 0.65,
"recent_weight": 0.35,
"recent_reliability": 1.0,
"alignment": "conflict",
"blended_quality_edge": 0.723
},
"margin_adjustment": 0.3037,
"reason": "season-to-date run differential and record moved the score toward the stronger team",
"margin_adjustment_policy": {
"adjustment": 0.3037,
"cap": 1.4,
"scale": 0.42,
"quality_edge": 0.723,
"season_quality_edge": 1.179,
"recent_alignment": "conflict",
"large_edge_supported_by_recent_form": false,
"method": "standard_bounded_season_recent_adjustment"
},
"adjusted_score": {
"away_runs": 3.436,
"home_runs": 6.417,
"home_win_probability": 0.7533
}
}{
"most_likely": [
{
"home_runs": 5,
"away_runs": 5,
"probability": 0.015995938487533404
},
{
"home_runs": 5,
"away_runs": 4,
"probability": 0.01545657949509333
},
{
"home_runs": 4,
"away_runs": 5,
"probability": 0.015329711421689577
},
{
"home_runs": 6,
"away_runs": 5,
"probability": 0.015265038729009327
},
{
"home_runs": 5,
"away_runs": 6,
"probability": 0.015112039256447262
}
],
"home_distribution": {
"0": 0.04163467869456087,
"1": 0.062098513857551475,
"2": 0.08470706519929076,
"3": 0.105674573295292,
"4": 0.12056848661537828,
"5": 0.12580837579928966,
"6": 0.12005983459530394,
"7": 0.10478481837500872,
"8": 0.0836395000878033,
"9": 0.06105720656452228,
"10": 0.04076381976334636,
"11": 0.024890020459036263,
"12": 0.013899144616141106,
"13": 0.007098446816851556,
"14": 0.0033155152606234553
},
"away_distribution": {
"0": 0.04305153530911173,
"1": 0.0641529926971978,
"2": 0.08726944454139246,
"3": 0.10837385371575123,
"4": 0.12285811176635984,
"5": 0.12714525869925203,
"6": 0.12011950047393098,
"7": 0.1035962128712133,
"8": 0.08156263641812865,
"9": 0.058621327049306816,
"10": 0.03846245932843129,
"11": 0.023037506384625633,
"12": 0.012596529304155715,
"13": 0.006287577457857363,
"14": 0.0028650539832850465
},
"model": "overdispersed_score_distribution",
"variance_multiplier": 2.25,
"variance_floor": 2.75,
"roadmap_status": "implemented_above_requested_1.4x"
}{
"applied": true,
"confidence_cap": 0.53,
"winner_flipped": false,
"reasons": [
"latest same-matchup result beat the predicted side",
"predicted side recently lost this matchup by 5+ runs",
"opponent already produced an 8+ run breakout in this matchup",
"recent head-to-head margin does not support a strong repeat pick",
"a prior same-side pick already missed against the actual result",
"a prior same-side pick missed by 5+ actual runs",
"latest-series evidence cleared the reversal bar; confidence capped and runs shifted, winner unchanged by design"
],
"signals": {
"predicted_team": "MIL",
"opponent_team": "SD",
"h2h_net_margin": -11,
"opponent_breakout": true,
"opponent_blowout_win": true,
"split_recent_h2h": false,
"recent_h2h": [
{
"date": "2026-08-12",
"predicted_team_runs": 3,
"opponent_runs": 4,
"margin_for_predicted_team": -1,
"winner": "SD"
},
{
"date": "2026-08-11",
"predicted_team_runs": 2,
"opponent_runs": 11,
"margin_for_predicted_team": -9,
"winner": "SD"
},
{
"date": "2026-08-10",
"predicted_team_runs": 2,
"opponent_runs": 3,
"margin_for_predicted_team": -1,
"winner": "SD"
}
],
"prediction_memory": {
"available": true,
"reason": "verified_prior_matchup_predictions_available",
"verification_policy": "pregame_artifact_matched_to_one_official_final",
"verified_outcome_count": 3,
"consecutive_same_pick_count": 0,
"same_pick_actual_loss_count": 2,
"same_pick_blowout_loss_count": 1,
"prior_predictions": [
{
"date": "20260812",
"away": "MIL",
"home": "SD",
"game_number": 1,
"predicted_team": "SD",
"actual_winner": "SD",
"actual_margin": 1,
"raw_pick_probability": 0.51,
"artifact": "20260812_MIL@SD.json",
"verification": "pregame_official_final"
},
{
"date": "20260811",
"away": "MIL",
"home": "SD",
"game_number": 1,
"predicted_team": "MIL",
"actual_winner": "SD",
"actual_margin": 9,
"raw_pick_probability": 0.51256,
"artifact": "20260811_MIL@SD.json",
"verification": "pregame_official_final"
},
{
"date": "20260810",
"away": "MIL",
"home": "SD",
"game_number": 1,
"predicted_team": "MIL",
"actual_winner": "SD",
"actual_margin": 1,
"raw_pick_probability": 0.6,
"artifact": "20260810_MIL@SD.json",
"verification": "pregame_official_final"
}
]
},
"guardrail_predicted_team": "MIL",
"guardrail_opponent_team": "SD",
"output_pre_simulation_winner": "MIL",
"output_opponent_team": "SD",
"simulation_score_winner": "MIL",
"final_score_winner": "MIL",
"pre_simulation_winner": "MIL",
"winner_flipped_by_simulation": false,
"simulation_would_flip_winner": false
},
"hard_flip_suppressed": true,
"flip_authority": "caps_confidence_and_shifts_runs_only",
"final_prediction_sync": {
"pre_simulation_score": {
"away_runs": 4,
"home_runs": 6,
"score_text": "SD 4 - 6 MIL",
"winner": "MIL"
},
"final_simulation_score": {
"away_runs": 4,
"home_runs": 6,
"score_text": "SD 4 - 6 MIL",
"winner": "MIL"
},
"winner_flipped_by_simulation": false,
"simulation_would_flip_winner": false,
"sim_flipped_pre_winner": false,
"sim_flip_trusted": false,
"sim_flip_policy": "diagnostic_only_unless_independently_supported",
"independent_margin_support": false,
"independent_margin_support_evidence": {
"pitcher_matchup_edge_home_minus_away": 0.063,
"recent_form_edge_home_minus_away": -0.334,
"winner_direction": "home",
"thresholds": {
"pitcher_matchup": 0.35,
"recent_form": 0.75
}
},
"margin_widening_capped": false,
"simulation_winner_agrees": true,
"away_run_delta": 0,
"home_run_delta": 0,
"total_run_delta": 0,
"score_source": "enhanced_prediction.pre_simulation_target",
"simulation_usage": "organic_simulation_realized_target",
"final_prediction_source": "stable_final_prediction_policy",
"final_decision_policy": {
"policy_version": "model_target_authoritative_simulation_realizes_v3",
"away_runs": 4,
"home_runs": 6,
"winner": "MIL",
"model_winner": "MIL",
"simulation_winner": "MIL",
"simulation_winner_agrees": true,
"simulation_agreement_scope": "selected_draw_only",
"simulation_distribution_agreement": {
"available": true,
"draw_count": 1,
"published_winner": "MIL",
"published_winner_draw_share": 1.0,
"draw_majority_team": "MIL",
"published_winner_is_draw_majority": true,
"sampling": "target_conditioned_selection",
"is_unbiased_probability_sample": false,
"note": "Draw shares are target-conditioned and diagnostic. A published winner holding a minority share is recorded, not suppressed."
},
"simulation_score_enabled": true,
"independent_margin_support": false,
"margin_widening_capped": false,
"model_margin": 2,
"simulation_margin": 2,
"simulation_usage": "organic_simulation_realized_target",
"score_source": "enhanced_prediction.pre_simulation_target",
"simulation_realized_target": true,
"model_score": {
"away_runs": 4,
"home_runs": 6
},
"simulation_score": {
"away_runs": 4,
"home_runs": 6
}
},
"final_margin_quality_review": {
"review_required": false,
"pre_margin": 2,
"final_margin": 2,
"winner_quality_edge": 0.723,
"winner": "MIL",
"score_reviewed": {
"away_runs": 4,
"home_runs": 6,
"source": "enhanced_prediction.pre_simulation_target"
},
"reason": "published margin is directionally supported or within review threshold"
}
}
}{
"applied": false,
"confidence_cap": null,
"winner_flipped": false,
"hard_flip_suppressed": false,
"policy": "recency_uncertainty_shrinkage_v2",
"reasons": [],
"signals": {
"home": {
"team": "MIL",
"games": 162,
"wins": 103,
"losses": 59,
"win_pct": 0.6358024691358025,
"runs_scored": 832,
"runs_allowed": 618,
"run_differential": 214,
"run_differential_per_game": 1.3209876543209877,
"available": true
},
"away": {
"team": "SD",
"games": 162,
"wins": 91,
"losses": 71,
"win_pct": 0.5617283950617284,
"runs_scored": 722,
"runs_allowed": 681,
"run_differential": 41,
"run_differential_per_game": 0.25308641975308643,
"available": true
}
}
}{
"applied": false,
"raw_margin": 0.1,
"final_margin": 0.1,
"margin_cap": 1.5,
"season_quality_edge": 0.723,
"reason": "raw target margin within supported range"
}{
"applied": true,
"policy": "align_to_calibrated_probability_v2",
"raw_confidence": 0.53,
"final_confidence": 0.5799,
"calibrated_pick_probability": 0.5799,
"shrinkage_weight": 0.961386,
"hard_maximum": 0.9,
"confidence_floor": 0.505,
"score_gap": 0.1,
"calibration_sample_size": 285,
"calibration_empirical_hit_rate": 0.5579,
"calibration_bayesian_hit_rate": 0.5545,
"calibration_sparse_bucket": false,
"season_quality_edge": 0.723,
"reasons": [
"confidence aligned to the calibrated pick probability"
],
"score_coherence": {
"policy": "probability_follows_published_score_v1",
"published_score": {
"away_runs": 5,
"home_runs": 6
},
"margin": 1,
"probability_before": 0.579871,
"margin_implied_home_probability": 0.572388,
"shrinkage_weight": 0.961386,
"side_flipped": false,
"applied": true,
"probability_after": 0.576129,
"aligned_pick_probability": 0.576129
},
"starter_experience": {
"applied": false,
"min_starter_games": 30,
"shrink_factor": 1.0
}
}{
"pre_simulation_score": {
"away_runs": 4,
"home_runs": 6,
"score_text": "SD 4 - 6 MIL",
"winner": "MIL"
},
"final_simulation_score": {
"away_runs": 4,
"home_runs": 6,
"score_text": "SD 4 - 6 MIL",
"winner": "MIL"
},
"winner_flipped_by_simulation": false,
"simulation_would_flip_winner": false,
"sim_flipped_pre_winner": false,
"sim_flip_trusted": false,
"sim_flip_policy": "diagnostic_only_unless_independently_supported",
"independent_margin_support": false,
"independent_margin_support_evidence": {
"pitcher_matchup_edge_home_minus_away": 0.063,
"recent_form_edge_home_minus_away": -0.334,
"winner_direction": "home",
"thresholds": {
"pitcher_matchup": 0.35,
"recent_form": 0.75
}
},
"margin_widening_capped": false,
"simulation_winner_agrees": true,
"away_run_delta": 0,
"home_run_delta": 0,
"total_run_delta": 0,
"score_source": "enhanced_prediction.pre_simulation_target",
"simulation_usage": "organic_simulation_realized_target",
"final_prediction_source": "stable_final_prediction_policy",
"final_decision_policy": {
"policy_version": "model_target_authoritative_simulation_realizes_v3",
"away_runs": 4,
"home_runs": 6,
"winner": "MIL",
"model_winner": "MIL",
"simulation_winner": "MIL",
"simulation_winner_agrees": true,
"simulation_agreement_scope": "selected_draw_only",
"simulation_distribution_agreement": {
"available": true,
"draw_count": 1,
"published_winner": "MIL",
"published_winner_draw_share": 1.0,
"draw_majority_team": "MIL",
"published_winner_is_draw_majority": true,
"sampling": "target_conditioned_selection",
"is_unbiased_probability_sample": false,
"note": "Draw shares are target-conditioned and diagnostic. A published winner holding a minority share is recorded, not suppressed."
},
"simulation_score_enabled": true,
"independent_margin_support": false,
"margin_widening_capped": false,
"model_margin": 2,
"simulation_margin": 2,
"simulation_usage": "organic_simulation_realized_target",
"score_source": "enhanced_prediction.pre_simulation_target",
"simulation_realized_target": true,
"model_score": {
"away_runs": 4,
"home_runs": 6
},
"simulation_score": {
"away_runs": 4,
"home_runs": 6
}
},
"final_margin_quality_review": {
"review_required": false,
"pre_margin": 2,
"final_margin": 2,
"winner_quality_edge": 0.723,
"winner": "MIL",
"score_reviewed": {
"away_runs": 4,
"home_runs": 6,
"source": "enhanced_prediction.pre_simulation_target"
},
"reason": "published margin is directionally supported or within review threshold"
}
}{
"away_runs": 4,
"home_runs": 6,
"confidence": 0.53,
"home_win_probability": 0.53,
"away_win_probability": 0.47,
"predicted_score_text": "SD 4 - 6 MIL",
"embedded_savant_score_adjustment": {
"applied": true,
"source": "all_players_stats.csv embedded temporal Savant features",
"feature_contract": {
"training_grain": "one player-game row after collapsing granular at-bat rows",
"temporal_rule": "all sl_/ab_/sv_ model features are shifted before the predicted game",
"hitter_signals": [
"xwoba",
"xba",
"xslg",
"barrel_batted_rate",
"hard_hit_percent",
"bat_speed",
"launch_quality",
"walk_rate",
"strikeout_rate"
],
"pitcher_signals": [
"xwoba_allowed",
"barrel_allowed",
"hard_hit_allowed",
"whiff_rate",
"command_score",
"movement_score",
"faced_est_woba",
"faced_strikeout_rate"
]
},
"away": {
"team": "SD",
"original_runs": 5,
"run_delta": -0.8995,
"adjusted_runs": 4,
"lineup": {
"players_used": 9,
"total_weight": 33.0,
"quality": 0.2698136635146207,
"contact": 0.21332697611885174,
"power": 0.1847871559509353,
"discipline": 0.0697000978667646,
"xwoba": 0.3202727272727273,
"recent_xwoba": 0.3202727272727273,
"barrel": 7.663636363636364,
"ab_hard_contact": 0.08498987226545864,
"ab_bat_speed": 70.32201883124142,
"ab_strikeout_rate": 0.21942643775977108,
"available_players": 9,
"top_players": [
{
"player_id": "665487",
"player_name": "Fernando Tatis Jr.",
"position": "RF",
"weight": 4.0,
"quality": 1.2604590048722752,
"contact": 1.537598777628673,
"power": 1.419060078544773,
"discipline": 0.1520958203101061,
"xwoba": 0.379,
"recent_xwoba": 0.379,
"barrel": 12.7,
"ab_hard_contact": 0.905772999466876,
"ab_bat_speed": 73.94966340996169,
"ab_strikeout_rate": 0.18458049886621314,
"available": 1.0
},
{
"player_id": "701538",
"player_name": "Jackson Merrill",
"position": "CF",
"weight": 4.0,
"quality": 0.8278487816368972,
"contact": 0.8372077998185014,
"power": 1.2214916775618447,
"discipline": -0.46643139057424765,
"xwoba": 0.347,
"recent_xwoba": 0.347,
"barrel": 12.4,
"ab_hard_contact": 0.9818335512368941,
"ab_bat_speed": 71.91956921182266,
"ab_strikeout_rate": 0.23832199546485258,
"available": 1.0
},
{
"player_id": "630105",
"player_name": "Jake Cronenworth",
"position": "2B",
"weight": 3.0,
"quality": -0.6978572867345045,
"contact": -0.8198097083609606,
"power": -0.8736747190478739,
"discipline": 0.11953346203346207,
"xwoba": 0.275,
"recent_xwoba": 0.275,
"barrel": 3.9,
"ab_hard_contact": -0.6247324761955773,
"ab_bat_speed": 68.6986115244709,
"ab_strikeout_rate": 0.23928571428571427,
"available": 1.0
},
{
"player_id": "592518",
"player_name": "Manny Machado",
"position": "3B",
"weight": 4.0,
"quality": 0.4040704502480903,
"contact": 0.31953569470026355,
"power": 0.5028812447966452,
"discipline": 0.33572960715817846,
"xwoba": 0.328,
"recent_xwoba": 0.328,
"barrel": 9.7,
"ab_hard_contact": 0.42562489593290964,
"ab_bat_speed": 73.21585517241378,
"ab_strikeout_rate": 0.21201814058956917,
"available": 1.0
},
{
"player_id": "664034",
"player_name": "Ty France",
"position": "1B",
"weight": 4.0,
"quality": 0.3413400392257214,
"contact": 0.47219870293994554,
"power": 0.5963461334628277,
"discipline": -0.2615933185933186,
"xwoba": 0.327,
"recent_xwoba": 0.327,
"barrel": 9.1,
"ab_hard_contact": 0.45035124068512516,
"ab_bat_speed": 70.61850143678161,
"ab_strikeout_rate": 0.23062678062678063,
"available": 1.0
}
]
},
"opposing_starter": {
"available": true,
"player_id": "694819",
"player_name": "Jacob Misiorowski",
"quality": 1.489349959231257,
"contact": 1.7358967251160964,
"command": 1.357965730505165,
"movement": 2.0,
"xwoba": 0.226,
"whiff": 37.3,
"faced_est_woba": 0.2648406655555556,
"faced_launch_speed": 83.79124666446208,
"faced_strikeout_rate": 0.2356947200176367,
"faced_run_exp": 0.006483162950047203
}
},
"home": {
"team": "MIL",
"original_runs": 6,
"run_delta": 0.4826,
"adjusted_runs": 6,
"lineup": {
"players_used": 9,
"total_weight": 33.0,
"quality": 0.3243626797997229,
"contact": 0.3860285507742995,
"power": 0.3513102559994825,
"discipline": 0.21320051129070614,
"xwoba": 0.3294242424242424,
"recent_xwoba": 0.3294242424242424,
"barrel": 8.445454545454545,
"ab_hard_contact": 0.2076423494268786,
"ab_bat_speed": 71.62219393308975,
"ab_strikeout_rate": 0.23700394641375166,
"available_players": 9,
"top_players": [
{
"player_id": "641343",
"player_name": "Jake Bauers",
"position": "1B",
"weight": 4.0,
"quality": 0.9404135644339814,
"contact": 0.9233392416170212,
"power": 1.2575631064250319,
"discipline": 0.6168031792953668,
"xwoba": 0.371,
"recent_xwoba": 0.371,
"barrel": 14.0,
"ab_hard_contact": 0.5002145094530251,
"ab_bat_speed": 74.62907635688684,
"ab_strikeout_rate": 0.2675874255952381,
"available": 1.0
},
{
"player_id": "669003",
"player_name": "Garrett Mitchell",
"position": "CF",
"weight": 3.0,
"quality": 0.7615547881076475,
"contact": 0.8459406760197757,
"power": 1.077743900070061,
"discipline": -0.4058871728871727,
"xwoba": 0.353,
"recent_xwoba": 0.353,
"barrel": 11.7,
"ab_hard_contact": 0.8950684775916906,
"ab_bat_speed": 75.87857700993676,
"ab_strikeout_rate": 0.34384920634920635,
"available": 1.0
},
{
"player_id": "694192",
"player_name": "Jackson Chourio",
"position": "LF",
"weight": 4.0,
"quality": 0.7295733049708641,
"contact": 0.7642845085077412,
"power": 1.106706123946308,
"discipline": -0.10912777439093235,
"xwoba": 0.344,
"recent_xwoba": 0.344,
"barrel": 12.3,
"ab_hard_contact": 0.8468843836880706,
"ab_bat_speed": 73.16599660894661,
"ab_strikeout_rate": 0.2347326649958229,
"available": 1.0
},
{
"player_id": "661388",
"player_name": "William Contreras",
"position": "C",
"weight": 4.0,
"quality": 0.5480632665923718,
"contact": 0.6240085658408894,
"power": 0.5457610328830016,
"discipline": 0.5142107107107108,
"xwoba": 0.334,
"recent_xwoba": 0.334,
"barrel": 8.5,
"ab_hard_contact": 0.3723635148028898,
"ab_bat_speed": 72.30946246819339,
"ab_strikeout_rate": 0.14846560846560847,
"available": 1.0
},
{
"player_id": "668930",
"player_name": "Brice Turang",
"position": "2B",
"weight": 4.0,
"quality": 0.4095598851835547,
"contact": 0.5031618386037058,
"power": 0.37807434798942086,
"discipline": 0.5271825756935244,
"xwoba": 0.344,
"recent_xwoba": 0.344,
"barrel": 7.7,
"ab_hard_contact": 0.3767250550265139,
"ab_bat_speed": 67.37467774097944,
"ab_strikeout_rate": 0.24827945776850885,
"available": 1.0
}
]
},
"opposing_starter": {
"available": true,
"player_id": "592662",
"player_name": "Robbie Ray",
"quality": -0.30552916400699986,
"contact": -0.19747676188239574,
"command": -0.4233199837805492,
"movement": -0.47822915871950294,
"xwoba": 0.335,
"whiff": 24.6,
"faced_est_woba": 0.2648406655555556,
"faced_launch_speed": 83.79124666446208,
"faced_strikeout_rate": 0.2356947200176367,
"faced_run_exp": 0.006483162950047203
}
}
},
"fundamental_edge_target_review": {
"applied": false,
"method": "post_score_adjustment_fundamental_edge_review_v1",
"previous_score": {
"away_runs": 4,
"home_runs": 6,
"winner_side": "home"
},
"adjusted_score": {
"away_runs": 4,
"home_runs": 6,
"winner_side": "home"
},
"signals": {
"season_quality_edge_home_minus_away": 0.723,
"recent_form_edge_home_minus_away": -0.334,
"pitcher_matchup_edge_home_minus_away": 0.063,
"composite_home_edge": 0.8128,
"existing_home_win_probability": 0.5761,
"refreshed_home_win_probability": 0.7,
"winner_support_before_review": 0.8128
},
"reasons": [
"target direction already matched refreshed fundamentals or margin was not fragile"
]
},
"uncapped_home_win_probability": 0.576129,
"uncapped_away_win_probability": 0.423871,
"confidence_shrinkage": {
"policy": "starter_quality_shrinkage_v3",
"staged_confidence": 0.576129,
"discount_factor": 0.85,
"published_confidence": 0.53,
"guardrail_confidence_cap": 0.53,
"guardrail_cap_enforced": true,
"applied_discounts": [
{
"reason": "matchup_recency_guardrail",
"factor": 0.85
}
]
},
"score_probability_reconciliation": {
"policy": "published_probability_follows_published_score_v1",
"incoming_home_win_probability": 0.7,
"incoming_favoured_side": "home",
"score_winner_side": "home",
"published_home_win_probability": 0.53,
"probability_side_reverted_by_score": false,
"note": "The probability and the projected score agree on the winner."
},
"confidence_note": "Probability shrunk toward even by starter-quality and guardrail discounts; no per-game clamp is applied. Discounts: matchup_recency_guardrail x0.85.",
"pre_simulation_target": {
"away_runs": 4,
"home_runs": 6,
"predicted_score_text": "SD 4 - 6 MIL",
"confidence": 0.53,
"source": "enhanced_prediction_before_inning_simulation"
},
"score_source": "enhanced_prediction.pre_simulation_target",
"final_prediction_synced": true,
"final_prediction_source": "stable_final_prediction_policy",
"simulation_usage": "organic_simulation_realized_target",
"simulation_score_matches_prediction": true,
"simulation_reconciliation": {
"pre_simulation_score": {
"away_runs": 4,
"home_runs": 6,
"score_text": "SD 4 - 6 MIL",
"winner": "MIL"
},
"final_simulation_score": {
"away_runs": 4,
"home_runs": 6,
"score_text": "SD 4 - 6 MIL",
"winner": "MIL"
},
"winner_flipped_by_simulation": false,
"simulation_would_flip_winner": false,
"sim_flipped_pre_winner": false,
"sim_flip_trusted": false,
"sim_flip_policy": "diagnostic_only_unless_independently_supported",
"independent_margin_support": false,
"independent_margin_support_evidence": {
"pitcher_matchup_edge_home_minus_away": 0.063,
"recent_form_edge_home_minus_away": -0.334,
"winner_direction": "home",
"thresholds": {
"pitcher_matchup": 0.35,
"recent_form": 0.75
}
},
"margin_widening_capped": false,
"simulation_winner_agrees": true,
"away_run_delta": 0,
"home_run_delta": 0,
"total_run_delta": 0,
"score_source": "enhanced_prediction.pre_simulation_target",
"simulation_usage": "organic_simulation_realized_target",
"final_prediction_source": "stable_final_prediction_policy",
"final_decision_policy": {
"policy_version": "model_target_authoritative_simulation_realizes_v3",
"away_runs": 4,
"home_runs": 6,
"winner": "MIL",
"model_winner": "MIL",
"simulation_winner": "MIL",
"simulation_winner_agrees": true,
"simulation_agreement_scope": "selected_draw_only",
"simulation_distribution_agreement": {
"available": true,
"draw_count": 1,
"published_winner": "MIL",
"published_winner_draw_share": 1.0,
"draw_majority_team": "MIL",
"published_winner_is_draw_majority": true,
"sampling": "target_conditioned_selection",
"is_unbiased_probability_sample": false,
"note": "Draw shares are target-conditioned and diagnostic. A published winner holding a minority share is recorded, not suppressed."
},
"simulation_score_enabled": true,
"independent_margin_support": false,
"margin_widening_capped": false,
"model_margin": 2,
"simulation_margin": 2,
"simulation_usage": "organic_simulation_realized_target",
"score_source": "enhanced_prediction.pre_simulation_target",
"simulation_realized_target": true,
"model_score": {
"away_runs": 4,
"home_runs": 6
},
"simulation_score": {
"away_runs": 4,
"home_runs": 6
}
},
"final_margin_quality_review": {
"review_required": false,
"pre_margin": 2,
"final_margin": 2,
"winner_quality_edge": 0.723,
"winner": "MIL",
"score_reviewed": {
"away_runs": 4,
"home_runs": 6,
"source": "enhanced_prediction.pre_simulation_target"
},
"reason": "published margin is directionally supported or within review threshold"
}
},
"decision_profile": {
"method": "priced_decision_profile_v2",
"winner": "MIL",
"display_confidence": 0.53,
"internal_signal_score": 0.6585,
"internal_signal_status": "ranking_signal_not_a_calibrated_fair_probability",
"model_pick_probability": 0.53,
"confidence_compression_detected": true,
"moneyline_fit": "unavailable_without_market_price",
"betting_status": "price_required_before_betting_analysis",
"market_context": null,
"margin_fit": "moneyline_preferred_over_margin",
"totals_fit": "neutral_totals",
"winner_accuracy_and_margin_accuracy_decoupled": true,
"signals": {
"final_margin": 2,
"winner_quality_edge": 0.723,
"winner_recent_form_edge": -0.124,
"winner_pitcher_matchup_edge": 0.063,
"winner_simulation_draw_rate": 1.0,
"blowout_draw_rate_margin_4_plus": 0.0,
"high_total_draw_rate_11_plus": 0.0,
"low_total_draw_rate_6_or_less": 0.0,
"total_runs_spread": {
"min": 10,
"median": 10,
"max": 10,
"range": 0
}
},
"interpretation": "The internal signal is diagnostic, not a sportsbook fair price. A bet cannot be evaluated without a source-labelled market price; model/market disagreements are a pass until independently validated."
}
}Source: data/all_players_stats.csv embedded Savant hitter features. It adjusts team offense through expected production and contact quality, then records coverage so missing hitters are visible.
| Team | Applied | Offense Factor | Raw Avg Factor | Coverage Weight | Covered | Missing |
|---|---|---|---|---|---|---|
| Away SD | True | 1.0286 | 1.0286 | 1 | 9 | 0 |
| Home MIL | True | 1.0403 | 1.0403 | 1 | 9 | 0 |
| Pos | Player | ESPN Rank | Off Factor | Quality | Regression | xwOBA | xBA | xSLG | Barrel% | HardHit% | EV | LA | Whiff% | K% | BB% | Regression Edge |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| LF | Dustin Harris | - | 0.9964 | -0.0484 | neutral | 0.3140 | 0.2780 | 0.3600 | 1.70 | 19.50 | 85.20 | 15.60 | 19.30 | 13.20 | 7.20 | -0.3429 |
| 3B | Manny Machado | - | 1.0494 | 0.6585 | neutral | 0.3280 | 0.2430 | 0.4200 | 9.70 | 43.60 | 90.10 | 14.50 | 25.30 | 21.30 | 11.20 | 0.5143 |
| 1B | Ty France | - | 1.0355 | 0.4740 | negative_batter_regression | 0.3270 | 0.2480 | 0.4210 | 9.10 | 47.40 | 91.50 | 14.60 | 28.10 | 21.60 | 7.40 | -1.3143 |
| RF | Fernando Tatis Jr. | - | 1.1212 | 1.6157 | neutral | 0.3790 | 0.2960 | 0.5000 | 12.70 | 53.90 | 92.90 | 5.30 | 25.90 | 18.50 | 9.10 | 0.6000 |
| DH | Luis Campusano | - | 1.0206 | 0.2740 | neutral | 0.3270 | 0.2390 | 0.3910 | 8.10 | 37.70 | 87.30 | 16.30 | 26 | 21.40 | 12.10 | -0.7429 |
| CF | Jackson Merrill | - | 1.0922 | 1.2295 | neutral | 0.3470 | 0.2700 | 0.4910 | 12.40 | 48.70 | 91.50 | 14.30 | 27.60 | 24.10 | 6.20 | 0.7714 |
| C | Ethan Salas | - | 0.9573 | -0.5694 | negative_batter_regression | 0.2270 | 0.1880 | 0.3160 | 3.30 | 33.30 | 90.10 | 25.70 | 19.40 | 22.50 | 2.50 | -2 |
| 2B | Jake Cronenworth | - | 0.9549 | -0.6015 | neutral | 0.2750 | 0.2130 | 0.3080 | 3.90 | 29.70 | 87.20 | 11.40 | 21.30 | 22.80 | 8.90 | -0.3429 |
| SS | Xander Bogaerts | - | 1.0303 | 0.4040 | neutral | 0.3250 | 0.2480 | 0.3760 | 5.50 | 42.30 | 89.60 | 6.70 | 23.10 | 18 | 12.70 | 0.5429 |
| Pos | Player | ESPN Rank | Off Factor | Quality | Regression | xwOBA | xBA | xSLG | Barrel% | HardHit% | EV | LA | Whiff% | K% | BB% | Regression Edge |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1B | Jake Bauers | - | 1.0987 | 1.3163 | neutral | 0.3710 | 0.2530 | 0.4670 | 14 | 51.90 | 92.10 | 12.10 | 29.80 | 27 | 16.30 | -0.2857 |
| LF | Jackson Chourio | - | 1.0702 | 0.9355 | neutral | 0.3440 | 0.2650 | 0.4750 | 12.30 | 47 | 91.60 | 11.80 | 25.10 | 23.40 | 8.20 | -0.4857 |
| C | William Contreras | - | 1.0555 | 0.7396 | neutral | 0.3340 | 0.2610 | 0.4410 | 8.50 | 44.10 | 90.30 | 13.20 | 20.70 | 14.70 | 9.50 | 0.1143 |
| RF | Luis Lara | - | 0.9964 | -0.0475 | neutral | 0.2930 | 0.2560 | 0.3310 | 3.40 | 41.50 | 88 | 5.30 | 17 | 21.70 | 8.50 | 0.2000 |
| 2B | Brice Turang | - | 1.0512 | 0.6822 | neutral | 0.3440 | 0.2550 | 0.4280 | 7.70 | 41.60 | 90.30 | 8.80 | 23.10 | 25.10 | 13.20 | -0.4000 |
| 3B | Joey Ortiz | - | 0.9858 | -0.1888 | neutral | 0.2970 | 0.2430 | 0.3460 | 4 | 37.60 | 89.20 | 6.40 | 19.90 | 19.80 | 8.40 | -0.6857 |
| SS | Cooper Pratt | - | 1.0048 | 0.0641 | neutral | 0.3150 | 0.2660 | 0.3620 | 3.20 | 27.40 | 87 | 9.10 | 21.80 | 18 | 9.80 | -0.1429 |
| DH | Christian Yelich | - | 1.0168 | 0.2241 | neutral | 0.3080 | 0.2300 | 0.3850 | 9.60 | 42.90 | 88.90 | 4 | 29.60 | 27 | 9.80 | 0.0857 |
| CF | Garrett Mitchell | - | 1.0836 | 1.1148 | neutral | 0.3530 | 0.2680 | 0.4470 | 11.70 | 52.70 | 93.20 | 2.20 | 35.80 | 31.50 | 11.30 | 0.3714 |
{
"home": {
"applied": true,
"offense_factor": 1.0403,
"raw_average_factor": 1.0403,
"team_espn_average_rank": null,
"coverage_weight": 1.0,
"covered_batters": 9,
"missing_batters": 0,
"players": [
{
"position": "1B",
"player_id": "641343",
"player_name": "Jake Bauers",
"offense_factor": 1.0987,
"quality_score": 1.3163,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "641343",
"espn_rank": null
},
"metrics": {
"pa": 526.0,
"k_percent": 27.0,
"bb_percent": 16.3,
"woba": 0.381,
"xwoba": 0.371,
"xba": 0.253,
"xslg": 0.467,
"sweet_spot_percent": 38.6,
"barrel_batted_rate": 14.0,
"hard_hit_percent": 51.9,
"exit_velocity_avg": 92.1,
"launch_angle_avg": 12.1,
"whiff_percent": 29.8,
"swing_percent": 40.6
},
"components": {
"expected_quality": 1.5771,
"regression_edge": -0.2857,
"xwoba_edge": 2.0571,
"xba_edge": 0.4857,
"xslg_edge": 1.4857,
"barrel_edge": 1.6444,
"hard_hit_edge": 2.0429,
"exit_velocity_edge": 1.48,
"sweet_spot_edge": 0.8833,
"launch_angle_hr_bonus": 0.2
}
},
{
"position": "LF",
"player_id": "694192",
"player_name": "Jackson Chourio",
"offense_factor": 1.0702,
"quality_score": 0.9355,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "694192",
"espn_rank": null
},
"metrics": {
"pa": 523.0,
"k_percent": 23.4,
"bb_percent": 8.2,
"woba": 0.361,
"xwoba": 0.344,
"xba": 0.265,
"xslg": 0.475,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 12.3,
"hard_hit_percent": 47.0,
"exit_velocity_avg": 91.6,
"launch_angle_avg": 11.8,
"whiff_percent": 25.1,
"swing_percent": 47.8
},
"components": {
"expected_quality": 1.1669,
"regression_edge": -0.4857,
"xwoba_edge": 1.2857,
"xba_edge": 0.8286,
"xslg_edge": 1.6,
"barrel_edge": 1.2667,
"hard_hit_edge": 1.3429,
"exit_velocity_edge": 1.28,
"sweet_spot_edge": 0.0,
"launch_angle_hr_bonus": 0.2
}
},
{
"position": "C",
"player_id": "661388",
"player_name": "William Contreras",
"offense_factor": 1.0555,
"quality_score": 0.7396,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "661388",
"espn_rank": null
},
"metrics": {
"pa": 590.0,
"k_percent": 14.7,
"bb_percent": 9.5,
"woba": 0.33,
"xwoba": 0.334,
"xba": 0.261,
"xslg": 0.441,
"sweet_spot_percent": 33.3,
"barrel_batted_rate": 8.5,
"hard_hit_percent": 44.1,
"exit_velocity_avg": 90.3,
"launch_angle_avg": 13.2,
"whiff_percent": 20.7,
"swing_percent": 47.2
},
"components": {
"expected_quality": 0.8414,
"regression_edge": 0.1143,
"xwoba_edge": 1.0,
"xba_edge": 0.7143,
"xslg_edge": 1.1143,
"barrel_edge": 0.4222,
"hard_hit_edge": 0.9286,
"exit_velocity_edge": 0.76,
"sweet_spot_edge": 0.0,
"launch_angle_hr_bonus": 0.2
}
},
{
"position": "RF",
"player_id": "800325",
"player_name": "Luis Lara",
"offense_factor": 0.9964,
"quality_score": -0.0475,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "800325",
"espn_rank": null
},
"metrics": {
"pa": 184.0,
"k_percent": 21.7,
"bb_percent": 8.5,
"woba": 0.286,
"xwoba": 0.293,
"xba": 0.256,
"xslg": 0.331,
"sweet_spot_percent": 34.7,
"barrel_batted_rate": 3.4,
"hard_hit_percent": 41.5,
"exit_velocity_avg": 88.0,
"launch_angle_avg": 5.3,
"whiff_percent": 17.0,
"swing_percent": 42.1
},
"components": {
"expected_quality": -0.0986,
"regression_edge": 0.2,
"xwoba_edge": -0.1714,
"xba_edge": 0.5714,
"xslg_edge": -0.4571,
"barrel_edge": -0.7111,
"hard_hit_edge": 0.5571,
"exit_velocity_edge": -0.16,
"sweet_spot_edge": 0.2333,
"launch_angle_hr_bonus": 0.0
}
},
{
"position": "2B",
"player_id": "668930",
"player_name": "Brice Turang",
"offense_factor": 1.0512,
"quality_score": 0.6822,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "668930",
"espn_rank": null
},
"metrics": {
"pa": 619.0,
"k_percent": 25.1,
"bb_percent": 13.2,
"woba": 0.358,
"xwoba": 0.344,
"xba": 0.255,
"xslg": 0.428,
"sweet_spot_percent": 38.5,
"barrel_batted_rate": 7.7,
"hard_hit_percent": 41.6,
"exit_velocity_avg": 90.3,
"launch_angle_avg": 8.8,
"whiff_percent": 23.1,
"swing_percent": 43.2
},
"components": {
"expected_quality": 0.8584,
"regression_edge": -0.4,
"xwoba_edge": 1.2857,
"xba_edge": 0.5429,
"xslg_edge": 0.9286,
"barrel_edge": 0.2444,
"hard_hit_edge": 0.5714,
"exit_velocity_edge": 0.76,
"sweet_spot_edge": 0.8667,
"launch_angle_hr_bonus": 0.0
}
},
{
"position": "3B",
"player_id": "687401",
"player_name": "Joey Ortiz",
"offense_factor": 0.9858,
"quality_score": -0.1888,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "687401",
"espn_rank": null
},
"metrics": {
"pa": 378.0,
"k_percent": 19.8,
"bb_percent": 8.4,
"woba": 0.321,
"xwoba": 0.297,
"xba": 0.243,
"xslg": 0.346,
"sweet_spot_percent": 29.2,
"barrel_batted_rate": 4.0,
"hard_hit_percent": 37.6,
"exit_velocity_avg": 89.2,
"launch_angle_avg": 6.4,
"whiff_percent": 19.9,
"swing_percent": 44.8
},
"components": {
"expected_quality": -0.1079,
"regression_edge": -0.6857,
"xwoba_edge": -0.0571,
"xba_edge": 0.2,
"xslg_edge": -0.2429,
"barrel_edge": -0.5778,
"hard_hit_edge": 0.0,
"exit_velocity_edge": 0.32,
"sweet_spot_edge": -0.6833,
"launch_angle_hr_bonus": 0.0
}
},
{
"position": "SS",
"player_id": "806198",
"player_name": "Cooper Pratt",
"offense_factor": 1.0048,
"quality_score": 0.0641,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "806198",
"espn_rank": null
},
"metrics": {
"pa": 232.0,
"k_percent": 18.0,
"bb_percent": 9.8,
"woba": 0.32,
"xwoba": 0.315,
"xba": 0.266,
"xslg": 0.362,
"sweet_spot_percent": 41.1,
"barrel_batted_rate": 3.2,
"hard_hit_percent": 27.4,
"exit_velocity_avg": 87.0,
"launch_angle_avg": 9.1,
"whiff_percent": 21.8,
"swing_percent": 46.4
},
"components": {
"expected_quality": 0.0977,
"regression_edge": -0.1429,
"xwoba_edge": 0.4571,
"xba_edge": 0.8571,
"xslg_edge": -0.0143,
"barrel_edge": -0.7556,
"hard_hit_edge": -1.4571,
"exit_velocity_edge": -0.56,
"sweet_spot_edge": 1.3,
"launch_angle_hr_bonus": 0.0
}
},
{
"position": "DH",
"player_id": "592885",
"player_name": "Christian Yelich",
"offense_factor": 1.0168,
"quality_score": 0.2241,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "592885",
"espn_rank": null
},
"metrics": {
"pa": 456.0,
"k_percent": 27.0,
"bb_percent": 9.8,
"woba": 0.305,
"xwoba": 0.308,
"xba": 0.23,
"xslg": 0.385,
"sweet_spot_percent": 29.5,
"barrel_batted_rate": 9.6,
"hard_hit_percent": 42.9,
"exit_velocity_avg": 88.9,
"launch_angle_avg": 4.0,
"whiff_percent": 29.6,
"swing_percent": 45.4
},
"components": {
"expected_quality": 0.2466,
"regression_edge": 0.0857,
"xwoba_edge": 0.2571,
"xba_edge": -0.1714,
"xslg_edge": 0.3143,
"barrel_edge": 0.6667,
"hard_hit_edge": 0.7571,
"exit_velocity_edge": 0.2,
"sweet_spot_edge": -0.6333,
"launch_angle_hr_bonus": 0.0
}
},
{
"position": "CF",
"player_id": "669003",
"player_name": "Garrett Mitchell",
"offense_factor": 1.0836,
"quality_score": 1.1148,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "669003",
"espn_rank": null
},
"metrics": {
"pa": 480.0,
"k_percent": 31.5,
"bb_percent": 11.3,
"woba": 0.34,
"xwoba": 0.353,
"xba": 0.268,
"xslg": 0.447,
"sweet_spot_percent": 31.5,
"barrel_batted_rate": 11.7,
"hard_hit_percent": 52.7,
"exit_velocity_avg": 93.2,
"launch_angle_avg": 2.2,
"whiff_percent": 35.8,
"swing_percent": 43.9
},
"components": {
"expected_quality": 1.2358,
"regression_edge": 0.3714,
"xwoba_edge": 1.5429,
"xba_edge": 0.9143,
"xslg_edge": 1.2,
"barrel_edge": 1.1333,
"hard_hit_edge": 2.1571,
"exit_velocity_edge": 1.92,
"sweet_spot_edge": -0.3,
"launch_angle_hr_bonus": 0.0
}
}
],
"source": "all_players_stats.csv embedded Savant batter features"
},
"away": {
"applied": true,
"offense_factor": 1.0286,
"raw_average_factor": 1.0286,
"team_espn_average_rank": null,
"coverage_weight": 1.0,
"covered_batters": 9,
"missing_batters": 0,
"players": [
{
"position": "LF",
"player_id": "687957",
"player_name": "Dustin Harris",
"offense_factor": 0.9964,
"quality_score": -0.0484,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "687957",
"espn_rank": null
},
"metrics": {
"pa": 105.0,
"k_percent": 13.2,
"bb_percent": 7.2,
"woba": 0.326,
"xwoba": 0.314,
"xba": 0.278,
"xslg": 0.36,
"sweet_spot_percent": 39.8,
"barrel_batted_rate": 1.7,
"hard_hit_percent": 19.5,
"exit_velocity_avg": 85.2,
"launch_angle_avg": 15.6,
"whiff_percent": 19.3,
"swing_percent": 48.7
},
"components": {
"expected_quality": -0.0621,
"regression_edge": -0.3429,
"xwoba_edge": 0.4286,
"xba_edge": 1.2,
"xslg_edge": -0.0429,
"barrel_edge": -1.0889,
"hard_hit_edge": -2.5,
"exit_velocity_edge": -1.28,
"sweet_spot_edge": 1.0833,
"launch_angle_hr_bonus": 0.0
}
},
{
"position": "3B",
"player_id": "592518",
"player_name": "Manny Machado",
"offense_factor": 1.0494,
"quality_score": 0.6585,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "592518",
"espn_rank": null
},
"metrics": {
"pa": 624.0,
"k_percent": 21.3,
"bb_percent": 11.2,
"woba": 0.31,
"xwoba": 0.328,
"xba": 0.243,
"xslg": 0.42,
"sweet_spot_percent": 32.7,
"barrel_batted_rate": 9.7,
"hard_hit_percent": 43.6,
"exit_velocity_avg": 90.1,
"launch_angle_avg": 14.5,
"whiff_percent": 25.3,
"swing_percent": 47.8
},
"components": {
"expected_quality": 0.682,
"regression_edge": 0.5143,
"xwoba_edge": 0.8286,
"xba_edge": 0.2,
"xslg_edge": 0.8143,
"barrel_edge": 0.6889,
"hard_hit_edge": 0.8571,
"exit_velocity_edge": 0.68,
"sweet_spot_edge": -0.1,
"launch_angle_hr_bonus": 0.2
}
},
{
"position": "1B",
"player_id": "664034",
"player_name": "Ty France",
"offense_factor": 1.0355,
"quality_score": 0.474,
"regression_flag": "negative_batter_regression",
"espn_rank": {
"available": false,
"player_id": "664034",
"espn_rank": null
},
"metrics": {
"pa": 454.0,
"k_percent": 21.6,
"bb_percent": 7.4,
"woba": 0.373,
"xwoba": 0.327,
"xba": 0.248,
"xslg": 0.421,
"sweet_spot_percent": 38.5,
"barrel_batted_rate": 9.1,
"hard_hit_percent": 47.4,
"exit_velocity_avg": 91.5,
"launch_angle_avg": 14.6,
"whiff_percent": 28.1,
"swing_percent": 54.3
},
"components": {
"expected_quality": 0.7651,
"regression_edge": -1.3143,
"xwoba_edge": 0.8,
"xba_edge": 0.3429,
"xslg_edge": 0.8286,
"barrel_edge": 0.5556,
"hard_hit_edge": 1.4,
"exit_velocity_edge": 1.24,
"sweet_spot_edge": 0.8667,
"launch_angle_hr_bonus": 0.2
}
},
{
"position": "RF",
"player_id": "665487",
"player_name": "Fernando Tatis Jr.",
"offense_factor": 1.1212,
"quality_score": 1.6157,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "665487",
"espn_rank": null
},
"metrics": {
"pa": 649.0,
"k_percent": 18.5,
"bb_percent": 9.1,
"woba": 0.358,
"xwoba": 0.379,
"xba": 0.296,
"xslg": 0.5,
"sweet_spot_percent": 32.2,
"barrel_batted_rate": 12.7,
"hard_hit_percent": 53.9,
"exit_velocity_avg": 92.9,
"launch_angle_avg": 5.3,
"whiff_percent": 25.9,
"swing_percent": 46.1
},
"components": {
"expected_quality": 1.7811,
"regression_edge": 0.6,
"xwoba_edge": 2.2857,
"xba_edge": 1.7143,
"xslg_edge": 1.9571,
"barrel_edge": 1.3556,
"hard_hit_edge": 2.3286,
"exit_velocity_edge": 1.8,
"sweet_spot_edge": -0.1833,
"launch_angle_hr_bonus": 0.0
}
},
{
"position": "DH",
"player_id": "669134",
"player_name": "Luis Campusano",
"offense_factor": 1.0206,
"quality_score": 0.274,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "669134",
"espn_rank": null
},
"metrics": {
"pa": 226.0,
"k_percent": 21.4,
"bb_percent": 12.1,
"woba": 0.353,
"xwoba": 0.327,
"xba": 0.239,
"xslg": 0.391,
"sweet_spot_percent": 37.7,
"barrel_batted_rate": 8.1,
"hard_hit_percent": 37.7,
"exit_velocity_avg": 87.3,
"launch_angle_avg": 16.3,
"whiff_percent": 26.0,
"swing_percent": 46.6
},
"components": {
"expected_quality": 0.4396,
"regression_edge": -0.7429,
"xwoba_edge": 0.8,
"xba_edge": 0.0857,
"xslg_edge": 0.4,
"barrel_edge": 0.3333,
"hard_hit_edge": 0.0143,
"exit_velocity_edge": -0.44,
"sweet_spot_edge": 0.7333,
"launch_angle_hr_bonus": 0.0
}
},
{
"position": "CF",
"player_id": "701538",
"player_name": "Jackson Merrill",
"offense_factor": 1.0922,
"quality_score": 1.2295,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "701538",
"espn_rank": null
},
"metrics": {
"pa": 619.0,
"k_percent": 24.1,
"bb_percent": 6.2,
"woba": 0.32,
"xwoba": 0.347,
"xba": 0.27,
"xslg": 0.491,
"sweet_spot_percent": 39.8,
"barrel_batted_rate": 12.4,
"hard_hit_percent": 48.7,
"exit_velocity_avg": 91.5,
"launch_angle_avg": 14.3,
"whiff_percent": 27.6,
"swing_percent": 56.1
},
"components": {
"expected_quality": 1.3041,
"regression_edge": 0.7714,
"xwoba_edge": 1.3714,
"xba_edge": 0.9714,
"xslg_edge": 1.8286,
"barrel_edge": 1.2889,
"hard_hit_edge": 1.5857,
"exit_velocity_edge": 1.24,
"sweet_spot_edge": 1.0833,
"launch_angle_hr_bonus": 0.2
}
},
{
"position": "C",
"player_id": "806956",
"player_name": "Ethan Salas",
"offense_factor": 0.9573,
"quality_score": -0.5694,
"regression_flag": "negative_batter_regression",
"espn_rank": {
"available": false,
"player_id": "806956",
"espn_rank": null
},
"metrics": {
"pa": 20.0,
"k_percent": 22.5,
"bb_percent": 2.5,
"woba": 0.316,
"xwoba": 0.227,
"xba": 0.188,
"xslg": 0.316,
"sweet_spot_percent": 23.3,
"barrel_batted_rate": 3.3,
"hard_hit_percent": 33.3,
"exit_velocity_avg": 90.1,
"launch_angle_avg": 25.7,
"whiff_percent": 19.4,
"swing_percent": 48.3
},
"components": {
"expected_quality": -1.1458,
"regression_edge": -2.0,
"xwoba_edge": -2.0571,
"xba_edge": -1.3714,
"xslg_edge": -0.6714,
"barrel_edge": -0.7333,
"hard_hit_edge": -0.6143,
"exit_velocity_edge": 0.68,
"sweet_spot_edge": -1.6667,
"launch_angle_hr_bonus": 0.45
}
},
{
"position": "2B",
"player_id": "630105",
"player_name": "Jake Cronenworth",
"offense_factor": 0.9549,
"quality_score": -0.6015,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "630105",
"espn_rank": null
},
"metrics": {
"pa": 383.0,
"k_percent": 22.8,
"bb_percent": 8.9,
"woba": 0.287,
"xwoba": 0.275,
"xba": 0.213,
"xslg": 0.308,
"sweet_spot_percent": 30.7,
"barrel_batted_rate": 3.9,
"hard_hit_percent": 29.7,
"exit_velocity_avg": 87.2,
"launch_angle_avg": 11.4,
"whiff_percent": 21.3,
"swing_percent": 45.8
},
"components": {
"expected_quality": -0.6436,
"regression_edge": -0.3429,
"xwoba_edge": -0.6857,
"xba_edge": -0.6571,
"xslg_edge": -0.7857,
"barrel_edge": -0.6,
"hard_hit_edge": -1.1286,
"exit_velocity_edge": -0.48,
"sweet_spot_edge": -0.4333,
"launch_angle_hr_bonus": 0.0
}
},
{
"position": "SS",
"player_id": "593428",
"player_name": "Xander Bogaerts",
"offense_factor": 1.0303,
"quality_score": 0.404,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "593428",
"espn_rank": null
},
"metrics": {
"pa": 568.0,
"k_percent": 18.0,
"bb_percent": 12.7,
"woba": 0.306,
"xwoba": 0.325,
"xba": 0.248,
"xslg": 0.376,
"sweet_spot_percent": 27.9,
"barrel_batted_rate": 5.5,
"hard_hit_percent": 42.3,
"exit_velocity_avg": 89.6,
"launch_angle_avg": 6.7,
"whiff_percent": 23.1,
"swing_percent": 41.5
},
"components": {
"expected_quality": 0.3813,
"regression_edge": 0.5429,
"xwoba_edge": 0.7429,
"xba_edge": 0.3429,
"xslg_edge": 0.1857,
"barrel_edge": -0.2444,
"hard_hit_edge": 0.6714,
"exit_velocity_edge": 0.48,
"sweet_spot_edge": -0.9,
"launch_angle_hr_bonus": 0.0
}
}
],
"source": "all_players_stats.csv embedded Savant batter features"
},
"reason": "Baseball Savant hitter xwOBA, xBA, xSLG, exit velocity, launch angle, barrel, hard-hit, sweet-spot, whiff, K%, and BB% adjusted offense; ESPN rank is attached for reporting only"
}Source: data/all_players_stats.csv embedded Savant pitcher and movement features. Starter quality modifies opposing run scoring and pitcher strikeout/walk/homer expectations.
| Team | Pitcher | Available | ESPN Rank | Quality | Sample Wt | Run Prev | K Factor | BB Factor | HR Factor | Regression | xwOBA | wOBA | K% | BB% | Whiff% | Barrel% | HardHit% |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Away SD | True | - | -0.3171 | 1 | 1.0270 | 0.9840 | 1.0560 | 1.0311 | neutral | 0.3350 | 0.3150 | 19.90 | 12 | 24.60 | 8 | 37.40 | |
| Home MIL | True | - | 1.3589 | 1 | 0.8845 | 1.1594 | 0.9480 | 0.8360 | neutral | 0.2260 | 0.2160 | 37.90 | 6.60 | 37.30 | 3.60 | 33.30 |
| Team | Pitcher | Movement Available | Primary Pitch | Pitches | Velo | Spin | Axis | HB | IVB | Drop | Rel X | Rel Z | Extension | Arm Angle | Movement Score |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Away SD | True | None | 88 | 88.50 | 2137 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | -0.0765 | |
| Home MIL | True | None | 91 | 97.54 | 2569 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0.2800 |
| Run Factor | Value |
|---|---|
| away_runs_vs_home_pitcher | 0.9282 |
| home_runs_vs_away_pitcher | 1.0159 |
| home_pitcher_starter_only_factor | 0.8845 |
| away_pitcher_starter_only_factor | 1.0270 |
| home_pitcher_workload_share | 0.6667 |
| away_pitcher_workload_share | 0.5556 |
| home_pitcher_quality_edge | 1.0821 |
{
"applied": true,
"home_pitcher": {
"available": true,
"pitcher_id": "694819",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 614.0,
"k_percent": 37.9,
"bb_percent": 6.6,
"woba": 0.216,
"xwoba": 0.226,
"sweet_spot_percent": 33.9,
"barrel_batted_rate": 3.6,
"hard_hit_percent": 33.3,
"avg_best_speed": 76.4985,
"avg_hyper_speed": 92.9527,
"whiff_percent": 37.3,
"swing_percent": 51.3
},
"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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.6247,
"command_and_miss": 1.7507,
"regression_edge": -0.2857,
"xwoba_edge": 2.4571,
"barrel_edge": 0.8,
"hard_hit_edge": 0.6571,
"whiff_edge": 1.7286,
"bb_edge": 0.65,
"pitch_design_score": 0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "694819",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 91,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 97.5350871630707,
"release_spin_rate": 2568.640260744372,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 97.5350871630707,
"release_spin_rate": 2568.640260744372,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 97.5351,
"release_spin_rate": 2568.6403,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.28,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 2.0,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 1.3589,
"sample_weight": 1.0,
"run_prevention_factor": 0.8845,
"strikeout_factor": 1.1594,
"walk_factor": 0.948,
"homer_factor": 0.836,
"woba_minus_xwoba": -0.01,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "694819",
"espn_rank": null
}
},
"away_pitcher": {
"available": true,
"pitcher_id": "592662",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 657.0,
"k_percent": 19.9,
"bb_percent": 12.0,
"woba": 0.315,
"xwoba": 0.335,
"sweet_spot_percent": 33.2,
"barrel_batted_rate": 8.0,
"hard_hit_percent": 37.4,
"avg_best_speed": 78.7395,
"avg_hyper_speed": 93.9885,
"whiff_percent": 24.6,
"swing_percent": 46.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3086,
"command_and_miss": -0.3114,
"regression_edge": -0.5714,
"xwoba_edge": -0.6571,
"barrel_edge": -0.1778,
"hard_hit_edge": 0.0714,
"whiff_edge": -0.0857,
"bb_edge": -0.7,
"pitch_design_score": -0.0765
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "592662",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 88,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 88.49794587706354,
"release_spin_rate": 2136.9723176433495,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 88.49794587706354,
"release_spin_rate": 2136.9723176433495,
"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.4979,
"release_spin_rate": 2136.9723,
"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.0765,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.5465,
"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.3171,
"sample_weight": 1.0,
"run_prevention_factor": 1.027,
"strikeout_factor": 0.984,
"walk_factor": 1.056,
"homer_factor": 1.0311,
"woba_minus_xwoba": -0.02,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "592662",
"espn_rank": null
}
},
"run_factors": {
"away_runs_vs_home_pitcher": 0.9282,
"home_runs_vs_away_pitcher": 1.0159,
"home_pitcher_starter_only_factor": 0.8845,
"away_pitcher_starter_only_factor": 1.027,
"home_pitcher_workload_share": 0.6667,
"away_pitcher_workload_share": 0.5556,
"home_pitcher_quality_edge": 1.0821
},
"score_before": {
"away_runs": 4.0,
"home_runs": 6.0
},
"score_after": {
"away_runs": 3.7128,
"home_runs": 6.0953,
"home_win_probability": 0.722
},
"reason": "Baseball Savant xwOBA, barrel, hard-hit, sweet-spot, whiff, K%, and BB% adjusted starter run prevention"
}| Team | Last-10 W-L | Win % | R/G | RA/G | Run Diff | Streak | Offense | Defense |
|---|---|---|---|---|---|---|---|---|
| Away SD | 8-2 | 0.800 | 6.30 | 4.50 | 18 | 2W | hot | average |
| Home MIL | 8-2 | 0.800 | 4.40 | 3 | 14 | 5W | average | strong |
| Team | Record | Win % | Run Diff | RD/Game | Available |
|---|---|---|---|---|---|
| Away SD | 91-71 | 0.562 | 41 | 0.253 | True |
| Home MIL | 103-59 | 0.636 | 214 | 1.321 | True |
| Signal | - | - | 1.068 | 0.723 | applied=True |
| Date | Matchup | Score | Winner | Margin | Type |
|---|---|---|---|---|---|
| 2026-08-12 | MIL @ SD | 3 - 4 | SD | 1 | close |
| 2026-08-11 | MIL @ SD | 2 - 11 | SD | 9 | blowout |
| 2026-08-10 | MIL @ SD | 2 - 3 | SD | 1 | close |
| 2026-05-14 | SD @ MIL | 1 - 7 | MIL | 6 | blowout |
| 2026-05-13 | SD @ MIL | 3 - 1 | SD | 2 | close |
| Layer | AB | H | R | HR | RBI | BB | SO |
|---|---|---|---|---|---|---|---|
| Game target SD | - | - | 4 | - | - | - | - |
| Game target MIL | - | - | 6 | - | - | - | - |
| Player finalized SD | 33 | 7 | 5 | 1 | 4 | 3 | 10 |
| Player finalized MIL | 33 | 8 | 5 | 1 | 5 | 5 | 9 |
| Player model fractional SD | 32.85 | 7.49 | 4.46 | 1.18 | 4.50 | 2.67 | 8.74 |
| Player model fractional MIL | 33.70 | 8.51 | 5.14 | 1.03 | 5.40 | 4.54 | 8.27 |
| Simulation box SD | 37 | 10 | 4 | 1 | 4 | 4 | 7 |
| Simulation box MIL | 32 | 8 | 6 | 3 | 6 | 3 | 5 |
If player finalized rows and game target disagree, the report now exposes that gap instead of hiding it. Fractional model rows show the unrounded prop layer before box-score realization.
| Team | Role | Pitcher | Pre IP | Pre ER | Pre SO | Pre H | Pre BB | Weighted ERA | Weighted WHIP | Box Sync |
|---|---|---|---|---|---|---|---|---|---|---|
| Away SD | Starter | Robbie Ray | 5 | 3 | 4 | 6 | 1 | 4.95 | 1.47 | True |
| Away SD | Middle Reliever (High Leverage) | Bradgley Rodriguez | 1.20 | 0 | 0 | 0 | 1 | 1.55 | 0.92 | True |
| Away SD | Closer | Mason Miller | 1 | 1 | 0 | 1 | 0 | 4.93 | 1.36 | True |
| Away SD | Setup Man | Adrian Morejon | 0.10 | 2 | 1 | 1 | 1 | 2.44 | 1.11 | True |
| Home MIL | Starter | Jacob Misiorowski | 6 | 1 | 6 | 4 | 4 | 2.54 | 1.03 | True |
| Home MIL | Middle Reliever (High Leverage) | Aaron Ashby | 1 | 2 | 0 | 3 | 0 | 3.08 | 1.03 | True |
| Home MIL | Setup Man | Abner Uribe | 1 | 0 | 0 | 2 | 0 | 2.11 | 1.16 | True |
| Home MIL | Closer | Trevor Megill | 1 | 1 | 1 | 1 | 0 | 3.97 | 1.00 | True |
| Side | Team | Role | Pos | Player | Dominant | Changed | Boosted | Deboosted | Better | Worse | Largest Metric | Largest Delta | Direction | Effect |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| home | MIL | pitcher | Starter | Jacob Misiorowski | better | 1 | 1 | 0 | 1 | 0 | predicted_SO | 2.0000 | boost | better |
| home | MIL | pitcher | Setup Man | Abner Uribe | worse | 1 | 0 | 1 | 0 | 1 | predicted_SO | -2.0000 | deboost | worse |
| away | SD | batter | 1B | Ty France | better | 12 | 6 | 6 | 7 | 5 | predicted_H | 1.7900 | boost | better |
| home | MIL | batter | 2B | Brice Turang | better | 10 | 5 | 5 | 6 | 4 | predicted_AB | -1.6600 | deboost | worse |
| away | SD | batter | CF | Jackson Merrill | worse | 10 | 2 | 8 | 2 | 8 | predicted_H | -1.5000 | deboost | worse |
| away | SD | batter | C | Ethan Salas | worse | 11 | 3 | 8 | 2 | 9 | predicted_AB | 1.5000 | boost | better |
| home | MIL | batter | 1B | Jake Bauers | better | 9 | 7 | 2 | 6 | 3 | predicted_RBI | 1.4900 | boost | better |
| away | SD | batter | LF | Dustin Harris | worse | 11 | 3 | 8 | 2 | 9 | predicted_AB | 1.4500 | boost | better |
| away | SD | batter | SS | Xander Bogaerts | worse | 8 | 2 | 6 | 1 | 7 | predicted_SO | 1.2900 | boost | worse |
| away | SD | batter | 3B | Manny Machado | better | 10 | 5 | 5 | 6 | 4 | predicted_RBI | 1.2300 | boost | better |
| home | MIL | batter | DH | Christian Yelich | worse | 9 | 0 | 9 | 1 | 8 | predicted_SO | -1.1490 | deboost | better |
| home | MIL | batter | 3B | Joey Ortiz | better | 12 | 7 | 5 | 8 | 4 | predicted_AB | -1.1290 | deboost | worse |
| home | MIL | batter | LF | Jackson Chourio | worse | 11 | 3 | 8 | 4 | 7 | predicted_AB | -1.1200 | deboost | worse |
| home | MIL | batter | SS | Cooper Pratt | better | 10 | 7 | 3 | 8 | 2 | predicted_H | 1.1200 | boost | better |
| home | MIL | batter | C | William Contreras | worse | 11 | 4 | 7 | 3 | 8 | predicted_RBI | -0.9900 | deboost | worse |
| away | SD | batter | RF | Fernando Tatis Jr. | boosted | 10 | 6 | 4 | 5 | 5 | predicted_AB | -0.9600 | deboost | worse |
| home | MIL | batter | RF | Luis Lara | worse | 10 | 1 | 9 | 2 | 8 | predicted_H | -0.8360 | deboost | worse |
| home | MIL | batter | CF | Garrett Mitchell | worse | 11 | 2 | 9 | 3 | 8 | predicted_H | -0.8200 | deboost | worse |
| away | SD | batter | DH | Luis Campusano | worse | 11 | 3 | 8 | 4 | 7 | predicted_SO | -0.7460 | deboost | better |
| away | SD | batter | 2B | Jake Cronenworth | worse | 10 | 3 | 7 | 2 | 8 | predicted_RBI | -0.5500 | deboost | worse |
| away | SD | pitcher | Setup Man | Adrian Morejon | worse | 1 | 0 | 1 | 0 | 1 | predicted_IP | -0.2333 | deboost | worse |
| away | SD | pitcher | Middle Reliever (High Leverage) | Bradgley Rodriguez | worse | 1 | 0 | 1 | 0 | 1 | predicted_IP | -0.1333 | deboost | worse |
This table ranks players whose JSON evolution changed materially. Boost/deboost is numeric movement; better/worse is role-aware.
| Field | Value |
|---|---|
| Pitcher | Robbie Ray |
| Role | Starter |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | -0.3171 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | -0.0765 |
| Avg Velo | 88.4979 |
| Avg Spin | 2136.9723 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 5 |
| Pre ER | 3 |
| Pre H | 6 |
| Pre BB | 1 |
| Pre SO | 4 |
| Season ERA | 3.5855 |
| Season WHIP | 1.3521 |
| Role Avg IP | 5.3110 |
| Recent Avg IP | 4.5330 |
| Last Start IP | 3.1000 |
{
"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.992,
"defense_index": 1.0687,
"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": "MIL",
"games": 162,
"wins": 103,
"losses": 59,
"win_pct": 0.6358,
"runs_scored": 832.0,
"runs_allowed": 618.0,
"run_differential": 214.0,
"run_differential_per_game": 1.321,
"avg_runs_scored": 5.1358,
"avg_runs_allowed": 3.8148,
"offense_index": 1.1432,
"defense_index": 1.1777,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 3.0,
"run_differential": 14.0
},
"available": true,
"quality_score": 0.3822
},
"edges": {
"quality_edge": -0.1938,
"offense_edge": -0.008,
"opponent_offense_edge": 0.1432,
"defense_strength": 0.0687,
"opponent_defense_weakness": -0.1777,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9886,
"run_prevention": 1.0257,
"strikeout": 0.9827
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "592662",
"profile": {
"available": true,
"pitcher_id": "592662",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 657.0,
"k_percent": 19.9,
"bb_percent": 12.0,
"woba": 0.315,
"xwoba": 0.335,
"sweet_spot_percent": 33.2,
"barrel_batted_rate": 8.0,
"hard_hit_percent": 37.4,
"avg_best_speed": 78.7395,
"avg_hyper_speed": 93.9885,
"whiff_percent": 24.6,
"swing_percent": 46.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": -0.3086,
"command_and_miss": -0.3114,
"regression_edge": -0.5714,
"xwoba_edge": -0.6571,
"barrel_edge": -0.1778,
"hard_hit_edge": 0.0714,
"whiff_edge": -0.0857,
"bb_edge": -0.7,
"pitch_design_score": -0.0765
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "592662",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 88,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 88.49794587706354,
"release_spin_rate": 2136.9723176433495,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 88.49794587706354,
"release_spin_rate": 2136.9723176433495,
"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.4979,
"release_spin_rate": 2136.9723,
"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.0765,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.5465,
"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.3171,
"sample_weight": 1.0,
"run_prevention_factor": 1.027,
"strikeout_factor": 0.984,
"walk_factor": 1.056,
"homer_factor": 1.0311,
"woba_minus_xwoba": -0.02,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "592662",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 3.0,
"factor": 1.027,
"adjusted": 3
},
"predicted_H": {
"original": 5.0,
"factor": 1.027,
"adjusted": 5
},
"predicted_BB": {
"original": 3.0,
"factor": 1.056,
"adjusted": 3
},
"predicted_HR": {
"original": 1.0,
"factor": 1.0311,
"adjusted": 1
},
"predicted_SO": {
"original": 4.0,
"factor": 0.984,
"adjusted": 4
}
}
}
}{
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 49.0,
"ER": 25,
"H": 43,
"BB": 28,
"SO": 39,
"HR": 7,
"ERA": 4.591836734693878,
"WHIP": 1.4489795918367347,
"K9": 7.163265306122449,
"HR9": 1.2857142857142858,
"games_pitched": 10,
"quality_starts": 4,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-23T00:00:00"
}{
"available": true,
"pitcher_id": "592662",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 88,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 88.49794587706354,
"release_spin_rate": 2136.9723176433495,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 88,
"pitch_usage": 0.0,
"release_speed": 88.49794587706354,
"release_spin_rate": 2136.9723176433495,
"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.4979,
"release_spin_rate": 2136.9723,
"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.0765,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": -0.5465,
"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."
}{
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "592662",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 31,
"reference_playing_time": 5.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 22.2,
"ER": 15.0,
"R": 15.0,
"H": 22.0,
"BB": 14.0,
"SO": 18.0,
"HR": 3.0,
"BF": 102.0,
"Pitches": 427.0
},
"per_game": {
"IP": 4.2,
"ER": 3.0,
"R": 3.0,
"H": 4.4,
"BB": 2.8,
"SO": 3.6,
"HR": 0.6,
"BF": 20.4,
"Pitches": 85.4
},
"rates": {
"ERA": 5.9559,
"WHIP": 1.5882,
"ER_per_IP": 0.66176,
"H_per_IP": 0.97059,
"BB_per_IP": 0.61765,
"SO_per_IP": 0.79412,
"HR_per_IP": 0.13235
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 49.0,
"ER": 25.0,
"R": 25.0,
"H": 43.0,
"BB": 28.0,
"SO": 39.0,
"HR": 7.0,
"BF": 212.0,
"Pitches": 879.0
},
"per_game": {
"IP": 5.0,
"ER": 2.5,
"R": 2.5,
"H": 4.3,
"BB": 2.8,
"SO": 3.9,
"HR": 0.7,
"BF": 21.2,
"Pitches": 87.9
},
"rates": {
"ERA": 4.5918,
"WHIP": 1.449,
"ER_per_IP": 0.5102,
"H_per_IP": 0.87755,
"BB_per_IP": 0.57143,
"SO_per_IP": 0.79592,
"HR_per_IP": 0.14286
}
},
"season": {
"games": 31,
"totals": {
"IP": 165.2,
"ER": 66.0,
"R": 74.0,
"H": 140.0,
"BB": 84.0,
"SO": 140.0,
"HR": 22.0,
"BF": 702.0,
"Pitches": 2854.0
},
"per_game": {
"IP": 5.1,
"ER": 2.129,
"R": 2.3871,
"H": 4.5161,
"BB": 2.7097,
"SO": 4.5161,
"HR": 0.7097,
"BF": 22.6452,
"Pitches": 92.0645
},
"rates": {
"ERA": 3.5855,
"WHIP": 1.3521,
"ER_per_IP": 0.39839,
"H_per_IP": 0.84507,
"BB_per_IP": 0.50704,
"SO_per_IP": 0.84507,
"HR_per_IP": 0.1328
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.0,
"predicted_ER": 2.71,
"predicted_H": 4.548,
"predicted_BB": 2.718,
"predicted_SO": 4.055,
"predicted_HR": 0.679,
"predicted_ERA": 4.9495,
"predicted_WHIP": 1.4744
}
}{
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4087,
"form_weight": 0.5913,
"form_reliability": 0.8611,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 31.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8611,
"prior_weight": 0.1389
},
"applied_metrics": {
"predicted_IP": {
"model": 5.0,
"form": 5.0,
"final": 5.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 3.0,
"form": 2.71,
"final": 2.8285,
"source": "model_form_blend"
},
"predicted_H": {
"model": 6.0,
"form": 4.548,
"final": 5.1414,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 2.718,
"final": 2.0159,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 4.055,
"final": 4.0325,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.679,
"final": 0.8102,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.9495,
"final": 4.9495,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.4744,
"final": 1.4744,
"source": "form_only"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | Bradgley Rodriguez |
| Role | Middle Reliever (High Leverage) |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 1.0316 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | 0.2363 |
| Avg Velo | 94.0841 |
| Avg Spin | 2133.0307 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 1.2000 |
| Pre ER | 0 |
| Pre H | 0 |
| Pre BB | 1 |
| Pre SO | 0 |
| Season ERA | 1.6652 |
| Season WHIP | 0.9648 |
| Role Avg IP | 1.1380 |
| Recent Avg IP | 1.5330 |
| Last Start IP | 0 |
{
"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.992,
"defense_index": 1.0687,
"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": "MIL",
"games": 162,
"wins": 103,
"losses": 59,
"win_pct": 0.6358,
"runs_scored": 832.0,
"runs_allowed": 618.0,
"run_differential": 214.0,
"run_differential_per_game": 1.321,
"avg_runs_scored": 5.1358,
"avg_runs_allowed": 3.8148,
"offense_index": 1.1432,
"defense_index": 1.1777,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 3.0,
"run_differential": 14.0
},
"available": true,
"quality_score": 0.3822
},
"edges": {
"quality_edge": -0.1938,
"offense_edge": -0.008,
"opponent_offense_edge": 0.1432,
"defense_strength": 0.0687,
"opponent_defense_weakness": -0.1777,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9886,
"run_prevention": 1.0257,
"strikeout": 0.9827
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "699134",
"profile": {
"available": true,
"pitcher_id": "699134",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 272.0,
"k_percent": 26.9,
"bb_percent": 6.6,
"woba": 0.266,
"xwoba": 0.239,
"sweet_spot_percent": 27.0,
"barrel_batted_rate": 4.5,
"hard_hit_percent": 30.0,
"avg_best_speed": 76.2635,
"avg_hyper_speed": 92.9787,
"whiff_percent": 30.1,
"swing_percent": 51.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.3532,
"command_and_miss": 0.6836,
"regression_edge": 0.7714,
"xwoba_edge": 2.0857,
"barrel_edge": 0.6,
"hard_hit_edge": 1.1286,
"whiff_edge": 0.7,
"bb_edge": 0.65,
"pitch_design_score": 0.2363
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "699134",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 20,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 20,
"pitch_usage": 0.0,
"release_speed": 94.08410367455664,
"release_spin_rate": 2133.030650937673,
"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": 20,
"pitch_usage": 0.0,
"release_speed": 94.08410367455664,
"release_spin_rate": 2133.030650937673,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 94.0841,
"release_spin_rate": 2133.0307,
"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.2363,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.688,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 1.0316,
"sample_weight": 1.0,
"run_prevention_factor": 0.9123,
"strikeout_factor": 1.0554,
"walk_factor": 0.948,
"homer_factor": 0.8443,
"woba_minus_xwoba": 0.027,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "699134",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9123,
"adjusted": 0
},
"predicted_H": {
"original": 1.0,
"factor": 0.9123,
"adjusted": 1
},
"predicted_BB": {
"original": 0.0,
"factor": 0.948,
"adjusted": 0
},
"predicted_HR": {
"original": 0.0,
"factor": 0.8443,
"adjusted": 0
},
"predicted_SO": {
"original": 2.0,
"factor": 1.0554,
"adjusted": 2
}
}
}
}{
"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": 12.1,
"ER": 1,
"H": 6,
"BB": 3,
"SO": 15,
"HR": 1,
"ERA": 0.7297297297297297,
"WHIP": 0.7297297297297297,
"K9": 10.945945945945946,
"HR9": 0.7297297297297297,
"games_pitched": 9,
"quality_starts": 0,
"dominant_form": true,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-30T00:00:00"
}{
"available": true,
"pitcher_id": "699134",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 20,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 20,
"pitch_usage": 0.0,
"release_speed": 94.08410367455664,
"release_spin_rate": 2133.030650937673,
"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": 20,
"pitch_usage": 0.0,
"release_speed": 94.08410367455664,
"release_spin_rate": 2133.030650937673,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 94.0841,
"release_spin_rate": 2133.0307,
"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.2363,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.688,
"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."
}{
"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": 15.595,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7572,
"prior_weight": 0.2428
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "699134",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 67,
"reference_playing_time": 1.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 7.2,
"ER": 0.0,
"R": 0.0,
"H": 3.0,
"BB": 3.0,
"SO": 9.0,
"HR": 0.0,
"BF": 28.0,
"Pitches": 111.0
},
"per_game": {
"IP": 1.2,
"ER": 0.0,
"R": 0.0,
"H": 0.6,
"BB": 0.6,
"SO": 1.8,
"HR": 0.0,
"BF": 5.6,
"Pitches": 22.2
},
"rates": {
"ERA": 0.0,
"WHIP": 0.7826,
"ER_per_IP": 0.0,
"H_per_IP": 0.3913,
"BB_per_IP": 0.3913,
"SO_per_IP": 1.17391,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 13.1,
"ER": 1.0,
"R": 1.0,
"H": 6.0,
"BB": 3.0,
"SO": 16.0,
"HR": 1.0,
"BF": 48.0,
"Pitches": 181.0
},
"per_game": {
"IP": 1.1,
"ER": 0.1,
"R": 0.1,
"H": 0.6,
"BB": 0.3,
"SO": 1.6,
"HR": 0.1,
"BF": 4.8,
"Pitches": 18.1
},
"rates": {
"ERA": 0.675,
"WHIP": 0.675,
"ER_per_IP": 0.075,
"H_per_IP": 0.45,
"BB_per_IP": 0.225,
"SO_per_IP": 1.2,
"HR_per_IP": 0.075
}
},
"season": {
"games": 67,
"totals": {
"IP": 75.2,
"ER": 14.0,
"R": 18.0,
"H": 53.0,
"BB": 20.0,
"SO": 83.0,
"HR": 4.0,
"BF": 301.0,
"Pitches": 1182.0
},
"per_game": {
"IP": 1.0,
"ER": 0.209,
"R": 0.2687,
"H": 0.791,
"BB": 0.2985,
"SO": 1.2388,
"HR": 0.0597,
"BF": 4.4925,
"Pitches": 17.6418
},
"rates": {
"ERA": 1.6652,
"WHIP": 0.9648,
"ER_per_IP": 0.18502,
"H_per_IP": 0.70044,
"BB_per_IP": 0.26432,
"SO_per_IP": 1.09692,
"HR_per_IP": 0.05286
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 1.1,
"predicted_ER": 0.241,
"predicted_H": 0.835,
"predicted_BB": 0.454,
"predicted_SO": 1.551,
"predicted_HR": 0.089,
"predicted_ERA": 1.5502,
"predicted_WHIP": 0.9227
}
}{
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4526,
"form_weight": 0.5474,
"form_reliability": 0.7572,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 15.595,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7572,
"prior_weight": 0.2428
},
"applied_metrics": {
"predicted_IP": {
"model": 1.1,
"form": 1.1,
"final": 1.1,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 0.241,
"final": 0.1319,
"source": "model_form_blend"
},
"predicted_H": {
"model": 0.0,
"form": 0.835,
"final": 0.4571,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 0.454,
"final": 0.7011,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 0.0,
"form": 1.551,
"final": 0.849,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.089,
"final": 0.0487,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 1.5502,
"final": 1.5502,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9227,
"final": 0.9227,
"source": "form_only"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | Mason Miller |
| Role | Closer |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 1.4216 |
| ESPN Rank | - |
| Movement Available | False |
| Primary Pitch | - |
| Movement Score | - |
| Avg Velo | - |
| Avg Spin | - |
| HB Inches | - |
| IVB Inches | - |
| Release Extension | - |
| Pre IP | 1 |
| Pre ER | 1 |
| Pre H | 1 |
| Pre BB | 0 |
| Pre SO | 0 |
| Season ERA | 1.6479 |
| Season WHIP | 0.9014 |
| Role Avg IP | 1.0600 |
| Recent Avg IP | 1 |
| Last Start IP | 0 |
{
"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.992,
"defense_index": 1.0687,
"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": "MIL",
"games": 162,
"wins": 103,
"losses": 59,
"win_pct": 0.6358,
"runs_scored": 832.0,
"runs_allowed": 618.0,
"run_differential": 214.0,
"run_differential_per_game": 1.321,
"avg_runs_scored": 5.1358,
"avg_runs_allowed": 3.8148,
"offense_index": 1.1432,
"defense_index": 1.1777,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 3.0,
"run_differential": 14.0
},
"available": true,
"quality_score": 0.3822
},
"edges": {
"quality_edge": -0.1938,
"offense_edge": -0.008,
"opponent_offense_edge": 0.1432,
"defense_strength": 0.0687,
"opponent_defense_weakness": -0.1777,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9886,
"run_prevention": 1.0257,
"strikeout": 0.9827
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "695243",
"profile": {
"available": true,
"pitcher_id": "695243",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 245.0,
"k_percent": 47.4,
"bb_percent": 9.6,
"woba": 0.208,
"xwoba": 0.201,
"sweet_spot_percent": 31.3,
"barrel_batted_rate": 7.0,
"hard_hit_percent": 28.7,
"avg_best_speed": 75.8134,
"avg_hyper_speed": 92.7864,
"whiff_percent": 45.3,
"swing_percent": 47.3
},
"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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.6353,
"command_and_miss": 1.98,
"regression_edge": 0.2,
"xwoba_edge": 2.5,
"barrel_edge": 0.0444,
"hard_hit_edge": 1.3143,
"whiff_edge": 2.5,
"bb_edge": -0.1,
"pitch_design_score": 0.0
},
"pitch_movement_profile": {
"available": false,
"pitcher_id": "695243",
"reason": "pitcher_movement_profile_has_no_pitches"
},
"quality_score": 1.4216,
"sample_weight": 0.98,
"run_prevention_factor": 0.8792,
"strikeout_factor": 1.16,
"walk_factor": 1.0078,
"homer_factor": 0.8715,
"woba_minus_xwoba": 0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "695243",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.8816,
"adjusted": 0
},
"predicted_H": {
"original": 1.0,
"factor": 0.8816,
"adjusted": 1
},
"predicted_BB": {
"original": 0.0,
"factor": 1.0076,
"adjusted": 0
},
"predicted_HR": {
"original": 0.0,
"factor": 0.8741,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 1.1568,
"adjusted": 3
}
}
}
}{
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 10.2,
"ER": 5,
"H": 9,
"BB": 5,
"SO": 20,
"HR": 1,
"ERA": 4.218749999999999,
"WHIP": 1.3124999999999998,
"K9": 16.874999999999996,
"HR9": 0.8437499999999999,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-30T00:00:00"
}{
"available": false,
"pitcher_id": "695243",
"reason": "pitcher_movement_profile_has_no_pitches"
}{
"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": 14.633,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7453,
"prior_weight": 0.2547
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "695243",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 67,
"reference_playing_time": 1.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 5.0,
"ER": 4.0,
"R": 4.0,
"H": 5.0,
"BB": 3.0,
"SO": 8.0,
"HR": 0.0,
"BF": 24.0,
"Pitches": 85.0
},
"per_game": {
"IP": 1.0,
"ER": 0.8,
"R": 0.8,
"H": 1.0,
"BB": 0.6,
"SO": 1.6,
"HR": 0.0,
"BF": 4.8,
"Pitches": 17.0
},
"rates": {
"ERA": 7.2,
"WHIP": 1.6,
"ER_per_IP": 0.8,
"H_per_IP": 1.0,
"BB_per_IP": 0.6,
"SO_per_IP": 1.6,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 10.2,
"ER": 5.0,
"R": 5.0,
"H": 9.0,
"BB": 5.0,
"SO": 20.0,
"HR": 1.0,
"BF": 47.0,
"Pitches": 184.0
},
"per_game": {
"IP": 1.0,
"ER": 0.5,
"R": 0.5,
"H": 0.9,
"BB": 0.5,
"SO": 2.0,
"HR": 0.1,
"BF": 4.7,
"Pitches": 18.4
},
"rates": {
"ERA": 4.2188,
"WHIP": 1.3125,
"ER_per_IP": 0.46875,
"H_per_IP": 0.84375,
"BB_per_IP": 0.46875,
"SO_per_IP": 1.875,
"HR_per_IP": 0.09375
}
},
"season": {
"games": 67,
"totals": {
"IP": 71.0,
"ER": 13.0,
"R": 16.0,
"H": 38.0,
"BB": 26.0,
"SO": 131.0,
"HR": 3.0,
"BF": 276.0,
"Pitches": 1168.0
},
"per_game": {
"IP": 1.0,
"ER": 0.194,
"R": 0.2388,
"H": 0.5672,
"BB": 0.3881,
"SO": 1.9552,
"HR": 0.0448,
"BF": 4.1194,
"Pitches": 17.4328
},
"rates": {
"ERA": 1.6479,
"WHIP": 0.9014,
"ER_per_IP": 0.1831,
"H_per_IP": 0.53521,
"BB_per_IP": 0.3662,
"SO_per_IP": 1.84507,
"HR_per_IP": 0.04225
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 1.0,
"predicted_ER": 0.548,
"predicted_H": 0.886,
"predicted_BB": 0.475,
"predicted_SO": 1.538,
"predicted_HR": 0.068,
"predicted_ERA": 4.9349,
"predicted_WHIP": 1.3606
}
}{
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4576,
"form_weight": 0.5424,
"form_reliability": 0.7453,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 14.633,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7453,
"prior_weight": 0.2547
},
"applied_metrics": {
"predicted_IP": {
"model": 1.0,
"form": 1.0,
"final": 1.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 0.548,
"final": 0.7548,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 0.886,
"final": 0.9382,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 0.475,
"final": 0.2576,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 0.0,
"form": 1.538,
"final": 0.8342,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.068,
"final": 0.4945,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 4.9349,
"final": 4.9349,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.3606,
"final": 1.3606,
"source": "form_only"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | Adrian Morejon |
| Role | Setup Man |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 1.1536 |
| ESPN Rank | - |
| Movement Available | False |
| Primary Pitch | - |
| Movement Score | - |
| Avg Velo | - |
| Avg Spin | - |
| HB Inches | - |
| IVB Inches | - |
| Release Extension | - |
| Pre IP | 0.1000 |
| Pre ER | 2 |
| Pre H | 1 |
| Pre BB | 1 |
| Pre SO | 1 |
| Season ERA | 2.7614 |
| Season WHIP | 1.0682 |
| Role Avg IP | 1.1430 |
| Recent Avg IP | 1.2000 |
| Last Start IP | 0 |
{
"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.992,
"defense_index": 1.0687,
"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": "MIL",
"games": 162,
"wins": 103,
"losses": 59,
"win_pct": 0.6358,
"runs_scored": 832.0,
"runs_allowed": 618.0,
"run_differential": 214.0,
"run_differential_per_game": 1.321,
"avg_runs_scored": 5.1358,
"avg_runs_allowed": 3.8148,
"offense_index": 1.1432,
"defense_index": 1.1777,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 3.0,
"run_differential": 14.0
},
"available": true,
"quality_score": 0.3822
},
"edges": {
"quality_edge": -0.1938,
"offense_edge": -0.008,
"opponent_offense_edge": 0.1432,
"defense_strength": 0.0687,
"opponent_defense_weakness": -0.1777,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 0.9886,
"run_prevention": 1.0257,
"strikeout": 0.9827
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "670970",
"profile": {
"available": true,
"pitcher_id": "670970",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 324.0,
"k_percent": 30.4,
"bb_percent": 8.0,
"woba": 0.244,
"xwoba": 0.237,
"sweet_spot_percent": 28.3,
"barrel_batted_rate": 2.8,
"hard_hit_percent": 32.5,
"avg_best_speed": 74.3318,
"avg_hyper_speed": 93.3234,
"whiff_percent": 34.2,
"swing_percent": 52.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.5398,
"command_and_miss": 1.0436,
"regression_edge": 0.2,
"xwoba_edge": 2.1429,
"barrel_edge": 0.9778,
"hard_hit_edge": 0.7714,
"whiff_edge": 1.2857,
"bb_edge": 0.3,
"pitch_design_score": 0.0
},
"pitch_movement_profile": {
"available": false,
"pitcher_id": "670970",
"reason": "pitcher_movement_profile_has_no_pitches"
},
"quality_score": 1.1536,
"sample_weight": 1.0,
"run_prevention_factor": 0.9019,
"strikeout_factor": 1.0989,
"walk_factor": 0.976,
"homer_factor": 0.8266,
"woba_minus_xwoba": 0.007,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "670970",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9019,
"adjusted": 0
},
"predicted_H": {
"original": 1.0,
"factor": 0.9019,
"adjusted": 1
},
"predicted_BB": {
"original": 1.0,
"factor": 0.976,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.8266,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 1.0989,
"adjusted": 3
}
}
}
}{
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 10.1,
"ER": 2,
"H": 5,
"BB": 4,
"SO": 12,
"HR": 0,
"ERA": 1.741935483870968,
"WHIP": 0.870967741935484,
"K9": 10.451612903225808,
"HR9": 0.0,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": true,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-30T00:00:00"
}{
"available": false,
"pitcher_id": "670970",
"reason": "pitcher_movement_profile_has_no_pitches"
}{
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.136,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7839,
"prior_weight": 0.2161
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "670970",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 77,
"reference_playing_time": 0.333,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 6.0,
"ER": 1.0,
"R": 1.0,
"H": 3.0,
"BB": 4.0,
"SO": 6.0,
"HR": 0.0,
"BF": 24.0,
"Pitches": 88.0
},
"per_game": {
"IP": 1.1,
"ER": 0.2,
"R": 0.2,
"H": 0.6,
"BB": 0.8,
"SO": 1.2,
"HR": 0.0,
"BF": 4.8,
"Pitches": 17.6
},
"rates": {
"ERA": 1.5,
"WHIP": 1.1667,
"ER_per_IP": 0.16667,
"H_per_IP": 0.5,
"BB_per_IP": 0.66667,
"SO_per_IP": 1.0,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 10.1,
"ER": 2.0,
"R": 2.0,
"H": 5.0,
"BB": 4.0,
"SO": 12.0,
"HR": 0.0,
"BF": 39.0,
"Pitches": 134.0
},
"per_game": {
"IP": 1.0,
"ER": 0.2,
"R": 0.2,
"H": 0.5,
"BB": 0.4,
"SO": 1.2,
"HR": 0.0,
"BF": 3.9,
"Pitches": 13.4
},
"rates": {
"ERA": 1.7419,
"WHIP": 0.871,
"ER_per_IP": 0.19355,
"H_per_IP": 0.48387,
"BB_per_IP": 0.3871,
"SO_per_IP": 1.16129,
"HR_per_IP": 0.0
}
},
"season": {
"games": 77,
"totals": {
"IP": 88.0,
"ER": 27.0,
"R": 32.0,
"H": 66.0,
"BB": 28.0,
"SO": 107.0,
"HR": 4.0,
"BF": 358.0,
"Pitches": 1347.0
},
"per_game": {
"IP": 1.0,
"ER": 0.3506,
"R": 0.4156,
"H": 0.8571,
"BB": 0.3636,
"SO": 1.3896,
"HR": 0.0519,
"BF": 4.6494,
"Pitches": 17.4935
},
"rates": {
"ERA": 2.7614,
"WHIP": 1.0682,
"ER_per_IP": 0.30682,
"H_per_IP": 0.75,
"BB_per_IP": 0.31818,
"SO_per_IP": 1.21591,
"HR_per_IP": 0.04545
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 1.0,
"predicted_ER": 0.264,
"predicted_H": 0.622,
"predicted_BB": 0.461,
"predicted_SO": 1.036,
"predicted_HR": 0.038,
"predicted_ERA": 2.4361,
"predicted_WHIP": 1.1127
}
}{
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4413,
"form_weight": 0.5587,
"form_reliability": 0.7839,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.136,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7839,
"prior_weight": 0.2161
},
"applied_metrics": {
"predicted_IP": {
"model": 0.1,
"form": 1.0,
"final": 0.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 0.264,
"final": 1.0301,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 0.622,
"final": 0.7888,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 1.0,
"form": 0.461,
"final": 0.6989,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 1.036,
"final": 1.0201,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.038,
"final": 0.4625,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.4361,
"final": 2.4361,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1127,
"final": 1.1127,
"source": "form_only"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.095 | 0.000 | 0.000 | Hitting_2B | 0.153 | 0.000 | -0.153 | 0.000 |
| predicted_3B | 0.095 | 0.000 | 0.000 | Hitting_3B | 0.139 | 0.000 | -0.139 | 0.000 |
| predicted_AB | 3.550 | 5.000 | 4.000 | Hitting_AB | 3.611 | 4.000 | 1.389 | 1.000 |
| predicted_AVG | 0.279 | 0.000 | 0.250 | Hitting_AVG | 0.354 | 0.000 | -0.354 | 0.000 |
| predicted_BB | 0.214 | 0.000 | 0.000 | Hitting_BB | 0.222 | 0.000 | -0.222 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.028 | 0.000 | -0.028 | 0.000 |
| predicted_H | 0.990 | 0.000 | 1.000 | Hitting_H | 1.278 | 0.000 | -1.278 | 0.000 |
| predicted_HR | 0.030 | 0.000 | 0.000 | Hitting_HR | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_OBP | 0.319 | 0.000 | 0.250 | Hitting_OBP | 0.387 | 0.000 | -0.387 | 0.000 |
| predicted_R | 0.548 | 0.000 | 1.000 | Hitting_R | 0.681 | 0.000 | -0.681 | 0.000 |
| predicted_RBI | 0.360 | 0.000 | 0.000 | Hitting_RBI | 0.778 | 0.000 | -0.778 | 0.000 |
| predicted_SLG | 0.363 | 0.000 | 0.250 | Hitting_SLG | 0.473 | 0.000 | -0.473 | 0.000 |
| predicted_SO | 0.476 | 1.000 | 1.000 | Hitting_SO | 0.458 | 0.000 | 0.542 | 1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 11 |
| Boosted Metrics | 3 |
| Deboosted Metrics | 8 |
| Better Metrics | 2 |
| Worse Metrics | 9 |
| Biggest Boost | predicted_AB: 3.5500 -> 5.0000 (boost 1.4500, better) |
| Biggest Deboost | predicted_H: 0.9900 -> 0.0000 (deboost -0.9900, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 3 | 1 | 2 | 1 | 2 | predicted_SLG: 0.3670 -> 0.3728 (boost 0.0058, better) | predicted_OBP: 0.3196 -> 0.3101 (deboost -0.0095, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 8 | 3 | 5 | 2 | 6 | predicted_SO: 0.4692 -> 1.0000 (boost 0.5308, worse) | predicted_RBI: 0.3367 -> 0.0000 (deboost -0.3367, worse) | AB rounded to 4 (raw=3.55), rates preserved: AVG=0.224 HR/AB=0.007 |
| 6 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5615 -> 1.0000 (boost 0.4385, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 4 | 2 | 5 | 1 | predicted_RBI: 0.0000 -> 0.5122 (boost 0.5122, better) | predicted_H: 1.0000 -> 0.8067 (deboost -0.1933, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 6 | 2 | 4 | 1 | 5 | predicted_H: 0.8067 -> 1.0000 (boost 0.1933, better) | predicted_RBI: 0.5122 -> 0.0000 (deboost -0.5122, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 3 | 0 | 3 | 0 | 3 | - | predicted_AVG: 0.2693 -> 0.2080 (deboost -0.0613, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 3 | 1 | 2 | 1 | 2 | predicted_AB: 4.0000 -> 5.0000 (boost 1.0000, better) | predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_AVG: 0.2080 -> 0.2693 (boost 0.0613, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "687957",
"player_name": "Dustin Harris",
"position": "LF",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.095,
"predicted_3B": 0.095,
"predicted_AB": 3.55,
"predicted_AVG": 0.279,
"predicted_BB": 0.214,
"predicted_H": 0.99,
"predicted_HR": 0.03,
"predicted_OBP": 0.319,
"predicted_R": 0.548,
"predicted_RBI": 0.36,
"predicted_SLG": 0.363,
"predicted_SO": 0.476
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.095,
"predicted_3B": 0.097,
"predicted_AB": 3.5263,
"predicted_AVG": 0.2757,
"predicted_BB": 0.2096,
"predicted_H": 0.9719,
"predicted_HBP": 0.075,
"predicted_HR": 0.026,
"predicted_OBP": 0.3196,
"predicted_R": 0.5837,
"predicted_RBI": 0.35,
"predicted_SLG": 0.367,
"predicted_SO": 0.4664
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.095,
"after": 0.095,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.095,
"after": 0.097,
"delta": 0.002,
"percent_delta": 0.0211,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.55,
"after": 3.5263,
"delta": -0.0237,
"percent_delta": -0.0067,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.279,
"after": 0.2757,
"delta": -0.0033,
"percent_delta": -0.0118,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.214,
"after": 0.2096,
"delta": -0.0044,
"percent_delta": -0.0206,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.99,
"after": 0.9719,
"delta": -0.0181,
"percent_delta": -0.0183,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.03,
"after": 0.026,
"delta": -0.004,
"percent_delta": -0.1333,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.319,
"after": 0.3196,
"delta": 0.0006,
"percent_delta": 0.0019,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.548,
"after": 0.5837,
"delta": 0.0357,
"percent_delta": 0.0651,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.36,
"after": 0.35,
"delta": -0.01,
"percent_delta": -0.0278,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.363,
"after": 0.367,
"delta": 0.004,
"percent_delta": 0.011,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.476,
"after": 0.4664,
"delta": -0.0096,
"percent_delta": -0.0202,
"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": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 42
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.095,
"predicted_3B": 0.097,
"predicted_AB": 3.5263,
"predicted_AVG": 0.2693,
"predicted_BB": 0.2083,
"predicted_H": 0.9497,
"predicted_HBP": 0.075,
"predicted_HR": 0.0253,
"predicted_OBP": 0.3101,
"predicted_R": 0.5615,
"predicted_RBI": 0.3367,
"predicted_SLG": 0.3728,
"predicted_SO": 0.4692
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.095,
"after": 0.095,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.097,
"after": 0.097,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.5263,
"after": 3.5263,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2757,
"after": 0.2693,
"delta": -0.0064,
"percent_delta": -0.0232,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.2096,
"after": 0.2083,
"delta": -0.0013,
"percent_delta": -0.0062,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.9719,
"after": 0.9497,
"delta": -0.0222,
"percent_delta": -0.0228,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.075,
"after": 0.075,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.026,
"after": 0.0253,
"delta": -0.0007,
"percent_delta": -0.0269,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3196,
"after": 0.3101,
"delta": -0.0095,
"percent_delta": -0.0297,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.5837,
"after": 0.5615,
"delta": -0.0222,
"percent_delta": -0.038,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.35,
"after": 0.3367,
"delta": -0.0133,
"percent_delta": -0.038,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.367,
"after": 0.3728,
"delta": 0.0058,
"percent_delta": 0.0158,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.4664,
"after": 0.4692,
"delta": 0.0028,
"percent_delta": 0.006,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.367,
"after": 0.3728,
"delta": 0.0058,
"percent_delta": 0.0158,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.3196,
"after": 0.3101,
"delta": -0.0095,
"percent_delta": -0.0297,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=3.55), rates preserved: AVG=0.224 HR/AB=0.007",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.095,
"after": 0.0,
"delta": -0.095,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.097,
"after": 0.0,
"delta": -0.097,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AB",
"before": 3.5263,
"after": 4.0,
"delta": 0.4737,
"percent_delta": 0.1343,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.2083,
"after": 0.0,
"delta": -0.2083,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.9497,
"after": 1.0,
"delta": 0.0503,
"percent_delta": 0.053,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.075,
"after": 0.0,
"delta": -0.075,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0253,
"after": 0.0,
"delta": -0.0253,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.3367,
"after": 0.0,
"delta": -0.3367,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.4692,
"after": 1.0,
"delta": 0.5308,
"percent_delta": 1.1313,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 8,
"boosted_metrics": 3,
"deboosted_metrics": 5,
"better_metrics": 2,
"worse_metrics": 6,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.4692,
"after": 1.0,
"delta": 0.5308,
"percent_delta": 1.1313,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.3367,
"after": 0.0,
"delta": -0.3367,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.5615,
"after": 1.0,
"delta": 0.4385,
"percent_delta": 0.7809,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.5615,
"after": 1.0,
"delta": 0.4385,
"percent_delta": 0.7809,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1687,
"predicted_3B": 0.0213,
"predicted_BB": 0.3113,
"predicted_H": 0.8067,
"predicted_HR": 0.0793,
"predicted_RBI": 0.5122,
"predicted_SO": 0.9047
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1687,
"delta": 0.1687,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0213,
"delta": 0.0213,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.3113,
"delta": 0.3113,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.8067,
"delta": -0.1933,
"percent_delta": -0.1933,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0793,
"delta": 0.0793,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.5122,
"delta": 0.5122,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.9047,
"delta": -0.0953,
"percent_delta": -0.0953,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 5,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.5122,
"delta": 0.5122,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.8067,
"delta": -0.1933,
"percent_delta": -0.1933,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1687,
"after": 0.0,
"delta": -0.1687,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0213,
"after": 0.0,
"delta": -0.0213,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.3113,
"after": 0.0,
"delta": -0.3113,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8067,
"after": 1.0,
"delta": 0.1933,
"percent_delta": 0.2396,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0793,
"after": 0.0,
"delta": -0.0793,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5122,
"after": 0.0,
"delta": -0.5122,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.9047,
"after": 1.0,
"delta": 0.0953,
"percent_delta": 0.1053,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 2,
"deboosted_metrics": 4,
"better_metrics": 1,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.8067,
"after": 1.0,
"delta": 0.1933,
"percent_delta": 0.2396,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.5122,
"after": 0.0,
"delta": -0.5122,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.208,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.272,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.323,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2693,
"after": 0.208,
"delta": -0.0613,
"percent_delta": -0.2276,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3101,
"after": 0.272,
"delta": -0.0381,
"percent_delta": -0.1229,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3728,
"after": 0.323,
"delta": -0.0498,
"percent_delta": -0.1336,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_AVG",
"before": 0.2693,
"after": 0.208,
"delta": -0.0613,
"percent_delta": -0.2276,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 5.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_AB",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 5.0,
"predicted_AVG": 0.2693,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_LF": 0.0,
"predicted_OBP": 0.3101,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.3728,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.208,
"after": 0.2693,
"delta": 0.0613,
"percent_delta": 0.2949,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.272,
"after": 0.3101,
"delta": 0.0381,
"percent_delta": 0.14,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.323,
"after": 0.3728,
"delta": 0.0498,
"percent_delta": 0.1541,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_AVG",
"before": 0.208,
"after": 0.2693,
"delta": 0.0613,
"percent_delta": 0.2949,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.095,
"after": 0.0,
"delta": -0.095,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.095,
"after": 0.0,
"delta": -0.095,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AB",
"before": 3.55,
"after": 5.0,
"delta": 1.45,
"percent_delta": 0.4085,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.279,
"after": 0.2693,
"delta": -0.0097,
"percent_delta": -0.0348,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.214,
"after": 0.0,
"delta": -0.214,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.99,
"after": 0.0,
"delta": -0.99,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.03,
"after": 0.0,
"delta": -0.03,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.319,
"after": 0.3101,
"delta": -0.0089,
"percent_delta": -0.0279,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.548,
"after": 0.0,
"delta": -0.548,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.36,
"after": 0.0,
"delta": -0.36,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.363,
"after": 0.3728,
"delta": 0.0098,
"percent_delta": 0.027,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.476,
"after": 1.0,
"delta": 0.524,
"percent_delta": 1.1008,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 11,
"boosted_metrics": 3,
"deboosted_metrics": 8,
"better_metrics": 2,
"worse_metrics": 9,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.55,
"after": 5.0,
"delta": 1.45,
"percent_delta": 0.4085,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 0.99,
"after": 0.0,
"delta": -0.99,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.095 | - |
| predicted_3B | 0.095 | - |
| predicted_AB | 3.550 | - |
| predicted_AVG | 0.279 | - |
| predicted_BB | 0.214 | - |
| predicted_H | 0.990 | - |
| predicted_HR | 0.030 | - |
| predicted_OBP | 0.319 | - |
| predicted_R | 0.548 | - |
| predicted_RBI | 0.360 | - |
| predicted_SLG | 0.363 | - |
| predicted_SO | 0.476 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.095 | 0.000 |
| predicted_3B | 0.097 | 0.002 |
| predicted_AB | 3.526 | -0.024 |
| predicted_AVG | 0.276 | -0.003 |
| predicted_BB | 0.210 | -0.004 |
| predicted_H | 0.972 | -0.018 |
| predicted_HBP | 0.075 | - |
| predicted_HR | 0.026 | -0.004 |
| predicted_OBP | 0.320 | 0.001 |
| predicted_R | 0.584 | 0.036 |
| predicted_RBI | 0.350 | -0.010 |
| predicted_SLG | 0.367 | 0.004 |
| predicted_SO | 0.466 | -0.010 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.095 | 0.000 |
| predicted_3B | 0.097 | 0.000 |
| predicted_AB | 3.526 | 0.000 |
| predicted_AVG | 0.269 | -0.006 |
| predicted_BB | 0.208 | -0.001 |
| predicted_H | 0.950 | -0.022 |
| predicted_HBP | 0.075 | 0.000 |
| predicted_HR | 0.025 | -0.001 |
| predicted_OBP | 0.310 | -0.010 |
| predicted_R | 0.561 | -0.022 |
| predicted_RBI | 0.337 | -0.013 |
| predicted_SLG | 0.373 | 0.006 |
| predicted_SO | 0.469 | 0.003 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=3.55), rates preserved: AVG=0.224 HR/AB=0.007
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.169 | 0.169 |
| 3B | 0.021 | 0.021 |
| BB | 0.311 | 0.311 |
| H | 0.807 | -0.193 |
| HR | 0.079 | 0.079 |
| RBI | 0.512 | 0.512 |
| SO | 0.905 | -0.095 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.169 |
| 3B | 0.000 | -0.021 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -0.311 |
| H | 1.000 | 0.193 |
| HR | 0.000 | -0.079 |
| R | 1.000 | 0.000 |
| RBI | 0.000 | -0.512 |
| SO | 1.000 | 0.095 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.095 |
| predicted_3B | 0.000 | -0.097 |
| predicted_AB | 4.000 | 0.474 |
| predicted_AVG | 0.208 | -0.061 |
| predicted_BB | 0.000 | -0.208 |
| predicted_H | 1.000 | 0.050 |
| predicted_HR | 0.000 | -0.025 |
| predicted_OBP | 0.272 | -0.038 |
| predicted_R | 1.000 | 0.439 |
| predicted_RBI | 0.000 | -0.337 |
| predicted_SLG | 0.323 | -0.050 |
| predicted_SO | 1.000 | 0.531 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 5.000 | 1.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | -1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | - |
| R | 0.000 | -1.000 |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 19.000 | 6.000 | 0.000 | 1.000 | 0.000 | 0.000 | 5.000 | 1.000 | 0.000 | 0.3158 | 0.3500 | 0.4211 | 0.3158 | 0.0000 | 0.0000 | 0.0526 | 0.0000 |
| last_10 | 0.20 | 10 | - | 37.000 | 8.000 | 1.000 | 1.000 | 0.000 | 1.000 | 7.000 | 1.000 | 4.000 | 0.2162 | 0.2683 | 0.2973 | 0.2162 | 0.0000 | 0.0270 | 0.0270 | 0.1081 |
| season | 0.60 | 42 | - | 135.000 | 38.000 | 4.000 | 4.000 | 0.000 | 19.000 | 23.000 | 9.000 | 20.000 | 0.2815 | 0.3333 | 0.3704 | 0.2815 | 0.0000 | 0.1407 | 0.0667 | 0.1482 |
| Metric | Value |
|---|---|
| predicted_2B | 0.0950 |
| predicted_3B | 0.1000 |
| predicted_AB | 3.4910 |
| predicted_AVG | 0.2708 |
| predicted_BB | 0.2030 |
| predicted_H | 0.9450 |
| predicted_HBP | 0.0750 |
| predicted_HR | 0.0200 |
| predicted_OBP | 0.3206 |
| predicted_R | 0.6370 |
| predicted_RBI | 0.3350 |
| predicted_SLG | 0.3729 |
| predicted_SO | 0.4520 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.0950 | 0.0950 | 0.0950 | model_form_blend |
| predicted_3B | 0.0950 | 0.1000 | 0.0970 | model_form_blend |
| predicted_AB | 3.5500 | 3.4910 | 3.5263 | model_form_blend |
| predicted_AVG | 0.2790 | 0.2708 | 0.2757 | model_form_blend |
| predicted_BB | 0.2140 | 0.2030 | 0.2096 | model_form_blend |
| predicted_H | 0.9900 | 0.9450 | 0.9719 | model_form_blend |
| predicted_HBP | - | 0.0750 | 0.0750 | form_only |
| predicted_HR | 0.0300 | 0.0200 | 0.0260 | model_form_blend |
| predicted_OBP | 0.3190 | 0.3206 | 0.3196 | model_form_blend |
| predicted_R | 0.5480 | 0.6370 | 0.5837 | model_form_blend |
| predicted_RBI | 0.3600 | 0.3350 | 0.3500 | model_form_blend |
| predicted_SLG | 0.3630 | 0.3729 | 0.3670 | model_form_blend |
| predicted_SO | 0.4760 | 0.4520 | 0.4664 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 72 |
| Season rows before report date | 72 |
| Report year | 2026 |
| Profile rows used | 42 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 5 |
| AB | 5 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 2 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | LF |
| gameID | 20260930_CHC@SD |
| game_type | full |
| mlbID | 687957 |
| playerID | 687957 |
| playerName | Dustin Harris |
| pos | LF |
| started | True |
| startingPosition | LF |
| team | SD |
| teamID | 23 |
| game_date | 2026-09-30 |
| sl_k_percent | 13.2 |
| sl_bb_percent | 7.2 |
| sl_woba | 0.326 |
| sl_xwoba | 0.314 |
| sl_xba | 0.278 |
| sl_xslg | 0.36 |
| sl_sweet_spot_percent | 39.8 |
| sl_barrel_batted_rate | 1.7 |
| sl_hard_hit_percent | 19.5 |
| sl_exit_velocity_avg | 85.2 |
| sl_launch_angle_avg | 15.6 |
| sl_whiff_percent | 19.3 |
| sl_swing_percent | 48.7 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.144 | 1.000 | 0.000 | Hitting_2B | 0.152 | 0.000 | 0.848 | 1.000 |
| predicted_3B | 0.000 | 0.000 | 0.000 | Hitting_3B | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_AB | 4.450 | 4.000 | 4.000 | Hitting_AB | 3.769 | 4.000 | 0.231 | 0.000 |
| predicted_AVG | 0.236 | 0.500 | 0.250 | Hitting_AVG | 0.223 | 0.250 | 0.277 | 0.250 |
| predicted_BB | 0.481 | 1.000 | 1.000 | Hitting_BB | 0.504 | 0.000 | 0.496 | 1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.028 | 0.000 | -0.028 | 0.000 |
| predicted_H | 1.050 | 2.000 | 1.000 | Hitting_H | 0.839 | 1.000 | 1.161 | 1.000 |
| predicted_HR | 0.250 | 0.000 | 1.000 | Hitting_HR | 0.197 | 0.000 | -0.197 | 0.000 |
| predicted_OBP | 0.328 | 0.600 | 0.400 | Hitting_OBP | 0.311 | 0.250 | 0.289 | 0.350 |
| predicted_R | 0.525 | 1.000 | 1.000 | Hitting_R | 0.553 | 0.000 | 0.447 | 1.000 |
| predicted_RBI | 0.770 | 2.000 | 1.000 | Hitting_RBI | 0.608 | 0.000 | 1.392 | 2.000 |
| predicted_SLG | 0.464 | 0.750 | 1.000 | Hitting_SLG | 0.420 | 0.250 | 0.330 | 0.500 |
| predicted_SO | 0.906 | 0.000 | 1.000 | Hitting_SO | 0.899 | 1.000 | -0.899 | -1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 10 |
| Boosted Metrics | 5 |
| Deboosted Metrics | 5 |
| Better Metrics | 6 |
| Worse Metrics | 4 |
| Biggest Boost | predicted_RBI: 0.7700 -> 2.0000 (boost 1.2300, better) |
| Biggest Deboost | predicted_SO: 0.9060 -> 0.0000 (deboost -0.9060, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 5 | 1 | 4 | 1 | 4 | predicted_SLG: 0.4640 -> 0.4752 (boost 0.0112, better) | predicted_AB: 4.4500 -> 4.1300 (deboost -0.3200, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 3 | 0 | 3 | 0 | 3 | - | predicted_SLG: 0.4752 -> 0.4470 (deboost -0.0282, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 6 | 2 | 4 | 1 | 5 | predicted_RBI: 0.7364 -> 1.0000 (boost 0.2636, better) | predicted_BB: 0.4272 -> 0.0000 (deboost -0.4272, worse) | AB rounded to 4 (raw=4.45), rates preserved: AVG=0.182 HR/AB=0.055 |
| 6 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5087 -> 1.0000 (boost 0.4913, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 4 | 2 | 3 | 3 | predicted_BB: 0.0000 -> 0.4299 (boost 0.4299, better) | predicted_RBI: 1.0000 -> 0.5637 (deboost -0.4363, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 6 | 4 | 2 | 5 | 1 | predicted_HR: 0.1657 -> 1.0000 (boost 0.8343, better) | predicted_SO: 1.2421 -> 1.0000 (deboost -0.2421, better) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 5 | 0 | 5 | 0 | 5 | - | predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 5 | 4 | 1 | 5 | 0 | predicted_2B: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_SO: 1.0000 -> 0.0000 (deboost -1.0000, better) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_SLG: 0.3600 -> 0.4470 (boost 0.0870, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "592518",
"player_name": "Manny Machado",
"position": "3B",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.144,
"predicted_3B": 0.0,
"predicted_AB": 4.45,
"predicted_AVG": 0.236,
"predicted_BB": 0.481,
"predicted_H": 1.05,
"predicted_HR": 0.25,
"predicted_OBP": 0.328,
"predicted_R": 0.525,
"predicted_RBI": 0.77,
"predicted_SLG": 0.464,
"predicted_SO": 0.906
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1458,
"predicted_3B": 0.0004,
"predicted_AB": 4.13,
"predicted_AVG": 0.2404,
"predicted_BB": 0.4298,
"predicted_H": 0.9909,
"predicted_HBP": 0.005,
"predicted_HR": 0.2509,
"predicted_OBP": 0.3203,
"predicted_R": 0.5289,
"predicted_RBI": 0.7656,
"predicted_SLG": 0.4752,
"predicted_SO": 0.9038
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.144,
"after": 0.1458,
"delta": 0.0018,
"percent_delta": 0.0125,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0004,
"delta": 0.0004,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.45,
"after": 4.13,
"delta": -0.32,
"percent_delta": -0.0719,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.236,
"after": 0.2404,
"delta": 0.0044,
"percent_delta": 0.0186,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.481,
"after": 0.4298,
"delta": -0.0512,
"percent_delta": -0.1064,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.05,
"after": 0.9909,
"delta": -0.0591,
"percent_delta": -0.0563,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.25,
"after": 0.2509,
"delta": 0.0009,
"percent_delta": 0.0036,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.328,
"after": 0.3203,
"delta": -0.0077,
"percent_delta": -0.0235,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.525,
"after": 0.5289,
"delta": 0.0039,
"percent_delta": 0.0074,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.77,
"after": 0.7656,
"delta": -0.0044,
"percent_delta": -0.0057,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.464,
"after": 0.4752,
"delta": 0.0112,
"percent_delta": 0.0241,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.906,
"after": 0.9038,
"delta": -0.0022,
"percent_delta": -0.0024,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 1,
"deboosted_metrics": 4,
"better_metrics": 1,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.464,
"after": 0.4752,
"delta": 0.0112,
"percent_delta": 0.0241,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.45,
"after": 4.13,
"delta": -0.32,
"percent_delta": -0.0719,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 160
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1458,
"predicted_3B": 0.0004,
"predicted_AB": 4.13,
"predicted_AVG": 0.2345,
"predicted_BB": 0.4272,
"predicted_H": 0.9683,
"predicted_HBP": 0.005,
"predicted_HR": 0.2438,
"predicted_OBP": 0.3062,
"predicted_R": 0.5087,
"predicted_RBI": 0.7364,
"predicted_SLG": 0.447,
"predicted_SO": 0.9093
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1458,
"after": 0.1458,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0004,
"after": 0.0004,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.13,
"after": 4.13,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2404,
"after": 0.2345,
"delta": -0.0059,
"percent_delta": -0.0245,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.4298,
"after": 0.4272,
"delta": -0.0026,
"percent_delta": -0.006,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.9909,
"after": 0.9683,
"delta": -0.0226,
"percent_delta": -0.0228,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.005,
"after": 0.005,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.2509,
"after": 0.2438,
"delta": -0.0071,
"percent_delta": -0.0283,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3203,
"after": 0.3062,
"delta": -0.0141,
"percent_delta": -0.044,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.5289,
"after": 0.5087,
"delta": -0.0202,
"percent_delta": -0.0382,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.7656,
"after": 0.7364,
"delta": -0.0292,
"percent_delta": -0.0381,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4752,
"after": 0.447,
"delta": -0.0282,
"percent_delta": -0.0593,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.9038,
"after": 0.9093,
"delta": 0.0055,
"percent_delta": 0.0061,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.4752,
"after": 0.447,
"delta": -0.0282,
"percent_delta": -0.0593,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=4.45), rates preserved: AVG=0.182 HR/AB=0.055",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1458,
"after": 0.0,
"delta": -0.1458,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0004,
"after": 0.0,
"delta": -0.0004,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.13,
"after": 4.0,
"delta": -0.13,
"percent_delta": -0.0315,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.4272,
"after": 0.0,
"delta": -0.4272,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.9683,
"after": 1.0,
"delta": 0.0317,
"percent_delta": 0.0327,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.005,
"after": 0.0,
"delta": -0.005,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.2438,
"after": 0.0,
"delta": -0.2438,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.7364,
"after": 1.0,
"delta": 0.2636,
"percent_delta": 0.358,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.9093,
"after": 1.0,
"delta": 0.0907,
"percent_delta": 0.0997,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 2,
"deboosted_metrics": 4,
"better_metrics": 1,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.7364,
"after": 1.0,
"delta": 0.2636,
"percent_delta": 0.358,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.4272,
"after": 0.0,
"delta": -0.4272,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.5087,
"after": 1.0,
"delta": 0.4913,
"percent_delta": 0.9658,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.5087,
"after": 1.0,
"delta": 0.4913,
"percent_delta": 0.9658,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.152,
"predicted_3B": 0.0063,
"predicted_BB": 0.4299,
"predicted_H": 0.7138,
"predicted_HR": 0.1657,
"predicted_RBI": 0.5637,
"predicted_SO": 1.2421
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.152,
"delta": 0.152,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0063,
"delta": 0.0063,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.4299,
"delta": 0.4299,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.7138,
"delta": -0.2862,
"percent_delta": -0.2862,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1657,
"delta": 0.1657,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.5637,
"delta": -0.4363,
"percent_delta": -0.4363,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.2421,
"delta": 0.2421,
"percent_delta": 0.2421,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 3,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 0.4299,
"delta": 0.4299,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.5637,
"delta": -0.4363,
"percent_delta": -0.4363,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.152,
"after": 0.0,
"delta": -0.152,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0063,
"after": 0.0,
"delta": -0.0063,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.4299,
"after": 1.0,
"delta": 0.5701,
"percent_delta": 1.3261,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.7138,
"after": 1.0,
"delta": 0.2862,
"percent_delta": 0.401,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1657,
"after": 1.0,
"delta": 0.8343,
"percent_delta": 5.035,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5637,
"after": 1.0,
"delta": 0.4363,
"percent_delta": 0.774,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.2421,
"after": 1.0,
"delta": -0.2421,
"percent_delta": -0.1949,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 5,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_HR",
"before": 0.1657,
"after": 1.0,
"delta": 0.8343,
"percent_delta": 5.035,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.2421,
"after": 1.0,
"delta": -0.2421,
"percent_delta": -0.1949,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.187,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.275,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SLG": 0.36,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2345,
"after": 0.187,
"delta": -0.0475,
"percent_delta": -0.2026,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.3062,
"after": 0.275,
"delta": -0.0312,
"percent_delta": -0.1019,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.447,
"after": 0.36,
"delta": -0.087,
"percent_delta": -0.1946,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 0,
"deboosted_metrics": 5,
"better_metrics": 0,
"worse_metrics": 5,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 1.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 2.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 2.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 4,
"deboosted_metrics": 1,
"better_metrics": 5,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_2B",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 1.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.2345,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 2.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3062,
"predicted_R": 1.0,
"predicted_RBI": 2.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.447,
"predicted_SO": 0.0,
"predicted_TB": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.187,
"after": 0.2345,
"delta": 0.0475,
"percent_delta": 0.2538,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"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_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.275,
"after": 0.3062,
"delta": 0.0312,
"percent_delta": 0.1135,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.36,
"after": 0.447,
"delta": 0.087,
"percent_delta": 0.2417,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.36,
"after": 0.447,
"delta": 0.087,
"percent_delta": 0.2417,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.144,
"after": 1.0,
"delta": 0.856,
"percent_delta": 5.9444,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.45,
"after": 4.0,
"delta": -0.45,
"percent_delta": -0.1011,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.236,
"after": 0.2345,
"delta": -0.0015,
"percent_delta": -0.0064,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.481,
"after": 1.0,
"delta": 0.519,
"percent_delta": 1.079,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.05,
"after": 2.0,
"delta": 0.95,
"percent_delta": 0.9048,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.25,
"after": 0.0,
"delta": -0.25,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.328,
"after": 0.3062,
"delta": -0.0218,
"percent_delta": -0.0665,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.525,
"after": 1.0,
"delta": 0.475,
"percent_delta": 0.9048,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.77,
"after": 2.0,
"delta": 1.23,
"percent_delta": 1.5974,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.464,
"after": 0.447,
"delta": -0.017,
"percent_delta": -0.0366,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.906,
"after": 0.0,
"delta": -0.906,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 10,
"boosted_metrics": 5,
"deboosted_metrics": 5,
"better_metrics": 6,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.77,
"after": 2.0,
"delta": 1.23,
"percent_delta": 1.5974,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 0.906,
"after": 0.0,
"delta": -0.906,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.144 | - |
| predicted_3B | 0.000 | - |
| predicted_AB | 4.450 | - |
| predicted_AVG | 0.236 | - |
| predicted_BB | 0.481 | - |
| predicted_H | 1.050 | - |
| predicted_HR | 0.250 | - |
| predicted_OBP | 0.328 | - |
| predicted_R | 0.525 | - |
| predicted_RBI | 0.770 | - |
| predicted_SLG | 0.464 | - |
| predicted_SO | 0.906 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.146 | 0.002 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 4.130 | -0.320 |
| predicted_AVG | 0.240 | 0.004 |
| predicted_BB | 0.430 | -0.051 |
| predicted_H | 0.991 | -0.059 |
| predicted_HBP | 0.005 | - |
| predicted_HR | 0.251 | 0.001 |
| predicted_OBP | 0.320 | -0.008 |
| predicted_R | 0.529 | 0.004 |
| predicted_RBI | 0.766 | -0.004 |
| predicted_SLG | 0.475 | 0.011 |
| predicted_SO | 0.904 | -0.002 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.146 | 0.000 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 4.130 | 0.000 |
| predicted_AVG | 0.234 | -0.006 |
| predicted_BB | 0.427 | -0.003 |
| predicted_H | 0.968 | -0.023 |
| predicted_HBP | 0.005 | 0.000 |
| predicted_HR | 0.244 | -0.007 |
| predicted_OBP | 0.306 | -0.014 |
| predicted_R | 0.509 | -0.020 |
| predicted_RBI | 0.736 | -0.029 |
| predicted_SLG | 0.447 | -0.028 |
| predicted_SO | 0.909 | 0.005 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=4.45), rates preserved: AVG=0.182 HR/AB=0.055
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.152 | 0.152 |
| 3B | 0.006 | 0.006 |
| BB | 0.430 | 0.430 |
| H | 0.714 | -0.286 |
| HR | 0.166 | 0.166 |
| RBI | 0.564 | -0.436 |
| SO | 1.242 | 0.242 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.152 |
| 3B | 0.000 | -0.006 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 0.570 |
| H | 1.000 | 0.286 |
| HR | 1.000 | 0.834 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.436 |
| SO | 1.000 | -0.242 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.146 |
| predicted_3B | 0.000 | -0.000 |
| predicted_AB | 4.000 | -0.130 |
| predicted_AVG | 0.187 | -0.047 |
| predicted_BB | 0.000 | -0.427 |
| predicted_H | 1.000 | 0.032 |
| predicted_HR | 0.000 | -0.244 |
| predicted_OBP | 0.275 | -0.031 |
| predicted_R | 1.000 | 0.491 |
| predicted_RBI | 1.000 | 0.264 |
| predicted_SLG | 0.360 | -0.087 |
| predicted_SO | 1.000 | 0.091 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 1.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 2.000 | 1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | -1.000 |
| PA | 5.000 | - |
| R | 1.000 | 0.000 |
| RBI | 2.000 | 1.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 18.000 | 6.000 | 1.000 | 0.000 | 2.000 | 6.000 | 3.000 | 1.000 | 4.000 | 0.3333 | 0.3684 | 0.7222 | 0.3333 | 0.1111 | 0.3333 | 0.0556 | 0.2222 |
| last_10 | 0.20 | 10 | - | 38.000 | 9.000 | 1.000 | 0.000 | 3.000 | 9.000 | 5.000 | 2.000 | 10.000 | 0.2368 | 0.2683 | 0.5000 | 0.2368 | 0.0790 | 0.2368 | 0.0526 | 0.2632 |
| season | 0.60 | 160 | - | 596.000 | 131.000 | 23.000 | 0.000 | 31.000 | 93.000 | 84.000 | 77.000 | 145.000 | 0.2198 | 0.3056 | 0.4144 | 0.2198 | 0.0520 | 0.1560 | 0.1292 | 0.2433 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1480 |
| predicted_3B | 0.0010 |
| predicted_AB | 3.7190 |
| predicted_AVG | 0.2460 |
| predicted_BB | 0.3640 |
| predicted_H | 0.9150 |
| predicted_HBP | 0.0050 |
| predicted_HR | 0.2520 |
| predicted_OBP | 0.3105 |
| predicted_R | 0.5340 |
| predicted_RBI | 0.7600 |
| predicted_SLG | 0.4895 |
| predicted_SO | 0.9010 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1440 | 0.1480 | 0.1458 | model_form_blend |
| predicted_3B | 0.0000 | 0.0010 | 0.0004 | model_form_blend |
| predicted_AB | 4.4500 | 3.7190 | 4.1300 | model_form_blend |
| predicted_AVG | 0.2360 | 0.2460 | 0.2404 | model_form_blend |
| predicted_BB | 0.4810 | 0.3640 | 0.4298 | model_form_blend |
| predicted_H | 1.0500 | 0.9150 | 0.9909 | model_form_blend |
| predicted_HBP | - | 0.0050 | 0.0050 | form_only |
| predicted_HR | 0.2500 | 0.2520 | 0.2509 | model_form_blend |
| predicted_OBP | 0.3280 | 0.3105 | 0.3203 | model_form_blend |
| predicted_R | 0.5250 | 0.5340 | 0.5289 | model_form_blend |
| predicted_RBI | 0.7700 | 0.7600 | 0.7656 | model_form_blend |
| predicted_SLG | 0.4640 | 0.4895 | 0.4752 | model_form_blend |
| predicted_SO | 0.9060 | 0.9010 | 0.9038 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 645 |
| Season rows before report date | 645 |
| Report year | 2026 |
| Profile rows used | 160 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 5 |
| AB | 4 |
| H | 2 |
| 2B | 1 |
| 3B | 0 |
| HR | 0 |
| R | 1 |
| RBI | 2 |
| BB | 1 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.25 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 1 |
| Hitting_battingOrder | 3 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | 3B |
| gameID | 20260930_CHC@SD |
| game_type | full |
| mlbID | 592518 |
| playerID | 592518 |
| playerName | Manny Machado |
| pos | 3B |
| started | True |
| startingPosition | 3B |
| team | SD |
| teamID | 23 |
| game_date | 2026-09-30 |
| sl_k_percent | 21.3 |
| sl_bb_percent | 11.2 |
| sl_woba | 0.31 |
| sl_xwoba | 0.328 |
| sl_xba | 0.243 |
| sl_xslg | 0.42 |
| sl_sweet_spot_percent | 32.7 |
| sl_barrel_batted_rate | 9.7 |
| sl_hard_hit_percent | 43.6 |
| sl_exit_velocity_avg | 90.1 |
| sl_launch_angle_avg | 14.5 |
| sl_whiff_percent | 25.3 |
| sl_swing_percent | 47.8 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.194 | 1.000 | 0.000 | Hitting_2B | 0.215 | 1.000 | 0.785 | 0.000 |
| predicted_3B | 0.016 | 1.000 | 0.000 | Hitting_3B | 0.013 | 0.000 | 0.987 | 1.000 |
| predicted_AB | 3.900 | 5.000 | 4.000 | Hitting_AB | 3.599 | 4.000 | 1.401 | 1.000 |
| predicted_AVG | 0.310 | 0.600 | 0.250 | Hitting_AVG | 0.307 | 0.500 | 0.293 | 0.100 |
| predicted_BB | 0.287 | 0.000 | 0.000 | Hitting_BB | 0.303 | 0.000 | -0.303 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.006 | 0.000 | -0.006 | 0.000 |
| predicted_H | 1.210 | 3.000 | 1.000 | Hitting_H | 1.106 | 2.000 | 1.894 | 1.000 |
| predicted_HR | 0.130 | 0.000 | 0.000 | Hitting_HR | 0.177 | 0.000 | -0.177 | 0.000 |
| predicted_OBP | 0.368 | 0.600 | 0.250 | Hitting_OBP | 0.372 | 0.500 | 0.228 | 0.100 |
| predicted_R | 0.473 | 1.000 | 0.000 | Hitting_R | 0.499 | 1.000 | 0.501 | 0.000 |
| predicted_RBI | 0.510 | 1.000 | 1.000 | Hitting_RBI | 0.599 | 0.000 | 0.401 | 1.000 |
| predicted_SLG | 0.458 | 1.200 | 0.250 | Hitting_SLG | 0.522 | 0.750 | 0.678 | 0.450 |
| predicted_SO | 0.845 | 0.000 | 1.000 | Hitting_SO | 0.831 | 1.000 | -0.831 | -1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 12 |
| Boosted Metrics | 6 |
| Deboosted Metrics | 6 |
| Better Metrics | 7 |
| Worse Metrics | 5 |
| Biggest Boost | predicted_H: 1.2100 -> 3.0000 (boost 1.7900, better) |
| Biggest Deboost | predicted_SO: 0.8450 -> 0.0000 (deboost -0.8450, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 2 | 1 | 1 | 1 | 1 | predicted_R: 0.4730 -> 0.5250 (boost 0.0520, better) | predicted_AB: 3.9000 -> 3.7847 (deboost -0.1153, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 2 | 0 | 2 | 0 | 2 | - | predicted_OBP: 0.3709 -> 0.3519 (deboost -0.0190, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 8 | 2 | 6 | 1 | 7 | predicted_AB: 3.7847 -> 4.0000 (boost 0.2153, better) | predicted_RBI: 0.4789 -> 0.0000 (deboost -0.4789, worse) | AB rounded to 4 (raw=3.90), rates preserved: AVG=0.245 HR/AB=0.030 |
| 6 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5050 -> 1.0000 (boost 0.4950, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 5 | 1 | 4 | 2 | predicted_RBI: 0.0000 -> 0.5758 (boost 0.5758, better) | predicted_H: 1.0000 -> 0.8403 (deboost -0.1597, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 7 | 2 | 5 | 3 | 4 | predicted_RBI: 0.5758 -> 1.0000 (boost 0.4242, better) | predicted_R: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 5 | 1 | 4 | 1 | 4 | predicted_R: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_RBI: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 6 | 5 | 1 | 6 | 0 | predicted_H: 1.0000 -> 3.0000 (boost 2.0000, better) | predicted_SO: 1.0000 -> 0.0000 (deboost -1.0000, better) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_AVG: 0.2200 -> 0.3014 (boost 0.0814, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "664034",
"player_name": "Ty France",
"position": "1B",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.194,
"predicted_3B": 0.016,
"predicted_AB": 3.9,
"predicted_AVG": 0.31,
"predicted_BB": 0.287,
"predicted_H": 1.21,
"predicted_HR": 0.13,
"predicted_OBP": 0.368,
"predicted_R": 0.473,
"predicted_RBI": 0.51,
"predicted_SLG": 0.458,
"predicted_SO": 0.845
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1949,
"predicted_3B": 0.0134,
"predicted_AB": 3.7847,
"predicted_AVG": 0.3083,
"predicted_BB": 0.2965,
"predicted_H": 1.1675,
"predicted_HBP": 0.115,
"predicted_HR": 0.1187,
"predicted_OBP": 0.3709,
"predicted_R": 0.525,
"predicted_RBI": 0.4979,
"predicted_SLG": 0.455,
"predicted_SO": 0.8701
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.194,
"after": 0.1949,
"delta": 0.0009,
"percent_delta": 0.0046,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.016,
"after": 0.0134,
"delta": -0.0026,
"percent_delta": -0.1625,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.9,
"after": 3.7847,
"delta": -0.1153,
"percent_delta": -0.0296,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.31,
"after": 0.3083,
"delta": -0.0017,
"percent_delta": -0.0055,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.287,
"after": 0.2965,
"delta": 0.0095,
"percent_delta": 0.0331,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.21,
"after": 1.1675,
"delta": -0.0425,
"percent_delta": -0.0351,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.13,
"after": 0.1187,
"delta": -0.0113,
"percent_delta": -0.0869,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.368,
"after": 0.3709,
"delta": 0.0029,
"percent_delta": 0.0079,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.473,
"after": 0.525,
"delta": 0.052,
"percent_delta": 0.1099,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.51,
"after": 0.4979,
"delta": -0.0121,
"percent_delta": -0.0237,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.458,
"after": 0.455,
"delta": -0.003,
"percent_delta": -0.0066,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.845,
"after": 0.8701,
"delta": 0.0251,
"percent_delta": 0.0297,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.473,
"after": 0.525,
"delta": 0.052,
"percent_delta": 0.1099,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 3.9,
"after": 3.7847,
"delta": -0.1153,
"percent_delta": -0.0296,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 129
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1949,
"predicted_3B": 0.0134,
"predicted_AB": 3.7847,
"predicted_AVG": 0.3014,
"predicted_BB": 0.2947,
"predicted_H": 1.1409,
"predicted_HBP": 0.115,
"predicted_HR": 0.1153,
"predicted_OBP": 0.3519,
"predicted_R": 0.505,
"predicted_RBI": 0.4789,
"predicted_SLG": 0.4514,
"predicted_SO": 0.8754
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1949,
"after": 0.1949,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0134,
"after": 0.0134,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.7847,
"after": 3.7847,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.3083,
"after": 0.3014,
"delta": -0.0069,
"percent_delta": -0.0224,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.2965,
"after": 0.2947,
"delta": -0.0018,
"percent_delta": -0.0061,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.1675,
"after": 1.1409,
"delta": -0.0266,
"percent_delta": -0.0228,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.115,
"after": 0.115,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1187,
"after": 0.1153,
"delta": -0.0034,
"percent_delta": -0.0286,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3709,
"after": 0.3519,
"delta": -0.019,
"percent_delta": -0.0512,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.525,
"after": 0.505,
"delta": -0.02,
"percent_delta": -0.0381,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.4979,
"after": 0.4789,
"delta": -0.019,
"percent_delta": -0.0382,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.455,
"after": 0.4514,
"delta": -0.0036,
"percent_delta": -0.0079,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.8701,
"after": 0.8754,
"delta": 0.0053,
"percent_delta": 0.0061,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.3709,
"after": 0.3519,
"delta": -0.019,
"percent_delta": -0.0512,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=3.90), rates preserved: AVG=0.245 HR/AB=0.030",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1949,
"after": 0.0,
"delta": -0.1949,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0134,
"after": 0.0,
"delta": -0.0134,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.7847,
"after": 4.0,
"delta": 0.2153,
"percent_delta": 0.0569,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.2947,
"after": 0.0,
"delta": -0.2947,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.1409,
"after": 1.0,
"delta": -0.1409,
"percent_delta": -0.1235,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.115,
"after": 0.0,
"delta": -0.115,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1153,
"after": 0.0,
"delta": -0.1153,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.4789,
"after": 0.0,
"delta": -0.4789,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.8754,
"after": 1.0,
"delta": 0.1246,
"percent_delta": 0.1423,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 8,
"boosted_metrics": 2,
"deboosted_metrics": 6,
"better_metrics": 1,
"worse_metrics": 7,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.7847,
"after": 4.0,
"delta": 0.2153,
"percent_delta": 0.0569,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.4789,
"after": 0.0,
"delta": -0.4789,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.505,
"after": 1.0,
"delta": 0.495,
"percent_delta": 0.9802,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.505,
"after": 1.0,
"delta": 0.495,
"percent_delta": 0.9802,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1747,
"predicted_3B": 0.0113,
"predicted_BB": 0.2995,
"predicted_H": 0.8403,
"predicted_HR": 0.1514,
"predicted_RBI": 0.5758,
"predicted_SO": 1.2588
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1747,
"delta": 0.1747,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0113,
"delta": 0.0113,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.2995,
"delta": 0.2995,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.8403,
"delta": -0.1597,
"percent_delta": -0.1597,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1514,
"delta": 0.1514,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.5758,
"delta": 0.5758,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.2588,
"delta": 0.2588,
"percent_delta": 0.2588,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 5,
"deboosted_metrics": 1,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.5758,
"delta": 0.5758,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.8403,
"delta": -0.1597,
"percent_delta": -0.1597,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1747,
"after": 0.0,
"delta": -0.1747,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0113,
"after": 0.0,
"delta": -0.0113,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.2995,
"after": 0.0,
"delta": -0.2995,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8403,
"after": 1.0,
"delta": 0.1597,
"percent_delta": 0.1901,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1514,
"after": 0.0,
"delta": -0.1514,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.5758,
"after": 1.0,
"delta": 0.4242,
"percent_delta": 0.7367,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.2588,
"after": 1.0,
"delta": -0.2588,
"percent_delta": -0.2056,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 2,
"deboosted_metrics": 5,
"better_metrics": 3,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.5758,
"after": 1.0,
"delta": 0.4242,
"percent_delta": 0.7367,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.22,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.283,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.391,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.3014,
"after": 0.22,
"delta": -0.0814,
"percent_delta": -0.2701,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3519,
"after": 0.283,
"delta": -0.0689,
"percent_delta": -0.1958,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.4514,
"after": 0.391,
"delta": -0.0604,
"percent_delta": -0.1338,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 1,
"deboosted_metrics": 4,
"better_metrics": 1,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 1.0,
"predicted_3B": 1.0,
"predicted_AB": 5.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 3.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 5.0,
"delta": 1.0,
"percent_delta": 0.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 5,
"deboosted_metrics": 1,
"better_metrics": 6,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_H",
"before": 1.0,
"after": 3.0,
"delta": 2.0,
"percent_delta": 2.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 1.0,
"predicted_3B": 1.0,
"predicted_AB": 5.0,
"predicted_AVG": 0.3014,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_FB": 0.0,
"predicted_H": 3.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3519,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.4514,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.22,
"after": 0.3014,
"delta": 0.0814,
"percent_delta": 0.3702,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.283,
"after": 0.3519,
"delta": 0.0689,
"percent_delta": 0.2435,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.391,
"after": 0.4514,
"delta": 0.0604,
"percent_delta": 0.1546,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_AVG",
"before": 0.22,
"after": 0.3014,
"delta": 0.0814,
"percent_delta": 0.3702,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.194,
"after": 1.0,
"delta": 0.806,
"percent_delta": 4.1546,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.016,
"after": 1.0,
"delta": 0.984,
"percent_delta": 61.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AB",
"before": 3.9,
"after": 5.0,
"delta": 1.1,
"percent_delta": 0.2821,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.31,
"after": 0.3014,
"delta": -0.0086,
"percent_delta": -0.0277,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.287,
"after": 0.0,
"delta": -0.287,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.21,
"after": 3.0,
"delta": 1.79,
"percent_delta": 1.4793,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.13,
"after": 0.0,
"delta": -0.13,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.368,
"after": 0.3519,
"delta": -0.0161,
"percent_delta": -0.0438,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.473,
"after": 1.0,
"delta": 0.527,
"percent_delta": 1.1142,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.51,
"after": 1.0,
"delta": 0.49,
"percent_delta": 0.9608,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.458,
"after": 0.4514,
"delta": -0.0066,
"percent_delta": -0.0144,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.845,
"after": 0.0,
"delta": -0.845,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 12,
"boosted_metrics": 6,
"deboosted_metrics": 6,
"better_metrics": 7,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_H",
"before": 1.21,
"after": 3.0,
"delta": 1.79,
"percent_delta": 1.4793,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 0.845,
"after": 0.0,
"delta": -0.845,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.194 | - |
| predicted_3B | 0.016 | - |
| predicted_AB | 3.900 | - |
| predicted_AVG | 0.310 | - |
| predicted_BB | 0.287 | - |
| predicted_H | 1.210 | - |
| predicted_HR | 0.130 | - |
| predicted_OBP | 0.368 | - |
| predicted_R | 0.473 | - |
| predicted_RBI | 0.510 | - |
| predicted_SLG | 0.458 | - |
| predicted_SO | 0.845 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.195 | 0.001 |
| predicted_3B | 0.013 | -0.003 |
| predicted_AB | 3.785 | -0.115 |
| predicted_AVG | 0.308 | -0.002 |
| predicted_BB | 0.296 | 0.010 |
| predicted_H | 1.167 | -0.042 |
| predicted_HBP | 0.115 | - |
| predicted_HR | 0.119 | -0.011 |
| predicted_OBP | 0.371 | 0.003 |
| predicted_R | 0.525 | 0.052 |
| predicted_RBI | 0.498 | -0.012 |
| predicted_SLG | 0.455 | -0.003 |
| predicted_SO | 0.870 | 0.025 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.195 | 0.000 |
| predicted_3B | 0.013 | 0.000 |
| predicted_AB | 3.785 | 0.000 |
| predicted_AVG | 0.301 | -0.007 |
| predicted_BB | 0.295 | -0.002 |
| predicted_H | 1.141 | -0.027 |
| predicted_HBP | 0.115 | 0.000 |
| predicted_HR | 0.115 | -0.003 |
| predicted_OBP | 0.352 | -0.019 |
| predicted_R | 0.505 | -0.020 |
| predicted_RBI | 0.479 | -0.019 |
| predicted_SLG | 0.451 | -0.004 |
| predicted_SO | 0.875 | 0.005 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=3.90), rates preserved: AVG=0.245 HR/AB=0.030
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.175 | 0.175 |
| 3B | 0.011 | 0.011 |
| BB | 0.299 | 0.299 |
| H | 0.840 | -0.160 |
| HR | 0.151 | 0.151 |
| RBI | 0.576 | 0.576 |
| SO | 1.259 | 0.259 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.175 |
| 3B | 0.000 | -0.011 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -0.299 |
| H | 1.000 | 0.160 |
| HR | 0.000 | -0.151 |
| R | 0.000 | -1.000 |
| RBI | 1.000 | 0.424 |
| SO | 1.000 | -0.259 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.195 |
| predicted_3B | 0.000 | -0.013 |
| predicted_AB | 4.000 | 0.215 |
| predicted_AVG | 0.220 | -0.081 |
| predicted_BB | 0.000 | -0.295 |
| predicted_H | 1.000 | -0.141 |
| predicted_HR | 0.000 | -0.115 |
| predicted_OBP | 0.283 | -0.069 |
| predicted_R | 1.000 | 0.495 |
| predicted_RBI | 0.000 | -0.479 |
| predicted_SLG | 0.391 | -0.060 |
| predicted_SO | 1.000 | 0.125 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 1.000 |
| 3B | 1.000 | 1.000 |
| AB | 5.000 | 1.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 3.000 | 2.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | - |
| R | 1.000 | 1.000 |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 19.000 | 7.000 | 1.000 | 0.000 | 0.000 | 2.000 | 5.000 | 2.000 | 5.000 | 0.3684 | 0.4545 | 0.4211 | 0.3684 | 0.0000 | 0.1053 | 0.1053 | 0.2632 |
| last_10 | 0.20 | 10 | - | 39.000 | 11.000 | 2.000 | 0.000 | 0.000 | 3.000 | 6.000 | 3.000 | 10.000 | 0.2821 | 0.3488 | 0.3333 | 0.2821 | 0.0000 | 0.0769 | 0.0769 | 0.2564 |
| season | 0.60 | 129 | - | 448.000 | 134.000 | 25.000 | 2.000 | 21.000 | 72.000 | 61.000 | 37.000 | 109.000 | 0.2991 | 0.3636 | 0.5045 | 0.2991 | 0.0469 | 0.1607 | 0.0826 | 0.2433 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1960 |
| predicted_3B | 0.0100 |
| predicted_AB | 3.6340 |
| predicted_AVG | 0.3061 |
| predicted_BB | 0.3090 |
| predicted_H | 1.1120 |
| predicted_HBP | 0.1150 |
| predicted_HR | 0.1040 |
| predicted_OBP | 0.3747 |
| predicted_R | 0.5930 |
| predicted_RBI | 0.4820 |
| predicted_SLG | 0.4510 |
| predicted_SO | 0.9030 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1940 | 0.1960 | 0.1949 | model_form_blend |
| predicted_3B | 0.0160 | 0.0100 | 0.0134 | model_form_blend |
| predicted_AB | 3.9000 | 3.6340 | 3.7847 | model_form_blend |
| predicted_AVG | 0.3100 | 0.3061 | 0.3083 | model_form_blend |
| predicted_BB | 0.2870 | 0.3090 | 0.2965 | model_form_blend |
| predicted_H | 1.2100 | 1.1120 | 1.1675 | model_form_blend |
| predicted_HBP | - | 0.1150 | 0.1150 | form_only |
| predicted_HR | 0.1300 | 0.1040 | 0.1187 | model_form_blend |
| predicted_OBP | 0.3680 | 0.3747 | 0.3709 | model_form_blend |
| predicted_R | 0.4730 | 0.5930 | 0.5250 | model_form_blend |
| predicted_RBI | 0.5100 | 0.4820 | 0.4979 | model_form_blend |
| predicted_SLG | 0.4580 | 0.4510 | 0.4550 | model_form_blend |
| predicted_SO | 0.8450 | 0.9030 | 0.8701 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 479 |
| Season rows before report date | 479 |
| Report year | 2026 |
| Profile rows used | 129 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 5 |
| AB | 5 |
| H | 3 |
| 2B | 1 |
| 3B | 1 |
| HR | 0 |
| R | 1 |
| RBI | 1 |
| BB | 0 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 1 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.5 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 2 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 3 |
| Hitting_battingOrder | 4 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | 1B |
| gameID | 20260930_CHC@SD |
| game_type | full |
| mlbID | 664034 |
| playerID | 664034 |
| playerName | Ty France |
| pos | 1B |
| started | True |
| startingPosition | 1B |
| team | SD |
| teamID | 23 |
| game_date | 2026-09-30 |
| sl_k_percent | 21.6 |
| sl_bb_percent | 7.4 |
| sl_woba | 0.373 |
| sl_xwoba | 0.327 |
| sl_xba | 0.248 |
| sl_xslg | 0.421 |
| sl_sweet_spot_percent | 38.5 |
| sl_barrel_batted_rate | 9.1 |
| sl_hard_hit_percent | 47.4 |
| sl_exit_velocity_avg | 91.5 |
| sl_launch_angle_avg | 14.6 |
| sl_whiff_percent | 28.1 |
| sl_swing_percent | 54.3 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.201 | 0.000 | 1.000 | Hitting_2B | 0.214 | 0.000 | -0.214 | 0.000 |
| predicted_3B | 0.019 | 0.000 | 0.000 | Hitting_3B | 0.021 | 0.000 | -0.021 | 0.000 |
| predicted_AB | 4.960 | 4.000 | 4.000 | Hitting_AB | 4.045 | 4.000 | -0.045 | 0.000 |
| predicted_AVG | 0.282 | 0.500 | 0.250 | Hitting_AVG | 0.292 | 0.000 | 0.208 | 0.500 |
| predicted_BB | 0.396 | 1.000 | 0.000 | Hitting_BB | 0.411 | 0.000 | 0.589 | 1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.085 | 0.000 | -0.085 | 0.000 |
| predicted_H | 1.400 | 2.000 | 1.000 | Hitting_H | 1.182 | 0.000 | 0.818 | 2.000 |
| predicted_HR | 0.260 | 1.000 | 0.000 | Hitting_HR | 0.165 | 0.000 | 0.835 | 1.000 |
| predicted_OBP | 0.380 | 0.600 | 0.250 | Hitting_OBP | 0.361 | 0.000 | 0.239 | 0.600 |
| predicted_R | 0.616 | 1.000 | 1.000 | Hitting_R | 0.637 | 0.000 | 0.363 | 1.000 |
| predicted_RBI | 0.660 | 1.000 | 1.000 | Hitting_RBI | 0.552 | 0.000 | 0.448 | 1.000 |
| predicted_SLG | 0.547 | 1.250 | 0.500 | Hitting_SLG | 0.478 | 0.000 | 0.772 | 1.250 |
| predicted_SO | 0.830 | 1.000 | 1.000 | Hitting_SO | 0.844 | 1.000 | 0.156 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | boosted |
| Changed Metrics | 10 |
| Boosted Metrics | 6 |
| Deboosted Metrics | 4 |
| Better Metrics | 5 |
| Worse Metrics | 5 |
| Biggest Boost | predicted_HR: 0.2600 -> 1.0000 (boost 0.7400, better) |
| Biggest Deboost | predicted_AB: 4.9600 -> 4.0000 (deboost -0.9600, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 4 | 1 | 3 | 1 | 3 | predicted_AVG: 0.2820 -> 0.2942 (boost 0.0122, better) | predicted_AB: 4.9600 -> 4.4641 (deboost -0.4959, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 3 | 0 | 3 | 0 | 3 | - | predicted_SLG: 0.5363 -> 0.4896 (deboost -0.0467, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 1 | 6 | 0 | 7 | predicted_SO: 0.8210 -> 1.0000 (boost 0.1790, worse) | predicted_RBI: 0.5902 -> 0.0000 (deboost -0.5902, worse) | AB rounded to 4 (raw=4.96), rates preserved: AVG=0.215 HR/AB=0.046 |
| 6 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.6233 -> 1.0000 (boost 0.3767, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 5 | 1 | 4 | 2 | predicted_RBI: 0.0000 -> 0.5205 (boost 0.5205, better) | predicted_H: 1.0000 -> 0.8737 (deboost -0.1263, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 6 | 3 | 3 | 4 | 2 | predicted_2B: 0.1769 -> 1.0000 (boost 0.8231, better) | predicted_BB: 0.3635 -> 0.0000 (deboost -0.3635, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 5 | 0 | 5 | 0 | 5 | - | predicted_2B: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 4 | 4 | 0 | 4 | 0 | predicted_BB: 0.0000 -> 1.0000 (boost 1.0000, better) | - | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_SLG: 0.3820 -> 0.4896 (boost 0.1076, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "665487",
"player_name": "Fernando Tatis Jr.",
"position": "RF",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.201,
"predicted_3B": 0.019,
"predicted_AB": 4.96,
"predicted_AVG": 0.282,
"predicted_BB": 0.396,
"predicted_H": 1.4,
"predicted_HR": 0.26,
"predicted_OBP": 0.38,
"predicted_R": 0.616,
"predicted_RBI": 0.66,
"predicted_SLG": 0.547,
"predicted_SO": 0.83
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.2006,
"predicted_3B": 0.0155,
"predicted_AB": 4.4641,
"predicted_AVG": 0.2942,
"predicted_BB": 0.414,
"predicted_H": 1.3062,
"predicted_HBP": 0.045,
"predicted_HR": 0.2324,
"predicted_OBP": 0.3821,
"predicted_R": 0.648,
"predicted_RBI": 0.6136,
"predicted_SLG": 0.5363,
"predicted_SO": 0.816
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.201,
"after": 0.2006,
"delta": -0.0004,
"percent_delta": -0.002,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.019,
"after": 0.0155,
"delta": -0.0035,
"percent_delta": -0.1842,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.96,
"after": 4.4641,
"delta": -0.4959,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.282,
"after": 0.2942,
"delta": 0.0122,
"percent_delta": 0.0433,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.396,
"after": 0.414,
"delta": 0.018,
"percent_delta": 0.0455,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.4,
"after": 1.3062,
"delta": -0.0938,
"percent_delta": -0.067,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.26,
"after": 0.2324,
"delta": -0.0276,
"percent_delta": -0.1062,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.38,
"after": 0.3821,
"delta": 0.0021,
"percent_delta": 0.0055,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.616,
"after": 0.648,
"delta": 0.032,
"percent_delta": 0.0519,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.66,
"after": 0.6136,
"delta": -0.0464,
"percent_delta": -0.0703,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.547,
"after": 0.5363,
"delta": -0.0107,
"percent_delta": -0.0196,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.83,
"after": 0.816,
"delta": -0.014,
"percent_delta": -0.0169,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 1,
"deboosted_metrics": 3,
"better_metrics": 1,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_AVG",
"before": 0.282,
"after": 0.2942,
"delta": 0.0122,
"percent_delta": 0.0433,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.96,
"after": 4.4641,
"delta": -0.4959,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 159
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.2006,
"predicted_3B": 0.0155,
"predicted_AB": 4.4641,
"predicted_AVG": 0.2859,
"predicted_BB": 0.4115,
"predicted_H": 1.2764,
"predicted_HBP": 0.045,
"predicted_HR": 0.2258,
"predicted_OBP": 0.3462,
"predicted_R": 0.6233,
"predicted_RBI": 0.5902,
"predicted_SLG": 0.4896,
"predicted_SO": 0.821
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.2006,
"after": 0.2006,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0155,
"after": 0.0155,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.4641,
"after": 4.4641,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2942,
"after": 0.2859,
"delta": -0.0083,
"percent_delta": -0.0282,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.414,
"after": 0.4115,
"delta": -0.0025,
"percent_delta": -0.006,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.3062,
"after": 1.2764,
"delta": -0.0298,
"percent_delta": -0.0228,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.045,
"after": 0.045,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.2324,
"after": 0.2258,
"delta": -0.0066,
"percent_delta": -0.0284,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3821,
"after": 0.3462,
"delta": -0.0359,
"percent_delta": -0.094,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.648,
"after": 0.6233,
"delta": -0.0247,
"percent_delta": -0.0381,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.6136,
"after": 0.5902,
"delta": -0.0234,
"percent_delta": -0.0381,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.5363,
"after": 0.4896,
"delta": -0.0467,
"percent_delta": -0.0871,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.816,
"after": 0.821,
"delta": 0.005,
"percent_delta": 0.0061,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.5363,
"after": 0.4896,
"delta": -0.0467,
"percent_delta": -0.0871,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=4.96), rates preserved: AVG=0.215 HR/AB=0.046",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.2006,
"after": 0.0,
"delta": -0.2006,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0155,
"after": 0.0,
"delta": -0.0155,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.4641,
"after": 4.0,
"delta": -0.4641,
"percent_delta": -0.104,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.4115,
"after": 0.0,
"delta": -0.4115,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.2764,
"after": 1.0,
"delta": -0.2764,
"percent_delta": -0.2165,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.045,
"after": 0.0,
"delta": -0.045,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.2258,
"after": 0.0,
"delta": -0.2258,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.5902,
"after": 0.0,
"delta": -0.5902,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.821,
"after": 1.0,
"delta": 0.179,
"percent_delta": 0.218,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 1,
"deboosted_metrics": 6,
"better_metrics": 0,
"worse_metrics": 7,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.821,
"after": 1.0,
"delta": 0.179,
"percent_delta": 0.218,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.5902,
"after": 0.0,
"delta": -0.5902,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.6233,
"after": 1.0,
"delta": 0.3767,
"percent_delta": 0.6044,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.6233,
"after": 1.0,
"delta": 0.3767,
"percent_delta": 0.6044,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1769,
"predicted_3B": 0.0122,
"predicted_BB": 0.3635,
"predicted_H": 0.8737,
"predicted_HR": 0.1458,
"predicted_RBI": 0.5205,
"predicted_SO": 1.1428
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1769,
"delta": 0.1769,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0122,
"delta": 0.0122,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.3635,
"delta": 0.3635,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.8737,
"delta": -0.1263,
"percent_delta": -0.1263,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1458,
"delta": 0.1458,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.5205,
"delta": 0.5205,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.1428,
"delta": 0.1428,
"percent_delta": 0.1428,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 5,
"deboosted_metrics": 1,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.5205,
"delta": 0.5205,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.8737,
"delta": -0.1263,
"percent_delta": -0.1263,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 1.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1769,
"after": 1.0,
"delta": 0.8231,
"percent_delta": 4.6529,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0122,
"after": 0.0,
"delta": -0.0122,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.3635,
"after": 0.0,
"delta": -0.3635,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8737,
"after": 1.0,
"delta": 0.1263,
"percent_delta": 0.1446,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1458,
"after": 0.0,
"delta": -0.1458,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5205,
"after": 1.0,
"delta": 0.4795,
"percent_delta": 0.9212,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.1428,
"after": 1.0,
"delta": -0.1428,
"percent_delta": -0.125,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 3,
"deboosted_metrics": 3,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_2B",
"before": 0.1769,
"after": 1.0,
"delta": 0.8231,
"percent_delta": 4.6529,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.3635,
"after": 0.0,
"delta": -0.3635,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.221,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.292,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.382,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2859,
"after": 0.221,
"delta": -0.0649,
"percent_delta": -0.227,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3462,
"after": 0.292,
"delta": -0.0542,
"percent_delta": -0.1566,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.4896,
"after": 0.382,
"delta": -0.1076,
"percent_delta": -0.2198,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 0,
"deboosted_metrics": 5,
"better_metrics": 0,
"worse_metrics": 5,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_2B",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 2.0,
"predicted_HBP": 0.0,
"predicted_HR": 1.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 4,
"deboosted_metrics": 0,
"better_metrics": 4,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.2859,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 2.0,
"predicted_HBP": 0.0,
"predicted_HR": 1.0,
"predicted_OBP": 0.3462,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_RF": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.4896,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.221,
"after": 0.2859,
"delta": 0.0649,
"percent_delta": 0.2938,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"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_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.292,
"after": 0.3462,
"delta": 0.0542,
"percent_delta": 0.1856,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.382,
"after": 0.4896,
"delta": 0.1076,
"percent_delta": 0.2816,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.382,
"after": 0.4896,
"delta": 0.1076,
"percent_delta": 0.2816,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.201,
"after": 0.0,
"delta": -0.201,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.019,
"after": 0.0,
"delta": -0.019,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.96,
"after": 4.0,
"delta": -0.96,
"percent_delta": -0.1935,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.282,
"after": 0.2859,
"delta": 0.0039,
"percent_delta": 0.0138,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.396,
"after": 1.0,
"delta": 0.604,
"percent_delta": 1.5253,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.4,
"after": 2.0,
"delta": 0.6,
"percent_delta": 0.4286,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.26,
"after": 1.0,
"delta": 0.74,
"percent_delta": 2.8462,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.38,
"after": 0.3462,
"delta": -0.0338,
"percent_delta": -0.0889,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.616,
"after": 1.0,
"delta": 0.384,
"percent_delta": 0.6234,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.66,
"after": 1.0,
"delta": 0.34,
"percent_delta": 0.5152,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.547,
"after": 0.4896,
"delta": -0.0574,
"percent_delta": -0.1049,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.83,
"after": 1.0,
"delta": 0.17,
"percent_delta": 0.2048,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 10,
"boosted_metrics": 6,
"deboosted_metrics": 4,
"better_metrics": 5,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_HR",
"before": 0.26,
"after": 1.0,
"delta": 0.74,
"percent_delta": 2.8462,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.96,
"after": 4.0,
"delta": -0.96,
"percent_delta": -0.1935,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "boosted"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.201 | - |
| predicted_3B | 0.019 | - |
| predicted_AB | 4.960 | - |
| predicted_AVG | 0.282 | - |
| predicted_BB | 0.396 | - |
| predicted_H | 1.400 | - |
| predicted_HR | 0.260 | - |
| predicted_OBP | 0.380 | - |
| predicted_R | 0.616 | - |
| predicted_RBI | 0.660 | - |
| predicted_SLG | 0.547 | - |
| predicted_SO | 0.830 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.201 | -0.000 |
| predicted_3B | 0.015 | -0.003 |
| predicted_AB | 4.464 | -0.496 |
| predicted_AVG | 0.294 | 0.012 |
| predicted_BB | 0.414 | 0.018 |
| predicted_H | 1.306 | -0.094 |
| predicted_HBP | 0.045 | - |
| predicted_HR | 0.232 | -0.028 |
| predicted_OBP | 0.382 | 0.002 |
| predicted_R | 0.648 | 0.032 |
| predicted_RBI | 0.614 | -0.046 |
| predicted_SLG | 0.536 | -0.011 |
| predicted_SO | 0.816 | -0.014 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.201 | 0.000 |
| predicted_3B | 0.015 | 0.000 |
| predicted_AB | 4.464 | 0.000 |
| predicted_AVG | 0.286 | -0.008 |
| predicted_BB | 0.411 | -0.003 |
| predicted_H | 1.276 | -0.030 |
| predicted_HBP | 0.045 | 0.000 |
| predicted_HR | 0.226 | -0.007 |
| predicted_OBP | 0.346 | -0.036 |
| predicted_R | 0.623 | -0.025 |
| predicted_RBI | 0.590 | -0.023 |
| predicted_SLG | 0.490 | -0.047 |
| predicted_SO | 0.821 | 0.005 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=4.96), rates preserved: AVG=0.215 HR/AB=0.046
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.177 | 0.177 |
| 3B | 0.012 | 0.012 |
| BB | 0.363 | 0.363 |
| H | 0.874 | -0.126 |
| HR | 0.146 | 0.146 |
| RBI | 0.520 | 0.520 |
| SO | 1.143 | 0.143 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 0.823 |
| 3B | 0.000 | -0.012 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -0.363 |
| H | 1.000 | 0.126 |
| HR | 0.000 | -0.146 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.480 |
| SO | 1.000 | -0.143 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.201 |
| predicted_3B | 0.000 | -0.015 |
| predicted_AB | 4.000 | -0.464 |
| predicted_AVG | 0.221 | -0.065 |
| predicted_BB | 0.000 | -0.411 |
| predicted_H | 1.000 | -0.276 |
| predicted_HR | 0.000 | -0.226 |
| predicted_OBP | 0.292 | -0.054 |
| predicted_R | 1.000 | 0.377 |
| predicted_RBI | 0.000 | -0.590 |
| predicted_SLG | 0.382 | -0.108 |
| predicted_SO | 1.000 | 0.179 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -1.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 1.000 |
| CS | 0.000 | 0.000 |
| H | 2.000 | 1.000 |
| HBP | 0.000 | 0.000 |
| HR | 1.000 | 1.000 |
| PA | 5.000 | - |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 17.000 | 6.000 | 1.000 | 0.000 | 1.000 | 3.000 | 4.000 | 3.000 | 3.000 | 0.3529 | 0.4500 | 0.5882 | 0.3529 | 0.0588 | 0.1765 | 0.1765 | 0.1765 |
| last_10 | 0.20 | 10 | - | 38.000 | 13.000 | 2.000 | 0.000 | 3.000 | 6.000 | 8.000 | 4.000 | 9.000 | 0.3421 | 0.4186 | 0.6316 | 0.3421 | 0.0790 | 0.1579 | 0.1053 | 0.2368 |
| season | 0.60 | 159 | - | 633.000 | 183.000 | 32.000 | 3.000 | 26.000 | 83.000 | 98.000 | 63.000 | 132.000 | 0.2891 | 0.3573 | 0.4724 | 0.2891 | 0.0411 | 0.1311 | 0.0995 | 0.2085 |
| Metric | Value |
|---|---|
| predicted_2B | 0.2000 |
| predicted_3B | 0.0110 |
| predicted_AB | 3.8280 |
| predicted_AVG | 0.3098 |
| predicted_BB | 0.4370 |
| predicted_H | 1.1860 |
| predicted_HBP | 0.0450 |
| predicted_HR | 0.1970 |
| predicted_OBP | 0.3847 |
| predicted_R | 0.6890 |
| predicted_RBI | 0.5540 |
| predicted_SLG | 0.5225 |
| predicted_SO | 0.7980 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.2010 | 0.2000 | 0.2006 | model_form_blend |
| predicted_3B | 0.0190 | 0.0110 | 0.0155 | model_form_blend |
| predicted_AB | 4.9600 | 3.8280 | 4.4641 | model_form_blend |
| predicted_AVG | 0.2820 | 0.3098 | 0.2942 | model_form_blend |
| predicted_BB | 0.3960 | 0.4370 | 0.4140 | model_form_blend |
| predicted_H | 1.4000 | 1.1860 | 1.3062 | model_form_blend |
| predicted_HBP | - | 0.0450 | 0.0450 | form_only |
| predicted_HR | 0.2600 | 0.1970 | 0.2324 | model_form_blend |
| predicted_OBP | 0.3800 | 0.3847 | 0.3821 | model_form_blend |
| predicted_R | 0.6160 | 0.6890 | 0.6480 | model_form_blend |
| predicted_RBI | 0.6600 | 0.5540 | 0.6136 | model_form_blend |
| predicted_SLG | 0.5470 | 0.5225 | 0.5363 | model_form_blend |
| predicted_SO | 0.8300 | 0.7980 | 0.8160 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 672 |
| Season rows before report date | 672 |
| Report year | 2026 |
| Profile rows used | 159 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 5 |
| AB | 4 |
| H | 2 |
| 2B | 0 |
| 3B | 0 |
| HR | 1 |
| R | 1 |
| RBI | 1 |
| BB | 1 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 1 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | RF |
| gameID | 20260930_CHC@SD |
| game_type | full |
| mlbID | 665487 |
| playerID | 665487 |
| playerName | Fernando Tatis Jr. |
| pos | RF |
| started | True |
| startingPosition | RF |
| team | SD |
| teamID | 23 |
| game_date | 2026-09-30 |
| sl_k_percent | 18.5 |
| sl_bb_percent | 9.1 |
| sl_woba | 0.358 |
| sl_xwoba | 0.379 |
| sl_xba | 0.296 |
| sl_xslg | 0.5 |
| sl_sweet_spot_percent | 32.2 |
| sl_barrel_batted_rate | 12.7 |
| sl_hard_hit_percent | 53.9 |
| sl_exit_velocity_avg | 92.9 |
| sl_launch_angle_avg | 5.3 |
| sl_whiff_percent | 25.9 |
| sl_swing_percent | 46.1 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.169 | 0.000 | 0.000 | Hitting_2B | 0.188 | 0.000 | -0.188 | 0.000 |
| predicted_3B | 0.000 | 0.000 | 0.000 | Hitting_3B | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_AB | 3.085 | 3.000 | 4.000 | Hitting_AB | 3.291 | 4.000 | -0.291 | -1.000 |
| predicted_AVG | 0.265 | 0.333 | 0.250 | Hitting_AVG | 0.262 | 0.250 | 0.071 | 0.083 |
| predicted_BB | 0.408 | 1.000 | 1.000 | Hitting_BB | 0.427 | 0.000 | 0.573 | 1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_H | 0.817 | 1.000 | 1.000 | Hitting_H | 0.863 | 1.000 | 0.137 | 0.000 |
| predicted_HR | 0.113 | 0.000 | 0.000 | Hitting_HR | 0.120 | 0.000 | -0.120 | 0.000 |
| predicted_OBP | 0.351 | 0.500 | 0.400 | Hitting_OBP | 0.356 | 0.250 | 0.144 | 0.250 |
| predicted_R | 0.352 | 1.000 | 0.000 | Hitting_R | 0.355 | 1.000 | 0.645 | 0.000 |
| predicted_RBI | 0.423 | 0.000 | 0.000 | Hitting_RBI | 0.474 | 0.000 | -0.474 | 0.000 |
| predicted_SLG | 0.429 | 0.333 | 0.250 | Hitting_SLG | 0.429 | 0.250 | -0.095 | 0.083 |
| predicted_SO | 0.746 | 0.000 | 1.000 | Hitting_SO | 0.803 | 0.000 | -0.803 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 11 |
| Boosted Metrics | 3 |
| Deboosted Metrics | 8 |
| Better Metrics | 4 |
| Worse Metrics | 7 |
| Biggest Boost | predicted_R: 0.3520 -> 1.0000 (boost 0.6480, better) |
| Biggest Deboost | predicted_SO: 0.7460 -> 0.0000 (deboost -0.7460, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 4 | 1 | 3 | 1 | 3 | predicted_AB: 3.0850 -> 3.2014 (boost 0.1164, better) | predicted_SLG: 0.4290 -> 0.4007 (deboost -0.0283, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 3 | 0 | 3 | 0 | 3 | - | predicted_SLG: 0.4007 -> 0.3910 (deboost -0.0097, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 3 | 4 | 2 | 5 | predicted_AB: 3.2014 -> 4.0000 (boost 0.7986, better) | predicted_BB: 0.4089 -> 0.0000 (deboost -0.4089, worse) | AB rounded to 4 (raw=3.20), rates preserved: AVG=0.208 HR/AB=0.032 |
| 6 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.3664 -> 0.0000 (deboost -0.3664, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 5 | 1 | 4 | 2 | predicted_RBI: 0.0000 -> 0.4627 (boost 0.4627, better) | predicted_H: 1.0000 -> 0.7150 (deboost -0.2850, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 6 | 2 | 4 | 3 | 3 | predicted_BB: 0.3851 -> 1.0000 (boost 0.6149, better) | predicted_RBI: 0.4627 -> 0.0000 (deboost -0.4627, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 4 | 0 | 4 | 0 | 4 | - | predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 4 | 2 | 2 | 3 | 1 | predicted_BB: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_AB: 4.0000 -> 3.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_OBP: 0.2880 -> 0.3343 (boost 0.0463, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "669134",
"player_name": "Luis Campusano",
"position": "DH",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.169,
"predicted_3B": 0.0,
"predicted_AB": 3.085,
"predicted_AVG": 0.265,
"predicted_BB": 0.408,
"predicted_H": 0.817,
"predicted_HR": 0.113,
"predicted_OBP": 0.351,
"predicted_R": 0.352,
"predicted_RBI": 0.423,
"predicted_SLG": 0.429,
"predicted_SO": 0.746
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1468,
"predicted_3B": 0.0004,
"predicted_AB": 3.2014,
"predicted_AVG": 0.2556,
"predicted_BB": 0.4114,
"predicted_H": 0.8166,
"predicted_HBP": 0.028,
"predicted_HR": 0.105,
"predicted_OBP": 0.3422,
"predicted_R": 0.3809,
"predicted_RBI": 0.3962,
"predicted_SLG": 0.4007,
"predicted_SO": 0.7246
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.169,
"after": 0.1468,
"delta": -0.0222,
"percent_delta": -0.1314,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0004,
"delta": 0.0004,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.085,
"after": 3.2014,
"delta": 0.1164,
"percent_delta": 0.0377,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.265,
"after": 0.2556,
"delta": -0.0094,
"percent_delta": -0.0355,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.408,
"after": 0.4114,
"delta": 0.0034,
"percent_delta": 0.0083,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.817,
"after": 0.8166,
"delta": -0.0004,
"percent_delta": -0.0005,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.113,
"after": 0.105,
"delta": -0.008,
"percent_delta": -0.0708,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.351,
"after": 0.3422,
"delta": -0.0088,
"percent_delta": -0.0251,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.352,
"after": 0.3809,
"delta": 0.0289,
"percent_delta": 0.0821,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.423,
"after": 0.3962,
"delta": -0.0268,
"percent_delta": -0.0634,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.429,
"after": 0.4007,
"delta": -0.0283,
"percent_delta": -0.066,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.746,
"after": 0.7246,
"delta": -0.0214,
"percent_delta": -0.0287,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 1,
"deboosted_metrics": 3,
"better_metrics": 1,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.085,
"after": 3.2014,
"delta": 0.1164,
"percent_delta": 0.0377,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.429,
"after": 0.4007,
"delta": -0.0283,
"percent_delta": -0.066,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 71
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1468,
"predicted_3B": 0.0004,
"predicted_AB": 3.2014,
"predicted_AVG": 0.2493,
"predicted_BB": 0.4089,
"predicted_H": 0.798,
"predicted_HBP": 0.028,
"predicted_HR": 0.102,
"predicted_OBP": 0.3343,
"predicted_R": 0.3664,
"predicted_RBI": 0.3811,
"predicted_SLG": 0.391,
"predicted_SO": 0.729
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1468,
"after": 0.1468,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0004,
"after": 0.0004,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.2014,
"after": 3.2014,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2556,
"after": 0.2493,
"delta": -0.0063,
"percent_delta": -0.0246,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.4114,
"after": 0.4089,
"delta": -0.0025,
"percent_delta": -0.0061,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.8166,
"after": 0.798,
"delta": -0.0186,
"percent_delta": -0.0228,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.028,
"after": 0.028,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.105,
"after": 0.102,
"delta": -0.003,
"percent_delta": -0.0286,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3422,
"after": 0.3343,
"delta": -0.0079,
"percent_delta": -0.0231,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.3809,
"after": 0.3664,
"delta": -0.0145,
"percent_delta": -0.0381,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.3962,
"after": 0.3811,
"delta": -0.0151,
"percent_delta": -0.0381,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4007,
"after": 0.391,
"delta": -0.0097,
"percent_delta": -0.0242,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.7246,
"after": 0.729,
"delta": 0.0044,
"percent_delta": 0.0061,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.4007,
"after": 0.391,
"delta": -0.0097,
"percent_delta": -0.0242,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=3.20), rates preserved: AVG=0.208 HR/AB=0.032",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1468,
"after": 0.0,
"delta": -0.1468,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0004,
"after": 0.0,
"delta": -0.0004,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.2014,
"after": 4.0,
"delta": 0.7986,
"percent_delta": 0.2495,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.4089,
"after": 0.0,
"delta": -0.4089,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.798,
"after": 1.0,
"delta": 0.202,
"percent_delta": 0.2531,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.028,
"after": 0.0,
"delta": -0.028,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.102,
"after": 0.0,
"delta": -0.102,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.3811,
"after": 0.0,
"delta": -0.3811,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.729,
"after": 1.0,
"delta": 0.271,
"percent_delta": 0.3717,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 3,
"deboosted_metrics": 4,
"better_metrics": 2,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.2014,
"after": 4.0,
"delta": 0.7986,
"percent_delta": 0.2495,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.4089,
"after": 0.0,
"delta": -0.4089,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.3664,
"after": 0.0,
"delta": -0.3664,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_R",
"before": 0.3664,
"after": 0.0,
"delta": -0.3664,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1554,
"predicted_3B": 0.0079,
"predicted_BB": 0.3851,
"predicted_H": 0.715,
"predicted_HR": 0.1148,
"predicted_RBI": 0.4627,
"predicted_SO": 1.1419
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1554,
"delta": 0.1554,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0079,
"delta": 0.0079,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.3851,
"delta": 0.3851,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.715,
"delta": -0.285,
"percent_delta": -0.285,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1148,
"delta": 0.1148,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.4627,
"delta": 0.4627,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.1419,
"delta": 0.1419,
"percent_delta": 0.1419,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 5,
"deboosted_metrics": 1,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.4627,
"delta": 0.4627,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.715,
"delta": -0.285,
"percent_delta": -0.285,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1554,
"after": 0.0,
"delta": -0.1554,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0079,
"after": 0.0,
"delta": -0.0079,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.3851,
"after": 1.0,
"delta": 0.6149,
"percent_delta": 1.5967,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.715,
"after": 1.0,
"delta": 0.285,
"percent_delta": 0.3986,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1148,
"after": 0.0,
"delta": -0.1148,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.4627,
"after": 0.0,
"delta": -0.4627,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.1419,
"after": 1.0,
"delta": -0.1419,
"percent_delta": -0.1243,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 2,
"deboosted_metrics": 4,
"better_metrics": 3,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.3851,
"after": 1.0,
"delta": 0.6149,
"percent_delta": 1.5967,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.4627,
"after": 0.0,
"delta": -0.4627,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.204,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.288,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.351,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2493,
"after": 0.204,
"delta": -0.0453,
"percent_delta": -0.1817,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3343,
"after": 0.288,
"delta": -0.0463,
"percent_delta": -0.1385,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.391,
"after": 0.351,
"delta": -0.04,
"percent_delta": -0.1023,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 0,
"deboosted_metrics": 4,
"better_metrics": 0,
"worse_metrics": 4,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 2,
"deboosted_metrics": 2,
"better_metrics": 3,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.2493,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_DH": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3343,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.391,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.204,
"after": 0.2493,
"delta": 0.0453,
"percent_delta": 0.2219,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.288,
"after": 0.3343,
"delta": 0.0463,
"percent_delta": 0.1607,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.351,
"after": 0.391,
"delta": 0.04,
"percent_delta": 0.1139,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_OBP",
"before": 0.288,
"after": 0.3343,
"delta": 0.0463,
"percent_delta": 0.1607,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.169,
"after": 0.0,
"delta": -0.169,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.085,
"after": 3.0,
"delta": -0.085,
"percent_delta": -0.0276,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.265,
"after": 0.2493,
"delta": -0.0157,
"percent_delta": -0.0592,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.408,
"after": 1.0,
"delta": 0.592,
"percent_delta": 1.451,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.817,
"after": 1.0,
"delta": 0.183,
"percent_delta": 0.224,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.113,
"after": 0.0,
"delta": -0.113,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.351,
"after": 0.3343,
"delta": -0.0167,
"percent_delta": -0.0476,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.352,
"after": 1.0,
"delta": 0.648,
"percent_delta": 1.8409,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.423,
"after": 0.0,
"delta": -0.423,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.429,
"after": 0.391,
"delta": -0.038,
"percent_delta": -0.0886,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.746,
"after": 0.0,
"delta": -0.746,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 11,
"boosted_metrics": 3,
"deboosted_metrics": 8,
"better_metrics": 4,
"worse_metrics": 7,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.352,
"after": 1.0,
"delta": 0.648,
"percent_delta": 1.8409,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 0.746,
"after": 0.0,
"delta": -0.746,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.169 | - |
| predicted_3B | 0.000 | - |
| predicted_AB | 3.085 | - |
| predicted_AVG | 0.265 | - |
| predicted_BB | 0.408 | - |
| predicted_H | 0.817 | - |
| predicted_HR | 0.113 | - |
| predicted_OBP | 0.351 | - |
| predicted_R | 0.352 | - |
| predicted_RBI | 0.423 | - |
| predicted_SLG | 0.429 | - |
| predicted_SO | 0.746 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.147 | -0.022 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 3.201 | 0.116 |
| predicted_AVG | 0.256 | -0.009 |
| predicted_BB | 0.411 | 0.003 |
| predicted_H | 0.817 | -0.000 |
| predicted_HBP | 0.028 | - |
| predicted_HR | 0.105 | -0.008 |
| predicted_OBP | 0.342 | -0.009 |
| predicted_R | 0.381 | 0.029 |
| predicted_RBI | 0.396 | -0.027 |
| predicted_SLG | 0.401 | -0.028 |
| predicted_SO | 0.725 | -0.021 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.147 | 0.000 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 3.201 | 0.000 |
| predicted_AVG | 0.249 | -0.006 |
| predicted_BB | 0.409 | -0.003 |
| predicted_H | 0.798 | -0.019 |
| predicted_HBP | 0.028 | 0.000 |
| predicted_HR | 0.102 | -0.003 |
| predicted_OBP | 0.334 | -0.008 |
| predicted_R | 0.366 | -0.015 |
| predicted_RBI | 0.381 | -0.015 |
| predicted_SLG | 0.391 | -0.010 |
| predicted_SO | 0.729 | 0.004 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=3.20), rates preserved: AVG=0.208 HR/AB=0.032
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.155 | 0.155 |
| 3B | 0.008 | 0.008 |
| BB | 0.385 | 0.385 |
| H | 0.715 | -0.285 |
| HR | 0.115 | 0.115 |
| RBI | 0.463 | 0.463 |
| SO | 1.142 | 0.142 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.155 |
| 3B | 0.000 | -0.008 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 0.615 |
| H | 1.000 | 0.285 |
| HR | 0.000 | -0.115 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -0.463 |
| SO | 1.000 | -0.142 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.147 |
| predicted_3B | 0.000 | -0.000 |
| predicted_AB | 4.000 | 0.799 |
| predicted_AVG | 0.204 | -0.045 |
| predicted_BB | 0.000 | -0.409 |
| predicted_H | 1.000 | 0.202 |
| predicted_HR | 0.000 | -0.102 |
| predicted_OBP | 0.288 | -0.046 |
| predicted_R | 0.000 | -0.366 |
| predicted_RBI | 0.000 | -0.381 |
| predicted_SLG | 0.351 | -0.040 |
| predicted_SO | 1.000 | 0.271 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | -1.000 |
| BB | 1.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 1.000 | 1.000 |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 17.000 | 4.000 | 0.000 | 0.000 | 0.000 | 1.000 | 3.000 | 3.000 | 2.000 | 0.2353 | 0.3500 | 0.2353 | 0.2353 | 0.0000 | 0.0588 | 0.1765 | 0.1177 |
| last_10 | 0.20 | 10 | - | 39.000 | 7.000 | 0.000 | 0.000 | 1.000 | 2.000 | 4.000 | 3.000 | 7.000 | 0.1795 | 0.2381 | 0.2564 | 0.1795 | 0.0256 | 0.0513 | 0.0769 | 0.1795 |
| season | 0.60 | 71 | - | 219.000 | 58.000 | 12.000 | 0.000 | 8.000 | 30.000 | 25.000 | 29.000 | 53.000 | 0.2648 | 0.3586 | 0.4292 | 0.2648 | 0.0365 | 0.1370 | 0.1324 | 0.2420 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1160 |
| predicted_3B | 0.0010 |
| predicted_AB | 3.3630 |
| predicted_AVG | 0.2425 |
| predicted_BB | 0.4160 |
| predicted_H | 0.8160 |
| predicted_HBP | 0.0280 |
| predicted_HR | 0.0940 |
| predicted_OBP | 0.3299 |
| predicted_R | 0.4210 |
| predicted_RBI | 0.3590 |
| predicted_SLG | 0.3614 |
| predicted_SO | 0.6950 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1690 | 0.1160 | 0.1468 | model_form_blend |
| predicted_3B | 0.0000 | 0.0010 | 0.0004 | model_form_blend |
| predicted_AB | 3.0850 | 3.3630 | 3.2014 | model_form_blend |
| predicted_AVG | 0.2650 | 0.2425 | 0.2556 | model_form_blend |
| predicted_BB | 0.4080 | 0.4160 | 0.4114 | model_form_blend |
| predicted_H | 0.8170 | 0.8160 | 0.8166 | model_form_blend |
| predicted_HBP | - | 0.0280 | 0.0280 | form_only |
| predicted_HR | 0.1130 | 0.0940 | 0.1050 | model_form_blend |
| predicted_OBP | 0.3510 | 0.3299 | 0.3422 | model_form_blend |
| predicted_R | 0.3520 | 0.4210 | 0.3809 | model_form_blend |
| predicted_RBI | 0.4230 | 0.3590 | 0.3962 | model_form_blend |
| predicted_SLG | 0.4290 | 0.3614 | 0.4007 | model_form_blend |
| predicted_SO | 0.7460 | 0.6950 | 0.7246 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 234 |
| Season rows before report date | 234 |
| Report year | 2026 |
| Profile rows used | 71 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 3 |
| H | 1 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 1 |
| RBI | 0 |
| BB | 1 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.25 |
| Hitting_BB | 0 |
| Hitting_GIDP | 1 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 1 |
| Hitting_battingOrder | 9 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | C |
| gameID | 20260929_CHC@SD |
| game_type | full |
| mlbID | 669134 |
| playerID | 669134 |
| playerName | Luis Campusano |
| pos | C |
| started | True |
| startingPosition | C |
| team | SD |
| teamID | 23 |
| game_date | 2026-09-29 |
| sl_k_percent | 21.4 |
| sl_bb_percent | 12.1 |
| sl_woba | 0.353 |
| sl_xwoba | 0.327 |
| sl_xba | 0.239 |
| sl_xslg | 0.391 |
| sl_sweet_spot_percent | 37.7 |
| sl_barrel_batted_rate | 8.1 |
| sl_hard_hit_percent | 37.7 |
| sl_exit_velocity_avg | 87.3 |
| sl_launch_angle_avg | 16.3 |
| sl_whiff_percent | 26.0 |
| sl_swing_percent | 46.6 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.164 | 0.000 | 0.000 | Hitting_2B | 0.170 | 0.000 | -0.170 | 0.000 |
| predicted_3B | 0.031 | 0.000 | 0.000 | Hitting_3B | 0.036 | 0.000 | -0.036 | 0.000 |
| predicted_AB | 4.500 | 4.000 | 4.000 | Hitting_AB | 4.000 | 3.000 | 0.000 | 1.000 |
| predicted_AVG | 0.334 | 0.000 | 0.250 | Hitting_AVG | 0.265 | 0.667 | -0.265 | -0.667 |
| predicted_BB | 0.264 | 1.000 | 0.000 | Hitting_BB | 0.277 | 1.000 | 0.723 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.026 | 1.000 | -0.026 | -1.000 |
| predicted_H | 1.500 | 0.000 | 1.000 | Hitting_H | 1.061 | 2.000 | -1.061 | -2.000 |
| predicted_HR | 0.150 | 0.000 | 0.000 | Hitting_HR | 0.176 | 0.000 | -0.176 | 0.000 |
| predicted_OBP | 0.367 | 0.200 | 0.250 | Hitting_OBP | 0.315 | 0.750 | -0.115 | -0.550 |
| predicted_R | 0.547 | 0.000 | 1.000 | Hitting_R | 0.579 | 1.000 | -0.579 | -1.000 |
| predicted_RBI | 0.620 | 0.000 | 1.000 | Hitting_RBI | 0.606 | 0.000 | -0.606 | 0.000 |
| predicted_SLG | 0.446 | 0.000 | 0.250 | Hitting_SLG | 0.458 | 0.667 | -0.458 | -0.667 |
| predicted_SO | 1.019 | 1.000 | 2.000 | Hitting_SO | 1.012 | 1.000 | -0.012 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 10 |
| Boosted Metrics | 2 |
| Deboosted Metrics | 8 |
| Better Metrics | 2 |
| Worse Metrics | 8 |
| Biggest Boost | predicted_BB: 0.2640 -> 1.0000 (boost 0.7360, better) |
| Biggest Deboost | predicted_H: 1.5000 -> 0.0000 (deboost -1.5000, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 4 | 1 | 3 | 1 | 3 | predicted_R: 0.5470 -> 0.6017 (boost 0.0547, better) | predicted_AB: 4.5000 -> 4.1767 (deboost -0.3233, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 2 | 1 | 1 | 1 | 1 | predicted_SLG: 0.4478 -> 0.4604 (boost 0.0126, better) | predicted_AVG: 0.3217 -> 0.3151 (deboost -0.0066, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 0 | 7 | 1 | 6 | - | predicted_RBI: 0.5606 -> 0.0000 (deboost -0.5606, worse) | AB rounded to 4 (raw=4.50), rates preserved: AVG=0.245 HR/AB=0.029 |
| 6 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5788 -> 1.0000 (boost 0.4212, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 5 | 1 | 4 | 2 | predicted_RBI: 0.0000 -> 0.5432 (boost 0.5432, better) | predicted_H: 1.0000 -> 0.8068 (deboost -0.1932, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 6 | 3 | 3 | 2 | 4 | predicted_SO: 1.3669 -> 2.0000 (boost 0.6331, worse) | predicted_BB: 0.2823 -> 0.0000 (deboost -0.2823, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 5 | 0 | 5 | 1 | 4 | - | predicted_RBI: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 3 | 1 | 2 | 1 | 2 | predicted_BB: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_AVG: 0.2110 -> 0.3151 (boost 0.1041, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "701538",
"player_name": "Jackson Merrill",
"position": "CF",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.164,
"predicted_3B": 0.031,
"predicted_AB": 4.5,
"predicted_AVG": 0.334,
"predicted_BB": 0.264,
"predicted_H": 1.5,
"predicted_HR": 0.15,
"predicted_OBP": 0.367,
"predicted_R": 0.547,
"predicted_RBI": 0.62,
"predicted_SLG": 0.446,
"predicted_SO": 1.019
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1623,
"predicted_3B": 0.0253,
"predicted_AB": 4.1767,
"predicted_AVG": 0.3217,
"predicted_BB": 0.2802,
"predicted_H": 1.3469,
"predicted_HBP": 0.012,
"predicted_HR": 0.1351,
"predicted_OBP": 0.3627,
"predicted_R": 0.6017,
"predicted_RBI": 0.5828,
"predicted_SLG": 0.4478,
"predicted_SO": 1.0579
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.164,
"after": 0.1623,
"delta": -0.0017,
"percent_delta": -0.0104,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.031,
"after": 0.0253,
"delta": -0.0057,
"percent_delta": -0.1839,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.5,
"after": 4.1767,
"delta": -0.3233,
"percent_delta": -0.0718,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.334,
"after": 0.3217,
"delta": -0.0123,
"percent_delta": -0.0368,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.264,
"after": 0.2802,
"delta": 0.0162,
"percent_delta": 0.0614,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.5,
"after": 1.3469,
"delta": -0.1531,
"percent_delta": -0.1021,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.15,
"after": 0.1351,
"delta": -0.0149,
"percent_delta": -0.0993,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.367,
"after": 0.3627,
"delta": -0.0043,
"percent_delta": -0.0117,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.547,
"after": 0.6017,
"delta": 0.0547,
"percent_delta": 0.1,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.62,
"after": 0.5828,
"delta": -0.0372,
"percent_delta": -0.06,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.446,
"after": 0.4478,
"delta": 0.0018,
"percent_delta": 0.004,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.019,
"after": 1.0579,
"delta": 0.0389,
"percent_delta": 0.0382,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 1,
"deboosted_metrics": 3,
"better_metrics": 1,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.547,
"after": 0.6017,
"delta": 0.0547,
"percent_delta": 0.1,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.5,
"after": 4.1767,
"delta": -0.3233,
"percent_delta": -0.0718,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 159
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1623,
"predicted_3B": 0.0253,
"predicted_AB": 4.1767,
"predicted_AVG": 0.3151,
"predicted_BB": 0.2785,
"predicted_H": 1.3162,
"predicted_HBP": 0.012,
"predicted_HR": 0.1313,
"predicted_OBP": 0.3579,
"predicted_R": 0.5788,
"predicted_RBI": 0.5606,
"predicted_SLG": 0.4604,
"predicted_SO": 1.0644
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1623,
"after": 0.1623,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0253,
"after": 0.0253,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.1767,
"after": 4.1767,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.3217,
"after": 0.3151,
"delta": -0.0066,
"percent_delta": -0.0205,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.2802,
"after": 0.2785,
"delta": -0.0017,
"percent_delta": -0.0061,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.3469,
"after": 1.3162,
"delta": -0.0307,
"percent_delta": -0.0228,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.012,
"after": 0.012,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1351,
"after": 0.1313,
"delta": -0.0038,
"percent_delta": -0.0281,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3627,
"after": 0.3579,
"delta": -0.0048,
"percent_delta": -0.0132,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.6017,
"after": 0.5788,
"delta": -0.0229,
"percent_delta": -0.0381,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5828,
"after": 0.5606,
"delta": -0.0222,
"percent_delta": -0.0381,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4478,
"after": 0.4604,
"delta": 0.0126,
"percent_delta": 0.0281,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0579,
"after": 1.0644,
"delta": 0.0065,
"percent_delta": 0.0061,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.4478,
"after": 0.4604,
"delta": 0.0126,
"percent_delta": 0.0281,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AVG",
"before": 0.3217,
"after": 0.3151,
"delta": -0.0066,
"percent_delta": -0.0205,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=4.50), rates preserved: AVG=0.245 HR/AB=0.029",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1623,
"after": 0.0,
"delta": -0.1623,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0253,
"after": 0.0,
"delta": -0.0253,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.1767,
"after": 4.0,
"delta": -0.1767,
"percent_delta": -0.0423,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.2785,
"after": 0.0,
"delta": -0.2785,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.3162,
"after": 1.0,
"delta": -0.3162,
"percent_delta": -0.2402,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.012,
"after": 0.0,
"delta": -0.012,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1313,
"after": 0.0,
"delta": -0.1313,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.5606,
"after": 0.0,
"delta": -0.5606,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0644,
"after": 1.0,
"delta": -0.0644,
"percent_delta": -0.0605,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 0,
"deboosted_metrics": 7,
"better_metrics": 1,
"worse_metrics": 6,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.5606,
"after": 0.0,
"delta": -0.5606,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.5788,
"after": 1.0,
"delta": 0.4212,
"percent_delta": 0.7277,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.5788,
"after": 1.0,
"delta": 0.4212,
"percent_delta": 0.7277,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.17,
"predicted_3B": 0.016,
"predicted_BB": 0.2823,
"predicted_H": 0.8068,
"predicted_HR": 0.1482,
"predicted_RBI": 0.5432,
"predicted_SO": 1.3669
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.17,
"delta": 0.17,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.016,
"delta": 0.016,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.2823,
"delta": 0.2823,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.8068,
"delta": -0.1932,
"percent_delta": -0.1932,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1482,
"delta": 0.1482,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.5432,
"delta": 0.5432,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.3669,
"delta": 0.3669,
"percent_delta": 0.3669,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 5,
"deboosted_metrics": 1,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.5432,
"delta": 0.5432,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.8068,
"delta": -0.1932,
"percent_delta": -0.1932,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.17,
"after": 0.0,
"delta": -0.17,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.016,
"after": 0.0,
"delta": -0.016,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.2823,
"after": 0.0,
"delta": -0.2823,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8068,
"after": 1.0,
"delta": 0.1932,
"percent_delta": 0.2395,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1482,
"after": 0.0,
"delta": -0.1482,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5432,
"after": 1.0,
"delta": 0.4568,
"percent_delta": 0.8409,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.3669,
"after": 2.0,
"delta": 0.6331,
"percent_delta": 0.4632,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 3,
"deboosted_metrics": 3,
"better_metrics": 2,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.3669,
"after": 2.0,
"delta": 0.6331,
"percent_delta": 0.4632,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.2823,
"after": 0.0,
"delta": -0.2823,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.211,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.272,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.381,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.3151,
"after": 0.211,
"delta": -0.1041,
"percent_delta": -0.3304,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3579,
"after": 0.272,
"delta": -0.0859,
"percent_delta": -0.24,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.4604,
"after": 0.381,
"delta": -0.0794,
"percent_delta": -0.1725,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 1.0,
"delta": -1.0,
"percent_delta": -0.5,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 0,
"deboosted_metrics": 5,
"better_metrics": 1,
"worse_metrics": 4,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.3151,
"predicted_BB": 1.0,
"predicted_CF": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3579,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.4604,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.211,
"after": 0.3151,
"delta": 0.1041,
"percent_delta": 0.4935,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.272,
"after": 0.3579,
"delta": 0.0859,
"percent_delta": 0.3159,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.381,
"after": 0.4604,
"delta": 0.0794,
"percent_delta": 0.2084,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_AVG",
"before": 0.211,
"after": 0.3151,
"delta": 0.1041,
"percent_delta": 0.4935,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.164,
"after": 0.0,
"delta": -0.164,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.031,
"after": 0.0,
"delta": -0.031,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.5,
"after": 4.0,
"delta": -0.5,
"percent_delta": -0.1111,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.334,
"after": 0.3151,
"delta": -0.0189,
"percent_delta": -0.0566,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.264,
"after": 1.0,
"delta": 0.736,
"percent_delta": 2.7879,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.5,
"after": 0.0,
"delta": -1.5,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.15,
"after": 0.0,
"delta": -0.15,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.367,
"after": 0.3579,
"delta": -0.0091,
"percent_delta": -0.0248,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.547,
"after": 0.0,
"delta": -0.547,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.62,
"after": 0.0,
"delta": -0.62,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.446,
"after": 0.4604,
"delta": 0.0144,
"percent_delta": 0.0323,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.019,
"after": 1.0,
"delta": -0.019,
"percent_delta": -0.0186,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 10,
"boosted_metrics": 2,
"deboosted_metrics": 8,
"better_metrics": 2,
"worse_metrics": 8,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.264,
"after": 1.0,
"delta": 0.736,
"percent_delta": 2.7879,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.5,
"after": 0.0,
"delta": -1.5,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.164 | - |
| predicted_3B | 0.031 | - |
| predicted_AB | 4.500 | - |
| predicted_AVG | 0.334 | - |
| predicted_BB | 0.264 | - |
| predicted_H | 1.500 | - |
| predicted_HR | 0.150 | - |
| predicted_OBP | 0.367 | - |
| predicted_R | 0.547 | - |
| predicted_RBI | 0.620 | - |
| predicted_SLG | 0.446 | - |
| predicted_SO | 1.019 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.162 | -0.002 |
| predicted_3B | 0.025 | -0.006 |
| predicted_AB | 4.177 | -0.323 |
| predicted_AVG | 0.322 | -0.012 |
| predicted_BB | 0.280 | 0.016 |
| predicted_H | 1.347 | -0.153 |
| predicted_HBP | 0.012 | - |
| predicted_HR | 0.135 | -0.015 |
| predicted_OBP | 0.363 | -0.004 |
| predicted_R | 0.602 | 0.055 |
| predicted_RBI | 0.583 | -0.037 |
| predicted_SLG | 0.448 | 0.002 |
| predicted_SO | 1.058 | 0.039 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.162 | 0.000 |
| predicted_3B | 0.025 | 0.000 |
| predicted_AB | 4.177 | 0.000 |
| predicted_AVG | 0.315 | -0.007 |
| predicted_BB | 0.279 | -0.002 |
| predicted_H | 1.316 | -0.031 |
| predicted_HBP | 0.012 | 0.000 |
| predicted_HR | 0.131 | -0.004 |
| predicted_OBP | 0.358 | -0.005 |
| predicted_R | 0.579 | -0.023 |
| predicted_RBI | 0.561 | -0.022 |
| predicted_SLG | 0.460 | 0.013 |
| predicted_SO | 1.064 | 0.006 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=4.50), rates preserved: AVG=0.245 HR/AB=0.029
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.170 | 0.170 |
| 3B | 0.016 | 0.016 |
| BB | 0.282 | 0.282 |
| H | 0.807 | -0.193 |
| HR | 0.148 | 0.148 |
| RBI | 0.543 | 0.543 |
| SO | 1.367 | 0.367 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.170 |
| 3B | 0.000 | -0.016 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -0.282 |
| H | 1.000 | 0.193 |
| HR | 0.000 | -0.148 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.457 |
| SO | 2.000 | 0.633 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.162 |
| predicted_3B | 0.000 | -0.025 |
| predicted_AB | 4.000 | -0.177 |
| predicted_AVG | 0.211 | -0.104 |
| predicted_BB | 0.000 | -0.279 |
| predicted_H | 1.000 | -0.316 |
| predicted_HR | 0.000 | -0.131 |
| predicted_OBP | 0.272 | -0.086 |
| predicted_R | 1.000 | 0.421 |
| predicted_RBI | 0.000 | -0.561 |
| predicted_SLG | 0.381 | -0.079 |
| predicted_SO | 1.000 | -0.064 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 1.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | -1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 5.000 | - |
| R | 0.000 | -1.000 |
| RBI | 0.000 | -1.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | -1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 17.000 | 8.000 | 1.000 | 0.000 | 0.000 | 3.000 | 5.000 | 2.000 | 6.000 | 0.4706 | 0.5263 | 0.5294 | 0.4706 | 0.0000 | 0.1765 | 0.1177 | 0.3529 |
| last_10 | 0.20 | 10 | - | 37.000 | 11.000 | 1.000 | 0.000 | 1.000 | 4.000 | 7.000 | 3.000 | 13.000 | 0.2973 | 0.3500 | 0.4054 | 0.2973 | 0.0270 | 0.1081 | 0.0811 | 0.3513 |
| season | 0.60 | 159 | - | 620.000 | 160.000 | 26.000 | 5.000 | 26.000 | 89.000 | 87.000 | 42.000 | 162.000 | 0.2581 | 0.3069 | 0.4419 | 0.2581 | 0.0419 | 0.1436 | 0.0677 | 0.2613 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1600 |
| predicted_3B | 0.0180 |
| predicted_AB | 3.7610 |
| predicted_AVG | 0.3059 |
| predicted_BB | 0.3010 |
| predicted_H | 1.1500 |
| predicted_HBP | 0.0120 |
| predicted_HR | 0.1160 |
| predicted_OBP | 0.3571 |
| predicted_R | 0.6720 |
| predicted_RBI | 0.5350 |
| predicted_SLG | 0.4502 |
| predicted_SO | 1.1080 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1640 | 0.1600 | 0.1623 | model_form_blend |
| predicted_3B | 0.0310 | 0.0180 | 0.0253 | model_form_blend |
| predicted_AB | 4.5000 | 3.7610 | 4.1767 | model_form_blend |
| predicted_AVG | 0.3340 | 0.3059 | 0.3217 | model_form_blend |
| predicted_BB | 0.2640 | 0.3010 | 0.2802 | model_form_blend |
| predicted_H | 1.5000 | 1.1500 | 1.3469 | model_form_blend |
| predicted_HBP | - | 0.0120 | 0.0120 | form_only |
| predicted_HR | 0.1500 | 0.1160 | 0.1351 | model_form_blend |
| predicted_OBP | 0.3670 | 0.3571 | 0.3627 | model_form_blend |
| predicted_R | 0.5470 | 0.6720 | 0.6017 | model_form_blend |
| predicted_RBI | 0.6200 | 0.5350 | 0.5828 | model_form_blend |
| predicted_SLG | 0.4460 | 0.4502 | 0.4478 | model_form_blend |
| predicted_SO | 1.0190 | 1.1080 | 1.0579 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 642 |
| Season rows before report date | 642 |
| Report year | 2026 |
| Profile rows used | 159 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 5 |
| AB | 4 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 1 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 1 |
| BaseRunning_PO | 1 |
| BaseRunning_SB | 1 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 3 |
| Hitting_AVG | 0.667 |
| Hitting_BB | 1 |
| Hitting_GIDP | 0 |
| Hitting_H | 2 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 2 |
| Hitting_battingOrder | 5 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | CF |
| gameID | 20260930_CHC@SD |
| game_type | full |
| mlbID | 701538 |
| playerID | 701538 |
| playerName | Jackson Merrill |
| pos | CF |
| started | True |
| startingPosition | CF |
| team | SD |
| teamID | 23 |
| game_date | 2026-09-30 |
| sl_k_percent | 24.1 |
| sl_bb_percent | 6.2 |
| sl_woba | 0.32 |
| sl_xwoba | 0.347 |
| sl_xba | 0.27 |
| sl_xslg | 0.491 |
| sl_sweet_spot_percent | 39.8 |
| sl_barrel_batted_rate | 12.4 |
| sl_hard_hit_percent | 48.7 |
| sl_exit_velocity_avg | 91.5 |
| sl_launch_angle_avg | 14.3 |
| sl_whiff_percent | 27.6 |
| sl_swing_percent | 56.1 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.000 | 0.000 | 0.000 | Hitting_2B | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_3B | 0.062 | 0.000 | 0.000 | Hitting_3B | 0.069 | 0.000 | -0.069 | 0.000 |
| predicted_AB | 2.500 | 4.000 | 3.000 | Hitting_AB | 2.690 | 1.000 | 1.310 | 3.000 |
| predicted_AVG | 0.373 | 0.250 | 0.000 | Hitting_AVG | 0.218 | 0.000 | 0.032 | 0.250 |
| predicted_BB | 0.062 | 0.000 | 0.000 | Hitting_BB | 0.034 | 0.000 | -0.034 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_H | 0.700 | 1.000 | 0.000 | Hitting_H | 0.586 | 0.000 | 0.414 | 1.000 |
| predicted_HR | 0.060 | 0.000 | 0.000 | Hitting_HR | 0.276 | 0.000 | -0.276 | 0.000 |
| predicted_OBP | 0.373 | 0.250 | 0.000 | Hitting_OBP | 0.225 | 0.000 | 0.025 | 0.250 |
| predicted_R | 0.375 | 0.000 | 0.000 | Hitting_R | 0.448 | 0.000 | -0.448 | 0.000 |
| predicted_RBI | 0.370 | 0.000 | 0.000 | Hitting_RBI | 0.517 | 1.000 | -0.517 | -1.000 |
| predicted_SLG | 0.473 | 0.250 | 0.000 | Hitting_SLG | 0.577 | 0.000 | -0.327 | 0.250 |
| predicted_SO | 0.625 | 1.000 | 1.000 | Hitting_SO | 0.690 | 1.000 | 0.310 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 11 |
| Boosted Metrics | 3 |
| Deboosted Metrics | 8 |
| Better Metrics | 2 |
| Worse Metrics | 9 |
| Biggest Boost | predicted_AB: 2.5000 -> 4.0000 (boost 1.5000, better) |
| Biggest Deboost | predicted_R: 0.3750 -> 0.0000 (deboost -0.3750, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 4 | 2 | 2 | 2 | 2 | predicted_AB: 2.5000 -> 2.6536 (boost 0.1536, better) | predicted_AVG: 0.3730 -> 0.3468 (deboost -0.0262, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 3 | 0 | 3 | 0 | 3 | - | predicted_AVG: 0.3468 -> 0.2783 (deboost -0.0685, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 3 | 4 | 2 | 5 | predicted_SO: 0.6374 -> 1.0000 (boost 0.3626, worse) | predicted_RBI: 0.3833 -> 0.0000 (deboost -0.3833, worse) | AB rounded to 3 (raw=2.65), rates preserved: AVG=0.233 HR/AB=0.030 |
| 6 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.3929 -> 0.0000 (deboost -0.3929, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 5 | 1 | 4 | 2 | predicted_RBI: 0.0000 -> 0.4053 (boost 0.4053, better) | predicted_H: 1.0000 -> 0.6246 (deboost -0.3754, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 6 | 0 | 6 | 1 | 5 | - | predicted_H: 0.6246 -> 0.0000 (deboost -0.6246, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 4 | 1 | 3 | 1 | 3 | predicted_H: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_AVG: 0.2783 -> 0.2020 (deboost -0.0763, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 1 | 1 | 0 | 1 | 0 | predicted_AB: 3.0000 -> 4.0000 (boost 1.0000, better) | - | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_AVG: 0.2020 -> 0.2783 (boost 0.0763, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "806956",
"player_name": "Ethan Salas",
"position": "C",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.062,
"predicted_AB": 2.5,
"predicted_AVG": 0.373,
"predicted_BB": 0.062,
"predicted_H": 0.7,
"predicted_HR": 0.06,
"predicted_OBP": 0.373,
"predicted_R": 0.375,
"predicted_RBI": 0.37,
"predicted_SLG": 0.473,
"predicted_SO": 0.625
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.019,
"predicted_3B": 0.0518,
"predicted_AB": 2.6536,
"predicted_AVG": 0.3468,
"predicted_BB": 0.083,
"predicted_H": 0.7558,
"predicted_HBP": 0.011,
"predicted_HR": 0.081,
"predicted_OBP": 0.3563,
"predicted_R": 0.4085,
"predicted_RBI": 0.3985,
"predicted_SLG": 0.4682,
"predicted_SO": 0.6335
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.019,
"delta": 0.019,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.062,
"after": 0.0518,
"delta": -0.0102,
"percent_delta": -0.1645,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.5,
"after": 2.6536,
"delta": 0.1536,
"percent_delta": 0.0614,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.373,
"after": 0.3468,
"delta": -0.0262,
"percent_delta": -0.0702,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.062,
"after": 0.083,
"delta": 0.021,
"percent_delta": 0.3387,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.7,
"after": 0.7558,
"delta": 0.0558,
"percent_delta": 0.0797,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.06,
"after": 0.081,
"delta": 0.021,
"percent_delta": 0.35,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.373,
"after": 0.3563,
"delta": -0.0167,
"percent_delta": -0.0448,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.375,
"after": 0.4085,
"delta": 0.0335,
"percent_delta": 0.0893,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.37,
"after": 0.3985,
"delta": 0.0285,
"percent_delta": 0.077,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.473,
"after": 0.4682,
"delta": -0.0048,
"percent_delta": -0.0101,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.625,
"after": 0.6335,
"delta": 0.0085,
"percent_delta": 0.0136,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 2,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_AB",
"before": 2.5,
"after": 2.6536,
"delta": 0.1536,
"percent_delta": 0.0614,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AVG",
"before": 0.373,
"after": 0.3468,
"delta": -0.0262,
"percent_delta": -0.0702,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 17
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.019,
"predicted_3B": 0.0518,
"predicted_AB": 2.6536,
"predicted_AVG": 0.2783,
"predicted_BB": 0.0825,
"predicted_H": 0.7386,
"predicted_HBP": 0.011,
"predicted_HR": 0.0787,
"predicted_OBP": 0.3001,
"predicted_R": 0.3929,
"predicted_RBI": 0.3833,
"predicted_SLG": 0.4135,
"predicted_SO": 0.6374
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.019,
"after": 0.019,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0518,
"after": 0.0518,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.6536,
"after": 2.6536,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.3468,
"after": 0.2783,
"delta": -0.0685,
"percent_delta": -0.1975,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.083,
"after": 0.0825,
"delta": -0.0005,
"percent_delta": -0.006,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.7558,
"after": 0.7386,
"delta": -0.0172,
"percent_delta": -0.0228,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.011,
"after": 0.011,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.081,
"after": 0.0787,
"delta": -0.0023,
"percent_delta": -0.0284,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3563,
"after": 0.3001,
"delta": -0.0562,
"percent_delta": -0.1577,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.4085,
"after": 0.3929,
"delta": -0.0156,
"percent_delta": -0.0382,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.3985,
"after": 0.3833,
"delta": -0.0152,
"percent_delta": -0.0381,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4682,
"after": 0.4135,
"delta": -0.0547,
"percent_delta": -0.1168,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.6335,
"after": 0.6374,
"delta": 0.0039,
"percent_delta": 0.0062,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_AVG",
"before": 0.3468,
"after": 0.2783,
"delta": -0.0685,
"percent_delta": -0.1975,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 3 (raw=2.65), rates preserved: AVG=0.233 HR/AB=0.030",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.019,
"after": 0.0,
"delta": -0.019,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0518,
"after": 0.0,
"delta": -0.0518,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AB",
"before": 2.6536,
"after": 3.0,
"delta": 0.3464,
"percent_delta": 0.1305,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.0825,
"after": 0.0,
"delta": -0.0825,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.7386,
"after": 1.0,
"delta": 0.2614,
"percent_delta": 0.3539,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.011,
"after": 0.0,
"delta": -0.011,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0787,
"after": 0.0,
"delta": -0.0787,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.3833,
"after": 0.0,
"delta": -0.3833,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.6374,
"after": 1.0,
"delta": 0.3626,
"percent_delta": 0.5689,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 3,
"deboosted_metrics": 4,
"better_metrics": 2,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.6374,
"after": 1.0,
"delta": 0.3626,
"percent_delta": 0.5689,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.3833,
"after": 0.0,
"delta": -0.3833,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.3929,
"after": 0.0,
"delta": -0.3929,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_R",
"before": 0.3929,
"after": 0.0,
"delta": -0.3929,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1349,
"predicted_3B": 0.0112,
"predicted_BB": 0.2434,
"predicted_H": 0.6246,
"predicted_HR": 0.1079,
"predicted_RBI": 0.4053,
"predicted_SO": 1.0536
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1349,
"delta": 0.1349,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0112,
"delta": 0.0112,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.2434,
"delta": 0.2434,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.6246,
"delta": -0.3754,
"percent_delta": -0.3754,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1079,
"delta": 0.1079,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.4053,
"delta": 0.4053,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0536,
"delta": 0.0536,
"percent_delta": 0.0536,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 5,
"deboosted_metrics": 1,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.4053,
"delta": 0.4053,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.6246,
"delta": -0.3754,
"percent_delta": -0.3754,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1349,
"after": 0.0,
"delta": -0.1349,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0112,
"after": 0.0,
"delta": -0.0112,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.2434,
"after": 0.0,
"delta": -0.2434,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.6246,
"after": 0.0,
"delta": -0.6246,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1079,
"after": 0.0,
"delta": -0.1079,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.4053,
"after": 0.0,
"delta": -0.4053,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0536,
"after": 1.0,
"delta": -0.0536,
"percent_delta": -0.0509,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 0,
"deboosted_metrics": 6,
"better_metrics": 1,
"worse_metrics": 5,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 0.6246,
"after": 0.0,
"delta": -0.6246,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.202,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.266,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.358,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2783,
"after": 0.202,
"delta": -0.0763,
"percent_delta": -0.2742,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_H",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_OBP",
"before": 0.3001,
"after": 0.266,
"delta": -0.0341,
"percent_delta": -0.1136,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4135,
"after": 0.358,
"delta": -0.0555,
"percent_delta": -0.1342,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 1,
"deboosted_metrics": 3,
"better_metrics": 1,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AVG",
"before": 0.2783,
"after": 0.202,
"delta": -0.0763,
"percent_delta": -0.2742,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.2783,
"predicted_BB": 0.0,
"predicted_C": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3001,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.4135,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.202,
"after": 0.2783,
"delta": 0.0763,
"percent_delta": 0.3779,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.266,
"after": 0.3001,
"delta": 0.0341,
"percent_delta": 0.1281,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.358,
"after": 0.4135,
"delta": 0.0555,
"percent_delta": 0.155,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_AVG",
"before": 0.202,
"after": 0.2783,
"delta": 0.0763,
"percent_delta": 0.3779,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.062,
"after": 0.0,
"delta": -0.062,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AB",
"before": 2.5,
"after": 4.0,
"delta": 1.5,
"percent_delta": 0.6,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.373,
"after": 0.2783,
"delta": -0.0947,
"percent_delta": -0.2539,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.062,
"after": 0.0,
"delta": -0.062,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.7,
"after": 1.0,
"delta": 0.3,
"percent_delta": 0.4286,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.06,
"after": 0.0,
"delta": -0.06,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.373,
"after": 0.3001,
"delta": -0.0729,
"percent_delta": -0.1954,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.375,
"after": 0.0,
"delta": -0.375,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.37,
"after": 0.0,
"delta": -0.37,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.473,
"after": 0.4135,
"delta": -0.0595,
"percent_delta": -0.1258,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.625,
"after": 1.0,
"delta": 0.375,
"percent_delta": 0.6,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 11,
"boosted_metrics": 3,
"deboosted_metrics": 8,
"better_metrics": 2,
"worse_metrics": 9,
"biggest_boost": {
"metric": "predicted_AB",
"before": 2.5,
"after": 4.0,
"delta": 1.5,
"percent_delta": 0.6,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_R",
"before": 0.375,
"after": 0.0,
"delta": -0.375,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | - |
| predicted_3B | 0.062 | - |
| predicted_AB | 2.500 | - |
| predicted_AVG | 0.373 | - |
| predicted_BB | 0.062 | - |
| predicted_H | 0.700 | - |
| predicted_HR | 0.060 | - |
| predicted_OBP | 0.373 | - |
| predicted_R | 0.375 | - |
| predicted_RBI | 0.370 | - |
| predicted_SLG | 0.473 | - |
| predicted_SO | 0.625 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.019 | 0.019 |
| predicted_3B | 0.052 | -0.010 |
| predicted_AB | 2.654 | 0.154 |
| predicted_AVG | 0.347 | -0.026 |
| predicted_BB | 0.083 | 0.021 |
| predicted_H | 0.756 | 0.056 |
| predicted_HBP | 0.011 | - |
| predicted_HR | 0.081 | 0.021 |
| predicted_OBP | 0.356 | -0.017 |
| predicted_R | 0.408 | 0.033 |
| predicted_RBI | 0.399 | 0.029 |
| predicted_SLG | 0.468 | -0.005 |
| predicted_SO | 0.633 | 0.008 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.019 | 0.000 |
| predicted_3B | 0.052 | 0.000 |
| predicted_AB | 2.654 | 0.000 |
| predicted_AVG | 0.278 | -0.069 |
| predicted_BB | 0.083 | -0.001 |
| predicted_H | 0.739 | -0.017 |
| predicted_HBP | 0.011 | 0.000 |
| predicted_HR | 0.079 | -0.002 |
| predicted_OBP | 0.300 | -0.056 |
| predicted_R | 0.393 | -0.016 |
| predicted_RBI | 0.383 | -0.015 |
| predicted_SLG | 0.413 | -0.055 |
| predicted_SO | 0.637 | 0.004 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=2.65), rates preserved: AVG=0.233 HR/AB=0.030
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.135 | 0.135 |
| 3B | 0.011 | 0.011 |
| BB | 0.243 | 0.243 |
| H | 0.625 | -0.375 |
| HR | 0.108 | 0.108 |
| RBI | 0.405 | 0.405 |
| SO | 1.054 | 0.054 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.135 |
| 3B | 0.000 | -0.011 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | -0.243 |
| H | 0.000 | -0.625 |
| HR | 0.000 | -0.108 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -0.405 |
| SO | 1.000 | -0.054 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.019 |
| predicted_3B | 0.000 | -0.052 |
| predicted_AB | 3.000 | 0.346 |
| predicted_AVG | 0.202 | -0.076 |
| predicted_BB | 0.000 | -0.083 |
| predicted_H | 1.000 | 0.261 |
| predicted_HR | 0.000 | -0.079 |
| predicted_OBP | 0.266 | -0.034 |
| predicted_R | 0.000 | -0.393 |
| predicted_RBI | 0.000 | -0.383 |
| predicted_SLG | 0.358 | -0.055 |
| predicted_SO | 1.000 | 0.363 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 1.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 1.000 | 1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 12.000 | 6.000 | 0.000 | 0.000 | 0.000 | 2.000 | 3.000 | 0.000 | 2.000 | 0.5000 | 0.5000 | 0.5000 | 0.5000 | 0.0000 | 0.1667 | 0.0000 | 0.1667 |
| last_10 | 0.20 | 10 | - | 24.000 | 9.000 | 0.000 | 0.000 | 2.000 | 6.000 | 5.000 | 1.000 | 4.000 | 0.3750 | 0.3846 | 0.6250 | 0.3750 | 0.0833 | 0.2500 | 0.0417 | 0.1667 |
| season | 0.60 | 17 | - | 40.000 | 10.000 | 0.000 | 1.000 | 2.000 | 6.000 | 6.000 | 1.000 | 10.000 | 0.2500 | 0.2619 | 0.4500 | 0.2500 | 0.0500 | 0.1500 | 0.0250 | 0.2500 |
| Metric | Value |
|---|---|
| predicted_2B | 0.0580 |
| predicted_3B | 0.0310 |
| predicted_AB | 2.9680 |
| predicted_AVG | 0.2930 |
| predicted_BB | 0.1260 |
| predicted_H | 0.8700 |
| predicted_HBP | 0.0110 |
| predicted_HR | 0.1240 |
| predicted_OBP | 0.3222 |
| predicted_R | 0.4770 |
| predicted_RBI | 0.4570 |
| predicted_SLG | 0.4585 |
| predicted_SO | 0.6510 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.0000 | 0.0580 | 0.0190 | model_form_blend |
| predicted_3B | 0.0620 | 0.0310 | 0.0518 | model_form_blend |
| predicted_AB | 2.5000 | 2.9680 | 2.6536 | model_form_blend |
| predicted_AVG | 0.3730 | 0.2930 | 0.3468 | model_form_blend |
| predicted_BB | 0.0620 | 0.1260 | 0.0830 | model_form_blend |
| predicted_H | 0.7000 | 0.8700 | 0.7558 | model_form_blend |
| predicted_HBP | - | 0.0110 | 0.0110 | form_only |
| predicted_HR | 0.0600 | 0.1240 | 0.0810 | model_form_blend |
| predicted_OBP | 0.3730 | 0.3222 | 0.3563 | model_form_blend |
| predicted_R | 0.3750 | 0.4770 | 0.4085 | model_form_blend |
| predicted_RBI | 0.3700 | 0.4570 | 0.3985 | model_form_blend |
| predicted_SLG | 0.4730 | 0.4585 | 0.4682 | model_form_blend |
| predicted_SO | 0.6250 | 0.6510 | 0.6335 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 29 |
| Season rows before report date | 29 |
| Report year | 2026 |
| Profile rows used | 17 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 1 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 1 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 1 |
| Hitting_SAC | 0 |
| Hitting_SF | 1 |
| Hitting_SO | 1 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 7 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | C |
| gameID | 20260930_CHC@SD |
| game_type | full |
| mlbID | 806956 |
| playerID | 806956 |
| playerName | Ethan Salas |
| pos | C |
| started | True |
| startingPosition | C |
| team | SD |
| teamID | 23 |
| game_date | 2026-09-30 |
| sl_k_percent | 22.5 |
| sl_bb_percent | 2.5 |
| sl_woba | 0.316 |
| sl_xwoba | 0.227 |
| sl_xba | 0.188 |
| sl_xslg | 0.316 |
| sl_sweet_spot_percent | 23.3 |
| sl_barrel_batted_rate | 3.3 |
| sl_hard_hit_percent | 33.3 |
| sl_exit_velocity_avg | 90.1 |
| sl_launch_angle_avg | 25.7 |
| sl_whiff_percent | 19.4 |
| sl_swing_percent | 48.3 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.118 | 0.000 | 0.000 | Hitting_2B | 0.124 | 0.000 | -0.124 | 0.000 |
| predicted_3B | 0.009 | 0.000 | 0.000 | Hitting_3B | 0.012 | 0.000 | -0.012 | 0.000 |
| predicted_AB | 3.482 | 4.000 | 3.000 | Hitting_AB | 3.682 | 2.000 | 0.318 | 2.000 |
| predicted_AVG | 0.212 | 0.250 | 0.000 | Hitting_AVG | 0.232 | 0.000 | 0.018 | 0.250 |
| predicted_BB | 0.345 | 0.000 | 0.000 | Hitting_BB | 0.371 | 0.000 | -0.371 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.022 | 0.000 | -0.022 | 0.000 |
| predicted_H | 0.700 | 1.000 | 0.000 | Hitting_H | 0.856 | 0.000 | 0.144 | 1.000 |
| predicted_HR | 0.090 | 0.000 | 0.000 | Hitting_HR | 0.057 | 0.000 | -0.057 | 0.000 |
| predicted_OBP | 0.325 | 0.250 | 0.000 | Hitting_OBP | 0.312 | 0.333 | -0.062 | -0.083 |
| predicted_R | 0.418 | 0.000 | 0.000 | Hitting_R | 0.458 | 0.000 | -0.458 | 0.000 |
| predicted_RBI | 0.550 | 0.000 | 0.000 | Hitting_RBI | 0.356 | 0.000 | -0.356 | 0.000 |
| predicted_SB | - | 0.000 | 0.000 | BaseRunning_SB | 0.082 | 0.000 | -0.082 | 0.000 |
| predicted_SLG | 0.332 | 0.250 | 0.000 | Hitting_SLG | 0.320 | 0.000 | -0.070 | 0.250 |
| predicted_SO | 0.891 | 1.000 | 1.000 | Hitting_SO | 0.923 | 0.000 | 0.077 | 1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 10 |
| Boosted Metrics | 3 |
| Deboosted Metrics | 7 |
| Better Metrics | 2 |
| Worse Metrics | 8 |
| Biggest Boost | predicted_AB: 3.4820 -> 4.0000 (boost 0.5180, better) |
| Biggest Deboost | predicted_RBI: 0.5500 -> 0.0000 (deboost -0.5500, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 2 | 2 | 0 | 2 | 0 | predicted_AVG: 0.2120 -> 0.2216 (boost 0.0096, better) | - | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 3 | 0 | 3 | 0 | 3 | - | predicted_OBP: 0.3277 -> 0.2814 (deboost -0.0463, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 8 | 3 | 5 | 2 | 6 | predicted_RBI: 0.5689 -> 1.0000 (boost 0.4311, better) | predicted_AB: 3.4536 -> 3.0000 (deboost -0.4536, worse) | AB rounded to 3 (raw=3.48), rates preserved: AVG=0.174 HR/AB=0.024 |
| 6 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.3929 -> 0.0000 (deboost -0.3929, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 4 | 2 | 3 | 3 | predicted_BB: 0.0000 -> 0.3271 (boost 0.3271, better) | predicted_RBI: 1.0000 -> 0.3764 (deboost -0.6236, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 6 | 0 | 6 | 1 | 5 | - | predicted_H: 0.6474 -> 0.0000 (deboost -0.6474, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 5 | 2 | 3 | 2 | 3 | predicted_H: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_AVG: 0.2103 -> 0.1940 (deboost -0.0163, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 2 | 1 | 1 | 1 | 1 | predicted_AB: 3.0000 -> 4.0000 (boost 1.0000, better) | predicted_RBI: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_AVG: 0.1940 -> 0.2103 (boost 0.0163, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "630105",
"player_name": "Jake Cronenworth",
"position": "2B",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.118,
"predicted_3B": 0.009,
"predicted_AB": 3.482,
"predicted_AVG": 0.212,
"predicted_BB": 0.345,
"predicted_H": 0.7,
"predicted_HR": 0.09,
"predicted_OBP": 0.325,
"predicted_R": 0.418,
"predicted_RBI": 0.55,
"predicted_SLG": 0.332,
"predicted_SO": 0.891
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1335,
"predicted_3B": 0.0077,
"predicted_AB": 3.4536,
"predicted_AVG": 0.2216,
"predicted_BB": 0.3441,
"predicted_H": 0.7431,
"predicted_HBP": 0.16,
"predicted_HR": 0.0861,
"predicted_OBP": 0.3277,
"predicted_R": 0.4085,
"predicted_RBI": 0.5914,
"predicted_SLG": 0.3416,
"predicted_SO": 0.8919
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.118,
"after": 0.1335,
"delta": 0.0155,
"percent_delta": 0.1314,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.009,
"after": 0.0077,
"delta": -0.0013,
"percent_delta": -0.1444,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.482,
"after": 3.4536,
"delta": -0.0284,
"percent_delta": -0.0082,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.212,
"after": 0.2216,
"delta": 0.0096,
"percent_delta": 0.0453,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.345,
"after": 0.3441,
"delta": -0.0009,
"percent_delta": -0.0026,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.7,
"after": 0.7431,
"delta": 0.0431,
"percent_delta": 0.0616,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.09,
"after": 0.0861,
"delta": -0.0039,
"percent_delta": -0.0433,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.325,
"after": 0.3277,
"delta": 0.0027,
"percent_delta": 0.0083,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.418,
"after": 0.4085,
"delta": -0.0095,
"percent_delta": -0.0227,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.55,
"after": 0.5914,
"delta": 0.0414,
"percent_delta": 0.0753,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.332,
"after": 0.3416,
"delta": 0.0096,
"percent_delta": 0.0289,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.891,
"after": 0.8919,
"delta": 0.0009,
"percent_delta": 0.001,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_AVG",
"before": 0.212,
"after": 0.2216,
"delta": 0.0096,
"percent_delta": 0.0453,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 110
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1335,
"predicted_3B": 0.0077,
"predicted_AB": 3.4536,
"predicted_AVG": 0.2103,
"predicted_BB": 0.342,
"predicted_H": 0.7262,
"predicted_HBP": 0.16,
"predicted_HR": 0.0837,
"predicted_OBP": 0.2814,
"predicted_R": 0.3929,
"predicted_RBI": 0.5689,
"predicted_SLG": 0.326,
"predicted_SO": 0.8973
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1335,
"after": 0.1335,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0077,
"after": 0.0077,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.4536,
"after": 3.4536,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2216,
"after": 0.2103,
"delta": -0.0113,
"percent_delta": -0.051,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.3441,
"after": 0.342,
"delta": -0.0021,
"percent_delta": -0.0061,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.7431,
"after": 0.7262,
"delta": -0.0169,
"percent_delta": -0.0227,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.16,
"after": 0.16,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0861,
"after": 0.0837,
"delta": -0.0024,
"percent_delta": -0.0279,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3277,
"after": 0.2814,
"delta": -0.0463,
"percent_delta": -0.1413,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.4085,
"after": 0.3929,
"delta": -0.0156,
"percent_delta": -0.0382,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5914,
"after": 0.5689,
"delta": -0.0225,
"percent_delta": -0.038,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3416,
"after": 0.326,
"delta": -0.0156,
"percent_delta": -0.0457,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.8919,
"after": 0.8973,
"delta": 0.0054,
"percent_delta": 0.0061,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.3277,
"after": 0.2814,
"delta": -0.0463,
"percent_delta": -0.1413,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 3 (raw=3.48), rates preserved: AVG=0.174 HR/AB=0.024",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1335,
"after": 0.0,
"delta": -0.1335,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0077,
"after": 0.0,
"delta": -0.0077,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.4536,
"after": 3.0,
"delta": -0.4536,
"percent_delta": -0.1313,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.342,
"after": 0.0,
"delta": -0.342,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.7262,
"after": 1.0,
"delta": 0.2738,
"percent_delta": 0.377,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.16,
"after": 0.0,
"delta": -0.16,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0837,
"after": 0.0,
"delta": -0.0837,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.5689,
"after": 1.0,
"delta": 0.4311,
"percent_delta": 0.7578,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.8973,
"after": 1.0,
"delta": 0.1027,
"percent_delta": 0.1145,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 8,
"boosted_metrics": 3,
"deboosted_metrics": 5,
"better_metrics": 2,
"worse_metrics": 6,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.5689,
"after": 1.0,
"delta": 0.4311,
"percent_delta": 0.7578,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 3.4536,
"after": 3.0,
"delta": -0.4536,
"percent_delta": -0.1313,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.3929,
"after": 0.0,
"delta": -0.3929,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_R",
"before": 0.3929,
"after": 0.0,
"delta": -0.3929,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1401,
"predicted_3B": 0.0086,
"predicted_BB": 0.3271,
"predicted_H": 0.6474,
"predicted_HR": 0.0767,
"predicted_RBI": 0.3764,
"predicted_SO": 1.1309
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1401,
"delta": 0.1401,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0086,
"delta": 0.0086,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.3271,
"delta": 0.3271,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.6474,
"delta": -0.3526,
"percent_delta": -0.3526,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0767,
"delta": 0.0767,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.3764,
"delta": -0.6236,
"percent_delta": -0.6236,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.1309,
"delta": 0.1309,
"percent_delta": 0.1309,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 3,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 0.3271,
"delta": 0.3271,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.3764,
"delta": -0.6236,
"percent_delta": -0.6236,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1401,
"after": 0.0,
"delta": -0.1401,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0086,
"after": 0.0,
"delta": -0.0086,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.3271,
"after": 0.0,
"delta": -0.3271,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.6474,
"after": 0.0,
"delta": -0.6474,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0767,
"after": 0.0,
"delta": -0.0767,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.3764,
"after": 0.0,
"delta": -0.3764,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.1309,
"after": 1.0,
"delta": -0.1309,
"percent_delta": -0.1157,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 0,
"deboosted_metrics": 6,
"better_metrics": 1,
"worse_metrics": 5,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 0.6474,
"after": 0.0,
"delta": -0.6474,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.194,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.271,
"predicted_R": 0.0,
"predicted_RBI": 1.0,
"predicted_SLG": 0.31,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2103,
"after": 0.194,
"delta": -0.0163,
"percent_delta": -0.0775,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_H",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_OBP",
"before": 0.2814,
"after": 0.271,
"delta": -0.0104,
"percent_delta": -0.037,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.326,
"after": 0.31,
"delta": -0.016,
"percent_delta": -0.0491,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 2,
"deboosted_metrics": 3,
"better_metrics": 2,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AVG",
"before": 0.2103,
"after": 0.194,
"delta": -0.0163,
"percent_delta": -0.0775,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.2103,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.2814,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.326,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.194,
"after": 0.2103,
"delta": 0.0163,
"percent_delta": 0.0838,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.271,
"after": 0.2814,
"delta": 0.0104,
"percent_delta": 0.0385,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.31,
"after": 0.326,
"delta": 0.016,
"percent_delta": 0.0518,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_AVG",
"before": 0.194,
"after": 0.2103,
"delta": 0.0163,
"percent_delta": 0.0838,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.118,
"after": 0.0,
"delta": -0.118,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.009,
"after": 0.0,
"delta": -0.009,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.482,
"after": 4.0,
"delta": 0.518,
"percent_delta": 0.1488,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.212,
"after": 0.2103,
"delta": -0.0017,
"percent_delta": -0.008,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.345,
"after": 0.0,
"delta": -0.345,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.7,
"after": 1.0,
"delta": 0.3,
"percent_delta": 0.4286,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.09,
"after": 0.0,
"delta": -0.09,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.325,
"after": 0.2814,
"delta": -0.0436,
"percent_delta": -0.1342,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.418,
"after": 0.0,
"delta": -0.418,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.55,
"after": 0.0,
"delta": -0.55,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.332,
"after": 0.326,
"delta": -0.006,
"percent_delta": -0.0181,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.891,
"after": 1.0,
"delta": 0.109,
"percent_delta": 0.1223,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 10,
"boosted_metrics": 3,
"deboosted_metrics": 7,
"better_metrics": 2,
"worse_metrics": 8,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.482,
"after": 4.0,
"delta": 0.518,
"percent_delta": 0.1488,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.55,
"after": 0.0,
"delta": -0.55,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.118 | - |
| predicted_3B | 0.009 | - |
| predicted_AB | 3.482 | - |
| predicted_AVG | 0.212 | - |
| predicted_BB | 0.345 | - |
| predicted_H | 0.700 | - |
| predicted_HR | 0.090 | - |
| predicted_OBP | 0.325 | - |
| predicted_R | 0.418 | - |
| predicted_RBI | 0.550 | - |
| predicted_SLG | 0.332 | - |
| predicted_SO | 0.891 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.134 | 0.016 |
| predicted_3B | 0.008 | -0.001 |
| predicted_AB | 3.454 | -0.028 |
| predicted_AVG | 0.222 | 0.010 |
| predicted_BB | 0.344 | -0.001 |
| predicted_H | 0.743 | 0.043 |
| predicted_HBP | 0.160 | - |
| predicted_HR | 0.086 | -0.004 |
| predicted_OBP | 0.328 | 0.003 |
| predicted_R | 0.408 | -0.010 |
| predicted_RBI | 0.591 | 0.041 |
| predicted_SLG | 0.342 | 0.010 |
| predicted_SO | 0.892 | 0.001 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.134 | 0.000 |
| predicted_3B | 0.008 | 0.000 |
| predicted_AB | 3.454 | 0.000 |
| predicted_AVG | 0.210 | -0.011 |
| predicted_BB | 0.342 | -0.002 |
| predicted_H | 0.726 | -0.017 |
| predicted_HBP | 0.160 | 0.000 |
| predicted_HR | 0.084 | -0.002 |
| predicted_OBP | 0.281 | -0.046 |
| predicted_R | 0.393 | -0.016 |
| predicted_RBI | 0.569 | -0.023 |
| predicted_SLG | 0.326 | -0.016 |
| predicted_SO | 0.897 | 0.005 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=3.48), rates preserved: AVG=0.174 HR/AB=0.024
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.140 | 0.140 |
| 3B | 0.009 | 0.009 |
| BB | 0.327 | 0.327 |
| H | 0.647 | -0.353 |
| HR | 0.077 | 0.077 |
| RBI | 0.376 | -0.624 |
| SO | 1.131 | 0.131 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.140 |
| 3B | 0.000 | -0.009 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | -0.327 |
| H | 0.000 | -0.647 |
| HR | 0.000 | -0.077 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -0.376 |
| SO | 1.000 | -0.131 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.134 |
| predicted_3B | 0.000 | -0.008 |
| predicted_AB | 3.000 | -0.454 |
| predicted_AVG | 0.194 | -0.016 |
| predicted_BB | 0.000 | -0.342 |
| predicted_H | 1.000 | 0.274 |
| predicted_HR | 0.000 | -0.084 |
| predicted_OBP | 0.271 | -0.010 |
| predicted_R | 0.000 | -0.393 |
| predicted_RBI | 1.000 | 0.431 |
| predicted_SLG | 0.310 | -0.016 |
| predicted_SO | 1.000 | 0.103 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 1.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 1.000 | 1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 16.000 | 4.000 | 1.000 | 0.000 | 0.000 | 5.000 | 1.000 | 2.000 | 4.000 | 0.2500 | 0.4000 | 0.3125 | 0.2500 | 0.0000 | 0.3125 | 0.1250 | 0.2500 |
| last_10 | 0.20 | 10 | - | 33.000 | 8.000 | 2.000 | 0.000 | 2.000 | 11.000 | 5.000 | 3.000 | 10.000 | 0.2424 | 0.3421 | 0.4848 | 0.2424 | 0.0606 | 0.3333 | 0.0909 | 0.3030 |
| season | 0.60 | 110 | - | 383.000 | 86.000 | 13.000 | 1.000 | 7.000 | 41.000 | 46.000 | 38.000 | 98.000 | 0.2245 | 0.3077 | 0.3185 | 0.2245 | 0.0183 | 0.1071 | 0.0992 | 0.2559 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1540 |
| predicted_3B | 0.0060 |
| predicted_AB | 3.4160 |
| predicted_AVG | 0.2342 |
| predicted_BB | 0.3430 |
| predicted_H | 0.8000 |
| predicted_HBP | 0.1600 |
| predicted_HR | 0.0810 |
| predicted_OBP | 0.3312 |
| predicted_R | 0.3960 |
| predicted_RBI | 0.6460 |
| predicted_SLG | 0.3543 |
| predicted_SO | 0.8930 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1180 | 0.1540 | 0.1335 | model_form_blend |
| predicted_3B | 0.0090 | 0.0060 | 0.0077 | model_form_blend |
| predicted_AB | 3.4820 | 3.4160 | 3.4536 | model_form_blend |
| predicted_AVG | 0.2120 | 0.2342 | 0.2216 | model_form_blend |
| predicted_BB | 0.3450 | 0.3430 | 0.3441 | model_form_blend |
| predicted_H | 0.7000 | 0.8000 | 0.7431 | model_form_blend |
| predicted_HBP | - | 0.1600 | 0.1600 | form_only |
| predicted_HR | 0.0900 | 0.0810 | 0.0861 | model_form_blend |
| predicted_OBP | 0.3250 | 0.3312 | 0.3277 | model_form_blend |
| predicted_R | 0.4180 | 0.3960 | 0.4085 | model_form_blend |
| predicted_RBI | 0.5500 | 0.6460 | 0.5914 | model_form_blend |
| predicted_SLG | 0.3320 | 0.3543 | 0.3416 | model_form_blend |
| predicted_SO | 0.8910 | 0.8930 | 0.8919 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 402 |
| Season rows before report date | 402 |
| Report year | 2026 |
| Profile rows used | 110 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 1 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 2 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 1 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 9 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | 2B |
| gameID | 20260930_CHC@SD |
| game_type | full |
| mlbID | 630105 |
| playerID | 630105 |
| playerName | Jake Cronenworth |
| pos | 2B |
| started | True |
| startingPosition | 2B |
| team | SD |
| teamID | 23 |
| game_date | 2026-09-30 |
| sl_k_percent | 22.8 |
| sl_bb_percent | 8.9 |
| sl_woba | 0.287 |
| sl_xwoba | 0.275 |
| sl_xba | 0.213 |
| sl_xslg | 0.308 |
| sl_sweet_spot_percent | 30.7 |
| sl_barrel_batted_rate | 3.9 |
| sl_hard_hit_percent | 29.7 |
| sl_exit_velocity_avg | 87.2 |
| sl_launch_angle_avg | 11.4 |
| sl_whiff_percent | 21.3 |
| sl_swing_percent | 45.8 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.123 | 0.000 | 0.000 | Hitting_2B | 0.126 | 1.000 | -0.126 | -1.000 |
| predicted_3B | 0.006 | 0.000 | 0.000 | Hitting_3B | 0.009 | 0.000 | -0.009 | 0.000 |
| predicted_AB | 3.570 | 4.000 | 3.000 | Hitting_AB | 3.508 | 4.000 | 0.492 | 0.000 |
| predicted_AVG | 0.305 | 0.000 | 0.333 | Hitting_AVG | 0.236 | 0.500 | -0.236 | -0.500 |
| predicted_BB | 0.497 | 0.000 | 1.000 | Hitting_BB | 0.516 | 0.000 | -0.516 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.007 | 0.000 | -0.007 | 0.000 |
| predicted_H | 1.090 | 0.000 | 1.000 | Hitting_H | 0.827 | 2.000 | -0.827 | -2.000 |
| predicted_HR | 0.160 | 0.000 | 0.000 | Hitting_HR | 0.091 | 0.000 | -0.091 | 0.000 |
| predicted_OBP | 0.389 | 0.000 | 0.500 | Hitting_OBP | 0.335 | 0.500 | -0.335 | -0.500 |
| predicted_R | 0.452 | 0.000 | 1.000 | Hitting_R | 0.455 | 1.000 | -0.455 | -1.000 |
| predicted_RBI | 0.510 | 0.000 | 0.000 | Hitting_RBI | 0.426 | 1.000 | -0.426 | -1.000 |
| predicted_SLG | 0.502 | 0.000 | 0.333 | Hitting_SLG | 0.354 | 0.750 | -0.354 | -0.750 |
| predicted_SO | 0.710 | 2.000 | 1.000 | Hitting_SO | 0.720 | 0.000 | 1.280 | 2.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 8 |
| Boosted Metrics | 2 |
| Deboosted Metrics | 6 |
| Better Metrics | 1 |
| Worse Metrics | 7 |
| Biggest Boost | predicted_SO: 0.7100 -> 2.0000 (boost 1.2900, worse) |
| Biggest Deboost | predicted_H: 1.0900 -> 0.0000 (deboost -1.0900, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 4 | 3 | 1 | 3 | 1 | predicted_R: 0.4520 -> 0.5497 (boost 0.0977, better) | predicted_AB: 3.5700 -> 3.4640 (deboost -0.1060, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 3 | 0 | 3 | 0 | 3 | - | predicted_SLG: 0.5279 -> 0.5012 (deboost -0.0267, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 6 | 1 | 5 | 0 | 6 | predicted_SO: 0.6880 -> 1.0000 (boost 0.3120, worse) | predicted_BB: 0.5000 -> 0.0000 (deboost -0.5000, worse) | AB rounded to 3 (raw=3.57), rates preserved: AVG=0.246 HR/AB=0.048 |
| 6 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5288 -> 1.0000 (boost 0.4712, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 5 | 4 | 1 | 4 | 1 | predicted_BB: 0.0000 -> 0.4247 (boost 0.4247, better) | predicted_H: 1.0000 -> 0.6637 (deboost -0.3363, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 5 | 2 | 3 | 2 | 3 | predicted_BB: 0.4247 -> 1.0000 (boost 0.5753, better) | predicted_RBI: 0.3923 -> 0.0000 (deboost -0.3923, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 4 | 0 | 4 | 0 | 4 | - | predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 4 | 2 | 2 | 1 | 3 | predicted_AB: 3.0000 -> 4.0000 (boost 1.0000, better) | predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_SLG: 0.3150 -> 0.5012 (boost 0.1862, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "593428",
"player_name": "Xander Bogaerts",
"position": "SS",
"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": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.123,
"predicted_3B": 0.006,
"predicted_AB": 3.57,
"predicted_AVG": 0.305,
"predicted_BB": 0.497,
"predicted_H": 1.09,
"predicted_HR": 0.16,
"predicted_OBP": 0.389,
"predicted_R": 0.452,
"predicted_RBI": 0.51,
"predicted_SLG": 0.502,
"predicted_SO": 0.71
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1461,
"predicted_3B": 0.0134,
"predicted_AB": 3.464,
"predicted_AVG": 0.3097,
"predicted_BB": 0.5031,
"predicted_H": 1.073,
"predicted_HBP": 0.016,
"predicted_HR": 0.1766,
"predicted_OBP": 0.3966,
"predicted_R": 0.5497,
"predicted_RBI": 0.486,
"predicted_SLG": 0.5279,
"predicted_SO": 0.6838
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.123,
"after": 0.1461,
"delta": 0.0231,
"percent_delta": 0.1878,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.006,
"after": 0.0134,
"delta": 0.0074,
"percent_delta": 1.2333,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.57,
"after": 3.464,
"delta": -0.106,
"percent_delta": -0.0297,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.305,
"after": 0.3097,
"delta": 0.0047,
"percent_delta": 0.0154,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.497,
"after": 0.5031,
"delta": 0.0061,
"percent_delta": 0.0123,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.09,
"after": 1.073,
"delta": -0.017,
"percent_delta": -0.0156,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.16,
"after": 0.1766,
"delta": 0.0166,
"percent_delta": 0.1038,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.389,
"after": 0.3966,
"delta": 0.0076,
"percent_delta": 0.0195,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.452,
"after": 0.5497,
"delta": 0.0977,
"percent_delta": 0.2162,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.51,
"after": 0.486,
"delta": -0.024,
"percent_delta": -0.0471,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.502,
"after": 0.5279,
"delta": 0.0259,
"percent_delta": 0.0516,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.71,
"after": 0.6838,
"delta": -0.0262,
"percent_delta": -0.0369,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 3,
"deboosted_metrics": 1,
"better_metrics": 3,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.452,
"after": 0.5497,
"delta": 0.0977,
"percent_delta": 0.2162,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 3.57,
"after": 3.464,
"delta": -0.106,
"percent_delta": -0.0297,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 155
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1461,
"predicted_3B": 0.0134,
"predicted_AB": 3.464,
"predicted_AVG": 0.3027,
"predicted_BB": 0.5,
"predicted_H": 1.0485,
"predicted_HBP": 0.016,
"predicted_HR": 0.1716,
"predicted_OBP": 0.3907,
"predicted_R": 0.5288,
"predicted_RBI": 0.4675,
"predicted_SLG": 0.5012,
"predicted_SO": 0.688
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1461,
"after": 0.1461,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0134,
"after": 0.0134,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.464,
"after": 3.464,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.3097,
"after": 0.3027,
"delta": -0.007,
"percent_delta": -0.0226,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.5031,
"after": 0.5,
"delta": -0.0031,
"percent_delta": -0.0062,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.073,
"after": 1.0485,
"delta": -0.0245,
"percent_delta": -0.0228,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.016,
"after": 0.016,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1766,
"after": 0.1716,
"delta": -0.005,
"percent_delta": -0.0283,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3966,
"after": 0.3907,
"delta": -0.0059,
"percent_delta": -0.0149,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.5497,
"after": 0.5288,
"delta": -0.0209,
"percent_delta": -0.038,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.486,
"after": 0.4675,
"delta": -0.0185,
"percent_delta": -0.0381,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.5279,
"after": 0.5012,
"delta": -0.0267,
"percent_delta": -0.0506,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.6838,
"after": 0.688,
"delta": 0.0042,
"percent_delta": 0.0061,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.5279,
"after": 0.5012,
"delta": -0.0267,
"percent_delta": -0.0506,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 3 (raw=3.57), rates preserved: AVG=0.246 HR/AB=0.048",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1461,
"after": 0.0,
"delta": -0.1461,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0134,
"after": 0.0,
"delta": -0.0134,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.464,
"after": 3.0,
"delta": -0.464,
"percent_delta": -0.1339,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.5,
"after": 0.0,
"delta": -0.5,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0485,
"after": 1.0,
"delta": -0.0485,
"percent_delta": -0.0463,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.016,
"after": 0.0,
"delta": -0.016,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1716,
"after": 0.0,
"delta": -0.1716,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.4675,
"after": 0.0,
"delta": -0.4675,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.688,
"after": 1.0,
"delta": 0.312,
"percent_delta": 0.4535,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 1,
"deboosted_metrics": 5,
"better_metrics": 0,
"worse_metrics": 6,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.688,
"after": 1.0,
"delta": 0.312,
"percent_delta": 0.4535,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.5,
"after": 0.0,
"delta": -0.5,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.5288,
"after": 1.0,
"delta": 0.4712,
"percent_delta": 0.8911,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.5288,
"after": 1.0,
"delta": 0.4712,
"percent_delta": 0.8911,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1342,
"predicted_3B": 0.0077,
"predicted_BB": 0.4247,
"predicted_H": 0.6637,
"predicted_HR": 0.0908,
"predicted_RBI": 0.3923,
"predicted_SO": 0.9622
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1342,
"delta": 0.1342,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0077,
"delta": 0.0077,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.4247,
"delta": 0.4247,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.6637,
"delta": -0.3363,
"percent_delta": -0.3363,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0908,
"delta": 0.0908,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.3923,
"delta": 0.3923,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.9622,
"delta": -0.0378,
"percent_delta": -0.0378,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 4,
"deboosted_metrics": 1,
"better_metrics": 4,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 0.4247,
"delta": 0.4247,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.6637,
"delta": -0.3363,
"percent_delta": -0.3363,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1342,
"after": 0.0,
"delta": -0.1342,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0077,
"after": 0.0,
"delta": -0.0077,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.4247,
"after": 1.0,
"delta": 0.5753,
"percent_delta": 1.3546,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.6637,
"after": 1.0,
"delta": 0.3363,
"percent_delta": 0.5067,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0908,
"after": 0.0,
"delta": -0.0908,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.3923,
"after": 0.0,
"delta": -0.3923,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.9622,
"after": 1.0,
"delta": 0.0378,
"percent_delta": 0.0393,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 2,
"deboosted_metrics": 3,
"better_metrics": 2,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.4247,
"after": 1.0,
"delta": 0.5753,
"percent_delta": 1.3546,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.3923,
"after": 0.0,
"delta": -0.3923,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.193,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.287,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.315,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.3027,
"after": 0.193,
"delta": -0.1097,
"percent_delta": -0.3624,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3907,
"after": 0.287,
"delta": -0.1037,
"percent_delta": -0.2654,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.5012,
"after": 0.315,
"delta": -0.1862,
"percent_delta": -0.3715,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 0,
"deboosted_metrics": 4,
"better_metrics": 0,
"worse_metrics": 4,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 2,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.3027,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3907,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.5012,
"predicted_SO": 2.0,
"predicted_SS": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.193,
"after": 0.3027,
"delta": 0.1097,
"percent_delta": 0.5684,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.287,
"after": 0.3907,
"delta": 0.1037,
"percent_delta": 0.3612,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.315,
"after": 0.5012,
"delta": 0.1862,
"percent_delta": 0.5911,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.315,
"after": 0.5012,
"delta": 0.1862,
"percent_delta": 0.5911,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.123,
"after": 0.0,
"delta": -0.123,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.006,
"after": 0.0,
"delta": -0.006,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.57,
"after": 4.0,
"delta": 0.43,
"percent_delta": 0.1204,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.305,
"after": 0.3027,
"delta": -0.0023,
"percent_delta": -0.0075,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.497,
"after": 0.0,
"delta": -0.497,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.09,
"after": 0.0,
"delta": -1.09,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.16,
"after": 0.0,
"delta": -0.16,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.389,
"after": 0.3907,
"delta": 0.0017,
"percent_delta": 0.0044,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.452,
"after": 0.0,
"delta": -0.452,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.51,
"after": 0.0,
"delta": -0.51,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.502,
"after": 0.5012,
"delta": -0.0008,
"percent_delta": -0.0016,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.71,
"after": 2.0,
"delta": 1.29,
"percent_delta": 1.8169,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 8,
"boosted_metrics": 2,
"deboosted_metrics": 6,
"better_metrics": 1,
"worse_metrics": 7,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.71,
"after": 2.0,
"delta": 1.29,
"percent_delta": 1.8169,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.09,
"after": 0.0,
"delta": -1.09,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.123 | - |
| predicted_3B | 0.006 | - |
| predicted_AB | 3.570 | - |
| predicted_AVG | 0.305 | - |
| predicted_BB | 0.497 | - |
| predicted_H | 1.090 | - |
| predicted_HR | 0.160 | - |
| predicted_OBP | 0.389 | - |
| predicted_R | 0.452 | - |
| predicted_RBI | 0.510 | - |
| predicted_SLG | 0.502 | - |
| predicted_SO | 0.710 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.146 | 0.023 |
| predicted_3B | 0.013 | 0.007 |
| predicted_AB | 3.464 | -0.106 |
| predicted_AVG | 0.310 | 0.005 |
| predicted_BB | 0.503 | 0.006 |
| predicted_H | 1.073 | -0.017 |
| predicted_HBP | 0.016 | - |
| predicted_HR | 0.177 | 0.017 |
| predicted_OBP | 0.397 | 0.008 |
| predicted_R | 0.550 | 0.098 |
| predicted_RBI | 0.486 | -0.024 |
| predicted_SLG | 0.528 | 0.026 |
| predicted_SO | 0.684 | -0.026 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.146 | 0.000 |
| predicted_3B | 0.013 | 0.000 |
| predicted_AB | 3.464 | 0.000 |
| predicted_AVG | 0.303 | -0.007 |
| predicted_BB | 0.500 | -0.003 |
| predicted_H | 1.048 | -0.024 |
| predicted_HBP | 0.016 | 0.000 |
| predicted_HR | 0.172 | -0.005 |
| predicted_OBP | 0.391 | -0.006 |
| predicted_R | 0.529 | -0.021 |
| predicted_RBI | 0.468 | -0.018 |
| predicted_SLG | 0.501 | -0.027 |
| predicted_SO | 0.688 | 0.004 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=3.57), rates preserved: AVG=0.246 HR/AB=0.048
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.134 | 0.134 |
| 3B | 0.008 | 0.008 |
| BB | 0.425 | 0.425 |
| H | 0.664 | -0.336 |
| HR | 0.091 | 0.091 |
| RBI | 0.392 | 0.392 |
| SO | 0.962 | -0.038 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.134 |
| 3B | 0.000 | -0.008 |
| AB | 3.000 | 0.000 |
| BB | 1.000 | 0.575 |
| H | 1.000 | 0.336 |
| HR | 0.000 | -0.091 |
| R | 1.000 | 0.000 |
| RBI | 0.000 | -0.392 |
| SO | 1.000 | 0.038 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.146 |
| predicted_3B | 0.000 | -0.013 |
| predicted_AB | 3.000 | -0.464 |
| predicted_AVG | 0.193 | -0.110 |
| predicted_BB | 0.000 | -0.500 |
| predicted_H | 1.000 | -0.048 |
| predicted_HR | 0.000 | -0.172 |
| predicted_OBP | 0.287 | -0.104 |
| predicted_R | 1.000 | 0.471 |
| predicted_RBI | 0.000 | -0.468 |
| predicted_SLG | 0.315 | -0.186 |
| predicted_SO | 1.000 | 0.312 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 1.000 |
| BB | 0.000 | -1.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | -1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | -1.000 |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 2.000 | 1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 15.000 | 7.000 | 1.000 | 0.000 | 2.000 | 3.000 | 5.000 | 3.000 | 2.000 | 0.4667 | 0.5556 | 0.9333 | 0.4667 | 0.1333 | 0.2000 | 0.2000 | 0.1333 |
| last_10 | 0.20 | 10 | - | 33.000 | 14.000 | 3.000 | 1.000 | 3.000 | 5.000 | 10.000 | 5.000 | 7.000 | 0.4242 | 0.5000 | 0.8485 | 0.4242 | 0.0909 | 0.1515 | 0.1515 | 0.2121 |
| season | 0.60 | 155 | - | 528.000 | 124.000 | 19.000 | 1.000 | 14.000 | 59.000 | 70.000 | 77.000 | 110.000 | 0.2348 | 0.3339 | 0.3542 | 0.2349 | 0.0265 | 0.1117 | 0.1458 | 0.2083 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1760 |
| predicted_3B | 0.0230 |
| predicted_AB | 3.3270 |
| predicted_AVG | 0.3158 |
| predicted_BB | 0.5110 |
| predicted_H | 1.0510 |
| predicted_HBP | 0.0160 |
| predicted_HR | 0.1980 |
| predicted_OBP | 0.4065 |
| predicted_R | 0.6760 |
| predicted_RBI | 0.4550 |
| predicted_SLG | 0.5614 |
| predicted_SO | 0.6500 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1230 | 0.1760 | 0.1461 | model_form_blend |
| predicted_3B | 0.0060 | 0.0230 | 0.0134 | model_form_blend |
| predicted_AB | 3.5700 | 3.3270 | 3.4640 | model_form_blend |
| predicted_AVG | 0.3050 | 0.3158 | 0.3097 | model_form_blend |
| predicted_BB | 0.4970 | 0.5110 | 0.5031 | model_form_blend |
| predicted_H | 1.0900 | 1.0510 | 1.0730 | model_form_blend |
| predicted_HBP | - | 0.0160 | 0.0160 | form_only |
| predicted_HR | 0.1600 | 0.1980 | 0.1766 | model_form_blend |
| predicted_OBP | 0.3890 | 0.4065 | 0.3966 | model_form_blend |
| predicted_R | 0.4520 | 0.6760 | 0.5497 | model_form_blend |
| predicted_RBI | 0.5100 | 0.4550 | 0.4860 | model_form_blend |
| predicted_SLG | 0.5020 | 0.5614 | 0.5279 | model_form_blend |
| predicted_SO | 0.7100 | 0.6500 | 0.6838 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 585 |
| Season rows before report date | 585 |
| Report year | 2026 |
| Profile rows used | 155 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 2 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 1 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.5 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 2 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 1 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 3 |
| Hitting_battingOrder | 6 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | SS |
| gameID | 20260930_CHC@SD |
| game_type | full |
| mlbID | 593428 |
| playerID | 593428 |
| playerName | Xander Bogaerts |
| pos | SS |
| started | True |
| startingPosition | SS |
| team | SD |
| teamID | 23 |
| game_date | 2026-09-30 |
| sl_k_percent | 18.0 |
| sl_bb_percent | 12.7 |
| sl_woba | 0.306 |
| sl_xwoba | 0.325 |
| sl_xba | 0.248 |
| sl_xslg | 0.376 |
| sl_sweet_spot_percent | 27.9 |
| sl_barrel_batted_rate | 5.5 |
| sl_hard_hit_percent | 42.3 |
| sl_exit_velocity_avg | 89.6 |
| sl_launch_angle_avg | 6.7 |
| sl_whiff_percent | 23.1 |
| sl_swing_percent | 41.5 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 1.000 | 1.000 | 1.000 | Pitching_BB | 3.000 | 1.000 | -2.000 | 0.000 |
| predicted_ER | 3.000 | 3.000 | 3.000 | Pitching_ER | 2.667 | 1.000 | 0.333 | 2.000 |
| predicted_H | 6.000 | 6.000 | 6.000 | Pitching_H | 4.333 | 7.000 | 1.667 | -1.000 |
| predicted_IP | 5.000 | 5.000 | 5.000 | Pitching_InningsPitched | 4.700 | 3.100 | 0.300 | 1.900 |
| predicted_SO | 4.000 | 4.000 | 4.000 | Pitching_SO | 3.667 | 2.000 | 0.333 | 2.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_form_blend |
| To | current_json_final |
| Dominant Effect | neutral |
| Changed Metrics | 0 |
| Boosted Metrics | 0 |
| Deboosted Metrics | 0 |
| Better Metrics | 0 |
| Worse Metrics | 0 |
| Biggest Boost | - |
| Biggest Deboost | - |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 2 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "pitcher",
"player_id": "592662",
"player_name": "Robbie Ray",
"position": "Starter",
"team": "SD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 3.0,
"predicted_H": 6.0,
"predicted_HR": 1.0,
"predicted_IP": 5.0,
"predicted_R": 3.0,
"predicted_SO": 4.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 5.0,
"after": 5.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
}Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 1.000 | - |
| predicted_ER | 3.000 | - |
| predicted_H | 6.000 | - |
| predicted_HR | 1.000 | - |
| predicted_IP | 5.000 | - |
| predicted_SO | 4.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 22.200 | 15.000 | 22.000 | 14.000 | 18.000 | 3.000 | 5.9559 | 1.5882 | 0.6618 | 0.9706 | 0.6177 | 0.7941 | 0.1323 |
| last_10 | 0.35 | 10 | 49.000 | 25.000 | 43.000 | 28.000 | 39.000 | 7.000 | 4.5918 | 1.4490 | 0.5102 | 0.8776 | 0.5714 | 0.7959 | 0.1429 |
| season | 0.20 | 31 | 165.200 | 66.000 | 140.000 | 84.000 | 140.000 | 22.000 | 3.5855 | 1.3521 | 0.3984 | 0.8451 | 0.5070 | 0.8451 | 0.1328 |
| Metric | Value |
|---|---|
| predicted_BB | 2.7180 |
| predicted_ER | 2.7100 |
| predicted_ERA | 4.9495 |
| predicted_H | 4.5480 |
| predicted_HR | 0.6790 |
| predicted_IP | 5.0000 |
| predicted_SO | 4.0550 |
| predicted_WHIP | 1.4744 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 1.0000 | 2.7180 | 2.0159 | model_form_blend |
| predicted_ER | 3.0000 | 2.7100 | 2.8285 | model_form_blend |
| predicted_ERA | - | 4.9495 | 4.9495 | form_only |
| predicted_H | 6.0000 | 4.5480 | 5.1414 | model_form_blend |
| predicted_HR | 1.0000 | 0.6790 | 0.8102 | model_form_blend |
| predicted_IP | 5.0000 | 5.0000 | 5.0000 | model_form_blend |
| predicted_SO | 4.0000 | 4.0550 | 4.0325 | model_form_blend |
| predicted_WHIP | - | 1.4744 | 1.4744 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 9 |
| Season rows before report date | 9 |
| Report year | 2026 |
| Profile rows used | 31 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 5.0 |
| H | 6 |
| R | 3 |
| ER | 3 |
| BB | 1 |
| SO | 4 |
| HR | 1 |
| BF | 22 |
| Pitches | 97 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 1 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 17 |
| Pitching_ER | 1 |
| Pitching_ERA | 3.59 |
| Pitching_Flyouts | 3 |
| Pitching_Groundouts | 2 |
| Pitching_H | 7 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 3.1 |
| Pitching_Pitches | 84 |
| Pitching_R | 1 |
| Pitching_SO | 2 |
| Pitching_Strikes | 55 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 1 |
| allPositionsPlayed | P |
| gameID | 20260923_SD@LAD |
| game_type | full |
| mlbID | 592662 |
| playerID | 592662 |
| playerName | Robbie Ray |
| pos | P |
| started | True |
| startingPosition | P |
| team | SD |
| teamID | 23 |
| game_date | 2026-09-23 |
| sl_k_percent | 19.9 |
| sl_bb_percent | 12.0 |
| sl_woba | 0.315 |
| sl_xwoba | 0.335 |
| sl_sweet_spot_percent | 33.2 |
| sl_barrel_batted_rate | 8.0 |
| sl_hard_hit_percent | 37.4 |
| sl_whiff_percent | 24.6 |
| sl_swing_percent | 46.2 |
| sl_avg_best_speed | 78.739528798 |
| sl_avg_hyper_speed | 93.988523369 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 1.000 | 1.000 | 1.000 | Pitching_BB | 0.304 | 1.000 | 0.696 | 0.000 |
| predicted_ER | 0.000 | 0.000 | 0.000 | Pitching_ER | 0.261 | 0.000 | -0.261 | 0.000 |
| predicted_H | 0.000 | 0.000 | 0.000 | Pitching_H | 0.855 | 0.000 | -0.855 | 0.000 |
| predicted_IP | 1.200 | 1.200 | 1.200 | Pitching_InningsPitched | 0.958 | 1.200 | 0.242 | 0.000 |
| predicted_SO | 0.000 | 0.000 | 0.000 | Pitching_SO | 1.203 | 2.000 | -1.203 | -2.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_form_blend |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 1 |
| Boosted Metrics | 0 |
| Deboosted Metrics | 1 |
| Better Metrics | 0 |
| Worse Metrics | 1 |
| Biggest Boost | - |
| Biggest Deboost | predicted_IP: 1.3333 -> 1.2000 (deboost -0.1333, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 2 | current_json_final | 1 | 0 | 1 | 0 | 1 | - | predicted_IP: 1.3333 -> 1.2000 (deboost -0.1333, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "pitcher",
"player_id": "699134",
"player_name": "Bradgley Rodriguez",
"position": "Middle Reliever (High Leverage)",
"team": "SD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 1.3333,
"predicted_SO": 0.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_IP": 1.2,
"predicted_R": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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": 1.3333,
"after": 1.2,
"delta": -0.1333,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 1.3333,
"after": 1.2,
"delta": -0.1333,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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": 1.3333,
"after": 1.2,
"delta": -0.1333,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 1.3333,
"after": 1.2,
"delta": -0.1333,
"percent_delta": -0.1,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 1.000 | - |
| predicted_ER | 0.000 | - |
| predicted_H | 0.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 1.333 | - |
| predicted_SO | 0.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 7.200 | 0.000 | 3.000 | 3.000 | 9.000 | 0.000 | 0.0000 | 0.7826 | 0.0000 | 0.3913 | 0.3913 | 1.1739 | 0.0000 |
| last_10 | 0.35 | 10 | 13.100 | 1.000 | 6.000 | 3.000 | 16.000 | 1.000 | 0.6750 | 0.6750 | 0.0750 | 0.4500 | 0.2250 | 1.2000 | 0.0750 |
| season | 0.20 | 67 | 75.200 | 14.000 | 53.000 | 20.000 | 83.000 | 4.000 | 1.6652 | 0.9648 | 0.1850 | 0.7004 | 0.2643 | 1.0969 | 0.0529 |
| Metric | Value |
|---|---|
| predicted_BB | 0.4540 |
| predicted_ER | 0.2410 |
| predicted_ERA | 1.5502 |
| predicted_H | 0.8350 |
| predicted_HR | 0.0890 |
| predicted_IP | 1.1000 |
| predicted_SO | 1.5510 |
| predicted_WHIP | 0.9227 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 1.0000 | 0.4540 | 0.7011 | model_form_blend |
| predicted_ER | 0.0000 | 0.2410 | 0.1319 | model_form_blend |
| predicted_ERA | - | 1.5502 | 1.5502 | form_only |
| predicted_H | 0.0000 | 0.8350 | 0.4571 | model_form_blend |
| predicted_HR | 0.0000 | 0.0890 | 0.0487 | model_form_blend |
| predicted_IP | 1.1000 | 1.1000 | 1.1000 | model_form_blend |
| predicted_SO | 0.0000 | 1.5510 | 0.8490 | model_form_blend |
| predicted_WHIP | - | 0.9227 | 0.9227 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 69 |
| Season rows before report date | 69 |
| Report year | 2026 |
| Profile rows used | 67 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 1.2 |
| H | 0 |
| R | 0 |
| ER | 0 |
| BB | 1 |
| SO | 0 |
| HR | 0 |
| BF | 6 |
| Pitches | 25 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 1 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 7 |
| Pitching_ER | 0 |
| Pitching_ERA | 0.00 |
| Pitching_Flyouts | 2 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 1 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 2 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 1.2 |
| Pitching_Pitches | 21 |
| Pitching_R | 0 |
| Pitching_SO | 2 |
| Pitching_Strikes | 13 |
| Pitching_Wild Pitch | 0 |
| Pitching_decision | W |
| Pitching_pitchingOrder | 2 |
| allPositionsPlayed | P |
| gameID | 20260930_CHC@SD |
| game_type | full |
| mlbID | 699134 |
| playerID | 699134 |
| playerName | Bradgley Rodriguez |
| pos | P |
| started | False |
| startingPosition | P |
| team | SD |
| teamID | 23 |
| game_date | 2026-09-30 |
| sl_k_percent | 26.9 |
| sl_bb_percent | 6.6 |
| sl_woba | 0.266 |
| sl_xwoba | 0.239 |
| sl_sweet_spot_percent | 27.0 |
| sl_barrel_batted_rate | 4.5 |
| sl_hard_hit_percent | 30.0 |
| sl_whiff_percent | 30.1 |
| sl_swing_percent | 51.6 |
| sl_avg_best_speed | 76.26349102 |
| sl_avg_hyper_speed | 92.978718367 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 0.000 | 0.000 | 0.000 | Pitching_BB | 0.388 | 0.000 | -0.388 | 0.000 |
| predicted_ER | 1.000 | 1.000 | 1.000 | Pitching_ER | 0.194 | 0.000 | 0.806 | 1.000 |
| predicted_H | 1.000 | 1.000 | 1.000 | Pitching_H | 0.567 | 1.000 | 0.433 | 0.000 |
| predicted_IP | 1.000 | 1.000 | 1.000 | Pitching_InningsPitched | 1.007 | 1.000 | -0.007 | 0.000 |
| predicted_SO | 0.000 | 0.000 | 0.000 | Pitching_SO | 1.955 | 2.000 | -1.955 | -2.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_form_blend |
| To | current_json_final |
| Dominant Effect | neutral |
| Changed Metrics | 0 |
| Boosted Metrics | 0 |
| Deboosted Metrics | 0 |
| Better Metrics | 0 |
| Worse Metrics | 0 |
| Biggest Boost | - |
| Biggest Deboost | - |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 2 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "pitcher",
"player_id": "695243",
"player_name": "Mason Miller",
"position": "Closer",
"team": "SD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_IP": 1.0,
"predicted_SO": 0.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_IP": 1.0,
"predicted_R": 1.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
}Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 0.000 | - |
| predicted_ER | 1.000 | - |
| predicted_H | 1.000 | - |
| predicted_HR | 1.000 | - |
| predicted_IP | 1.000 | - |
| predicted_SO | 0.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 5.000 | 4.000 | 5.000 | 3.000 | 8.000 | 0.000 | 7.2000 | 1.6000 | 0.8000 | 1.0000 | 0.6000 | 1.6000 | 0.0000 |
| last_10 | 0.35 | 10 | 10.200 | 5.000 | 9.000 | 5.000 | 20.000 | 1.000 | 4.2188 | 1.3125 | 0.4688 | 0.8438 | 0.4688 | 1.8750 | 0.0938 |
| season | 0.20 | 67 | 71.000 | 13.000 | 38.000 | 26.000 | 131.000 | 3.000 | 1.6479 | 0.9014 | 0.1831 | 0.5352 | 0.3662 | 1.8451 | 0.0423 |
| Metric | Value |
|---|---|
| predicted_BB | 0.4750 |
| predicted_ER | 0.5480 |
| predicted_ERA | 4.9349 |
| predicted_H | 0.8860 |
| predicted_HR | 0.0680 |
| predicted_IP | 1.0000 |
| predicted_SO | 1.5380 |
| predicted_WHIP | 1.3606 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 0.0000 | 0.4750 | 0.2576 | model_form_blend |
| predicted_ER | 1.0000 | 0.5480 | 0.7548 | model_form_blend |
| predicted_ERA | - | 4.9349 | 4.9349 | form_only |
| predicted_H | 1.0000 | 0.8860 | 0.9382 | model_form_blend |
| predicted_HR | 1.0000 | 0.0680 | 0.4945 | model_form_blend |
| predicted_IP | 1.0000 | 1.0000 | 1.0000 | model_form_blend |
| predicted_SO | 0.0000 | 1.5380 | 0.8342 | model_form_blend |
| predicted_WHIP | - | 1.3606 | 1.3606 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 67 |
| Season rows before report date | 67 |
| Report year | 2026 |
| Profile rows used | 67 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 1.0 |
| H | 1 |
| R | 1 |
| ER | 1 |
| BB | 0 |
| SO | 0 |
| HR | 1 |
| BF | 4 |
| Pitches | 16 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 4 |
| Pitching_ER | 0 |
| Pitching_ERA | 0.00 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 1 |
| Pitching_H | 1 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 1.0 |
| Pitching_Pitches | 19 |
| Pitching_R | 0 |
| Pitching_SO | 2 |
| Pitching_Strikes | 13 |
| Pitching_Wild Pitch | 0 |
| Pitching_decision | S |
| Pitching_pitchingOrder | 5 |
| allPositionsPlayed | P |
| gameID | 20260930_CHC@SD |
| game_type | full |
| mlbID | 695243 |
| playerID | 695243 |
| playerName | Mason Miller |
| pos | P |
| started | False |
| startingPosition | P |
| team | SD |
| teamID | 23 |
| game_date | 2026-09-30 |
| sl_k_percent | 47.4 |
| sl_bb_percent | 9.6 |
| sl_woba | 0.208 |
| sl_xwoba | 0.201 |
| sl_sweet_spot_percent | 31.3 |
| sl_barrel_batted_rate | 7.0 |
| sl_hard_hit_percent | 28.7 |
| sl_whiff_percent | 45.3 |
| sl_swing_percent | 47.3 |
| sl_avg_best_speed | 75.813395439 |
| sl_avg_hyper_speed | 92.786414386 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 1.000 | 1.000 | 1.000 | Pitching_BB | 0.364 | 0.000 | 0.636 | 1.000 |
| predicted_ER | 2.000 | 2.000 | 2.000 | Pitching_ER | 0.351 | 0.000 | 1.649 | 2.000 |
| predicted_H | 1.000 | 1.000 | 1.000 | Pitching_H | 0.857 | 1.000 | 0.143 | 0.000 |
| predicted_IP | 0.100 | 0.100 | 0.100 | Pitching_InningsPitched | 1.016 | 2.000 | -0.916 | -1.900 |
| predicted_SO | 1.000 | 1.000 | 1.000 | Pitching_SO | 1.390 | 0.000 | -0.390 | 1.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_form_blend |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 1 |
| Boosted Metrics | 0 |
| Deboosted Metrics | 1 |
| Better Metrics | 0 |
| Worse Metrics | 1 |
| Biggest Boost | - |
| Biggest Deboost | predicted_IP: 0.3333 -> 0.1000 (deboost -0.2333, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 2 | current_json_final | 1 | 0 | 1 | 0 | 1 | - | predicted_IP: 0.3333 -> 0.1000 (deboost -0.2333, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "pitcher",
"player_id": "670970",
"player_name": "Adrian Morejon",
"position": "Setup Man",
"team": "SD",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_IP": 0.3333,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 1.0,
"predicted_ER": 2.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_IP": 0.1,
"predicted_R": 2.0,
"predicted_SO": 1.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": 1.0,
"after": 1.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": 0.3333,
"after": 0.1,
"delta": -0.2333,
"percent_delta": -0.7,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 0.3333,
"after": 0.1,
"delta": -0.2333,
"percent_delta": -0.7,
"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": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 0.3333,
"after": 0.1,
"delta": -0.2333,
"percent_delta": -0.7,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_IP",
"before": 0.3333,
"after": 0.1,
"delta": -0.2333,
"percent_delta": -0.7,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 1.000 | - |
| predicted_ER | 2.000 | - |
| predicted_H | 1.000 | - |
| predicted_HR | 1.000 | - |
| predicted_IP | 0.333 | - |
| predicted_SO | 1.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 6.000 | 1.000 | 3.000 | 4.000 | 6.000 | 0.000 | 1.5000 | 1.1667 | 0.1667 | 0.5000 | 0.6667 | 1.0000 | 0.0000 |
| last_10 | 0.35 | 10 | 10.100 | 2.000 | 5.000 | 4.000 | 12.000 | 0.000 | 1.7419 | 0.8710 | 0.1935 | 0.4839 | 0.3871 | 1.1613 | 0.0000 |
| season | 0.20 | 77 | 88.000 | 27.000 | 66.000 | 28.000 | 107.000 | 4.000 | 2.7614 | 1.0682 | 0.3068 | 0.7500 | 0.3182 | 1.2159 | 0.0454 |
| Metric | Value |
|---|---|
| predicted_BB | 0.4610 |
| predicted_ER | 0.2640 |
| predicted_ERA | 2.4361 |
| predicted_H | 0.6220 |
| predicted_HR | 0.0380 |
| predicted_IP | 1.0000 |
| predicted_SO | 1.0360 |
| predicted_WHIP | 1.1127 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 1.0000 | 0.4610 | 0.6989 | model_form_blend |
| predicted_ER | 2.0000 | 0.2640 | 1.0301 | model_form_blend |
| predicted_ERA | - | 2.4361 | 2.4361 | form_only |
| predicted_H | 1.0000 | 0.6220 | 0.7888 | model_form_blend |
| predicted_HR | 1.0000 | 0.0380 | 0.4625 | model_form_blend |
| predicted_IP | 0.1000 | 1.0000 | 0.2000 | model_form_blend |
| predicted_SO | 1.0000 | 1.0360 | 1.0201 | model_form_blend |
| predicted_WHIP | - | 1.1127 | 1.1127 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 77 |
| Season rows before report date | 77 |
| Report year | 2026 |
| Profile rows used | 77 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 0.1 |
| H | 1 |
| R | 2 |
| ER | 2 |
| BB | 1 |
| SO | 1 |
| HR | 1 |
| BF | 3 |
| Pitches | 11 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 6 |
| Pitching_ER | 0 |
| Pitching_ERA | 0.00 |
| Pitching_Flyouts | 3 |
| Pitching_Groundouts | 2 |
| Pitching_H | 1 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 2.0 |
| Pitching_Pitches | 29 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 18 |
| Pitching_Wild Pitch | 0 |
| Pitching_decision | H |
| Pitching_pitchingOrder | 4 |
| allPositionsPlayed | P |
| gameID | 20260930_CHC@SD |
| game_type | full |
| mlbID | 670970 |
| playerID | 670970 |
| playerName | Adrian Morejon |
| pos | P |
| started | False |
| startingPosition | P |
| team | SD |
| teamID | 23 |
| game_date | 2026-09-30 |
| sl_k_percent | 30.4 |
| sl_bb_percent | 8.0 |
| sl_woba | 0.244 |
| sl_xwoba | 0.237 |
| sl_sweet_spot_percent | 28.3 |
| sl_barrel_batted_rate | 2.8 |
| sl_hard_hit_percent | 32.5 |
| sl_whiff_percent | 34.2 |
| sl_swing_percent | 52.6 |
| sl_avg_best_speed | 74.331806132 |
| sl_avg_hyper_speed | 93.323366588 |
| Field | Value |
|---|---|
| Pitcher | Jacob Misiorowski |
| Role | Starter |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 1.3589 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | 0.2800 |
| Avg Velo | 97.5351 |
| Avg Spin | 2568.6403 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 6 |
| Pre ER | 1 |
| Pre H | 4 |
| Pre BB | 4 |
| Pre SO | 6 |
| Season ERA | 1.8034 |
| Season WHIP | 0.8015 |
| Role Avg IP | 5.8220 |
| Recent Avg IP | 4.7330 |
| Last Start IP | 5.1000 |
{
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIL",
"games": 162,
"wins": 103,
"losses": 59,
"win_pct": 0.6358,
"runs_scored": 832.0,
"runs_allowed": 618.0,
"run_differential": 214.0,
"run_differential_per_game": 1.321,
"avg_runs_scored": 5.1358,
"avg_runs_allowed": 3.8148,
"offense_index": 1.1432,
"defense_index": 1.1777,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 3.0,
"run_differential": 14.0
},
"available": true,
"quality_score": 0.3822
},
"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.992,
"defense_index": 1.0687,
"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.1938,
"offense_edge": 0.1432,
"opponent_offense_edge": -0.008,
"defense_strength": 0.1777,
"opponent_defense_weakness": -0.0687,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0134,
"run_prevention": 0.9713,
"strikeout": 1.0065
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "694819",
"profile": {
"available": true,
"pitcher_id": "694819",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 614.0,
"k_percent": 37.9,
"bb_percent": 6.6,
"woba": 0.216,
"xwoba": 0.226,
"sweet_spot_percent": 33.9,
"barrel_batted_rate": 3.6,
"hard_hit_percent": 33.3,
"avg_best_speed": 76.4985,
"avg_hyper_speed": 92.9527,
"whiff_percent": 37.3,
"swing_percent": 51.3
},
"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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.6247,
"command_and_miss": 1.7507,
"regression_edge": -0.2857,
"xwoba_edge": 2.4571,
"barrel_edge": 0.8,
"hard_hit_edge": 0.6571,
"whiff_edge": 1.7286,
"bb_edge": 0.65,
"pitch_design_score": 0.28
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "694819",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 91,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 97.5350871630707,
"release_spin_rate": 2568.640260744372,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 97.5350871630707,
"release_spin_rate": 2568.640260744372,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 97.5351,
"release_spin_rate": 2568.6403,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.28,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 2.0,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
},
"quality_score": 1.3589,
"sample_weight": 1.0,
"run_prevention_factor": 0.8845,
"strikeout_factor": 1.1594,
"walk_factor": 0.948,
"homer_factor": 0.836,
"woba_minus_xwoba": -0.01,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "694819",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 1.0,
"factor": 0.8845,
"adjusted": 1
},
"predicted_H": {
"original": 3.0,
"factor": 0.8845,
"adjusted": 3
},
"predicted_BB": {
"original": 2.0,
"factor": 0.948,
"adjusted": 2
},
"predicted_HR": {
"original": 0.0,
"factor": 0.836,
"adjusted": 0
},
"predicted_SO": {
"original": 7.0,
"factor": 1.1594,
"adjusted": 8
}
}
}
}{
"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": 14,
"H": 34,
"BB": 16,
"SO": 67,
"HR": 4,
"ERA": 2.304878048780488,
"WHIP": 0.9146341463414634,
"K9": 11.03048780487805,
"HR9": 0.6585365853658537,
"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-27T00:00:00"
}{
"available": true,
"pitcher_id": "694819",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 91,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 97.5350871630707,
"release_spin_rate": 2568.640260744372,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"pitch_mix": [
{
"pitch_type": null,
"pitch_name": null,
"pitches": 91,
"pitch_usage": 0.0,
"release_speed": 97.5350871630707,
"release_spin_rate": 2568.640260744372,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 97.5351,
"release_spin_rate": 2568.6403,
"spin_axis": 0.0,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": 0.0,
"release_pos_x": 0.0,
"release_pos_z": 0.0,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
},
"components": {
"movement_score": 0.28,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 2.0,
"whiff_edge": 0.0,
"xwoba_edge": -0.0,
"hard_hit_edge": -0.0
},
"spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
}{
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "694819",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 30,
"reference_playing_time": 6.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 23.2,
"ER": 6.0,
"R": 6.0,
"H": 17.0,
"BB": 9.0,
"SO": 30.0,
"HR": 1.0,
"BF": 94.0,
"Pitches": 379.0
},
"per_game": {
"IP": 4.2,
"ER": 1.2,
"R": 1.2,
"H": 3.4,
"BB": 1.8,
"SO": 6.0,
"HR": 0.2,
"BF": 18.8,
"Pitches": 75.8
},
"rates": {
"ERA": 2.2817,
"WHIP": 1.0986,
"ER_per_IP": 0.25352,
"H_per_IP": 0.71831,
"BB_per_IP": 0.38028,
"SO_per_IP": 1.26761,
"HR_per_IP": 0.04225
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 54.2,
"ER": 14.0,
"R": 14.0,
"H": 34.0,
"BB": 16.0,
"SO": 67.0,
"HR": 4.0,
"BF": 209.0,
"Pitches": 839.0
},
"per_game": {
"IP": 5.1,
"ER": 1.4,
"R": 1.4,
"H": 3.4,
"BB": 1.6,
"SO": 6.7,
"HR": 0.4,
"BF": 20.9,
"Pitches": 83.9
},
"rates": {
"ERA": 2.3049,
"WHIP": 0.9146,
"ER_per_IP": 0.2561,
"H_per_IP": 0.62195,
"BB_per_IP": 0.29268,
"SO_per_IP": 1.22561,
"HR_per_IP": 0.07317
}
},
"season": {
"games": 30,
"totals": {
"IP": 174.2,
"ER": 35.0,
"R": 43.0,
"H": 96.0,
"BB": 44.0,
"SO": 252.0,
"HR": 14.0,
"BF": 665.0,
"Pitches": 2647.0
},
"per_game": {
"IP": 5.2,
"ER": 1.1667,
"R": 1.4333,
"H": 3.2,
"BB": 1.4667,
"SO": 8.4,
"HR": 0.4667,
"BF": 22.1667,
"Pitches": 88.2333
},
"rates": {
"ERA": 1.8034,
"WHIP": 0.8015,
"ER_per_IP": 0.20038,
"H_per_IP": 0.54962,
"BB_per_IP": 0.25191,
"SO_per_IP": 1.44275,
"HR_per_IP": 0.08015
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 5.1,
"predicted_ER": 1.475,
"predicted_H": 3.652,
"predicted_BB": 1.735,
"predicted_SO": 6.469,
"predicted_HR": 0.382,
"predicted_ERA": 2.5393,
"predicted_WHIP": 1.0303
}
}{
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4104,
"form_weight": 0.5896,
"form_reliability": 0.8571,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 30.0,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.8571,
"prior_weight": 0.1429
},
"applied_metrics": {
"predicted_IP": {
"model": 6.0,
"form": 5.1,
"final": 5.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 1.475,
"final": 1.2801,
"source": "model_form_blend"
},
"predicted_H": {
"model": 4.0,
"form": 3.652,
"final": 3.7948,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 4.0,
"form": 1.735,
"final": 2.6645,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 4.0,
"form": 6.469,
"final": 5.4558,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.382,
"final": 0.2252,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.5393,
"final": 2.5393,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0303,
"final": 1.0303,
"source": "form_only"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | Aaron Ashby |
| Role | Middle Reliever (High Leverage) |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 0.7133 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | 0.1497 |
| Avg Velo | 92.5376 |
| Avg Spin | 2237.9882 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 1 |
| Pre ER | 2 |
| Pre H | 3 |
| Pre BB | 0 |
| Pre SO | 0 |
| Season ERA | 3.1231 |
| Season WHIP | 1.3097 |
| Role Avg IP | 1.1760 |
| Recent Avg IP | 1.6000 |
| Last Start IP | 0 |
{
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIL",
"games": 162,
"wins": 103,
"losses": 59,
"win_pct": 0.6358,
"runs_scored": 832.0,
"runs_allowed": 618.0,
"run_differential": 214.0,
"run_differential_per_game": 1.321,
"avg_runs_scored": 5.1358,
"avg_runs_allowed": 3.8148,
"offense_index": 1.1432,
"defense_index": 1.1777,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 3.0,
"run_differential": 14.0
},
"available": true,
"quality_score": 0.3822
},
"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.992,
"defense_index": 1.0687,
"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.1938,
"offense_edge": 0.1432,
"opponent_offense_edge": -0.008,
"defense_strength": 0.1777,
"opponent_defense_weakness": -0.0687,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0134,
"run_prevention": 0.9713,
"strikeout": 1.0065
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "676879",
"profile": {
"available": true,
"pitcher_id": "676879",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 358.0,
"k_percent": 30.3,
"bb_percent": 10.7,
"woba": 0.287,
"xwoba": 0.268,
"sweet_spot_percent": 28.1,
"barrel_batted_rate": 4.9,
"hard_hit_percent": 40.2,
"avg_best_speed": 76.2048,
"avg_hyper_speed": 94.4472,
"whiff_percent": 32.1,
"swing_percent": 40.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 0.7853,
"command_and_miss": 0.7971,
"regression_edge": 0.5429,
"xwoba_edge": 1.2571,
"barrel_edge": 0.5111,
"hard_hit_edge": -0.3286,
"whiff_edge": 0.9857,
"bb_edge": -0.375,
"pitch_design_score": 0.1497
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "676879",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 23,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 23,
"pitch_usage": 0.0,
"release_speed": 92.53759546608512,
"release_spin_rate": 2237.9882290125556,
"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": 23,
"pitch_usage": 0.0,
"release_speed": 92.53759546608512,
"release_spin_rate": 2237.9882290125556,
"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.5376,
"release_spin_rate": 2237.9882,
"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.1497,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.0694,
"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.7133,
"sample_weight": 1.0,
"run_prevention_factor": 0.9394,
"strikeout_factor": 1.0863,
"walk_factor": 1.03,
"homer_factor": 0.9345,
"woba_minus_xwoba": 0.019,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "676879",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9394,
"adjusted": 0
},
"predicted_H": {
"original": 1.0,
"factor": 0.9394,
"adjusted": 1
},
"predicted_BB": {
"original": 1.0,
"factor": 1.03,
"adjusted": 1
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9345,
"adjusted": 0
},
"predicted_SO": {
"original": 3.0,
"factor": 1.0863,
"adjusted": 3
}
}
}
}{
"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": 12.1,
"ER": 4,
"H": 10,
"BB": 4,
"SO": 11,
"HR": 2,
"ERA": 2.9189189189189193,
"WHIP": 1.1351351351351353,
"K9": 8.027027027027028,
"HR9": 1.4594594594594597,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-26T00:00:00"
}{
"available": true,
"pitcher_id": "676879",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 23,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 23,
"pitch_usage": 0.0,
"release_speed": 92.53759546608512,
"release_spin_rate": 2237.9882290125556,
"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": 23,
"pitch_usage": 0.0,
"release_speed": 92.53759546608512,
"release_spin_rate": 2237.9882290125556,
"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.5376,
"release_spin_rate": 2237.9882,
"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.1497,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.0694,
"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."
}{
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.411,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7864,
"prior_weight": 0.2136
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "676879",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 75,
"reference_playing_time": 1.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 8.0,
"ER": 2.0,
"R": 2.0,
"H": 3.0,
"BB": 2.0,
"SO": 7.0,
"HR": 1.0,
"BF": 30.0,
"Pitches": 129.0
},
"per_game": {
"IP": 1.2,
"ER": 0.4,
"R": 0.4,
"H": 0.6,
"BB": 0.4,
"SO": 1.4,
"HR": 0.2,
"BF": 6.0,
"Pitches": 25.8
},
"rates": {
"ERA": 2.25,
"WHIP": 0.625,
"ER_per_IP": 0.25,
"H_per_IP": 0.375,
"BB_per_IP": 0.25,
"SO_per_IP": 0.875,
"HR_per_IP": 0.125
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 12.1,
"ER": 4.0,
"R": 4.0,
"H": 10.0,
"BB": 4.0,
"SO": 11.0,
"HR": 2.0,
"BF": 50.0,
"Pitches": 212.0
},
"per_game": {
"IP": 1.1,
"ER": 0.4,
"R": 0.4,
"H": 1.0,
"BB": 0.4,
"SO": 1.1,
"HR": 0.2,
"BF": 5.0,
"Pitches": 21.2
},
"rates": {
"ERA": 2.9189,
"WHIP": 1.1351,
"ER_per_IP": 0.32432,
"H_per_IP": 0.81081,
"BB_per_IP": 0.32432,
"SO_per_IP": 0.89189,
"HR_per_IP": 0.16216
}
},
"season": {
"games": 75,
"totals": {
"IP": 89.1,
"ER": 31.0,
"R": 36.0,
"H": 76.0,
"BB": 41.0,
"SO": 116.0,
"HR": 8.0,
"BF": 383.0,
"Pitches": 1582.0
},
"per_game": {
"IP": 1.1,
"ER": 0.4133,
"R": 0.48,
"H": 1.0133,
"BB": 0.5467,
"SO": 1.5467,
"HR": 0.1067,
"BF": 5.1067,
"Pitches": 21.0933
},
"rates": {
"ERA": 3.1231,
"WHIP": 1.3097,
"ER_per_IP": 0.34701,
"H_per_IP": 0.85075,
"BB_per_IP": 0.45896,
"SO_per_IP": 1.29851,
"HR_per_IP": 0.08955
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 1.1,
"predicted_ER": 0.472,
"predicted_H": 0.966,
"predicted_BB": 0.457,
"predicted_SO": 1.323,
"predicted_HR": 0.186,
"predicted_ERA": 3.0754,
"predicted_WHIP": 1.0308
}
}{
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4402,
"form_weight": 0.5598,
"form_reliability": 0.7864,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 18.411,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7864,
"prior_weight": 0.2136
},
"applied_metrics": {
"predicted_IP": {
"model": 1.0,
"form": 1.1,
"final": 1.2,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 2.0,
"form": 0.472,
"final": 1.1447,
"source": "model_form_blend"
},
"predicted_H": {
"model": 3.0,
"form": 0.966,
"final": 1.8615,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 0.457,
"final": 0.2558,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 0.0,
"form": 1.323,
"final": 0.7406,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.186,
"final": 0.1041,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.0754,
"final": 3.0754,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.0308,
"final": 1.0308,
"source": "form_only"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | Abner Uribe |
| Role | Setup Man |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 0.6573 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | 0.2700 |
| Avg Velo | 94.6849 |
| Avg Spin | 2398.7948 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 1 |
| Pre ER | 0 |
| Pre H | 2 |
| Pre BB | 0 |
| Pre SO | 0 |
| Season ERA | 1.9719 |
| Season WHIP | 1.0281 |
| Role Avg IP | 0.9730 |
| Recent Avg IP | 1 |
| Last Start IP | 0 |
{
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIL",
"games": 162,
"wins": 103,
"losses": 59,
"win_pct": 0.6358,
"runs_scored": 832.0,
"runs_allowed": 618.0,
"run_differential": 214.0,
"run_differential_per_game": 1.321,
"avg_runs_scored": 5.1358,
"avg_runs_allowed": 3.8148,
"offense_index": 1.1432,
"defense_index": 1.1777,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 3.0,
"run_differential": 14.0
},
"available": true,
"quality_score": 0.3822
},
"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.992,
"defense_index": 1.0687,
"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.1938,
"offense_edge": 0.1432,
"opponent_offense_edge": -0.008,
"defense_strength": 0.1777,
"opponent_defense_weakness": -0.0687,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0134,
"run_prevention": 0.9713,
"strikeout": 1.0065
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "682842",
"profile": {
"available": true,
"pitcher_id": "682842",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 213.0,
"k_percent": 26.5,
"bb_percent": 8.1,
"woba": 0.239,
"xwoba": 0.26,
"sweet_spot_percent": 27.0,
"barrel_batted_rate": 2.0,
"hard_hit_percent": 34.9,
"avg_best_speed": 76.7219,
"avg_hyper_speed": 93.4788,
"whiff_percent": 26.8,
"swing_percent": 43.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.2521,
"command_and_miss": 0.4179,
"regression_edge": -0.6,
"xwoba_edge": 1.4857,
"barrel_edge": 1.1556,
"hard_hit_edge": 0.4286,
"whiff_edge": 0.2286,
"bb_edge": 0.275,
"pitch_design_score": 0.27
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "682842",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 11,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 11,
"pitch_usage": 0.0,
"release_speed": 94.68489223992312,
"release_spin_rate": 2398.794798347504,
"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": 11,
"pitch_usage": 0.0,
"release_speed": 94.68489223992312,
"release_spin_rate": 2398.794798347504,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 94.6849,
"release_spin_rate": 2398.7948,
"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.27,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.9283,
"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.6573,
"sample_weight": 0.852,
"run_prevention_factor": 0.9441,
"strikeout_factor": 1.0292,
"walk_factor": 0.9813,
"homer_factor": 0.8687,
"woba_minus_xwoba": -0.021,
"regression_flag": "neutral",
"espn_rank": {
"available": false,
"player_id": "682842",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9524,
"adjusted": 0
},
"predicted_H": {
"original": 1.0,
"factor": 0.9524,
"adjusted": 1
},
"predicted_BB": {
"original": 0.0,
"factor": 0.9841,
"adjusted": 0
},
"predicted_HR": {
"original": 0.0,
"factor": 0.8881,
"adjusted": 0
},
"predicted_SO": {
"original": 2.0,
"factor": 1.0249,
"adjusted": 2
}
}
}
}{
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 9.0,
"ER": 2,
"H": 10,
"BB": 1,
"SO": 11,
"HR": 0,
"ERA": 2.0,
"WHIP": 1.2222222222222223,
"K9": 11.0,
"HR9": 0.0,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-25T00:00:00"
}{
"available": true,
"pitcher_id": "682842",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 11,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 11,
"pitch_usage": 0.0,
"release_speed": 94.68489223992312,
"release_spin_rate": 2398.794798347504,
"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": 11,
"pitch_usage": 0.0,
"release_speed": 94.68489223992312,
"release_spin_rate": 2398.794798347504,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 94.6849,
"release_spin_rate": 2398.7948,
"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.27,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.9283,
"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."
}{
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.228,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7098,
"prior_weight": 0.2902
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "682842",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 61,
"reference_playing_time": 1.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 5.0,
"ER": 0.0,
"R": 0.0,
"H": 5.0,
"BB": 0.0,
"SO": 6.0,
"HR": 0.0,
"BF": 19.0,
"Pitches": 62.0
},
"per_game": {
"IP": 1.0,
"ER": 0.0,
"R": 0.0,
"H": 1.0,
"BB": 0.0,
"SO": 1.2,
"HR": 0.0,
"BF": 3.8,
"Pitches": 12.4
},
"rates": {
"ERA": 0.0,
"WHIP": 1.0,
"ER_per_IP": 0.0,
"H_per_IP": 1.0,
"BB_per_IP": 0.0,
"SO_per_IP": 1.2,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 9.0,
"ER": 2.0,
"R": 2.0,
"H": 10.0,
"BB": 1.0,
"SO": 11.0,
"HR": 0.0,
"BF": 37.0,
"Pitches": 134.0
},
"per_game": {
"IP": 1.0,
"ER": 0.2,
"R": 0.2,
"H": 1.0,
"BB": 0.1,
"SO": 1.1,
"HR": 0.0,
"BF": 3.7,
"Pitches": 13.4
},
"rates": {
"ERA": 2.0,
"WHIP": 1.2222,
"ER_per_IP": 0.22222,
"H_per_IP": 1.11111,
"BB_per_IP": 0.11111,
"SO_per_IP": 1.22222,
"HR_per_IP": 0.0
}
},
"season": {
"games": 61,
"totals": {
"IP": 59.1,
"ER": 13.0,
"R": 13.0,
"H": 42.0,
"BB": 19.0,
"SO": 62.0,
"HR": 3.0,
"BF": 234.0,
"Pitches": 918.0
},
"per_game": {
"IP": 1.0,
"ER": 0.2131,
"R": 0.2131,
"H": 0.6885,
"BB": 0.3115,
"SO": 1.0164,
"HR": 0.0492,
"BF": 3.8361,
"Pitches": 15.0492
},
"rates": {
"ERA": 1.9719,
"WHIP": 1.0281,
"ER_per_IP": 0.2191,
"H_per_IP": 0.70787,
"BB_per_IP": 0.32022,
"SO_per_IP": 1.04494,
"HR_per_IP": 0.05056
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 1.0,
"predicted_ER": 0.235,
"predicted_H": 0.982,
"predicted_BB": 0.183,
"predicted_SO": 1.106,
"predicted_HR": 0.05,
"predicted_ERA": 2.1145,
"predicted_WHIP": 1.1647
}
}{
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4726,
"form_weight": 0.5274,
"form_reliability": 0.7098,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.228,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7098,
"prior_weight": 0.2902
},
"applied_metrics": {
"predicted_IP": {
"model": 1.0,
"form": 1.0,
"final": 1.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 0.0,
"form": 0.235,
"final": 0.1239,
"source": "model_form_blend"
},
"predicted_H": {
"model": 2.0,
"form": 0.982,
"final": 1.4631,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 0.183,
"final": 0.0965,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 2.0,
"form": 1.106,
"final": 1.5285,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 0.0,
"form": 0.05,
"final": 0.0264,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 2.1145,
"final": 2.1145,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 1.1647,
"final": 1.1647,
"source": "form_only"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Field | Value |
|---|---|
| Pitcher | Trevor Megill |
| Role | Closer |
| Projection Source | all_players_stats_recent_season_blend |
| Savant Quality Score | 0.6168 |
| ESPN Rank | - |
| Movement Available | True |
| Primary Pitch | - |
| Movement Score | 0.2613 |
| Avg Velo | 94.5299 |
| Avg Spin | 2505.9405 |
| HB Inches | 0 |
| IVB Inches | 0 |
| Release Extension | 0 |
| Pre IP | 1 |
| Pre ER | 1 |
| Pre H | 1 |
| Pre BB | 0 |
| Pre SO | 1 |
| Season ERA | 2.0432 |
| Season WHIP | 0.8595 |
| Role Avg IP | 0.9950 |
| Recent Avg IP | 1 |
| Last Start IP | 0 |
{
"method": "team_form_snapshot",
"role": "pitcher",
"team": {
"team": "MIL",
"games": 162,
"wins": 103,
"losses": 59,
"win_pct": 0.6358,
"runs_scored": 832.0,
"runs_allowed": 618.0,
"run_differential": 214.0,
"run_differential_per_game": 1.321,
"avg_runs_scored": 5.1358,
"avg_runs_allowed": 3.8148,
"offense_index": 1.1432,
"defense_index": 1.1777,
"current_streak": "W5",
"recent": {
"games": 10,
"wins": 8,
"losses": 2,
"win_pct": 0.8,
"avg_runs_scored": 4.4,
"avg_runs_allowed": 3.0,
"run_differential": 14.0
},
"available": true,
"quality_score": 0.3822
},
"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.992,
"defense_index": 1.0687,
"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.1938,
"offense_edge": 0.1432,
"opponent_offense_edge": -0.008,
"defense_strength": 0.1777,
"opponent_defense_weakness": -0.0687,
"recent_win_pct_edge": 0.0
},
"player_factors": {
"ip": 1.0134,
"run_prevention": 0.9713,
"strikeout": 1.0065
},
"savant_pitcher_quality_adjustment": {
"applied": true,
"pitcher_id": "656730",
"profile": {
"available": true,
"pitcher_id": "656730",
"player_name": "",
"source": "all_players_stats.csv embedded Savant pitcher features",
"source_url": null,
"metrics": {
"pa": 216.0,
"k_percent": 28.5,
"bb_percent": 6.2,
"woba": 0.208,
"xwoba": 0.252,
"sweet_spot_percent": 28.7,
"barrel_batted_rate": 6.4,
"hard_hit_percent": 42.0,
"avg_best_speed": 81.2085,
"avg_hyper_speed": 94.3067,
"whiff_percent": 30.5,
"swing_percent": 54.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.6432,
"avg_hyper_speed": 93.9005,
"whiff_percent": 25.2,
"swing_percent": 47.4
},
"components": {
"contact_quality": 1.0782,
"command_and_miss": 0.8264,
"regression_edge": -1.2571,
"xwoba_edge": 1.7143,
"barrel_edge": 0.1778,
"hard_hit_edge": -0.5857,
"whiff_edge": 0.7571,
"bb_edge": 0.75,
"pitch_design_score": 0.2613
},
"pitch_movement_profile": {
"available": true,
"pitcher_id": "656730",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 8,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 8,
"pitch_usage": 0.0,
"release_speed": 94.52994912427022,
"release_spin_rate": 2505.9404761978085,
"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": 8,
"pitch_usage": 0.0,
"release_speed": 94.52994912427022,
"release_spin_rate": 2505.9404761978085,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 94.5299,
"release_spin_rate": 2505.9405,
"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.2613,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.8663,
"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.6168,
"sample_weight": 0.864,
"run_prevention_factor": 0.9476,
"strikeout_factor": 1.0578,
"walk_factor": 0.9482,
"homer_factor": 0.9635,
"woba_minus_xwoba": -0.044,
"regression_flag": "negative_pitcher_regression",
"espn_rank": {
"available": false,
"player_id": "656730",
"espn_rank": null
}
},
"adjusted_fields": {
"predicted_ER": {
"original": 0.0,
"factor": 0.9547,
"adjusted": 0
},
"predicted_H": {
"original": 1.0,
"factor": 0.9547,
"adjusted": 1
},
"predicted_BB": {
"original": 0.0,
"factor": 0.9552,
"adjusted": 0
},
"predicted_HR": {
"original": 0.0,
"factor": 0.9685,
"adjusted": 0
},
"predicted_SO": {
"original": 2.0,
"factor": 1.0499,
"adjusted": 2
}
}
}
}{
"hitting": {
"AB": 0,
"H": 0,
"HR": 0,
"RBI": 0,
"R": 0,
"BB": 0,
"SO": 0,
"2B": 0,
"3B": 0,
"AVG": 0,
"OBP": 0,
"SLG": 0,
"OPS": 0,
"games_played": 0,
"hot_streak": false,
"cold_streak": true,
"trend": "stable"
},
"pitching": {
"IP": 9.1,
"ER": 5,
"H": 10,
"BB": 1,
"SO": 12,
"HR": 1,
"ERA": 4.821428571428572,
"WHIP": 1.1785714285714288,
"K9": 11.571428571428573,
"HR9": 0.9642857142857144,
"games_pitched": 10,
"quality_starts": 0,
"dominant_form": false,
"struggling_form": false
},
"fielding": {
"errors": 0,
"assists": 0,
"games_fielded": 10,
"error_prone": false
},
"games_count": 10,
"latest_game_date": "2026-09-25T00:00:00"
}{
"available": true,
"pitcher_id": "656730",
"player_name": null,
"source": "all_players_stats.csv embedded Savant pitcher movement features",
"total_pitches": 8,
"primary_pitch": {
"pitch_type": null,
"pitch_name": null,
"pitches": 8,
"pitch_usage": 0.0,
"release_speed": 94.52994912427022,
"release_spin_rate": 2505.9404761978085,
"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": 8,
"pitch_usage": 0.0,
"release_speed": 94.52994912427022,
"release_spin_rate": 2505.9404761978085,
"spin_axis": null,
"horizontal_break_inches": 0.0,
"induced_vertical_break_inches": 0.0,
"vertical_break_with_gravity_inches": null,
"release_pos_x": null,
"release_pos_z": null,
"release_extension": 0.0,
"arm_angle": 0.0,
"whiff_percent": 0.0,
"xwoba": 0.0,
"hard_hit_percent": 0.0
}
],
"summary": {
"release_speed": 94.5299,
"release_spin_rate": 2505.9405,
"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.2613,
"horizontal_break_edge": 0.0,
"induced_vertical_break_edge": 0.0,
"extension_edge": 0.0,
"velocity_edge": 1.8663,
"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."
}{
"form_version": "player_form_v3_5_10_season",
"method": "weighted_recent_form",
"description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
"weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"effective_weights": {
"last_5": 0.45,
"last_10": 0.35,
"season": 0.2
},
"shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.709,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7177,
"prior_weight": 0.2823
},
"role": "pitcher",
"pitcher_usage_role": "starter",
"player_id": "656730",
"report_date": "20261003",
"season_year": 2026,
"rows_used": 62,
"reference_playing_time": 1.0,
"windows": {
"last_5": {
"games": 5,
"totals": {
"IP": 5.0,
"ER": 2.0,
"R": 2.0,
"H": 3.0,
"BB": 0.0,
"SO": 6.0,
"HR": 0.0,
"BF": 18.0,
"Pitches": 57.0
},
"per_game": {
"IP": 1.0,
"ER": 0.4,
"R": 0.4,
"H": 0.6,
"BB": 0.0,
"SO": 1.2,
"HR": 0.0,
"BF": 3.6,
"Pitches": 11.4
},
"rates": {
"ERA": 3.6,
"WHIP": 0.6,
"ER_per_IP": 0.4,
"H_per_IP": 0.6,
"BB_per_IP": 0.0,
"SO_per_IP": 1.2,
"HR_per_IP": 0.0
}
},
"last_10": {
"games": 10,
"totals": {
"IP": 9.1,
"ER": 5.0,
"R": 5.0,
"H": 10.0,
"BB": 1.0,
"SO": 12.0,
"HR": 1.0,
"BF": 39.0,
"Pitches": 141.0
},
"per_game": {
"IP": 1.0,
"ER": 0.5,
"R": 0.5,
"H": 1.0,
"BB": 0.1,
"SO": 1.2,
"HR": 0.1,
"BF": 3.9,
"Pitches": 14.1
},
"rates": {
"ERA": 4.8214,
"WHIP": 1.1786,
"ER_per_IP": 0.53571,
"H_per_IP": 1.07143,
"BB_per_IP": 0.10714,
"SO_per_IP": 1.28571,
"HR_per_IP": 0.10714
}
},
"season": {
"games": 62,
"totals": {
"IP": 61.2,
"ER": 14.0,
"R": 16.0,
"H": 38.0,
"BB": 15.0,
"SO": 69.0,
"HR": 1.0,
"BF": 237.0,
"Pitches": 865.0
},
"per_game": {
"IP": 1.0,
"ER": 0.2258,
"R": 0.2581,
"H": 0.6129,
"BB": 0.2419,
"SO": 1.1129,
"HR": 0.0161,
"BF": 3.8226,
"Pitches": 13.9516
},
"rates": {
"ERA": 2.0432,
"WHIP": 0.8595,
"ER_per_IP": 0.22703,
"H_per_IP": 0.61622,
"BB_per_IP": 0.24324,
"SO_per_IP": 1.11892,
"HR_per_IP": 0.01622
}
}
},
"blend_segments": {},
"weighted_prediction": {
"predicted_IP": 1.0,
"predicted_ER": 0.441,
"predicted_H": 0.829,
"predicted_BB": 0.169,
"predicted_SO": 1.135,
"predicted_HR": 0.071,
"predicted_ERA": 3.9683,
"predicted_WHIP": 0.9981
}
}{
"requested_model_weight": 0.35,
"requested_form_weight": 0.65,
"model_weight": 0.4693,
"form_weight": 0.5307,
"form_reliability": 0.7177,
"adaptive_parameters": {
"player.model_weight": 0.5,
"player.form_reliability_floor": 0.35
},
"form_shrinkage": {
"method": "bayesian_league_prior",
"sample_size": 12.709,
"sample_unit": "starter_equivalent_games",
"prior_size": 5.0,
"data_weight": 0.7177,
"prior_weight": 0.2823
},
"applied_metrics": {
"predicted_IP": {
"model": 1.0,
"form": 1.0,
"final": 1.0,
"source": "model_form_blend"
},
"predicted_ER": {
"model": 1.0,
"form": 0.441,
"final": 0.7033,
"source": "model_form_blend"
},
"predicted_H": {
"model": 1.0,
"form": 0.829,
"final": 0.9092,
"source": "model_form_blend"
},
"predicted_BB": {
"model": 0.0,
"form": 0.169,
"final": 0.0897,
"source": "model_form_blend"
},
"predicted_SO": {
"model": 1.0,
"form": 1.135,
"final": 1.0716,
"source": "model_form_blend"
},
"predicted_HR": {
"model": 1.0,
"form": 0.071,
"final": 0.507,
"source": "model_form_blend"
},
"predicted_ERA": {
"model": null,
"form": 3.9683,
"final": 3.9683,
"source": "form_only"
},
"predicted_WHIP": {
"model": null,
"form": 0.9981,
"final": 0.9981,
"source": "form_only"
}
}
}{
"available": false,
"reason": "No per-inning pitch ledger was stored by the simulation.",
"display_fallback": "Use player_form_blend windows for recent workload and pitch count."
}| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.145 | 0.000 | 0.000 | Hitting_2B | 0.143 | 0.000 | -0.143 | 0.000 |
| predicted_3B | 0.014 | 0.000 | 0.000 | Hitting_3B | 0.016 | 0.000 | -0.016 | 0.000 |
| predicted_AB | 3.391 | 4.000 | 4.000 | Hitting_AB | 3.510 | 4.000 | 0.490 | 0.000 |
| predicted_AVG | 0.231 | 0.500 | 0.250 | Hitting_AVG | 0.269 | 0.250 | 0.231 | 0.250 |
| predicted_BB | 0.645 | 0.000 | 1.000 | Hitting_BB | 0.739 | 0.000 | -0.739 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.035 | 0.000 | -0.035 | 0.000 |
| predicted_H | 0.750 | 2.000 | 1.000 | Hitting_H | 0.945 | 1.000 | 1.055 | 1.000 |
| predicted_HR | 0.160 | 1.000 | 0.000 | Hitting_HR | 0.203 | 0.000 | 0.797 | 1.000 |
| predicted_OBP | 0.326 | 0.500 | 0.400 | Hitting_OBP | 0.398 | 0.250 | 0.102 | 0.250 |
| predicted_R | 0.659 | 1.000 | 1.000 | Hitting_R | 0.706 | 1.000 | 0.294 | 0.000 |
| predicted_RBI | 0.510 | 2.000 | 1.000 | Hitting_RBI | 0.669 | 0.000 | 1.331 | 2.000 |
| predicted_SLG | 0.415 | 1.250 | 0.250 | Hitting_SLG | 0.493 | 0.250 | 0.757 | 1.000 |
| predicted_SO | 1.116 | 2.000 | 1.000 | Hitting_SO | 1.122 | 1.000 | 0.878 | 1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 9 |
| Boosted Metrics | 7 |
| Deboosted Metrics | 2 |
| Better Metrics | 6 |
| Worse Metrics | 3 |
| Biggest Boost | predicted_RBI: 0.5100 -> 2.0000 (boost 1.4900, better) |
| Biggest Deboost | predicted_BB: 0.6450 -> 0.0000 (deboost -0.6450, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 6 | 5 | 1 | 4 | 2 | predicted_SO: 1.1160 -> 1.2348 (boost 0.1188, worse) | predicted_SLG: 0.4150 -> 0.4081 (deboost -0.0069, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 2 | 2 | 0 | 2 | 0 | predicted_OBP: 0.3326 -> 0.3500 (boost 0.0174, better) | - | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 4 | 3 | 5 | 2 | predicted_AB: 3.4593 -> 4.0000 (boost 0.5407, better) | predicted_SO: 1.2206 -> 1.0000 (deboost -0.2206, better) | AB rounded to 4 (raw=3.46), rates preserved: AVG=0.225 HR/AB=0.041 |
| 6 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.6758 -> 1.0000 (boost 0.3242, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 3 | 3 | 2 | 4 | predicted_SO: 1.0000 -> 1.1708 (boost 0.1708, worse) | predicted_RBI: 1.0000 -> 0.5970 (deboost -0.4030, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 6 | 3 | 3 | 4 | 2 | predicted_RBI: 0.5970 -> 1.0000 (boost 0.4030, better) | predicted_SO: 1.1708 -> 1.0000 (deboost -0.1708, better) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 1 | 1 | 0 | 1 | 0 | predicted_OBP: 0.3500 -> 0.3650 (boost 0.0150, better) | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 5 | 4 | 1 | 3 | 2 | predicted_H: 1.0000 -> 2.0000 (boost 1.0000, better) | predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 1 | 0 | 1 | 0 | 1 | - | predicted_OBP: 0.3650 -> 0.3500 (deboost -0.0150, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "641343",
"player_name": "Jake Bauers",
"position": "1B",
"team": "MIL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.145,
"predicted_3B": 0.014,
"predicted_AB": 3.391,
"predicted_AVG": 0.231,
"predicted_BB": 0.645,
"predicted_H": 0.75,
"predicted_HR": 0.16,
"predicted_OBP": 0.326,
"predicted_R": 0.659,
"predicted_RBI": 0.51,
"predicted_SLG": 0.415,
"predicted_SO": 1.116
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1628,
"predicted_3B": 0.0118,
"predicted_AB": 3.4593,
"predicted_AVG": 0.237,
"predicted_BB": 0.6019,
"predicted_H": 0.8018,
"predicted_HBP": 0.019,
"predicted_HR": 0.14,
"predicted_OBP": 0.3326,
"predicted_R": 0.656,
"predicted_RBI": 0.5248,
"predicted_SLG": 0.4081,
"predicted_SO": 1.2348
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.145,
"after": 0.1628,
"delta": 0.0178,
"percent_delta": 0.1228,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.014,
"after": 0.0118,
"delta": -0.0022,
"percent_delta": -0.1571,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.391,
"after": 3.4593,
"delta": 0.0683,
"percent_delta": 0.0201,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.231,
"after": 0.237,
"delta": 0.006,
"percent_delta": 0.026,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.645,
"after": 0.6019,
"delta": -0.0431,
"percent_delta": -0.0668,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.75,
"after": 0.8018,
"delta": 0.0518,
"percent_delta": 0.0691,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.16,
"after": 0.14,
"delta": -0.02,
"percent_delta": -0.125,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.326,
"after": 0.3326,
"delta": 0.0066,
"percent_delta": 0.0202,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.659,
"after": 0.656,
"delta": -0.003,
"percent_delta": -0.0046,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.51,
"after": 0.5248,
"delta": 0.0148,
"percent_delta": 0.029,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.415,
"after": 0.4081,
"delta": -0.0069,
"percent_delta": -0.0166,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.116,
"after": 1.2348,
"delta": 0.1188,
"percent_delta": 0.1065,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 5,
"deboosted_metrics": 1,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.116,
"after": 1.2348,
"delta": 0.1188,
"percent_delta": 0.1065,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.415,
"after": 0.4081,
"delta": -0.0069,
"percent_delta": -0.0166,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 138
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1628,
"predicted_3B": 0.0118,
"predicted_AB": 3.4593,
"predicted_AVG": 0.2356,
"predicted_BB": 0.6088,
"predicted_H": 0.8151,
"predicted_HBP": 0.019,
"predicted_HR": 0.1428,
"predicted_OBP": 0.35,
"predicted_R": 0.6758,
"predicted_RBI": 0.5406,
"predicted_SLG": 0.4134,
"predicted_SO": 1.2206
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1628,
"after": 0.1628,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0118,
"after": 0.0118,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.4593,
"after": 3.4593,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.237,
"after": 0.2356,
"delta": -0.0014,
"percent_delta": -0.0059,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.6019,
"after": 0.6088,
"delta": 0.0069,
"percent_delta": 0.0115,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.8018,
"after": 0.8151,
"delta": 0.0133,
"percent_delta": 0.0166,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.019,
"after": 0.019,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.14,
"after": 0.1428,
"delta": 0.0028,
"percent_delta": 0.02,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3326,
"after": 0.35,
"delta": 0.0174,
"percent_delta": 0.0523,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.656,
"after": 0.6758,
"delta": 0.0198,
"percent_delta": 0.0302,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5248,
"after": 0.5406,
"delta": 0.0158,
"percent_delta": 0.0301,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4081,
"after": 0.4134,
"delta": 0.0053,
"percent_delta": 0.013,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.2348,
"after": 1.2206,
"delta": -0.0142,
"percent_delta": -0.0115,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_OBP",
"before": 0.3326,
"after": 0.35,
"delta": 0.0174,
"percent_delta": 0.0523,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=3.46), rates preserved: AVG=0.225 HR/AB=0.041",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1628,
"after": 0.0,
"delta": -0.1628,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0118,
"after": 0.0,
"delta": -0.0118,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.4593,
"after": 4.0,
"delta": 0.5407,
"percent_delta": 0.1563,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.6088,
"after": 1.0,
"delta": 0.3912,
"percent_delta": 0.6426,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8151,
"after": 1.0,
"delta": 0.1849,
"percent_delta": 0.2268,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.019,
"after": 0.0,
"delta": -0.019,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1428,
"after": 0.0,
"delta": -0.1428,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.5406,
"after": 1.0,
"delta": 0.4594,
"percent_delta": 0.8498,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.2206,
"after": 1.0,
"delta": -0.2206,
"percent_delta": -0.1807,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 4,
"deboosted_metrics": 3,
"better_metrics": 5,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.4593,
"after": 4.0,
"delta": 0.5407,
"percent_delta": 0.1563,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.2206,
"after": 1.0,
"delta": -0.2206,
"percent_delta": -0.1807,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.6758,
"after": 1.0,
"delta": 0.3242,
"percent_delta": 0.4797,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.6758,
"after": 1.0,
"delta": 0.3242,
"percent_delta": 0.4797,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1443,
"predicted_3B": 0.0139,
"predicted_BB": 0.69,
"predicted_H": 0.8506,
"predicted_HR": 0.1481,
"predicted_RBI": 0.597,
"predicted_SO": 1.1708
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1443,
"delta": 0.1443,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0139,
"delta": 0.0139,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 1.0,
"after": 0.69,
"delta": -0.31,
"percent_delta": -0.31,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.8506,
"delta": -0.1494,
"percent_delta": -0.1494,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1481,
"delta": 0.1481,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.597,
"delta": -0.403,
"percent_delta": -0.403,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.1708,
"delta": 0.1708,
"percent_delta": 0.1708,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 3,
"deboosted_metrics": 3,
"better_metrics": 2,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 1.1708,
"delta": 0.1708,
"percent_delta": 0.1708,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.597,
"delta": -0.403,
"percent_delta": -0.403,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1443,
"after": 0.0,
"delta": -0.1443,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0139,
"after": 0.0,
"delta": -0.0139,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.69,
"after": 1.0,
"delta": 0.31,
"percent_delta": 0.4493,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8506,
"after": 1.0,
"delta": 0.1494,
"percent_delta": 0.1756,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1481,
"after": 0.0,
"delta": -0.1481,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.597,
"after": 1.0,
"delta": 0.403,
"percent_delta": 0.675,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.1708,
"after": 1.0,
"delta": -0.1708,
"percent_delta": -0.1459,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 3,
"deboosted_metrics": 3,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.597,
"after": 1.0,
"delta": 0.403,
"percent_delta": 0.675,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.1708,
"after": 1.0,
"delta": -0.1708,
"percent_delta": -0.1459,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.237,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.365,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SLG": 0.409,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2356,
"after": 0.237,
"delta": 0.0014,
"percent_delta": 0.0059,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.35,
"after": 0.365,
"delta": 0.015,
"percent_delta": 0.0429,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4134,
"after": 0.409,
"delta": -0.0044,
"percent_delta": -0.0106,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_OBP",
"before": 0.35,
"after": 0.365,
"delta": 0.015,
"percent_delta": 0.0429,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 2.0,
"predicted_HBP": 0.0,
"predicted_HR": 1.0,
"predicted_R": 1.0,
"predicted_RBI": 2.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 4,
"deboosted_metrics": 1,
"better_metrics": 3,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_H",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.2356,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_FB": 0.0,
"predicted_H": 2.0,
"predicted_HBP": 0.0,
"predicted_HR": 1.0,
"predicted_OBP": 0.35,
"predicted_R": 1.0,
"predicted_RBI": 2.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.4134,
"predicted_SO": 2.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.237,
"after": 0.2356,
"delta": -0.0014,
"percent_delta": -0.0058,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_CS",
"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_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.365,
"after": 0.35,
"delta": -0.015,
"percent_delta": -0.041,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.409,
"after": 0.4134,
"delta": 0.0044,
"percent_delta": 0.0106,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.365,
"after": 0.35,
"delta": -0.015,
"percent_delta": -0.041,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.145,
"after": 0.0,
"delta": -0.145,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.014,
"after": 0.0,
"delta": -0.014,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.391,
"after": 4.0,
"delta": 0.609,
"percent_delta": 0.1796,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.231,
"after": 0.2356,
"delta": 0.0046,
"percent_delta": 0.0199,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.645,
"after": 0.0,
"delta": -0.645,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.75,
"after": 2.0,
"delta": 1.25,
"percent_delta": 1.6667,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.16,
"after": 1.0,
"delta": 0.84,
"percent_delta": 5.25,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.326,
"after": 0.35,
"delta": 0.024,
"percent_delta": 0.0736,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.659,
"after": 1.0,
"delta": 0.341,
"percent_delta": 0.5175,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.51,
"after": 2.0,
"delta": 1.49,
"percent_delta": 2.9216,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.415,
"after": 0.4134,
"delta": -0.0016,
"percent_delta": -0.0039,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.116,
"after": 2.0,
"delta": 0.884,
"percent_delta": 0.7921,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 9,
"boosted_metrics": 7,
"deboosted_metrics": 2,
"better_metrics": 6,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.51,
"after": 2.0,
"delta": 1.49,
"percent_delta": 2.9216,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.645,
"after": 0.0,
"delta": -0.645,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.145 | - |
| predicted_3B | 0.014 | - |
| predicted_AB | 3.391 | - |
| predicted_AVG | 0.231 | - |
| predicted_BB | 0.645 | - |
| predicted_H | 0.750 | - |
| predicted_HR | 0.160 | - |
| predicted_OBP | 0.326 | - |
| predicted_R | 0.659 | - |
| predicted_RBI | 0.510 | - |
| predicted_SLG | 0.415 | - |
| predicted_SO | 1.116 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.163 | 0.018 |
| predicted_3B | 0.012 | -0.002 |
| predicted_AB | 3.459 | 0.068 |
| predicted_AVG | 0.237 | 0.006 |
| predicted_BB | 0.602 | -0.043 |
| predicted_H | 0.802 | 0.052 |
| predicted_HBP | 0.019 | - |
| predicted_HR | 0.140 | -0.020 |
| predicted_OBP | 0.333 | 0.007 |
| predicted_R | 0.656 | -0.003 |
| predicted_RBI | 0.525 | 0.015 |
| predicted_SLG | 0.408 | -0.007 |
| predicted_SO | 1.235 | 0.119 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.163 | 0.000 |
| predicted_3B | 0.012 | 0.000 |
| predicted_AB | 3.459 | 0.000 |
| predicted_AVG | 0.236 | -0.001 |
| predicted_BB | 0.609 | 0.007 |
| predicted_H | 0.815 | 0.013 |
| predicted_HBP | 0.019 | 0.000 |
| predicted_HR | 0.143 | 0.003 |
| predicted_OBP | 0.350 | 0.017 |
| predicted_R | 0.676 | 0.020 |
| predicted_RBI | 0.541 | 0.016 |
| predicted_SLG | 0.413 | 0.005 |
| predicted_SO | 1.221 | -0.014 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=3.46), rates preserved: AVG=0.225 HR/AB=0.041
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 1.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.144 | 0.144 |
| 3B | 0.014 | 0.014 |
| BB | 0.690 | -0.310 |
| H | 0.851 | -0.149 |
| HR | 0.148 | 0.148 |
| RBI | 0.597 | -0.403 |
| SO | 1.171 | 0.171 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.144 |
| 3B | 0.000 | -0.014 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 0.310 |
| H | 1.000 | 0.149 |
| HR | 0.000 | -0.148 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.403 |
| SO | 1.000 | -0.171 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.163 |
| predicted_3B | 0.000 | -0.012 |
| predicted_AB | 4.000 | 0.541 |
| predicted_AVG | 0.237 | 0.001 |
| predicted_BB | 1.000 | 0.391 |
| predicted_H | 1.000 | 0.185 |
| predicted_HR | 0.000 | -0.143 |
| predicted_OBP | 0.365 | 0.015 |
| predicted_R | 1.000 | 0.324 |
| predicted_RBI | 1.000 | 0.459 |
| predicted_SLG | 0.409 | -0.004 |
| predicted_SO | 1.000 | -0.221 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -1.000 |
| CS | 0.000 | 0.000 |
| H | 2.000 | 1.000 |
| HBP | 0.000 | 0.000 |
| HR | 1.000 | 1.000 |
| PA | 4.000 | - |
| R | 1.000 | 0.000 |
| RBI | 2.000 | 1.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 2.000 | 1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 20.000 | 4.000 | 1.000 | 0.000 | 0.000 | 3.000 | 3.000 | 1.000 | 10.000 | 0.2000 | 0.2273 | 0.2500 | 0.2000 | 0.0000 | 0.1500 | 0.0500 | 0.5000 |
| last_10 | 0.20 | 10 | - | 35.000 | 8.000 | 3.000 | 0.000 | 0.000 | 3.000 | 7.000 | 6.000 | 18.000 | 0.2286 | 0.3333 | 0.3143 | 0.2286 | 0.0000 | 0.0857 | 0.1714 | 0.5143 |
| season | 0.60 | 138 | - | 468.000 | 124.000 | 20.000 | 2.000 | 25.000 | 84.000 | 91.000 | 89.000 | 154.000 | 0.2650 | 0.3848 | 0.4765 | 0.2650 | 0.0534 | 0.1795 | 0.1902 | 0.3291 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1860 |
| predicted_3B | 0.0090 |
| predicted_AB | 3.5480 |
| predicted_AVG | 0.2449 |
| predicted_BB | 0.5460 |
| predicted_H | 0.8690 |
| predicted_HBP | 0.0190 |
| predicted_HR | 0.1140 |
| predicted_OBP | 0.3411 |
| predicted_R | 0.6520 |
| predicted_RBI | 0.5440 |
| predicted_SLG | 0.3992 |
| predicted_SO | 1.3890 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1450 | 0.1860 | 0.1628 | model_form_blend |
| predicted_3B | 0.0140 | 0.0090 | 0.0118 | model_form_blend |
| predicted_AB | 3.3910 | 3.5480 | 3.4593 | model_form_blend |
| predicted_AVG | 0.2310 | 0.2449 | 0.2370 | model_form_blend |
| predicted_BB | 0.6450 | 0.5460 | 0.6019 | model_form_blend |
| predicted_H | 0.7500 | 0.8690 | 0.8018 | model_form_blend |
| predicted_HBP | - | 0.0190 | 0.0190 | form_only |
| predicted_HR | 0.1600 | 0.1140 | 0.1400 | model_form_blend |
| predicted_OBP | 0.3260 | 0.3411 | 0.3326 | model_form_blend |
| predicted_R | 0.6590 | 0.6520 | 0.6560 | model_form_blend |
| predicted_RBI | 0.5100 | 0.5440 | 0.5248 | model_form_blend |
| predicted_SLG | 0.4150 | 0.3992 | 0.4081 | model_form_blend |
| predicted_SO | 1.1160 | 1.3890 | 1.2348 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 547 |
| Season rows before report date | 547 |
| Report year | 2026 |
| Profile rows used | 138 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 2 |
| 2B | 0 |
| 3B | 0 |
| HR | 1 |
| R | 1 |
| RBI | 2 |
| BB | 0 |
| SO | 2 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.25 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 1 |
| Hitting_battingOrder | 2 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | 1B |
| gameID | 20260927_STL@MIL |
| game_type | full |
| mlbID | 641343 |
| playerID | 641343 |
| playerName | Jake Bauers |
| pos | 1B |
| started | True |
| startingPosition | 1B |
| team | MIL |
| teamID | 16 |
| game_date | 2026-09-27 |
| sl_k_percent | 27.0 |
| sl_bb_percent | 16.3 |
| sl_woba | 0.381 |
| sl_xwoba | 0.371 |
| sl_xba | 0.253 |
| sl_xslg | 0.467 |
| sl_sweet_spot_percent | 38.6 |
| sl_barrel_batted_rate | 14.0 |
| sl_hard_hit_percent | 51.9 |
| sl_exit_velocity_avg | 92.1 |
| sl_launch_angle_avg | 12.1 |
| sl_whiff_percent | 29.8 |
| sl_swing_percent | 40.6 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.216 | 0.000 | 0.000 | Hitting_2B | 0.253 | 0.000 | -0.253 | 0.000 |
| predicted_3B | 0.000 | 0.000 | 0.000 | Hitting_3B | 0.000 | 0.000 | 0.000 | 0.000 |
| predicted_AB | 5.120 | 4.000 | 4.000 | Hitting_AB | 4.274 | 4.000 | -0.274 | 0.000 |
| predicted_AVG | 0.319 | 0.250 | 0.250 | Hitting_AVG | 0.300 | 0.750 | -0.050 | -0.500 |
| predicted_BB | 0.376 | 0.000 | 1.000 | Hitting_BB | 0.381 | 0.000 | -0.381 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.041 | 0.000 | -0.041 | 0.000 |
| predicted_H | 1.630 | 1.000 | 1.000 | Hitting_H | 1.283 | 3.000 | -0.283 | -2.000 |
| predicted_HR | 0.250 | 0.000 | 1.000 | Hitting_HR | 0.200 | 0.000 | -0.200 | 0.000 |
| predicted_OBP | 0.421 | 0.250 | 0.400 | Hitting_OBP | 0.358 | 0.750 | -0.108 | -0.500 |
| predicted_R | 0.768 | 1.000 | 1.000 | Hitting_R | 0.823 | 2.000 | 0.177 | -1.000 |
| predicted_RBI | 0.920 | 1.000 | 1.000 | Hitting_RBI | 0.617 | 2.000 | 0.383 | -1.000 |
| predicted_SLG | 0.561 | 0.250 | 1.000 | Hitting_SLG | 0.500 | 0.750 | -0.250 | -0.500 |
| predicted_SO | 1.072 | 0.000 | 1.000 | Hitting_SO | 1.100 | 0.000 | -1.100 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 11 |
| Boosted Metrics | 3 |
| Deboosted Metrics | 8 |
| Better Metrics | 4 |
| Worse Metrics | 7 |
| Biggest Boost | predicted_R: 0.7680 -> 1.0000 (boost 0.2320, better) |
| Biggest Deboost | predicted_AB: 5.1200 -> 4.0000 (deboost -1.1200, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 7 | 2 | 5 | 3 | 4 | predicted_R: 0.7680 -> 0.8207 (boost 0.0527, better) | predicted_AB: 5.1200 -> 4.5028 (deboost -0.6172, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 2 | 0 | 2 | 0 | 2 | - | predicted_OBP: 0.4201 -> 0.3908 (deboost -0.0293, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 6 | 1 | 5 | 1 | 5 | predicted_RBI: 0.8725 -> 1.0000 (boost 0.1275, better) | predicted_H: 1.5128 -> 1.0000 (deboost -0.5128, worse) | AB rounded to 4 (raw=5.12), rates preserved: AVG=0.282 HR/AB=0.046 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=5.0, weight=0.057, BvP AVG=0.200) |
| 7 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.8455 -> 1.0000 (boost 0.1545, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 5 | 1 | 4 | 2 | predicted_BB: 0.0000 -> 0.5291 (boost 0.5291, better) | predicted_RBI: 1.0000 -> 0.5664 (deboost -0.4336, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 9 | lineup_integer_allocation | 6 | 3 | 3 | 4 | 2 | predicted_HR: 0.1679 -> 1.0000 (boost 0.8321, better) | predicted_2B: 0.1987 -> 0.0000 (deboost -0.1987, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 10 | embedded_savant_player_context | 5 | 0 | 5 | 0 | 5 | - | predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | simulation_box_score_reference | 1 | 0 | 1 | 1 | 0 | - | predicted_SO: 1.0000 -> 0.0000 (deboost -1.0000, better) | Attached simulation box score without overwriting model prediction |
| 12 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_SLG: 0.4340 -> 0.5304 (boost 0.0964, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "694192",
"player_name": "Jackson Chourio",
"position": "LF",
"team": "MIL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.216,
"predicted_3B": 0.0,
"predicted_AB": 5.12,
"predicted_AVG": 0.319,
"predicted_BB": 0.376,
"predicted_H": 1.63,
"predicted_HR": 0.25,
"predicted_OBP": 0.421,
"predicted_R": 0.768,
"predicted_RBI": 0.92,
"predicted_SLG": 0.561,
"predicted_SO": 1.072
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1738,
"predicted_3B": 0.0004,
"predicted_AB": 4.5028,
"predicted_AVG": 0.3335,
"predicted_BB": 0.4008,
"predicted_H": 1.4881,
"predicted_HBP": 0.01,
"predicted_HR": 0.2291,
"predicted_OBP": 0.4201,
"predicted_R": 0.8207,
"predicted_RBI": 0.8469,
"predicted_SLG": 0.5554,
"predicted_SO": 0.9984
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.216,
"after": 0.1738,
"delta": -0.0422,
"percent_delta": -0.1954,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0004,
"delta": 0.0004,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 5.12,
"after": 4.5028,
"delta": -0.6172,
"percent_delta": -0.1205,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.319,
"after": 0.3335,
"delta": 0.0145,
"percent_delta": 0.0455,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.376,
"after": 0.4008,
"delta": 0.0248,
"percent_delta": 0.066,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.63,
"after": 1.4881,
"delta": -0.1419,
"percent_delta": -0.0871,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.25,
"after": 0.2291,
"delta": -0.0209,
"percent_delta": -0.0836,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.421,
"after": 0.4201,
"delta": -0.0009,
"percent_delta": -0.0021,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.768,
"after": 0.8207,
"delta": 0.0527,
"percent_delta": 0.0686,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.92,
"after": 0.8469,
"delta": -0.0731,
"percent_delta": -0.0795,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.561,
"after": 0.5554,
"delta": -0.0056,
"percent_delta": -0.01,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.072,
"after": 0.9984,
"delta": -0.0736,
"percent_delta": -0.0687,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 2,
"deboosted_metrics": 5,
"better_metrics": 3,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.768,
"after": 0.8207,
"delta": 0.0527,
"percent_delta": 0.0686,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 5.12,
"after": 4.5028,
"delta": -0.6172,
"percent_delta": -0.1205,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 125
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1738,
"predicted_3B": 0.0004,
"predicted_AB": 4.5028,
"predicted_AVG": 0.336,
"predicted_BB": 0.4054,
"predicted_H": 1.5128,
"predicted_HBP": 0.01,
"predicted_HR": 0.2337,
"predicted_OBP": 0.3908,
"predicted_R": 0.8455,
"predicted_RBI": 0.8725,
"predicted_SLG": 0.5304,
"predicted_SO": 0.9869
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1738,
"after": 0.1738,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0004,
"after": 0.0004,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.5028,
"after": 4.5028,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.3335,
"after": 0.336,
"delta": 0.0025,
"percent_delta": 0.0075,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.4008,
"after": 0.4054,
"delta": 0.0046,
"percent_delta": 0.0115,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.4881,
"after": 1.5128,
"delta": 0.0247,
"percent_delta": 0.0166,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.01,
"after": 0.01,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.2291,
"after": 0.2337,
"delta": 0.0046,
"percent_delta": 0.0201,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.4201,
"after": 0.3908,
"delta": -0.0293,
"percent_delta": -0.0697,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.8207,
"after": 0.8455,
"delta": 0.0248,
"percent_delta": 0.0302,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.8469,
"after": 0.8725,
"delta": 0.0256,
"percent_delta": 0.0302,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.5554,
"after": 0.5304,
"delta": -0.025,
"percent_delta": -0.045,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.9984,
"after": 0.9869,
"delta": -0.0115,
"percent_delta": -0.0115,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.4201,
"after": 0.3908,
"delta": -0.0293,
"percent_delta": -0.0697,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=5.12), rates preserved: AVG=0.282 HR/AB=0.046",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1738,
"after": 0.0,
"delta": -0.1738,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0004,
"after": 0.0,
"delta": -0.0004,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.5028,
"after": 4.0,
"delta": -0.5028,
"percent_delta": -0.1117,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.4054,
"after": 0.0,
"delta": -0.4054,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.5128,
"after": 1.0,
"delta": -0.5128,
"percent_delta": -0.339,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.01,
"after": 0.0,
"delta": -0.01,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.2337,
"after": 0.0,
"delta": -0.2337,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.8725,
"after": 1.0,
"delta": 0.1275,
"percent_delta": 0.1461,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.9869,
"after": 1.0,
"delta": 0.0131,
"percent_delta": 0.0133,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 1,
"deboosted_metrics": 5,
"better_metrics": 1,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.8725,
"after": 1.0,
"delta": 0.1275,
"percent_delta": 0.1461,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.5128,
"after": 1.0,
"delta": -0.5128,
"percent_delta": -0.339,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "bvp_blend",
"description": "Sample-size BvP blend (BvP AB=5.0, weight=0.057, BvP AVG=0.200)",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {
"model_expectation": 0.9429,
"bvp": 0.0571
},
"window_games": {}
},
{
"index": 7,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.8455,
"after": 1.0,
"delta": 0.1545,
"percent_delta": 0.1827,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.8455,
"after": 1.0,
"delta": 0.1545,
"percent_delta": 0.1827,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1987,
"predicted_3B": 0.0085,
"predicted_BB": 0.5291,
"predicted_H": 1.0617,
"predicted_HR": 0.1679,
"predicted_RBI": 0.5664,
"predicted_SO": 1.0636
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1987,
"delta": 0.1987,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0085,
"delta": 0.0085,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.5291,
"delta": 0.5291,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0617,
"delta": 0.0617,
"percent_delta": 0.0617,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1679,
"delta": 0.1679,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.5664,
"delta": -0.4336,
"percent_delta": -0.4336,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0636,
"delta": 0.0636,
"percent_delta": 0.0636,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 5,
"deboosted_metrics": 1,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 0.5291,
"delta": 0.5291,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.5664,
"delta": -0.4336,
"percent_delta": -0.4336,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1987,
"after": 0.0,
"delta": -0.1987,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0085,
"after": 0.0,
"delta": -0.0085,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.5291,
"after": 1.0,
"delta": 0.4709,
"percent_delta": 0.89,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0617,
"after": 1.0,
"delta": -0.0617,
"percent_delta": -0.0581,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1679,
"after": 1.0,
"delta": 0.8321,
"percent_delta": 4.9559,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5664,
"after": 1.0,
"delta": 0.4336,
"percent_delta": 0.7655,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0636,
"after": 1.0,
"delta": -0.0636,
"percent_delta": -0.0598,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 3,
"deboosted_metrics": 3,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_HR",
"before": 0.1679,
"after": 1.0,
"delta": 0.8321,
"percent_delta": 4.9559,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_2B",
"before": 0.1987,
"after": 0.0,
"delta": -0.1987,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.259,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.348,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SLG": 0.434,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.336,
"after": 0.259,
"delta": -0.077,
"percent_delta": -0.2292,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.3908,
"after": 0.348,
"delta": -0.0428,
"percent_delta": -0.1095,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.5304,
"after": 0.434,
"delta": -0.0964,
"percent_delta": -0.1817,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 0,
"deboosted_metrics": 5,
"better_metrics": 0,
"worse_metrics": 5,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 12,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.336,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_LF": 0.0,
"predicted_OBP": 0.3908,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.5304,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.259,
"after": 0.336,
"delta": 0.077,
"percent_delta": 0.2972,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.348,
"after": 0.3908,
"delta": 0.0428,
"percent_delta": 0.123,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.434,
"after": 0.5304,
"delta": 0.0964,
"percent_delta": 0.2222,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.434,
"after": 0.5304,
"delta": 0.0964,
"percent_delta": 0.2222,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.216,
"after": 0.0,
"delta": -0.216,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 5.12,
"after": 4.0,
"delta": -1.12,
"percent_delta": -0.2188,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.319,
"after": 0.336,
"delta": 0.017,
"percent_delta": 0.0533,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.376,
"after": 0.0,
"delta": -0.376,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.63,
"after": 1.0,
"delta": -0.63,
"percent_delta": -0.3865,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.25,
"after": 0.0,
"delta": -0.25,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.421,
"after": 0.3908,
"delta": -0.0302,
"percent_delta": -0.0717,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.768,
"after": 1.0,
"delta": 0.232,
"percent_delta": 0.3021,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.92,
"after": 1.0,
"delta": 0.08,
"percent_delta": 0.087,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.561,
"after": 0.5304,
"delta": -0.0306,
"percent_delta": -0.0545,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.072,
"after": 0.0,
"delta": -1.072,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 11,
"boosted_metrics": 3,
"deboosted_metrics": 8,
"better_metrics": 4,
"worse_metrics": 7,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.768,
"after": 1.0,
"delta": 0.232,
"percent_delta": 0.3021,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 5.12,
"after": 4.0,
"delta": -1.12,
"percent_delta": -0.2188,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.216 | - |
| predicted_3B | 0.000 | - |
| predicted_AB | 5.120 | - |
| predicted_AVG | 0.319 | - |
| predicted_BB | 0.376 | - |
| predicted_H | 1.630 | - |
| predicted_HR | 0.250 | - |
| predicted_OBP | 0.421 | - |
| predicted_R | 0.768 | - |
| predicted_RBI | 0.920 | - |
| predicted_SLG | 0.561 | - |
| predicted_SO | 1.072 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.174 | -0.042 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 4.503 | -0.617 |
| predicted_AVG | 0.334 | 0.015 |
| predicted_BB | 0.401 | 0.025 |
| predicted_H | 1.488 | -0.142 |
| predicted_HBP | 0.010 | - |
| predicted_HR | 0.229 | -0.021 |
| predicted_OBP | 0.420 | -0.001 |
| predicted_R | 0.821 | 0.053 |
| predicted_RBI | 0.847 | -0.073 |
| predicted_SLG | 0.555 | -0.006 |
| predicted_SO | 0.998 | -0.074 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.174 | 0.000 |
| predicted_3B | 0.000 | 0.000 |
| predicted_AB | 4.503 | 0.000 |
| predicted_AVG | 0.336 | 0.003 |
| predicted_BB | 0.405 | 0.005 |
| predicted_H | 1.513 | 0.025 |
| predicted_HBP | 0.010 | 0.000 |
| predicted_HR | 0.234 | 0.005 |
| predicted_OBP | 0.391 | -0.029 |
| predicted_R | 0.846 | 0.025 |
| predicted_RBI | 0.873 | 0.026 |
| predicted_SLG | 0.530 | -0.025 |
| predicted_SO | 0.987 | -0.011 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=5.12), rates preserved: AVG=0.282 HR/AB=0.046
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=5.0, weight=0.057, BvP AVG=0.200)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.199 | 0.199 |
| 3B | 0.009 | 0.009 |
| BB | 0.529 | 0.529 |
| H | 1.062 | 0.062 |
| HR | 0.168 | 0.168 |
| RBI | 0.566 | -0.434 |
| SO | 1.064 | 0.064 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.199 |
| 3B | 0.000 | -0.009 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 0.471 |
| H | 1.000 | -0.062 |
| HR | 1.000 | 0.832 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.434 |
| SO | 1.000 | -0.064 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.174 |
| predicted_3B | 0.000 | -0.000 |
| predicted_AB | 4.000 | -0.503 |
| predicted_AVG | 0.259 | -0.077 |
| predicted_BB | 0.000 | -0.405 |
| predicted_H | 1.000 | -0.513 |
| predicted_HR | 0.000 | -0.234 |
| predicted_OBP | 0.348 | -0.043 |
| predicted_R | 1.000 | 0.154 |
| predicted_RBI | 1.000 | 0.127 |
| predicted_SLG | 0.434 | -0.096 |
| predicted_SO | 1.000 | 0.013 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -1.000 |
| CS | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | -1.000 |
| PA | 4.000 | - |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 14.000 | 8.000 | 0.000 | 0.000 | 1.000 | 5.000 | 6.000 | 2.000 | 2.000 | 0.5714 | 0.6250 | 0.7857 | 0.5714 | 0.0714 | 0.3571 | 0.1429 | 0.1429 |
| last_10 | 0.20 | 10 | - | 33.000 | 11.000 | 0.000 | 0.000 | 2.000 | 8.000 | 8.000 | 6.000 | 10.000 | 0.3333 | 0.4359 | 0.5152 | 0.3333 | 0.0606 | 0.2424 | 0.1818 | 0.3030 |
| season | 0.60 | 125 | - | 516.000 | 152.000 | 27.000 | 0.000 | 25.000 | 75.000 | 96.000 | 47.000 | 134.000 | 0.2946 | 0.3545 | 0.4922 | 0.2946 | 0.0485 | 0.1454 | 0.0911 | 0.2597 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1190 |
| predicted_3B | 0.0010 |
| predicted_AB | 3.7020 |
| predicted_AVG | 0.3522 |
| predicted_BB | 0.4330 |
| predicted_H | 1.3040 |
| predicted_HBP | 0.0100 |
| predicted_HR | 0.2020 |
| predicted_OBP | 0.4189 |
| predicted_R | 0.8890 |
| predicted_RBI | 0.7520 |
| predicted_SLG | 0.5481 |
| predicted_SO | 0.9030 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.2160 | 0.1190 | 0.1738 | model_form_blend |
| predicted_3B | 0.0000 | 0.0010 | 0.0004 | model_form_blend |
| predicted_AB | 5.1200 | 3.7020 | 4.5028 | model_form_blend |
| predicted_AVG | 0.3190 | 0.3522 | 0.3335 | model_form_blend |
| predicted_BB | 0.3760 | 0.4330 | 0.4008 | model_form_blend |
| predicted_H | 1.6300 | 1.3040 | 1.4881 | model_form_blend |
| predicted_HBP | - | 0.0100 | 0.0100 | form_only |
| predicted_HR | 0.2500 | 0.2020 | 0.2291 | model_form_blend |
| predicted_OBP | 0.4210 | 0.4189 | 0.4201 | model_form_blend |
| predicted_R | 0.7680 | 0.8890 | 0.8207 | model_form_blend |
| predicted_RBI | 0.9200 | 0.7520 | 0.8469 | model_form_blend |
| predicted_SLG | 0.5610 | 0.5481 | 0.5554 | model_form_blend |
| predicted_SO | 1.0720 | 0.9030 | 0.9984 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 541 |
| Season rows before report date | 541 |
| Report year | 2026 |
| Profile rows used | 125 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 1 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 1 |
| RBI | 1 |
| BB | 0 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.75 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 3 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 2 |
| Hitting_RBI | 2 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 3 |
| Hitting_battingOrder | 3 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | LF |
| gameID | 20260927_STL@MIL |
| game_type | full |
| mlbID | 694192 |
| playerID | 694192 |
| playerName | Jackson Chourio |
| pos | LF |
| started | True |
| startingPosition | LF |
| team | MIL |
| teamID | 16 |
| game_date | 2026-09-27 |
| sl_k_percent | 23.4 |
| sl_bb_percent | 8.2 |
| sl_woba | 0.361 |
| sl_xwoba | 0.344 |
| sl_xba | 0.265 |
| sl_xslg | 0.475 |
| sl_sweet_spot_percent | 33.3 |
| sl_barrel_batted_rate | 12.3 |
| sl_hard_hit_percent | 47.0 |
| sl_exit_velocity_avg | 91.6 |
| sl_launch_angle_avg | 11.8 |
| sl_whiff_percent | 25.1 |
| sl_swing_percent | 47.8 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.179 | 1.000 | 0.000 | Hitting_2B | 0.186 | 0.000 | 0.814 | 1.000 |
| predicted_3B | 0.007 | 0.000 | 0.000 | Hitting_3B | 0.008 | 0.000 | -0.008 | 0.000 |
| predicted_AB | 4.690 | 4.000 | 4.000 | Hitting_AB | 3.985 | 3.000 | 0.015 | 1.000 |
| predicted_AVG | 0.240 | 0.250 | 0.250 | Hitting_AVG | 0.274 | 0.333 | -0.024 | -0.083 |
| predicted_BB | 0.414 | 0.000 | 1.000 | Hitting_BB | 0.438 | 1.000 | -0.438 | -1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.015 | 0.000 | -0.015 | 0.000 |
| predicted_H | 1.120 | 1.000 | 1.000 | Hitting_H | 1.094 | 1.000 | -0.094 | 0.000 |
| predicted_HR | 0.120 | 0.000 | 0.000 | Hitting_HR | 0.129 | 0.000 | -0.129 | 0.000 |
| predicted_OBP | 0.323 | 0.250 | 0.400 | Hitting_OBP | 0.345 | 0.500 | -0.095 | -0.250 |
| predicted_R | 0.559 | 1.000 | 0.000 | Hitting_R | 0.610 | 0.000 | 0.390 | 1.000 |
| predicted_RBI | 0.990 | 0.000 | 1.000 | Hitting_RBI | 0.679 | 0.000 | -0.679 | 0.000 |
| predicted_SLG | 0.383 | 0.500 | 0.250 | Hitting_SLG | 0.422 | 0.333 | 0.078 | 0.167 |
| predicted_SO | 0.641 | 1.000 | 1.000 | Hitting_SO | 0.643 | 1.000 | 0.357 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 11 |
| Boosted Metrics | 4 |
| Deboosted Metrics | 7 |
| Better Metrics | 3 |
| Worse Metrics | 8 |
| Biggest Boost | predicted_2B: 0.1790 -> 1.0000 (boost 0.8210, better) |
| Biggest Deboost | predicted_RBI: 0.9900 -> 0.0000 (deboost -0.9900, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 6 | 1 | 5 | 1 | 5 | predicted_AVG: 0.2400 -> 0.2468 (boost 0.0068, better) | predicted_AB: 4.6900 -> 4.2851 (deboost -0.4049, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 2 | 0 | 2 | 0 | 2 | - | predicted_SLG: 0.3780 -> 0.3682 (deboost -0.0098, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 2 | 5 | 1 | 6 | predicted_SO: 0.6578 -> 1.0000 (boost 0.3422, worse) | predicted_BB: 0.4139 -> 0.0000 (deboost -0.4139, worse) | AB rounded to 4 (raw=4.69), rates preserved: AVG=0.217 HR/AB=0.024 |
| 6 | bvp_blend | 1 | 1 | 0 | 1 | 0 | predicted_BB: 0.0000 -> 1.0000 (boost 1.0000, better) | - | Sample-size BvP blend (BvP AB=6.0, weight=0.067, BvP AVG=0.167) |
| 7 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.4999 -> 0.0000 (deboost -0.4999, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 2 | 4 | 3 | 3 | predicted_2B: 0.0000 -> 0.1738 (boost 0.1738, better) | predicted_BB: 1.0000 -> 0.5604 (deboost -0.4396, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 9 | lineup_integer_allocation | 6 | 4 | 2 | 3 | 3 | predicted_BB: 0.5604 -> 1.0000 (boost 0.4396, better) | predicted_2B: 0.1738 -> 0.0000 (deboost -0.1738, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 10 | embedded_savant_player_context | 2 | 1 | 1 | 1 | 1 | predicted_OBP: 0.3155 -> 0.3380 (boost 0.0225, better) | predicted_AVG: 0.2493 -> 0.2370 (deboost -0.0123, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | simulation_box_score_reference | 4 | 2 | 2 | 2 | 2 | predicted_2B: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 12 | current_json_final | 2 | 1 | 1 | 1 | 1 | predicted_AVG: 0.2370 -> 0.2493 (boost 0.0123, better) | predicted_OBP: 0.3380 -> 0.3155 (deboost -0.0225, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "661388",
"player_name": "William Contreras",
"position": "C",
"team": "MIL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.179,
"predicted_3B": 0.007,
"predicted_AB": 4.69,
"predicted_AVG": 0.24,
"predicted_BB": 0.414,
"predicted_H": 1.12,
"predicted_HR": 0.12,
"predicted_OBP": 0.323,
"predicted_R": 0.559,
"predicted_RBI": 0.99,
"predicted_SLG": 0.383,
"predicted_SO": 0.641
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1646,
"predicted_3B": 0.0061,
"predicted_AB": 4.2851,
"predicted_AVG": 0.2468,
"predicted_BB": 0.4092,
"predicted_H": 1.051,
"predicted_HBP": 0.017,
"predicted_HR": 0.1086,
"predicted_OBP": 0.323,
"predicted_R": 0.4852,
"predicted_RBI": 0.9,
"predicted_SLG": 0.378,
"predicted_SO": 0.6655
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.179,
"after": 0.1646,
"delta": -0.0144,
"percent_delta": -0.0804,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.007,
"after": 0.0061,
"delta": -0.0009,
"percent_delta": -0.1286,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.69,
"after": 4.2851,
"delta": -0.4049,
"percent_delta": -0.0863,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.24,
"after": 0.2468,
"delta": 0.0068,
"percent_delta": 0.0283,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.414,
"after": 0.4092,
"delta": -0.0048,
"percent_delta": -0.0116,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.12,
"after": 1.051,
"delta": -0.069,
"percent_delta": -0.0616,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.12,
"after": 0.1086,
"delta": -0.0114,
"percent_delta": -0.095,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.323,
"after": 0.323,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.559,
"after": 0.4852,
"delta": -0.0738,
"percent_delta": -0.132,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.99,
"after": 0.9,
"delta": -0.09,
"percent_delta": -0.0909,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.383,
"after": 0.378,
"delta": -0.005,
"percent_delta": -0.0131,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.641,
"after": 0.6655,
"delta": 0.0245,
"percent_delta": 0.0382,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 1,
"deboosted_metrics": 5,
"better_metrics": 1,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_AVG",
"before": 0.24,
"after": 0.2468,
"delta": 0.0068,
"percent_delta": 0.0283,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.69,
"after": 4.2851,
"delta": -0.4049,
"percent_delta": -0.0863,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 145
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1646,
"predicted_3B": 0.0061,
"predicted_AB": 4.2851,
"predicted_AVG": 0.2493,
"predicted_BB": 0.4139,
"predicted_H": 1.0684,
"predicted_HBP": 0.017,
"predicted_HR": 0.1108,
"predicted_OBP": 0.3155,
"predicted_R": 0.4999,
"predicted_RBI": 0.9272,
"predicted_SLG": 0.3682,
"predicted_SO": 0.6578
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1646,
"after": 0.1646,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0061,
"after": 0.0061,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.2851,
"after": 4.2851,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2468,
"after": 0.2493,
"delta": 0.0025,
"percent_delta": 0.0101,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.4092,
"after": 0.4139,
"delta": 0.0047,
"percent_delta": 0.0115,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.051,
"after": 1.0684,
"delta": 0.0174,
"percent_delta": 0.0166,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.017,
"after": 0.017,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1086,
"after": 0.1108,
"delta": 0.0022,
"percent_delta": 0.0203,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.323,
"after": 0.3155,
"delta": -0.0075,
"percent_delta": -0.0232,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.4852,
"after": 0.4999,
"delta": 0.0147,
"percent_delta": 0.0303,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.9,
"after": 0.9272,
"delta": 0.0272,
"percent_delta": 0.0302,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.378,
"after": 0.3682,
"delta": -0.0098,
"percent_delta": -0.0259,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.6655,
"after": 0.6578,
"delta": -0.0077,
"percent_delta": -0.0116,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.378,
"after": 0.3682,
"delta": -0.0098,
"percent_delta": -0.0259,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=4.69), rates preserved: AVG=0.217 HR/AB=0.024",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1646,
"after": 0.0,
"delta": -0.1646,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0061,
"after": 0.0,
"delta": -0.0061,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.2851,
"after": 4.0,
"delta": -0.2851,
"percent_delta": -0.0665,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.4139,
"after": 0.0,
"delta": -0.4139,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0684,
"after": 1.0,
"delta": -0.0684,
"percent_delta": -0.064,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.017,
"after": 0.0,
"delta": -0.017,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1108,
"after": 0.0,
"delta": -0.1108,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.9272,
"after": 1.0,
"delta": 0.0728,
"percent_delta": 0.0785,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.6578,
"after": 1.0,
"delta": 0.3422,
"percent_delta": 0.5202,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 2,
"deboosted_metrics": 5,
"better_metrics": 1,
"worse_metrics": 6,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.6578,
"after": 1.0,
"delta": 0.3422,
"percent_delta": 0.5202,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.4139,
"after": 0.0,
"delta": -0.4139,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "bvp_blend",
"description": "Sample-size BvP blend (BvP AB=6.0, weight=0.067, BvP AVG=0.167)",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {
"model_expectation": 0.9333,
"bvp": 0.0667
},
"window_games": {}
},
{
"index": 7,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.4999,
"after": 0.0,
"delta": -0.4999,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_R",
"before": 0.4999,
"after": 0.0,
"delta": -0.4999,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1738,
"predicted_3B": 0.0097,
"predicted_BB": 0.5604,
"predicted_H": 0.9222,
"predicted_HR": 0.113,
"predicted_RBI": 0.5699,
"predicted_SO": 0.689
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1738,
"delta": 0.1738,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0097,
"delta": 0.0097,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 1.0,
"after": 0.5604,
"delta": -0.4396,
"percent_delta": -0.4396,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.9222,
"delta": -0.0778,
"percent_delta": -0.0778,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.113,
"delta": 0.113,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.5699,
"delta": -0.4301,
"percent_delta": -0.4301,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.689,
"delta": -0.311,
"percent_delta": -0.311,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 2,
"deboosted_metrics": 4,
"better_metrics": 3,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1738,
"delta": 0.1738,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 1.0,
"after": 0.5604,
"delta": -0.4396,
"percent_delta": -0.4396,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1738,
"after": 0.0,
"delta": -0.1738,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0097,
"after": 0.0,
"delta": -0.0097,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.5604,
"after": 1.0,
"delta": 0.4396,
"percent_delta": 0.7844,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.9222,
"after": 1.0,
"delta": 0.0778,
"percent_delta": 0.0844,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.113,
"after": 0.0,
"delta": -0.113,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5699,
"after": 1.0,
"delta": 0.4301,
"percent_delta": 0.7547,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.689,
"after": 1.0,
"delta": 0.311,
"percent_delta": 0.4514,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 3,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.5604,
"after": 1.0,
"delta": 0.4396,
"percent_delta": 0.7844,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_2B",
"before": 0.1738,
"after": 0.0,
"delta": -0.1738,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.237,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.338,
"predicted_R": 0.0,
"predicted_RBI": 1.0,
"predicted_SLG": 0.373,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2493,
"after": 0.237,
"delta": -0.0123,
"percent_delta": -0.0493,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3155,
"after": 0.338,
"delta": 0.0225,
"percent_delta": 0.0713,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3682,
"after": 0.373,
"delta": 0.0048,
"percent_delta": 0.013,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_OBP",
"before": 0.3155,
"after": 0.338,
"delta": 0.0225,
"percent_delta": 0.0713,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AVG",
"before": 0.2493,
"after": 0.237,
"delta": -0.0123,
"percent_delta": -0.0493,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 1.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 2,
"deboosted_metrics": 2,
"better_metrics": 2,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_2B",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 12,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 1.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.2493,
"predicted_BB": 0.0,
"predicted_C": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3155,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.3682,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.237,
"after": 0.2493,
"delta": 0.0123,
"percent_delta": 0.0521,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.338,
"after": 0.3155,
"delta": -0.0225,
"percent_delta": -0.0667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.373,
"after": 0.3682,
"delta": -0.0048,
"percent_delta": -0.013,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 1,
"deboosted_metrics": 1,
"better_metrics": 1,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_AVG",
"before": 0.237,
"after": 0.2493,
"delta": 0.0123,
"percent_delta": 0.0521,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.338,
"after": 0.3155,
"delta": -0.0225,
"percent_delta": -0.0667,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.179,
"after": 1.0,
"delta": 0.821,
"percent_delta": 4.5866,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.007,
"after": 0.0,
"delta": -0.007,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.69,
"after": 4.0,
"delta": -0.69,
"percent_delta": -0.1471,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.24,
"after": 0.2493,
"delta": 0.0093,
"percent_delta": 0.0388,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.414,
"after": 0.0,
"delta": -0.414,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.12,
"after": 1.0,
"delta": -0.12,
"percent_delta": -0.1071,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.12,
"after": 0.0,
"delta": -0.12,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.323,
"after": 0.3155,
"delta": -0.0075,
"percent_delta": -0.0232,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.559,
"after": 1.0,
"delta": 0.441,
"percent_delta": 0.7889,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.99,
"after": 0.0,
"delta": -0.99,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.383,
"after": 0.3682,
"delta": -0.0148,
"percent_delta": -0.0386,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.641,
"after": 1.0,
"delta": 0.359,
"percent_delta": 0.5601,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 11,
"boosted_metrics": 4,
"deboosted_metrics": 7,
"better_metrics": 3,
"worse_metrics": 8,
"biggest_boost": {
"metric": "predicted_2B",
"before": 0.179,
"after": 1.0,
"delta": 0.821,
"percent_delta": 4.5866,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.99,
"after": 0.0,
"delta": -0.99,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.179 | - |
| predicted_3B | 0.007 | - |
| predicted_AB | 4.690 | - |
| predicted_AVG | 0.240 | - |
| predicted_BB | 0.414 | - |
| predicted_H | 1.120 | - |
| predicted_HR | 0.120 | - |
| predicted_OBP | 0.323 | - |
| predicted_R | 0.559 | - |
| predicted_RBI | 0.990 | - |
| predicted_SLG | 0.383 | - |
| predicted_SO | 0.641 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.165 | -0.014 |
| predicted_3B | 0.006 | -0.001 |
| predicted_AB | 4.285 | -0.405 |
| predicted_AVG | 0.247 | 0.007 |
| predicted_BB | 0.409 | -0.005 |
| predicted_H | 1.051 | -0.069 |
| predicted_HBP | 0.017 | - |
| predicted_HR | 0.109 | -0.011 |
| predicted_OBP | 0.323 | 0.000 |
| predicted_R | 0.485 | -0.074 |
| predicted_RBI | 0.900 | -0.090 |
| predicted_SLG | 0.378 | -0.005 |
| predicted_SO | 0.665 | 0.024 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.165 | 0.000 |
| predicted_3B | 0.006 | 0.000 |
| predicted_AB | 4.285 | 0.000 |
| predicted_AVG | 0.249 | 0.003 |
| predicted_BB | 0.414 | 0.005 |
| predicted_H | 1.068 | 0.017 |
| predicted_HBP | 0.017 | 0.000 |
| predicted_HR | 0.111 | 0.002 |
| predicted_OBP | 0.316 | -0.008 |
| predicted_R | 0.500 | 0.015 |
| predicted_RBI | 0.927 | 0.027 |
| predicted_SLG | 0.368 | -0.010 |
| predicted_SO | 0.658 | -0.008 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=4.69), rates preserved: AVG=0.217 HR/AB=0.024
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=6.0, weight=0.067, BvP AVG=0.167)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 1.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.174 | 0.174 |
| 3B | 0.010 | 0.010 |
| BB | 0.560 | -0.440 |
| H | 0.922 | -0.078 |
| HR | 0.113 | 0.113 |
| RBI | 0.570 | -0.430 |
| SO | 0.689 | -0.311 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.174 |
| 3B | 0.000 | -0.010 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 0.440 |
| H | 1.000 | 0.078 |
| HR | 0.000 | -0.113 |
| R | 0.000 | 0.000 |
| RBI | 1.000 | 0.430 |
| SO | 1.000 | 0.311 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.165 |
| predicted_3B | 0.000 | -0.006 |
| predicted_AB | 4.000 | -0.285 |
| predicted_AVG | 0.237 | -0.012 |
| predicted_BB | 1.000 | 0.586 |
| predicted_H | 1.000 | -0.068 |
| predicted_HR | 0.000 | -0.111 |
| predicted_OBP | 0.338 | 0.023 |
| predicted_R | 0.000 | -0.500 |
| predicted_RBI | 1.000 | 0.073 |
| predicted_SLG | 0.373 | 0.005 |
| predicted_SO | 1.000 | 0.342 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 1.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -1.000 |
| CS | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 1.000 | 1.000 |
| RBI | 0.000 | -1.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 17.000 | 4.000 | 0.000 | 0.000 | 0.000 | 6.000 | 0.000 | 2.000 | 4.000 | 0.2353 | 0.3000 | 0.2353 | 0.2353 | 0.0000 | 0.3529 | 0.1177 | 0.2353 |
| last_10 | 0.20 | 10 | - | 38.000 | 9.000 | 2.000 | 0.000 | 1.000 | 8.000 | 3.000 | 4.000 | 7.000 | 0.2368 | 0.3023 | 0.3684 | 0.2368 | 0.0263 | 0.2105 | 0.1053 | 0.1842 |
| season | 0.60 | 145 | - | 561.000 | 151.000 | 26.000 | 1.000 | 18.000 | 93.000 | 81.000 | 60.000 | 93.000 | 0.2692 | 0.3391 | 0.4153 | 0.2692 | 0.0321 | 0.1658 | 0.1070 | 0.1658 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1460 |
| predicted_3B | 0.0050 |
| predicted_AB | 3.7630 |
| predicted_AVG | 0.2556 |
| predicted_BB | 0.4030 |
| predicted_H | 0.9620 |
| predicted_HBP | 0.0170 |
| predicted_HR | 0.0940 |
| predicted_OBP | 0.3231 |
| predicted_R | 0.3900 |
| predicted_RBI | 0.7840 |
| predicted_SLG | 0.3716 |
| predicted_SO | 0.6970 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1790 | 0.1460 | 0.1646 | model_form_blend |
| predicted_3B | 0.0070 | 0.0050 | 0.0061 | model_form_blend |
| predicted_AB | 4.6900 | 3.7630 | 4.2851 | model_form_blend |
| predicted_AVG | 0.2400 | 0.2556 | 0.2468 | model_form_blend |
| predicted_BB | 0.4140 | 0.4030 | 0.4092 | model_form_blend |
| predicted_H | 1.1200 | 0.9620 | 1.0510 | model_form_blend |
| predicted_HBP | - | 0.0170 | 0.0170 | form_only |
| predicted_HR | 0.1200 | 0.0940 | 0.1086 | model_form_blend |
| predicted_OBP | 0.3230 | 0.3231 | 0.3230 | model_form_blend |
| predicted_R | 0.5590 | 0.3900 | 0.4852 | model_form_blend |
| predicted_RBI | 0.9900 | 0.7840 | 0.9000 | model_form_blend |
| predicted_SLG | 0.3830 | 0.3716 | 0.3780 | model_form_blend |
| predicted_SO | 0.6410 | 0.6970 | 0.6655 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 607 |
| Season rows before report date | 607 |
| Report year | 2026 |
| Profile rows used | 145 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 1 |
| 2B | 1 |
| 3B | 0 |
| HR | 0 |
| R | 1 |
| RBI | 0 |
| BB | 0 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 3 |
| Hitting_AVG | 0.333 |
| Hitting_BB | 1 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 1 |
| Hitting_battingOrder | 4 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | C |
| gameID | 20260926_STL@MIL |
| game_type | full |
| mlbID | 661388 |
| playerID | 661388 |
| playerName | William Contreras |
| pos | C |
| started | True |
| startingPosition | C |
| team | MIL |
| teamID | 16 |
| game_date | 2026-09-26 |
| sl_k_percent | 14.7 |
| sl_bb_percent | 9.5 |
| sl_woba | 0.33 |
| sl_xwoba | 0.334 |
| sl_xba | 0.261 |
| sl_xslg | 0.441 |
| sl_sweet_spot_percent | 33.3 |
| sl_barrel_batted_rate | 8.5 |
| sl_hard_hit_percent | 44.1 |
| sl_exit_velocity_avg | 90.3 |
| sl_launch_angle_avg | 13.2 |
| sl_whiff_percent | 20.7 |
| sl_swing_percent | 47.2 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.127 | 0.000 | 0.000 | Hitting_2B | 0.117 | 0.000 | -0.117 | 0.000 |
| predicted_3B | 0.036 | 0.000 | 0.000 | Hitting_3B | 0.036 | 0.000 | -0.036 | 0.000 |
| predicted_AB | 3.418 | 4.000 | 4.000 | Hitting_AB | 3.574 | 4.000 | 0.426 | 0.000 |
| predicted_AVG | 0.245 | 0.000 | 0.250 | Hitting_AVG | 0.257 | 0.250 | -0.257 | -0.250 |
| predicted_BB | 0.291 | 0.000 | 0.000 | Hitting_BB | 0.381 | 0.000 | -0.381 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.030 | 0.000 | -0.030 | 0.000 |
| predicted_H | 0.836 | 0.000 | 1.000 | Hitting_H | 0.919 | 1.000 | -0.919 | -1.000 |
| predicted_HR | 0.018 | 0.000 | 0.000 | Hitting_HR | 0.030 | 0.000 | -0.030 | 0.000 |
| predicted_OBP | 0.304 | 0.000 | 0.250 | Hitting_OBP | 0.331 | 0.250 | -0.331 | -0.250 |
| predicted_R | 0.436 | 0.000 | 0.000 | Hitting_R | 0.497 | 0.000 | -0.497 | 0.000 |
| predicted_RBI | 0.473 | 0.000 | 0.000 | Hitting_RBI | 0.538 | 0.000 | -0.538 | 0.000 |
| predicted_SLG | 0.319 | 0.000 | 0.250 | Hitting_SLG | 0.335 | 0.250 | -0.335 | -0.250 |
| predicted_SO | 0.836 | 0.000 | 1.000 | Hitting_SO | 0.868 | 1.000 | -0.868 | -1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 10 |
| Boosted Metrics | 1 |
| Deboosted Metrics | 9 |
| Better Metrics | 2 |
| Worse Metrics | 8 |
| Biggest Boost | predicted_AB: 3.4180 -> 4.0000 (boost 0.5820, better) |
| Biggest Deboost | predicted_H: 0.8360 -> 0.0000 (deboost -0.8360, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 4 | 1 | 3 | 1 | 3 | predicted_AB: 3.4180 -> 3.4787 (boost 0.0607, better) | predicted_SLG: 0.3190 -> 0.3031 (deboost -0.0159, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 0 | 0 | 0 | 0 | 0 | - | - | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 6 | 3 | 3 | 2 | 4 | predicted_AB: 3.4787 -> 4.0000 (boost 0.5213, better) | predicted_RBI: 0.4775 -> 0.0000 (deboost -0.4775, worse) | AB rounded to 4 (raw=3.48), rates preserved: AVG=0.225 HR/AB=0.006 |
| 6 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.4126 -> 0.0000 (deboost -0.4126, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 4 | 2 | 5 | 1 | predicted_RBI: 0.0000 -> 0.4835 (boost 0.4835, better) | predicted_H: 1.0000 -> 0.8459 (deboost -0.1541, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 6 | 2 | 4 | 1 | 5 | predicted_H: 0.8459 -> 1.0000 (boost 0.1541, better) | predicted_RBI: 0.4835 -> 0.0000 (deboost -0.4835, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 2 | 2 | 0 | 2 | 0 | predicted_SLG: 0.3068 -> 0.3500 (boost 0.0432, better) | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 2 | 0 | 2 | 1 | 1 | - | predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 2 | 0 | 2 | 0 | 2 | - | predicted_SLG: 0.3500 -> 0.3068 (deboost -0.0432, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "800325",
"player_name": "Luis Lara",
"position": "RF",
"team": "MIL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.127,
"predicted_3B": 0.036,
"predicted_AB": 3.418,
"predicted_AVG": 0.245,
"predicted_BB": 0.291,
"predicted_H": 0.836,
"predicted_HR": 0.018,
"predicted_OBP": 0.304,
"predicted_R": 0.436,
"predicted_RBI": 0.473,
"predicted_SLG": 0.319,
"predicted_SO": 0.836
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1192,
"predicted_3B": 0.0302,
"predicted_AB": 3.4787,
"predicted_AVG": 0.2332,
"predicted_BB": 0.2774,
"predicted_H": 0.8092,
"predicted_HBP": 0.014,
"predicted_HR": 0.0213,
"predicted_OBP": 0.2895,
"predicted_R": 0.4005,
"predicted_RBI": 0.4635,
"predicted_SLG": 0.3031,
"predicted_SO": 0.8459
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.127,
"after": 0.1192,
"delta": -0.0078,
"percent_delta": -0.0614,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.036,
"after": 0.0302,
"delta": -0.0058,
"percent_delta": -0.1611,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.418,
"after": 3.4787,
"delta": 0.0607,
"percent_delta": 0.0178,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.245,
"after": 0.2332,
"delta": -0.0118,
"percent_delta": -0.0482,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.291,
"after": 0.2774,
"delta": -0.0136,
"percent_delta": -0.0467,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.836,
"after": 0.8092,
"delta": -0.0268,
"percent_delta": -0.0321,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.018,
"after": 0.0213,
"delta": 0.0033,
"percent_delta": 0.1833,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.304,
"after": 0.2895,
"delta": -0.0145,
"percent_delta": -0.0477,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.436,
"after": 0.4005,
"delta": -0.0355,
"percent_delta": -0.0814,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.473,
"after": 0.4635,
"delta": -0.0095,
"percent_delta": -0.0201,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.319,
"after": 0.3031,
"delta": -0.0159,
"percent_delta": -0.0498,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.836,
"after": 0.8459,
"delta": 0.0099,
"percent_delta": 0.0118,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 1,
"deboosted_metrics": 3,
"better_metrics": 1,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.418,
"after": 3.4787,
"delta": 0.0607,
"percent_delta": 0.0178,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.319,
"after": 0.3031,
"delta": -0.0159,
"percent_delta": -0.0498,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 55
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1192,
"predicted_3B": 0.0302,
"predicted_AB": 3.4787,
"predicted_AVG": 0.2365,
"predicted_BB": 0.2806,
"predicted_H": 0.8226,
"predicted_HBP": 0.014,
"predicted_HR": 0.0217,
"predicted_OBP": 0.2935,
"predicted_R": 0.4126,
"predicted_RBI": 0.4775,
"predicted_SLG": 0.3068,
"predicted_SO": 0.8362
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1192,
"after": 0.1192,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0302,
"after": 0.0302,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.4787,
"after": 3.4787,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2332,
"after": 0.2365,
"delta": 0.0033,
"percent_delta": 0.0142,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.2774,
"after": 0.2806,
"delta": 0.0032,
"percent_delta": 0.0115,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.8092,
"after": 0.8226,
"delta": 0.0134,
"percent_delta": 0.0166,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.014,
"after": 0.014,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0213,
"after": 0.0217,
"delta": 0.0004,
"percent_delta": 0.0188,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.2895,
"after": 0.2935,
"delta": 0.004,
"percent_delta": 0.0138,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.4005,
"after": 0.4126,
"delta": 0.0121,
"percent_delta": 0.0302,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.4635,
"after": 0.4775,
"delta": 0.014,
"percent_delta": 0.0302,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3031,
"after": 0.3068,
"delta": 0.0037,
"percent_delta": 0.0122,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.8459,
"after": 0.8362,
"delta": -0.0097,
"percent_delta": -0.0115,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=3.48), rates preserved: AVG=0.225 HR/AB=0.006",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1192,
"after": 0.0,
"delta": -0.1192,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0302,
"after": 0.0,
"delta": -0.0302,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.4787,
"after": 4.0,
"delta": 0.5213,
"percent_delta": 0.1499,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.2806,
"after": 0.0,
"delta": -0.2806,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8226,
"after": 1.0,
"delta": 0.1774,
"percent_delta": 0.2157,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.014,
"after": 0.0,
"delta": -0.014,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0217,
"after": 0.0,
"delta": -0.0217,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.4775,
"after": 0.0,
"delta": -0.4775,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.8362,
"after": 1.0,
"delta": 0.1638,
"percent_delta": 0.1959,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 3,
"deboosted_metrics": 3,
"better_metrics": 2,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.4787,
"after": 4.0,
"delta": 0.5213,
"percent_delta": 0.1499,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.4775,
"after": 0.0,
"delta": -0.4775,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.4126,
"after": 0.0,
"delta": -0.4126,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_R",
"before": 0.4126,
"after": 0.0,
"delta": -0.4126,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1656,
"predicted_3B": 0.0163,
"predicted_BB": 0.4495,
"predicted_H": 0.8459,
"predicted_HR": 0.0728,
"predicted_RBI": 0.4835,
"predicted_SO": 0.9132
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1656,
"delta": 0.1656,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0163,
"delta": 0.0163,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.4495,
"delta": 0.4495,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.8459,
"delta": -0.1541,
"percent_delta": -0.1541,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0728,
"delta": 0.0728,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.4835,
"delta": 0.4835,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.9132,
"delta": -0.0868,
"percent_delta": -0.0868,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 5,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.4835,
"delta": 0.4835,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.8459,
"delta": -0.1541,
"percent_delta": -0.1541,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1656,
"after": 0.0,
"delta": -0.1656,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0163,
"after": 0.0,
"delta": -0.0163,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.4495,
"after": 0.0,
"delta": -0.4495,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8459,
"after": 1.0,
"delta": 0.1541,
"percent_delta": 0.1822,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0728,
"after": 0.0,
"delta": -0.0728,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.4835,
"after": 0.0,
"delta": -0.4835,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.9132,
"after": 1.0,
"delta": 0.0868,
"percent_delta": 0.0951,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 2,
"deboosted_metrics": 4,
"better_metrics": 1,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.8459,
"after": 1.0,
"delta": 0.1541,
"percent_delta": 0.1822,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.4835,
"after": 0.0,
"delta": -0.4835,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.235,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.325,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.35,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2365,
"after": 0.235,
"delta": -0.0015,
"percent_delta": -0.0063,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.2935,
"after": 0.325,
"delta": 0.0315,
"percent_delta": 0.1073,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3068,
"after": 0.35,
"delta": 0.0432,
"percent_delta": 0.1408,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.3068,
"after": 0.35,
"delta": 0.0432,
"percent_delta": 0.1408,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"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": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.2365,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.2935,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_RF": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.3068,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.235,
"after": 0.2365,
"delta": 0.0015,
"percent_delta": 0.0063,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.325,
"after": 0.2935,
"delta": -0.0315,
"percent_delta": -0.097,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.35,
"after": 0.3068,
"delta": -0.0432,
"percent_delta": -0.1233,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.35,
"after": 0.3068,
"delta": -0.0432,
"percent_delta": -0.1233,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.127,
"after": 0.0,
"delta": -0.127,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.036,
"after": 0.0,
"delta": -0.036,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.418,
"after": 4.0,
"delta": 0.582,
"percent_delta": 0.1703,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.245,
"after": 0.2365,
"delta": -0.0085,
"percent_delta": -0.0347,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.291,
"after": 0.0,
"delta": -0.291,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.836,
"after": 0.0,
"delta": -0.836,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.018,
"after": 0.0,
"delta": -0.018,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.304,
"after": 0.2935,
"delta": -0.0105,
"percent_delta": -0.0345,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.436,
"after": 0.0,
"delta": -0.436,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.473,
"after": 0.0,
"delta": -0.473,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.319,
"after": 0.3068,
"delta": -0.0122,
"percent_delta": -0.0382,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.836,
"after": 0.0,
"delta": -0.836,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 10,
"boosted_metrics": 1,
"deboosted_metrics": 9,
"better_metrics": 2,
"worse_metrics": 8,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.418,
"after": 4.0,
"delta": 0.582,
"percent_delta": 0.1703,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 0.836,
"after": 0.0,
"delta": -0.836,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.127 | - |
| predicted_3B | 0.036 | - |
| predicted_AB | 3.418 | - |
| predicted_AVG | 0.245 | - |
| predicted_BB | 0.291 | - |
| predicted_H | 0.836 | - |
| predicted_HR | 0.018 | - |
| predicted_OBP | 0.304 | - |
| predicted_R | 0.436 | - |
| predicted_RBI | 0.473 | - |
| predicted_SLG | 0.319 | - |
| predicted_SO | 0.836 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.119 | -0.008 |
| predicted_3B | 0.030 | -0.006 |
| predicted_AB | 3.479 | 0.061 |
| predicted_AVG | 0.233 | -0.012 |
| predicted_BB | 0.277 | -0.014 |
| predicted_H | 0.809 | -0.027 |
| predicted_HBP | 0.014 | - |
| predicted_HR | 0.021 | 0.003 |
| predicted_OBP | 0.289 | -0.015 |
| predicted_R | 0.401 | -0.035 |
| predicted_RBI | 0.464 | -0.009 |
| predicted_SLG | 0.303 | -0.016 |
| predicted_SO | 0.846 | 0.010 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.119 | 0.000 |
| predicted_3B | 0.030 | 0.000 |
| predicted_AB | 3.479 | 0.000 |
| predicted_AVG | 0.236 | 0.003 |
| predicted_BB | 0.281 | 0.003 |
| predicted_H | 0.823 | 0.013 |
| predicted_HBP | 0.014 | 0.000 |
| predicted_HR | 0.022 | 0.000 |
| predicted_OBP | 0.293 | 0.004 |
| predicted_R | 0.413 | 0.012 |
| predicted_RBI | 0.477 | 0.014 |
| predicted_SLG | 0.307 | 0.004 |
| predicted_SO | 0.836 | -0.010 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=3.48), rates preserved: AVG=0.225 HR/AB=0.006
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.166 | 0.166 |
| 3B | 0.016 | 0.016 |
| BB | 0.450 | 0.450 |
| H | 0.846 | -0.154 |
| HR | 0.073 | 0.073 |
| RBI | 0.483 | 0.483 |
| SO | 0.913 | -0.087 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.166 |
| 3B | 0.000 | -0.016 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -0.450 |
| H | 1.000 | 0.154 |
| HR | 0.000 | -0.073 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -0.483 |
| SO | 1.000 | 0.087 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.119 |
| predicted_3B | 0.000 | -0.030 |
| predicted_AB | 4.000 | 0.521 |
| predicted_AVG | 0.235 | -0.002 |
| predicted_BB | 0.000 | -0.281 |
| predicted_H | 1.000 | 0.177 |
| predicted_HR | 0.000 | -0.022 |
| predicted_OBP | 0.325 | 0.032 |
| predicted_R | 0.000 | -0.413 |
| predicted_RBI | 0.000 | -0.477 |
| predicted_SLG | 0.350 | 0.043 |
| predicted_SO | 1.000 | 0.164 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | -1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 19.000 | 3.000 | 0.000 | 0.000 | 0.000 | 2.000 | 0.000 | 1.000 | 5.000 | 0.1579 | 0.2000 | 0.1579 | 0.1579 | 0.0000 | 0.1053 | 0.0526 | 0.2632 |
| last_10 | 0.20 | 10 | - | 36.000 | 6.000 | 1.000 | 0.000 | 0.000 | 4.000 | 3.000 | 2.000 | 8.000 | 0.1667 | 0.2051 | 0.1944 | 0.1667 | 0.0000 | 0.1111 | 0.0556 | 0.2222 |
| season | 0.60 | 55 | - | 188.000 | 46.000 | 7.000 | 2.000 | 1.000 | 26.000 | 24.000 | 16.000 | 46.000 | 0.2447 | 0.3043 | 0.3191 | 0.2447 | 0.0053 | 0.1383 | 0.0851 | 0.2447 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1080 |
| predicted_3B | 0.0220 |
| predicted_AB | 3.5650 |
| predicted_AVG | 0.2164 |
| predicted_BB | 0.2580 |
| predicted_H | 0.7710 |
| predicted_HBP | 0.0140 |
| predicted_HR | 0.0260 |
| predicted_OBP | 0.2689 |
| predicted_R | 0.3500 |
| predicted_RBI | 0.4500 |
| predicted_SLG | 0.2804 |
| predicted_SO | 0.8600 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1270 | 0.1080 | 0.1192 | model_form_blend |
| predicted_3B | 0.0360 | 0.0220 | 0.0302 | model_form_blend |
| predicted_AB | 3.4180 | 3.5650 | 3.4787 | model_form_blend |
| predicted_AVG | 0.2450 | 0.2164 | 0.2332 | model_form_blend |
| predicted_BB | 0.2910 | 0.2580 | 0.2774 | model_form_blend |
| predicted_H | 0.8360 | 0.7710 | 0.8092 | model_form_blend |
| predicted_HBP | - | 0.0140 | 0.0140 | form_only |
| predicted_HR | 0.0180 | 0.0260 | 0.0213 | model_form_blend |
| predicted_OBP | 0.3040 | 0.2689 | 0.2895 | model_form_blend |
| predicted_R | 0.4360 | 0.3500 | 0.4005 | model_form_blend |
| predicted_RBI | 0.4730 | 0.4500 | 0.4635 | model_form_blend |
| predicted_SLG | 0.3190 | 0.2804 | 0.3031 | model_form_blend |
| predicted_SO | 0.8360 | 0.8600 | 0.8459 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 197 |
| Season rows before report date | 197 |
| Report year | 2026 |
| Profile rows used | 55 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.25 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 1 |
| Hitting_TB | 1 |
| Hitting_battingOrder | 6 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | CF-RF |
| gameID | 20260926_STL@MIL |
| game_type | full |
| mlbID | 800325 |
| playerID | 800325 |
| playerName | Luis Lara |
| pos | CF |
| started | True |
| startingPosition | CF |
| team | MIL |
| teamID | 16 |
| game_date | 2026-09-26 |
| sl_k_percent | 21.7 |
| sl_bb_percent | 8.5 |
| sl_woba | 0.286 |
| sl_xwoba | 0.293 |
| sl_xba | 0.256 |
| sl_xslg | 0.331 |
| sl_sweet_spot_percent | 34.7 |
| sl_barrel_batted_rate | 3.4 |
| sl_hard_hit_percent | 41.5 |
| sl_exit_velocity_avg | 88.0 |
| sl_launch_angle_avg | 5.3 |
| sl_whiff_percent | 17.0 |
| sl_swing_percent | 42.1 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.252 | 0.000 | 1.000 | Hitting_2B | 0.261 | 0.000 | -0.261 | 0.000 |
| predicted_3B | 0.020 | 0.000 | 0.000 | Hitting_3B | 0.028 | 0.000 | -0.028 | 0.000 |
| predicted_AB | 4.660 | 3.000 | 4.000 | Hitting_AB | 3.962 | 4.000 | -0.962 | -1.000 |
| predicted_AVG | 0.272 | 0.333 | 0.250 | Hitting_AVG | 0.278 | 0.250 | 0.056 | 0.083 |
| predicted_BB | 0.585 | 1.000 | 1.000 | Hitting_BB | 0.588 | 0.000 | 0.412 | 1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.037 | 0.000 | -0.037 | 0.000 |
| predicted_H | 1.260 | 1.000 | 1.000 | Hitting_H | 1.100 | 1.000 | -0.100 | 0.000 |
| predicted_HR | 0.220 | 1.000 | 0.000 | Hitting_HR | 0.143 | 0.000 | 0.857 | 1.000 |
| predicted_OBP | 0.365 | 0.500 | 0.400 | Hitting_OBP | 0.371 | 0.250 | 0.129 | 0.250 |
| predicted_R | 0.694 | 1.000 | 1.000 | Hitting_R | 0.716 | 0.000 | 0.284 | 1.000 |
| predicted_RBI | 0.980 | 2.000 | 1.000 | Hitting_RBI | 0.737 | 1.000 | 1.263 | 1.000 |
| predicted_SB | - | 0.000 | 0.000 | BaseRunning_SB | 0.129 | 0.000 | -0.129 | 0.000 |
| predicted_SLG | 0.545 | 1.333 | 0.500 | Hitting_SLG | 0.466 | 0.250 | 0.868 | 1.083 |
| predicted_SO | 1.122 | 1.000 | 1.000 | Hitting_SO | 1.081 | 0.000 | -0.081 | 1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 10 |
| Boosted Metrics | 5 |
| Deboosted Metrics | 5 |
| Better Metrics | 6 |
| Worse Metrics | 4 |
| Biggest Boost | predicted_RBI: 0.9800 -> 2.0000 (boost 1.0200, better) |
| Biggest Deboost | predicted_AB: 4.6600 -> 3.0000 (deboost -1.6600, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 4 | 1 | 3 | 1 | 3 | predicted_AVG: 0.2720 -> 0.2845 (boost 0.0125, better) | predicted_AB: 4.6600 -> 4.3723 (deboost -0.2877, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 1 | 0 | 1 | 0 | 1 | - | predicted_SLG: 0.5436 -> 0.5091 (deboost -0.0345, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 2 | 5 | 3 | 4 | predicted_BB: 0.5315 -> 1.0000 (boost 0.4685, better) | predicted_AB: 4.3723 -> 4.0000 (deboost -0.3723, worse) | AB rounded to 4 (raw=4.66), rates preserved: AVG=0.257 HR/AB=0.046 |
| 6 | bvp_blend | 1 | 0 | 1 | 0 | 1 | - | predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Sample-size BvP blend (BvP AB=7.0, weight=0.076, BvP AVG=0.143) |
| 7 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.7290 -> 1.0000 (boost 0.2710, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 4 | 2 | 3 | 3 | predicted_BB: 0.0000 -> 0.6160 (boost 0.6160, better) | predicted_RBI: 1.0000 -> 0.6447 (deboost -0.3553, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 9 | lineup_integer_allocation | 6 | 4 | 2 | 5 | 1 | predicted_2B: 0.1740 -> 1.0000 (boost 0.8260, better) | predicted_SO: 1.1406 -> 1.0000 (deboost -0.1406, better) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 10 | embedded_savant_player_context | 5 | 0 | 5 | 0 | 5 | - | predicted_2B: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | simulation_box_score_reference | 4 | 3 | 1 | 3 | 1 | predicted_BB: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_AB: 4.0000 -> 3.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 12 | current_json_final | 3 | 3 | 0 | 3 | 0 | predicted_SLG: 0.3910 -> 0.5091 (boost 0.1181, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "668930",
"player_name": "Brice Turang",
"position": "2B",
"team": "MIL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.252,
"predicted_3B": 0.02,
"predicted_AB": 4.66,
"predicted_AVG": 0.272,
"predicted_BB": 0.585,
"predicted_H": 1.26,
"predicted_HR": 0.22,
"predicted_OBP": 0.365,
"predicted_R": 0.694,
"predicted_RBI": 0.98,
"predicted_SLG": 0.545,
"predicted_SO": 1.122
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.29,
"predicted_3B": 0.0169,
"predicted_AB": 4.3723,
"predicted_AVG": 0.2845,
"predicted_BB": 0.5255,
"predicted_H": 1.2351,
"predicted_HBP": 0.006,
"predicted_HR": 0.2113,
"predicted_OBP": 0.368,
"predicted_R": 0.7076,
"predicted_RBI": 0.914,
"predicted_SLG": 0.5436,
"predicted_SO": 1.1456
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.252,
"after": 0.29,
"delta": 0.038,
"percent_delta": 0.1508,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.02,
"after": 0.0169,
"delta": -0.0031,
"percent_delta": -0.155,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.66,
"after": 4.3723,
"delta": -0.2877,
"percent_delta": -0.0617,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.272,
"after": 0.2845,
"delta": 0.0125,
"percent_delta": 0.046,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.585,
"after": 0.5255,
"delta": -0.0595,
"percent_delta": -0.1017,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.26,
"after": 1.2351,
"delta": -0.0249,
"percent_delta": -0.0198,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.22,
"after": 0.2113,
"delta": -0.0087,
"percent_delta": -0.0395,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.365,
"after": 0.368,
"delta": 0.003,
"percent_delta": 0.0082,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.694,
"after": 0.7076,
"delta": 0.0136,
"percent_delta": 0.0196,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.98,
"after": 0.914,
"delta": -0.066,
"percent_delta": -0.0673,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.545,
"after": 0.5436,
"delta": -0.0014,
"percent_delta": -0.0026,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.122,
"after": 1.1456,
"delta": 0.0236,
"percent_delta": 0.021,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 1,
"deboosted_metrics": 3,
"better_metrics": 1,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_AVG",
"before": 0.272,
"after": 0.2845,
"delta": 0.0125,
"percent_delta": 0.046,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.66,
"after": 4.3723,
"delta": -0.2877,
"percent_delta": -0.0617,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 147
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.29,
"predicted_3B": 0.0169,
"predicted_AB": 4.3723,
"predicted_AVG": 0.2872,
"predicted_BB": 0.5315,
"predicted_H": 1.2556,
"predicted_HBP": 0.006,
"predicted_HR": 0.2155,
"predicted_OBP": 0.3644,
"predicted_R": 0.729,
"predicted_RBI": 0.9416,
"predicted_SLG": 0.5091,
"predicted_SO": 1.1324
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.29,
"after": 0.29,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0169,
"after": 0.0169,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.3723,
"after": 4.3723,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2845,
"after": 0.2872,
"delta": 0.0027,
"percent_delta": 0.0095,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.5255,
"after": 0.5315,
"delta": 0.006,
"percent_delta": 0.0114,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.2351,
"after": 1.2556,
"delta": 0.0205,
"percent_delta": 0.0166,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.006,
"after": 0.006,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.2113,
"after": 0.2155,
"delta": 0.0042,
"percent_delta": 0.0199,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.368,
"after": 0.3644,
"delta": -0.0036,
"percent_delta": -0.0098,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.7076,
"after": 0.729,
"delta": 0.0214,
"percent_delta": 0.0302,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.914,
"after": 0.9416,
"delta": 0.0276,
"percent_delta": 0.0302,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.5436,
"after": 0.5091,
"delta": -0.0345,
"percent_delta": -0.0635,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.1456,
"after": 1.1324,
"delta": -0.0132,
"percent_delta": -0.0115,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.5436,
"after": 0.5091,
"delta": -0.0345,
"percent_delta": -0.0635,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=4.66), rates preserved: AVG=0.257 HR/AB=0.046",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.29,
"after": 0.0,
"delta": -0.29,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0169,
"after": 0.0,
"delta": -0.0169,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.3723,
"after": 4.0,
"delta": -0.3723,
"percent_delta": -0.0851,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.5315,
"after": 1.0,
"delta": 0.4685,
"percent_delta": 0.8815,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.2556,
"after": 1.0,
"delta": -0.2556,
"percent_delta": -0.2036,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.006,
"after": 0.0,
"delta": -0.006,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.2155,
"after": 0.0,
"delta": -0.2155,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.9416,
"after": 1.0,
"delta": 0.0584,
"percent_delta": 0.062,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.1324,
"after": 1.0,
"delta": -0.1324,
"percent_delta": -0.1169,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 2,
"deboosted_metrics": 5,
"better_metrics": 3,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.5315,
"after": 1.0,
"delta": 0.4685,
"percent_delta": 0.8815,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.3723,
"after": 4.0,
"delta": -0.3723,
"percent_delta": -0.0851,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "bvp_blend",
"description": "Sample-size BvP blend (BvP AB=7.0, weight=0.076, BvP AVG=0.143)",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"model_expectation": 0.9243,
"bvp": 0.0757
},
"window_games": {}
},
{
"index": 7,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.729,
"after": 1.0,
"delta": 0.271,
"percent_delta": 0.3717,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.729,
"after": 1.0,
"delta": 0.271,
"percent_delta": 0.3717,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.174,
"predicted_3B": 0.0155,
"predicted_BB": 0.616,
"predicted_H": 0.9163,
"predicted_HR": 0.1167,
"predicted_RBI": 0.6447,
"predicted_SO": 1.1406
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.174,
"delta": 0.174,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0155,
"delta": 0.0155,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.616,
"delta": 0.616,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.9163,
"delta": -0.0837,
"percent_delta": -0.0837,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.1167,
"delta": 0.1167,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.6447,
"delta": -0.3553,
"percent_delta": -0.3553,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.1406,
"delta": 0.1406,
"percent_delta": 0.1406,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 3,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 0.616,
"delta": 0.616,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.6447,
"delta": -0.3553,
"percent_delta": -0.3553,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 1.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.174,
"after": 1.0,
"delta": 0.826,
"percent_delta": 4.7471,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0155,
"after": 0.0,
"delta": -0.0155,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.616,
"after": 1.0,
"delta": 0.384,
"percent_delta": 0.6234,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.9163,
"after": 1.0,
"delta": 0.0837,
"percent_delta": 0.0913,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.1167,
"after": 0.0,
"delta": -0.1167,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.6447,
"after": 1.0,
"delta": 0.3553,
"percent_delta": 0.5511,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.1406,
"after": 1.0,
"delta": -0.1406,
"percent_delta": -0.1233,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 5,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_2B",
"before": 0.174,
"after": 1.0,
"delta": 0.826,
"percent_delta": 4.7471,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.1406,
"after": 1.0,
"delta": -0.1406,
"percent_delta": -0.1233,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.244,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.355,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SLG": 0.391,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2872,
"after": 0.244,
"delta": -0.0432,
"percent_delta": -0.1504,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3644,
"after": 0.355,
"delta": -0.0094,
"percent_delta": -0.0258,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.5091,
"after": 0.391,
"delta": -0.1181,
"percent_delta": -0.232,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 0,
"deboosted_metrics": 5,
"better_metrics": 0,
"worse_metrics": 5,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_2B",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 1.0,
"predicted_R": 1.0,
"predicted_RBI": 2.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 3,
"deboosted_metrics": 1,
"better_metrics": 3,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.0,
"after": 3.0,
"delta": -1.0,
"percent_delta": -0.25,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 12,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.2872,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 1.0,
"predicted_OBP": 0.3644,
"predicted_R": 1.0,
"predicted_RBI": 2.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.5091,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.244,
"after": 0.2872,
"delta": 0.0432,
"percent_delta": 0.1769,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.355,
"after": 0.3644,
"delta": 0.0094,
"percent_delta": 0.0266,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.391,
"after": 0.5091,
"delta": 0.1181,
"percent_delta": 0.3021,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 3,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.391,
"after": 0.5091,
"delta": 0.1181,
"percent_delta": 0.3021,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.252,
"after": 0.0,
"delta": -0.252,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.02,
"after": 0.0,
"delta": -0.02,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.66,
"after": 3.0,
"delta": -1.66,
"percent_delta": -0.3562,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.272,
"after": 0.2872,
"delta": 0.0152,
"percent_delta": 0.0559,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.585,
"after": 1.0,
"delta": 0.415,
"percent_delta": 0.7094,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.26,
"after": 1.0,
"delta": -0.26,
"percent_delta": -0.2063,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.22,
"after": 1.0,
"delta": 0.78,
"percent_delta": 3.5455,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.365,
"after": 0.3644,
"delta": -0.0006,
"percent_delta": -0.0016,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.694,
"after": 1.0,
"delta": 0.306,
"percent_delta": 0.4409,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.98,
"after": 2.0,
"delta": 1.02,
"percent_delta": 1.0408,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.545,
"after": 0.5091,
"delta": -0.0359,
"percent_delta": -0.0659,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.122,
"after": 1.0,
"delta": -0.122,
"percent_delta": -0.1087,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 10,
"boosted_metrics": 5,
"deboosted_metrics": 5,
"better_metrics": 6,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.98,
"after": 2.0,
"delta": 1.02,
"percent_delta": 1.0408,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.66,
"after": 3.0,
"delta": -1.66,
"percent_delta": -0.3562,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.252 | - |
| predicted_3B | 0.020 | - |
| predicted_AB | 4.660 | - |
| predicted_AVG | 0.272 | - |
| predicted_BB | 0.585 | - |
| predicted_H | 1.260 | - |
| predicted_HR | 0.220 | - |
| predicted_OBP | 0.365 | - |
| predicted_R | 0.694 | - |
| predicted_RBI | 0.980 | - |
| predicted_SLG | 0.545 | - |
| predicted_SO | 1.122 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.290 | 0.038 |
| predicted_3B | 0.017 | -0.003 |
| predicted_AB | 4.372 | -0.288 |
| predicted_AVG | 0.284 | 0.012 |
| predicted_BB | 0.525 | -0.059 |
| predicted_H | 1.235 | -0.025 |
| predicted_HBP | 0.006 | - |
| predicted_HR | 0.211 | -0.009 |
| predicted_OBP | 0.368 | 0.003 |
| predicted_R | 0.708 | 0.014 |
| predicted_RBI | 0.914 | -0.066 |
| predicted_SLG | 0.544 | -0.001 |
| predicted_SO | 1.146 | 0.024 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.290 | 0.000 |
| predicted_3B | 0.017 | 0.000 |
| predicted_AB | 4.372 | 0.000 |
| predicted_AVG | 0.287 | 0.003 |
| predicted_BB | 0.531 | 0.006 |
| predicted_H | 1.256 | 0.020 |
| predicted_HBP | 0.006 | 0.000 |
| predicted_HR | 0.215 | 0.004 |
| predicted_OBP | 0.364 | -0.004 |
| predicted_R | 0.729 | 0.021 |
| predicted_RBI | 0.942 | 0.028 |
| predicted_SLG | 0.509 | -0.034 |
| predicted_SO | 1.132 | -0.013 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=4.66), rates preserved: AVG=0.257 HR/AB=0.046
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 1.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 1.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=7.0, weight=0.076, BvP AVG=0.143)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -1.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 1.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 1.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.174 | 0.174 |
| 3B | 0.015 | 0.015 |
| BB | 0.616 | 0.616 |
| H | 0.916 | -0.084 |
| HR | 0.117 | 0.117 |
| RBI | 0.645 | -0.355 |
| SO | 1.141 | 0.141 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 1.000 | 0.826 |
| 3B | 0.000 | -0.015 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 0.384 |
| H | 1.000 | 0.084 |
| HR | 0.000 | -0.117 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.355 |
| SO | 1.000 | -0.141 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.290 |
| predicted_3B | 0.000 | -0.017 |
| predicted_AB | 4.000 | -0.372 |
| predicted_AVG | 0.244 | -0.043 |
| predicted_BB | 0.000 | -0.531 |
| predicted_H | 1.000 | -0.256 |
| predicted_HR | 0.000 | -0.215 |
| predicted_OBP | 0.355 | -0.009 |
| predicted_R | 1.000 | 0.271 |
| predicted_RBI | 1.000 | 0.058 |
| predicted_SLG | 0.391 | -0.118 |
| predicted_SO | 1.000 | -0.132 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -1.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | -1.000 |
| BB | 1.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 1.000 | 1.000 |
| PA | 4.000 | - |
| R | 1.000 | 0.000 |
| RBI | 2.000 | 1.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 21.000 | 8.000 | 3.000 | 0.000 | 2.000 | 7.000 | 5.000 | 1.000 | 5.000 | 0.3810 | 0.4091 | 0.8095 | 0.3810 | 0.0952 | 0.3333 | 0.0476 | 0.2381 |
| last_10 | 0.20 | 10 | - | 42.000 | 13.000 | 4.000 | 0.000 | 2.000 | 8.000 | 6.000 | 3.000 | 16.000 | 0.3095 | 0.3556 | 0.5476 | 0.3095 | 0.0476 | 0.1905 | 0.0714 | 0.3810 |
| season | 0.60 | 147 | - | 571.000 | 157.000 | 37.000 | 3.000 | 21.000 | 101.000 | 102.000 | 86.000 | 165.000 | 0.2750 | 0.3697 | 0.4606 | 0.2750 | 0.0368 | 0.1769 | 0.1506 | 0.2890 |
| Metric | Value |
|---|---|
| predicted_2B | 0.3390 |
| predicted_3B | 0.0130 |
| predicted_AB | 4.0020 |
| predicted_AVG | 0.3007 |
| predicted_BB | 0.4490 |
| predicted_H | 1.2030 |
| predicted_HBP | 0.0060 |
| predicted_HR | 0.2000 |
| predicted_OBP | 0.3718 |
| predicted_R | 0.7250 |
| predicted_RBI | 0.8290 |
| predicted_SLG | 0.5417 |
| predicted_SO | 1.1760 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.2520 | 0.3390 | 0.2900 | model_form_blend |
| predicted_3B | 0.0200 | 0.0130 | 0.0169 | model_form_blend |
| predicted_AB | 4.6600 | 4.0020 | 4.3723 | model_form_blend |
| predicted_AVG | 0.2720 | 0.3007 | 0.2845 | model_form_blend |
| predicted_BB | 0.5850 | 0.4490 | 0.5255 | model_form_blend |
| predicted_H | 1.2600 | 1.2030 | 1.2351 | model_form_blend |
| predicted_HBP | - | 0.0060 | 0.0060 | form_only |
| predicted_HR | 0.2200 | 0.2000 | 0.2113 | model_form_blend |
| predicted_OBP | 0.3650 | 0.3718 | 0.3680 | model_form_blend |
| predicted_R | 0.6940 | 0.7250 | 0.7076 | model_form_blend |
| predicted_RBI | 0.9800 | 0.8290 | 0.9140 | model_form_blend |
| predicted_SLG | 0.5450 | 0.5417 | 0.5436 | model_form_blend |
| predicted_SO | 1.1220 | 1.1760 | 1.1456 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 651 |
| Season rows before report date | 651 |
| Report year | 2026 |
| Profile rows used | 147 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 3 |
| H | 1 |
| 2B | 0 |
| 3B | 0 |
| HR | 1 |
| R | 1 |
| RBI | 2 |
| BB | 1 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.25 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 1 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 1 |
| Hitting_battingOrder | 4 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | 2B |
| gameID | 20260927_STL@MIL |
| game_type | full |
| mlbID | 668930 |
| playerID | 668930 |
| playerName | Brice Turang |
| pos | 2B |
| started | True |
| startingPosition | 2B |
| team | MIL |
| teamID | 16 |
| game_date | 2026-09-27 |
| sl_k_percent | 25.1 |
| sl_bb_percent | 13.2 |
| sl_woba | 0.358 |
| sl_xwoba | 0.344 |
| sl_xba | 0.255 |
| sl_xslg | 0.428 |
| sl_sweet_spot_percent | 38.5 |
| sl_barrel_batted_rate | 7.7 |
| sl_hard_hit_percent | 41.6 |
| sl_exit_velocity_avg | 90.3 |
| sl_launch_angle_avg | 8.8 |
| sl_whiff_percent | 23.1 |
| sl_swing_percent | 43.2 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.112 | 0.000 | 0.000 | Hitting_2B | 0.118 | 0.000 | -0.118 | 0.000 |
| predicted_3B | 0.034 | 1.000 | 0.000 | Hitting_3B | 0.034 | 0.000 | 0.966 | 1.000 |
| predicted_AB | 3.129 | 2.000 | 3.000 | Hitting_AB | 3.254 | 3.000 | -1.254 | -1.000 |
| predicted_AVG | 0.267 | 0.500 | 0.333 | Hitting_AVG | 0.280 | 0.667 | 0.220 | -0.167 |
| predicted_BB | 0.293 | 1.000 | 0.000 | Hitting_BB | 0.310 | 1.000 | 0.690 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.037 | 0.000 | -0.037 | 0.000 |
| predicted_H | 0.836 | 1.000 | 1.000 | Hitting_H | 0.911 | 2.000 | 0.089 | -1.000 |
| predicted_HR | 0.078 | 0.000 | 0.000 | Hitting_HR | 0.099 | 0.000 | -0.099 | 0.000 |
| predicted_OBP | 0.330 | 0.667 | 0.333 | Hitting_OBP | 0.338 | 0.750 | 0.328 | -0.083 |
| predicted_R | 0.405 | 1.000 | 0.000 | Hitting_R | 0.453 | 0.000 | 0.547 | 1.000 |
| predicted_RBI | 0.397 | 0.000 | 0.000 | Hitting_RBI | 0.421 | 0.000 | -0.421 | 0.000 |
| predicted_SLG | 0.399 | 1.500 | 0.333 | Hitting_SLG | 0.428 | 0.667 | 1.072 | 0.833 |
| predicted_SO | 0.707 | 0.000 | 1.000 | Hitting_SO | 0.692 | 0.000 | -0.692 | 0.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 12 |
| Boosted Metrics | 7 |
| Deboosted Metrics | 5 |
| Better Metrics | 8 |
| Worse Metrics | 4 |
| Biggest Boost | predicted_3B: 0.0340 -> 1.0000 (boost 0.9660, better) |
| Biggest Deboost | predicted_AB: 3.1290 -> 2.0000 (deboost -1.1290, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 3 | 3 | 0 | 2 | 1 | predicted_SO: 0.7070 -> 0.8376 (boost 0.1306, worse) | - | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 2 | 2 | 0 | 2 | 0 | predicted_SLG: 0.4055 -> 0.4119 (boost 0.0064, better) | - | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 8 | 2 | 6 | 1 | 7 | predicted_SO: 0.8280 -> 1.0000 (boost 0.1720, worse) | predicted_RBI: 0.4050 -> 0.0000 (deboost -0.4050, worse) | AB rounded to 3 (raw=3.23), rates preserved: AVG=0.264 HR/AB=0.024 |
| 6 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.4199 -> 0.0000 (deboost -0.4199, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 4 | 2 | 5 | 1 | predicted_BB: 0.0000 -> 0.4449 (boost 0.4449, better) | predicted_SO: 1.0000 -> 0.7966 (deboost -0.2034, better) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 6 | 2 | 4 | 1 | 5 | predicted_SO: 0.7966 -> 1.0000 (boost 0.2034, worse) | predicted_BB: 0.4449 -> 0.0000 (deboost -0.4449, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 2 | 0 | 2 | 0 | 2 | - | predicted_AVG: 0.2767 -> 0.2440 (deboost -0.0327, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 5 | 3 | 2 | 4 | 1 | predicted_3B: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_AB: 3.0000 -> 2.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 2 | 2 | 0 | 2 | 0 | predicted_AVG: 0.2440 -> 0.2767 (boost 0.0327, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "687401",
"player_name": "Joey Ortiz",
"position": "3B",
"team": "MIL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.112,
"predicted_3B": 0.034,
"predicted_AB": 3.129,
"predicted_AVG": 0.267,
"predicted_BB": 0.293,
"predicted_H": 0.836,
"predicted_HR": 0.078,
"predicted_OBP": 0.33,
"predicted_R": 0.405,
"predicted_RBI": 0.397,
"predicted_SLG": 0.399,
"predicted_SO": 0.707
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1047,
"predicted_3B": 0.0508,
"predicted_AB": 3.2326,
"predicted_AVG": 0.2719,
"predicted_BB": 0.2866,
"predicted_H": 0.8798,
"predicted_HBP": 0.002,
"predicted_HR": 0.0754,
"predicted_OBP": 0.3307,
"predicted_R": 0.4076,
"predicted_RBI": 0.3931,
"predicted_SLG": 0.4055,
"predicted_SO": 0.8376
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.112,
"after": 0.1047,
"delta": -0.0073,
"percent_delta": -0.0652,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.034,
"after": 0.0508,
"delta": 0.0168,
"percent_delta": 0.4941,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.129,
"after": 3.2326,
"delta": 0.1036,
"percent_delta": 0.0331,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.267,
"after": 0.2719,
"delta": 0.0049,
"percent_delta": 0.0184,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.293,
"after": 0.2866,
"delta": -0.0064,
"percent_delta": -0.0218,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.836,
"after": 0.8798,
"delta": 0.0438,
"percent_delta": 0.0524,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.078,
"after": 0.0754,
"delta": -0.0026,
"percent_delta": -0.0333,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.33,
"after": 0.3307,
"delta": 0.0007,
"percent_delta": 0.0021,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.405,
"after": 0.4076,
"delta": 0.0026,
"percent_delta": 0.0064,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.397,
"after": 0.3931,
"delta": -0.0039,
"percent_delta": -0.0098,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.399,
"after": 0.4055,
"delta": 0.0065,
"percent_delta": 0.0163,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.707,
"after": 0.8376,
"delta": 0.1306,
"percent_delta": 0.1847,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 3,
"deboosted_metrics": 0,
"better_metrics": 2,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.707,
"after": 0.8376,
"delta": 0.1306,
"percent_delta": 0.1847,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": null
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 116
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1047,
"predicted_3B": 0.0508,
"predicted_AB": 3.2326,
"predicted_AVG": 0.2767,
"predicted_BB": 0.2899,
"predicted_H": 0.8944,
"predicted_HBP": 0.002,
"predicted_HR": 0.0769,
"predicted_OBP": 0.3362,
"predicted_R": 0.4199,
"predicted_RBI": 0.405,
"predicted_SLG": 0.4119,
"predicted_SO": 0.828
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1047,
"after": 0.1047,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0508,
"after": 0.0508,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.2326,
"after": 3.2326,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2719,
"after": 0.2767,
"delta": 0.0048,
"percent_delta": 0.0177,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.2866,
"after": 0.2899,
"delta": 0.0033,
"percent_delta": 0.0115,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.8798,
"after": 0.8944,
"delta": 0.0146,
"percent_delta": 0.0166,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.002,
"after": 0.002,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0754,
"after": 0.0769,
"delta": 0.0015,
"percent_delta": 0.0199,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3307,
"after": 0.3362,
"delta": 0.0055,
"percent_delta": 0.0166,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.4076,
"after": 0.4199,
"delta": 0.0123,
"percent_delta": 0.0302,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.3931,
"after": 0.405,
"delta": 0.0119,
"percent_delta": 0.0303,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4055,
"after": 0.4119,
"delta": 0.0064,
"percent_delta": 0.0158,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.8376,
"after": 0.828,
"delta": -0.0096,
"percent_delta": -0.0115,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.4055,
"after": 0.4119,
"delta": 0.0064,
"percent_delta": 0.0158,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 3 (raw=3.23), rates preserved: AVG=0.264 HR/AB=0.024",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1047,
"after": 0.0,
"delta": -0.1047,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0508,
"after": 0.0,
"delta": -0.0508,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AB",
"before": 3.2326,
"after": 3.0,
"delta": -0.2326,
"percent_delta": -0.072,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.2899,
"after": 0.0,
"delta": -0.2899,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8944,
"after": 1.0,
"delta": 0.1056,
"percent_delta": 0.1181,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.002,
"after": 0.0,
"delta": -0.002,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0769,
"after": 0.0,
"delta": -0.0769,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.405,
"after": 0.0,
"delta": -0.405,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.828,
"after": 1.0,
"delta": 0.172,
"percent_delta": 0.2077,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 8,
"boosted_metrics": 2,
"deboosted_metrics": 6,
"better_metrics": 1,
"worse_metrics": 7,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.828,
"after": 1.0,
"delta": 0.172,
"percent_delta": 0.2077,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.405,
"after": 0.0,
"delta": -0.405,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.4199,
"after": 0.0,
"delta": -0.4199,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_R",
"before": 0.4199,
"after": 0.0,
"delta": -0.4199,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1508,
"predicted_3B": 0.0179,
"predicted_BB": 0.4449,
"predicted_H": 0.8264,
"predicted_HR": 0.0919,
"predicted_RBI": 0.4346,
"predicted_SO": 0.7966
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1508,
"delta": 0.1508,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0179,
"delta": 0.0179,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.4449,
"delta": 0.4449,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.8264,
"delta": -0.1736,
"percent_delta": -0.1736,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0919,
"delta": 0.0919,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.4346,
"delta": 0.4346,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.7966,
"delta": -0.2034,
"percent_delta": -0.2034,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 5,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 0.4449,
"delta": 0.4449,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 0.7966,
"delta": -0.2034,
"percent_delta": -0.2034,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1508,
"after": 0.0,
"delta": -0.1508,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0179,
"after": 0.0,
"delta": -0.0179,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.4449,
"after": 0.0,
"delta": -0.4449,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8264,
"after": 1.0,
"delta": 0.1736,
"percent_delta": 0.2101,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0919,
"after": 0.0,
"delta": -0.0919,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.4346,
"after": 0.0,
"delta": -0.4346,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.7966,
"after": 1.0,
"delta": 0.2034,
"percent_delta": 0.2553,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 2,
"deboosted_metrics": 4,
"better_metrics": 1,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.7966,
"after": 1.0,
"delta": 0.2034,
"percent_delta": 0.2553,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.4449,
"after": 0.0,
"delta": -0.4449,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.244,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.336,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.38,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2767,
"after": 0.244,
"delta": -0.0327,
"percent_delta": -0.1182,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3362,
"after": 0.336,
"delta": -0.0002,
"percent_delta": -0.0006,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.4119,
"after": 0.38,
"delta": -0.0319,
"percent_delta": -0.0774,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 0,
"deboosted_metrics": 2,
"better_metrics": 0,
"worse_metrics": 2,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_AVG",
"before": 0.2767,
"after": 0.244,
"delta": -0.0327,
"percent_delta": -0.1182,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 1.0,
"predicted_AB": 2.0,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 3,
"deboosted_metrics": 2,
"better_metrics": 4,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_3B",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 3.0,
"after": 2.0,
"delta": -1.0,
"percent_delta": -0.3333,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 1.0,
"predicted_AB": 2.0,
"predicted_AVG": 0.2767,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3362,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.4119,
"predicted_SO": 0.0,
"predicted_TB": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.244,
"after": 0.2767,
"delta": 0.0327,
"percent_delta": 0.1339,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.336,
"after": 0.3362,
"delta": 0.0002,
"percent_delta": 0.0006,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.38,
"after": 0.4119,
"delta": 0.0319,
"percent_delta": 0.0839,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_AVG",
"before": 0.244,
"after": 0.2767,
"delta": 0.0327,
"percent_delta": 0.1339,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.112,
"after": 0.0,
"delta": -0.112,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.034,
"after": 1.0,
"delta": 0.966,
"percent_delta": 28.4118,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AB",
"before": 3.129,
"after": 2.0,
"delta": -1.129,
"percent_delta": -0.3608,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.267,
"after": 0.2767,
"delta": 0.0097,
"percent_delta": 0.0363,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.293,
"after": 1.0,
"delta": 0.707,
"percent_delta": 2.413,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.836,
"after": 1.0,
"delta": 0.164,
"percent_delta": 0.1962,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.078,
"after": 0.0,
"delta": -0.078,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.33,
"after": 0.3362,
"delta": 0.0062,
"percent_delta": 0.0188,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.405,
"after": 1.0,
"delta": 0.595,
"percent_delta": 1.4691,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.397,
"after": 0.0,
"delta": -0.397,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.399,
"after": 0.4119,
"delta": 0.0129,
"percent_delta": 0.0323,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.707,
"after": 0.0,
"delta": -0.707,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 12,
"boosted_metrics": 7,
"deboosted_metrics": 5,
"better_metrics": 8,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_3B",
"before": 0.034,
"after": 1.0,
"delta": 0.966,
"percent_delta": 28.4118,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_AB",
"before": 3.129,
"after": 2.0,
"delta": -1.129,
"percent_delta": -0.3608,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.112 | - |
| predicted_3B | 0.034 | - |
| predicted_AB | 3.129 | - |
| predicted_AVG | 0.267 | - |
| predicted_BB | 0.293 | - |
| predicted_H | 0.836 | - |
| predicted_HR | 0.078 | - |
| predicted_OBP | 0.330 | - |
| predicted_R | 0.405 | - |
| predicted_RBI | 0.397 | - |
| predicted_SLG | 0.399 | - |
| predicted_SO | 0.707 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.105 | -0.007 |
| predicted_3B | 0.051 | 0.017 |
| predicted_AB | 3.233 | 0.104 |
| predicted_AVG | 0.272 | 0.005 |
| predicted_BB | 0.287 | -0.006 |
| predicted_H | 0.880 | 0.044 |
| predicted_HBP | 0.002 | - |
| predicted_HR | 0.075 | -0.003 |
| predicted_OBP | 0.331 | 0.001 |
| predicted_R | 0.408 | 0.003 |
| predicted_RBI | 0.393 | -0.004 |
| predicted_SLG | 0.406 | 0.007 |
| predicted_SO | 0.838 | 0.131 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.105 | 0.000 |
| predicted_3B | 0.051 | 0.000 |
| predicted_AB | 3.233 | 0.000 |
| predicted_AVG | 0.277 | 0.005 |
| predicted_BB | 0.290 | 0.003 |
| predicted_H | 0.894 | 0.015 |
| predicted_HBP | 0.002 | 0.000 |
| predicted_HR | 0.077 | 0.002 |
| predicted_OBP | 0.336 | 0.006 |
| predicted_R | 0.420 | 0.012 |
| predicted_RBI | 0.405 | 0.012 |
| predicted_SLG | 0.412 | 0.006 |
| predicted_SO | 0.828 | -0.010 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=3.23), rates preserved: AVG=0.264 HR/AB=0.024
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.151 | 0.151 |
| 3B | 0.018 | 0.018 |
| BB | 0.445 | 0.445 |
| H | 0.826 | -0.174 |
| HR | 0.092 | 0.092 |
| RBI | 0.435 | 0.435 |
| SO | 0.797 | -0.203 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.151 |
| 3B | 0.000 | -0.018 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | -0.445 |
| H | 1.000 | 0.174 |
| HR | 0.000 | -0.092 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -0.435 |
| SO | 1.000 | 0.203 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.105 |
| predicted_3B | 0.000 | -0.051 |
| predicted_AB | 3.000 | -0.233 |
| predicted_AVG | 0.244 | -0.033 |
| predicted_BB | 0.000 | -0.290 |
| predicted_H | 1.000 | 0.106 |
| predicted_HR | 0.000 | -0.077 |
| predicted_OBP | 0.336 | -0.000 |
| predicted_R | 0.000 | -0.420 |
| predicted_RBI | 0.000 | -0.405 |
| predicted_SLG | 0.380 | -0.032 |
| predicted_SO | 1.000 | 0.172 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 1.000 | 1.000 |
| AB | 2.000 | -1.000 |
| BB | 1.000 | 1.000 |
| CS | 0.000 | 0.000 |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 3.000 | - |
| R | 1.000 | 1.000 |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 18.000 | 5.000 | 0.000 | 1.000 | 0.000 | 1.000 | 1.000 | 1.000 | 9.000 | 0.2778 | 0.3158 | 0.3889 | 0.2778 | 0.0000 | 0.0556 | 0.0556 | 0.5000 |
| last_10 | 0.20 | 10 | - | 37.000 | 12.000 | 1.000 | 1.000 | 1.000 | 5.000 | 6.000 | 3.000 | 13.000 | 0.3243 | 0.3750 | 0.4865 | 0.3243 | 0.0270 | 0.1351 | 0.0811 | 0.3513 |
| season | 0.60 | 116 | - | 363.000 | 97.000 | 13.000 | 4.000 | 9.000 | 46.000 | 47.000 | 34.000 | 82.000 | 0.2672 | 0.3259 | 0.3994 | 0.2672 | 0.0248 | 0.1267 | 0.0937 | 0.2259 |
| Metric | Value |
|---|---|
| predicted_2B | 0.0950 |
| predicted_3B | 0.0730 |
| predicted_AB | 3.3700 |
| predicted_AVG | 0.2785 |
| predicted_BB | 0.2780 |
| predicted_H | 0.9380 |
| predicted_HBP | 0.0020 |
| predicted_HR | 0.0720 |
| predicted_OBP | 0.3317 |
| predicted_R | 0.4110 |
| predicted_RBI | 0.3880 |
| predicted_SLG | 0.4142 |
| predicted_SO | 1.0110 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1120 | 0.0950 | 0.1047 | model_form_blend |
| predicted_3B | 0.0340 | 0.0730 | 0.0508 | model_form_blend |
| predicted_AB | 3.1290 | 3.3700 | 3.2326 | model_form_blend |
| predicted_AVG | 0.2670 | 0.2785 | 0.2719 | model_form_blend |
| predicted_BB | 0.2930 | 0.2780 | 0.2866 | model_form_blend |
| predicted_H | 0.8360 | 0.9380 | 0.8798 | model_form_blend |
| predicted_HBP | - | 0.0020 | 0.0020 | form_only |
| predicted_HR | 0.0780 | 0.0720 | 0.0754 | model_form_blend |
| predicted_OBP | 0.3300 | 0.3317 | 0.3307 | model_form_blend |
| predicted_R | 0.4050 | 0.4110 | 0.4076 | model_form_blend |
| predicted_RBI | 0.3970 | 0.3880 | 0.3931 | model_form_blend |
| predicted_SLG | 0.3990 | 0.4142 | 0.4055 | model_form_blend |
| predicted_SO | 0.7070 | 1.0110 | 0.8376 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 406 |
| Season rows before report date | 406 |
| Report year | 2026 |
| Profile rows used | 116 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 3 |
| AB | 2 |
| H | 1 |
| 2B | 0 |
| 3B | 1 |
| HR | 0 |
| R | 1 |
| RBI | 0 |
| BB | 1 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 3 |
| Hitting_AVG | 0.667 |
| Hitting_BB | 1 |
| Hitting_GIDP | 0 |
| Hitting_H | 2 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 2 |
| Hitting_battingOrder | 6 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | 3B |
| gameID | 20260925_STL@MIL |
| game_type | full |
| mlbID | 687401 |
| playerID | 687401 |
| playerName | Joey Ortiz |
| pos | SS |
| started | True |
| startingPosition | 3B |
| team | MIL |
| teamID | 16 |
| game_date | 2026-09-25 |
| sl_k_percent | 19.8 |
| sl_bb_percent | 8.4 |
| sl_woba | 0.321 |
| sl_xwoba | 0.297 |
| sl_xba | 0.243 |
| sl_xslg | 0.346 |
| sl_sweet_spot_percent | 29.2 |
| sl_barrel_batted_rate | 4.0 |
| sl_hard_hit_percent | 37.6 |
| sl_exit_velocity_avg | 89.2 |
| sl_launch_angle_avg | 6.4 |
| sl_whiff_percent | 19.9 |
| sl_swing_percent | 44.8 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.086 | 0.000 | 0.000 | Hitting_2B | 0.105 | 0.000 | -0.105 | 0.000 |
| predicted_3B | 0.029 | 0.000 | 0.000 | Hitting_3B | 0.056 | 0.000 | -0.056 | 0.000 |
| predicted_AB | 3.210 | 3.000 | 3.000 | Hitting_AB | 3.310 | 4.000 | -0.310 | -1.000 |
| predicted_AVG | 0.274 | 0.667 | 0.333 | Hitting_AVG | 0.287 | 0.250 | 0.379 | 0.417 |
| predicted_BB | 0.343 | 1.000 | 1.000 | Hitting_BB | 0.379 | 0.000 | 0.621 | 1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.024 | 0.000 | -0.024 | 0.000 |
| predicted_H | 0.880 | 2.000 | 1.000 | Hitting_H | 0.952 | 1.000 | 1.048 | 1.000 |
| predicted_HR | 0.030 | 1.000 | 0.000 | Hitting_HR | 0.048 | 0.000 | 0.952 | 1.000 |
| predicted_OBP | 0.339 | 0.750 | 0.500 | Hitting_OBP | 0.357 | 0.250 | 0.393 | 0.500 |
| predicted_R | 0.429 | 1.000 | 0.000 | Hitting_R | 0.540 | 0.000 | 0.460 | 1.000 |
| predicted_RBI | 0.390 | 1.000 | 0.000 | Hitting_RBI | 0.560 | 0.000 | 0.440 | 1.000 |
| predicted_SLG | 0.355 | 1.667 | 0.333 | Hitting_SLG | 0.397 | 0.250 | 1.270 | 1.417 |
| predicted_SO | 0.657 | 0.000 | 1.000 | Hitting_SO | 0.645 | 2.000 | -0.645 | -2.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 10 |
| Boosted Metrics | 7 |
| Deboosted Metrics | 3 |
| Better Metrics | 8 |
| Worse Metrics | 2 |
| Biggest Boost | predicted_H: 0.8800 -> 2.0000 (boost 1.1200, better) |
| Biggest Deboost | predicted_SO: 0.6570 -> 0.0000 (deboost -0.6570, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 1 | 1 | 0 | 1 | 0 | predicted_OBP: 0.3390 -> 0.3454 (boost 0.0064, better) | - | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 1 | 1 | 0 | 1 | 0 | predicted_OBP: 0.3454 -> 0.3541 (boost 0.0087, better) | - | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 6 | 2 | 4 | 1 | 5 | predicted_SO: 0.6487 -> 1.0000 (boost 0.3513, worse) | predicted_RBI: 0.4104 -> 0.0000 (deboost -0.4104, worse) | AB rounded to 3 (raw=3.21), rates preserved: AVG=0.268 HR/AB=0.010 |
| 6 | consistency_constraints | 1 | 0 | 1 | 0 | 1 | - | predicted_R: 0.3915 -> 0.0000 (deboost -0.3915, worse) | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 4 | 2 | 5 | 1 | predicted_BB: 0.0000 -> 0.4945 (boost 0.4945, better) | predicted_SO: 1.0000 -> 0.7479 (deboost -0.2521, better) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 6 | 3 | 3 | 2 | 4 | predicted_BB: 0.4945 -> 1.0000 (boost 0.5055, better) | predicted_RBI: 0.4796 -> 0.0000 (deboost -0.4796, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 3 | 0 | 3 | 0 | 3 | - | predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 6 | 5 | 1 | 6 | 0 | predicted_BB: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_SO: 1.0000 -> 0.0000 (deboost -1.0000, better) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 2 | 2 | 0 | 2 | 0 | predicted_AVG: 0.2420 -> 0.2826 (boost 0.0406, better) | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "806198",
"player_name": "Cooper Pratt",
"position": "SS",
"team": "MIL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.086,
"predicted_3B": 0.029,
"predicted_AB": 3.21,
"predicted_AVG": 0.274,
"predicted_BB": 0.343,
"predicted_H": 0.88,
"predicted_HR": 0.03,
"predicted_OBP": 0.339,
"predicted_R": 0.429,
"predicted_RBI": 0.39,
"predicted_SLG": 0.355,
"predicted_SO": 0.657
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.0998,
"predicted_3B": 0.024,
"predicted_AB": 3.1957,
"predicted_AVG": 0.2779,
"predicted_BB": 0.3497,
"predicted_H": 0.8884,
"predicted_HBP": 0.018,
"predicted_HR": 0.0321,
"predicted_OBP": 0.3454,
"predicted_R": 0.38,
"predicted_RBI": 0.3984,
"predicted_SLG": 0.3588,
"predicted_SO": 0.6562
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.086,
"after": 0.0998,
"delta": 0.0138,
"percent_delta": 0.1605,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.029,
"after": 0.024,
"delta": -0.005,
"percent_delta": -0.1724,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.21,
"after": 3.1957,
"delta": -0.0143,
"percent_delta": -0.0045,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.274,
"after": 0.2779,
"delta": 0.0039,
"percent_delta": 0.0142,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.343,
"after": 0.3497,
"delta": 0.0067,
"percent_delta": 0.0195,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.88,
"after": 0.8884,
"delta": 0.0084,
"percent_delta": 0.0095,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.03,
"after": 0.0321,
"delta": 0.0021,
"percent_delta": 0.07,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.339,
"after": 0.3454,
"delta": 0.0064,
"percent_delta": 0.0189,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.429,
"after": 0.38,
"delta": -0.049,
"percent_delta": -0.1142,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.39,
"after": 0.3984,
"delta": 0.0084,
"percent_delta": 0.0215,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.355,
"after": 0.3588,
"delta": 0.0038,
"percent_delta": 0.0107,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.657,
"after": 0.6562,
"delta": -0.0008,
"percent_delta": -0.0012,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_OBP",
"before": 0.339,
"after": 0.3454,
"delta": 0.0064,
"percent_delta": 0.0189,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 70
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.0998,
"predicted_3B": 0.024,
"predicted_AB": 3.1957,
"predicted_AVG": 0.2826,
"predicted_BB": 0.3537,
"predicted_H": 0.9031,
"predicted_HBP": 0.018,
"predicted_HR": 0.0327,
"predicted_OBP": 0.3541,
"predicted_R": 0.3915,
"predicted_RBI": 0.4104,
"predicted_SLG": 0.3596,
"predicted_SO": 0.6487
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0998,
"after": 0.0998,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.024,
"after": 0.024,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.1957,
"after": 3.1957,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2779,
"after": 0.2826,
"delta": 0.0047,
"percent_delta": 0.0169,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.3497,
"after": 0.3537,
"delta": 0.004,
"percent_delta": 0.0114,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.8884,
"after": 0.9031,
"delta": 0.0147,
"percent_delta": 0.0165,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.018,
"after": 0.018,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0321,
"after": 0.0327,
"delta": 0.0006,
"percent_delta": 0.0187,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3454,
"after": 0.3541,
"delta": 0.0087,
"percent_delta": 0.0252,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.38,
"after": 0.3915,
"delta": 0.0115,
"percent_delta": 0.0303,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.3984,
"after": 0.4104,
"delta": 0.012,
"percent_delta": 0.0301,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3588,
"after": 0.3596,
"delta": 0.0008,
"percent_delta": 0.0022,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.6562,
"after": 0.6487,
"delta": -0.0075,
"percent_delta": -0.0114,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_OBP",
"before": 0.3454,
"after": 0.3541,
"delta": 0.0087,
"percent_delta": 0.0252,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 3 (raw=3.21), rates preserved: AVG=0.268 HR/AB=0.010",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0998,
"after": 0.0,
"delta": -0.0998,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.024,
"after": 0.0,
"delta": -0.024,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.1957,
"after": 3.0,
"delta": -0.1957,
"percent_delta": -0.0612,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.3537,
"after": 0.0,
"delta": -0.3537,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.9031,
"after": 1.0,
"delta": 0.0969,
"percent_delta": 0.1073,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.018,
"after": 0.0,
"delta": -0.018,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0327,
"after": 0.0,
"delta": -0.0327,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.4104,
"after": 0.0,
"delta": -0.4104,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.6487,
"after": 1.0,
"delta": 0.3513,
"percent_delta": 0.5415,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 2,
"deboosted_metrics": 4,
"better_metrics": 1,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_SO",
"before": 0.6487,
"after": 1.0,
"delta": 0.3513,
"percent_delta": 0.5415,
"direction": "boost",
"projection_effect": "worse",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.4104,
"after": 0.0,
"delta": -0.4104,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.3915,
"after": 0.0,
"delta": -0.3915,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_R",
"before": 0.3915,
"after": 0.0,
"delta": -0.3915,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1513,
"predicted_3B": 0.0151,
"predicted_BB": 0.4945,
"predicted_H": 0.8454,
"predicted_HR": 0.0785,
"predicted_RBI": 0.4796,
"predicted_SO": 0.7479
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1513,
"delta": 0.1513,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0151,
"delta": 0.0151,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.4945,
"delta": 0.4945,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.8454,
"delta": -0.1546,
"percent_delta": -0.1546,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0785,
"delta": 0.0785,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.4796,
"delta": 0.4796,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.7479,
"delta": -0.2521,
"percent_delta": -0.2521,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 5,
"worse_metrics": 1,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 0.4945,
"delta": 0.4945,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 0.7479,
"delta": -0.2521,
"percent_delta": -0.2521,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1513,
"after": 0.0,
"delta": -0.1513,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0151,
"after": 0.0,
"delta": -0.0151,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.4945,
"after": 1.0,
"delta": 0.5055,
"percent_delta": 1.0222,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8454,
"after": 1.0,
"delta": 0.1546,
"percent_delta": 0.1829,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0785,
"after": 0.0,
"delta": -0.0785,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.4796,
"after": 0.0,
"delta": -0.4796,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.7479,
"after": 1.0,
"delta": 0.2521,
"percent_delta": 0.3371,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 3,
"deboosted_metrics": 3,
"better_metrics": 2,
"worse_metrics": 4,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.4945,
"after": 1.0,
"delta": 0.5055,
"percent_delta": 1.0222,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.4796,
"after": 0.0,
"delta": -0.4796,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.242,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.341,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.361,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2826,
"after": 0.242,
"delta": -0.0406,
"percent_delta": -0.1437,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3541,
"after": 0.341,
"delta": -0.0131,
"percent_delta": -0.037,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3596,
"after": 0.361,
"delta": 0.0014,
"percent_delta": 0.0039,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 2.0,
"predicted_HBP": 0.0,
"predicted_HR": 1.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 2.0,
"delta": 1.0,
"percent_delta": 1.0,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 5,
"deboosted_metrics": 1,
"better_metrics": 6,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.2826,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 2.0,
"predicted_HBP": 0.0,
"predicted_HR": 1.0,
"predicted_OBP": 0.3541,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.3596,
"predicted_SO": 0.0,
"predicted_SS": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.242,
"after": 0.2826,
"delta": 0.0406,
"percent_delta": 0.1678,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"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_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.341,
"after": 0.3541,
"delta": 0.0131,
"percent_delta": 0.0384,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.361,
"after": 0.3596,
"delta": -0.0014,
"percent_delta": -0.0039,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_AVG",
"before": 0.242,
"after": 0.2826,
"delta": 0.0406,
"percent_delta": 0.1678,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.086,
"after": 0.0,
"delta": -0.086,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.029,
"after": 0.0,
"delta": -0.029,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.21,
"after": 3.0,
"delta": -0.21,
"percent_delta": -0.0654,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.274,
"after": 0.2826,
"delta": 0.0086,
"percent_delta": 0.0314,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.343,
"after": 1.0,
"delta": 0.657,
"percent_delta": 1.9155,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.88,
"after": 2.0,
"delta": 1.12,
"percent_delta": 1.2727,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.03,
"after": 1.0,
"delta": 0.97,
"percent_delta": 32.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.339,
"after": 0.3541,
"delta": 0.0151,
"percent_delta": 0.0445,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 0.429,
"after": 1.0,
"delta": 0.571,
"percent_delta": 1.331,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.39,
"after": 1.0,
"delta": 0.61,
"percent_delta": 1.5641,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.355,
"after": 0.3596,
"delta": 0.0046,
"percent_delta": 0.013,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.657,
"after": 0.0,
"delta": -0.657,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 10,
"boosted_metrics": 7,
"deboosted_metrics": 3,
"better_metrics": 8,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.88,
"after": 2.0,
"delta": 1.12,
"percent_delta": 1.2727,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_SO",
"before": 0.657,
"after": 0.0,
"delta": -0.657,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "better"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.086 | - |
| predicted_3B | 0.029 | - |
| predicted_AB | 3.210 | - |
| predicted_AVG | 0.274 | - |
| predicted_BB | 0.343 | - |
| predicted_H | 0.880 | - |
| predicted_HR | 0.030 | - |
| predicted_OBP | 0.339 | - |
| predicted_R | 0.429 | - |
| predicted_RBI | 0.390 | - |
| predicted_SLG | 0.355 | - |
| predicted_SO | 0.657 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.100 | 0.014 |
| predicted_3B | 0.024 | -0.005 |
| predicted_AB | 3.196 | -0.014 |
| predicted_AVG | 0.278 | 0.004 |
| predicted_BB | 0.350 | 0.007 |
| predicted_H | 0.888 | 0.008 |
| predicted_HBP | 0.018 | - |
| predicted_HR | 0.032 | 0.002 |
| predicted_OBP | 0.345 | 0.006 |
| predicted_R | 0.380 | -0.049 |
| predicted_RBI | 0.398 | 0.008 |
| predicted_SLG | 0.359 | 0.004 |
| predicted_SO | 0.656 | -0.001 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.100 | 0.000 |
| predicted_3B | 0.024 | 0.000 |
| predicted_AB | 3.196 | 0.000 |
| predicted_AVG | 0.283 | 0.005 |
| predicted_BB | 0.354 | 0.004 |
| predicted_H | 0.903 | 0.015 |
| predicted_HBP | 0.018 | 0.000 |
| predicted_HR | 0.033 | 0.001 |
| predicted_OBP | 0.354 | 0.009 |
| predicted_R | 0.392 | 0.012 |
| predicted_RBI | 0.410 | 0.012 |
| predicted_SLG | 0.360 | 0.001 |
| predicted_SO | 0.649 | -0.007 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=3.21), rates preserved: AVG=0.268 HR/AB=0.010
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 0.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.151 | 0.151 |
| 3B | 0.015 | 0.015 |
| BB | 0.494 | 0.494 |
| H | 0.845 | -0.155 |
| HR | 0.079 | 0.079 |
| RBI | 0.480 | 0.480 |
| SO | 0.748 | -0.252 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.151 |
| 3B | 0.000 | -0.015 |
| AB | 3.000 | 0.000 |
| BB | 1.000 | 0.506 |
| H | 1.000 | 0.155 |
| HR | 0.000 | -0.079 |
| R | 0.000 | 0.000 |
| RBI | 0.000 | -0.480 |
| SO | 1.000 | 0.252 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.100 |
| predicted_3B | 0.000 | -0.024 |
| predicted_AB | 3.000 | -0.196 |
| predicted_AVG | 0.242 | -0.041 |
| predicted_BB | 0.000 | -0.354 |
| predicted_H | 1.000 | 0.097 |
| predicted_HR | 0.000 | -0.033 |
| predicted_OBP | 0.341 | -0.013 |
| predicted_R | 0.000 | -0.392 |
| predicted_RBI | 0.000 | -0.410 |
| predicted_SLG | 0.361 | 0.001 |
| predicted_SO | 1.000 | 0.351 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 1.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 2.000 | 1.000 |
| HBP | 0.000 | 0.000 |
| HR | 1.000 | 1.000 |
| PA | 4.000 | - |
| R | 1.000 | 1.000 |
| RBI | 1.000 | 1.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 15.000 | 4.000 | 1.000 | 0.000 | 0.000 | 1.000 | 0.000 | 2.000 | 3.000 | 0.2667 | 0.3529 | 0.3333 | 0.2667 | 0.0000 | 0.0667 | 0.1333 | 0.2000 |
| last_10 | 0.20 | 10 | - | 30.000 | 10.000 | 1.000 | 0.000 | 0.000 | 4.000 | 2.000 | 4.000 | 6.000 | 0.3333 | 0.4118 | 0.3667 | 0.3333 | 0.0000 | 0.1333 | 0.1333 | 0.2000 |
| season | 0.60 | 70 | - | 222.000 | 62.000 | 6.000 | 2.000 | 3.000 | 33.000 | 30.000 | 24.000 | 46.000 | 0.2793 | 0.3451 | 0.3649 | 0.2793 | 0.0135 | 0.1487 | 0.1081 | 0.2072 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1190 |
| predicted_3B | 0.0170 |
| predicted_AB | 3.1760 |
| predicted_AVG | 0.2834 |
| predicted_BB | 0.3590 |
| predicted_H | 0.9000 |
| predicted_HBP | 0.0180 |
| predicted_HR | 0.0350 |
| predicted_OBP | 0.3543 |
| predicted_R | 0.3120 |
| predicted_RBI | 0.4100 |
| predicted_SLG | 0.3641 |
| predicted_SO | 0.6550 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.0860 | 0.1190 | 0.0998 | model_form_blend |
| predicted_3B | 0.0290 | 0.0170 | 0.0240 | model_form_blend |
| predicted_AB | 3.2100 | 3.1760 | 3.1957 | model_form_blend |
| predicted_AVG | 0.2740 | 0.2834 | 0.2779 | model_form_blend |
| predicted_BB | 0.3430 | 0.3590 | 0.3497 | model_form_blend |
| predicted_H | 0.8800 | 0.9000 | 0.8884 | model_form_blend |
| predicted_HBP | - | 0.0180 | 0.0180 | form_only |
| predicted_HR | 0.0300 | 0.0350 | 0.0321 | model_form_blend |
| predicted_OBP | 0.3390 | 0.3543 | 0.3454 | model_form_blend |
| predicted_R | 0.4290 | 0.3120 | 0.3800 | model_form_blend |
| predicted_RBI | 0.3900 | 0.4100 | 0.3984 | model_form_blend |
| predicted_SLG | 0.3550 | 0.3641 | 0.3588 | model_form_blend |
| predicted_SO | 0.6570 | 0.6550 | 0.6562 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 248 |
| Season rows before report date | 248 |
| Report year | 2026 |
| Profile rows used | 70 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 3 |
| H | 2 |
| 2B | 0 |
| 3B | 0 |
| HR | 1 |
| R | 1 |
| RBI | 1 |
| BB | 1 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 1 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.25 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 2 |
| Hitting_TB | 1 |
| Hitting_battingOrder | 7 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | SS |
| gameID | 20260927_STL@MIL |
| game_type | full |
| mlbID | 806198 |
| playerID | 806198 |
| playerName | Cooper Pratt |
| pos | SS |
| started | True |
| startingPosition | SS |
| team | MIL |
| teamID | 16 |
| game_date | 2026-09-27 |
| sl_k_percent | 18.0 |
| sl_bb_percent | 9.8 |
| sl_woba | 0.32 |
| sl_xwoba | 0.315 |
| sl_xba | 0.266 |
| sl_xslg | 0.362 |
| sl_sweet_spot_percent | 41.1 |
| sl_barrel_batted_rate | 3.2 |
| sl_hard_hit_percent | 27.4 |
| sl_exit_velocity_avg | 87.0 |
| sl_launch_angle_avg | 9.1 |
| sl_whiff_percent | 21.8 |
| sl_swing_percent | 46.4 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.184 | 0.000 | 0.000 | Hitting_2B | 0.200 | 0.000 | -0.200 | 0.000 |
| predicted_3B | 0.018 | 0.000 | 0.000 | Hitting_3B | 0.021 | 0.000 | -0.021 | 0.000 |
| predicted_AB | 4.100 | 4.000 | 4.000 | Hitting_AB | 3.977 | 4.000 | 0.023 | 0.000 |
| predicted_AVG | 0.216 | 0.000 | 0.250 | Hitting_AVG | 0.238 | 0.250 | -0.238 | -0.250 |
| predicted_BB | 0.430 | 0.000 | 0.000 | Hitting_BB | 0.458 | 0.000 | -0.458 | 0.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.011 | 0.000 | -0.011 | 0.000 |
| predicted_H | 0.880 | 0.000 | 1.000 | Hitting_H | 0.945 | 1.000 | -0.945 | -1.000 |
| predicted_HR | 0.130 | 0.000 | 0.000 | Hitting_HR | 0.105 | 0.000 | -0.105 | 0.000 |
| predicted_OBP | 0.325 | 0.000 | 0.250 | Hitting_OBP | 0.321 | 0.250 | -0.321 | -0.250 |
| predicted_R | 0.588 | 0.000 | 1.000 | Hitting_R | 0.637 | 0.000 | -0.637 | 0.000 |
| predicted_RBI | 0.550 | 0.000 | 1.000 | Hitting_RBI | 0.527 | 1.000 | -0.527 | -1.000 |
| predicted_SLG | 0.368 | 0.000 | 0.250 | Hitting_SLG | 0.378 | 0.250 | -0.378 | -0.250 |
| predicted_SO | 1.149 | 0.000 | 1.000 | Hitting_SO | 1.187 | 2.000 | -1.187 | -2.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 9 |
| Boosted Metrics | 0 |
| Deboosted Metrics | 9 |
| Better Metrics | 1 |
| Worse Metrics | 8 |
| Biggest Boost | - |
| Biggest Deboost | predicted_SO: 1.1490 -> 0.0000 (deboost -1.1490, better) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 3 | 0 | 3 | 0 | 3 | - | predicted_AB: 4.1000 -> 3.8671 (deboost -0.2329, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 1 | 0 | 1 | 0 | 1 | - | predicted_OBP: 0.3179 -> 0.3003 (deboost -0.0176, worse) | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 3 | 4 | 4 | 3 | predicted_BB: 0.4547 -> 1.0000 (boost 0.5453, better) | predicted_RBI: 0.5354 -> 0.0000 (deboost -0.5354, worse) | AB rounded to 4 (raw=4.10), rates preserved: AVG=0.196 HR/AB=0.032 |
| 6 | bvp_blend | 0 | 0 | 0 | 0 | 0 | - | - | Sample-size BvP blend (BvP AB=16.0, weight=0.139, BvP AVG=0.250) |
| 7 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5991 -> 1.0000 (boost 0.4009, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 8 | hitter_rate_engine | 6 | 4 | 2 | 3 | 3 | predicted_RBI: 0.0000 -> 0.4956 (boost 0.4956, better) | predicted_BB: 1.0000 -> 0.4850 (deboost -0.5150, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 9 | lineup_integer_allocation | 6 | 2 | 4 | 3 | 3 | predicted_RBI: 0.4956 -> 1.0000 (boost 0.5044, better) | predicted_BB: 0.4850 -> 0.0000 (deboost -0.4850, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 10 | embedded_savant_player_context | 5 | 3 | 2 | 3 | 2 | predicted_BB: 0.0000 -> 1.0000 (boost 1.0000, better) | predicted_RBI: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 11 | simulation_box_score_reference | 4 | 0 | 4 | 1 | 3 | - | predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 12 | current_json_final | 3 | 1 | 2 | 1 | 2 | predicted_SLG: 0.3570 -> 0.3668 (boost 0.0098, better) | predicted_OBP: 0.3240 -> 0.3003 (deboost -0.0237, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "592885",
"player_name": "Christian Yelich",
"position": "DH",
"team": "MIL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.184,
"predicted_3B": 0.018,
"predicted_AB": 4.1,
"predicted_AVG": 0.216,
"predicted_BB": 0.43,
"predicted_H": 0.88,
"predicted_HR": 0.13,
"predicted_OBP": 0.325,
"predicted_R": 0.588,
"predicted_RBI": 0.55,
"predicted_SLG": 0.368,
"predicted_SO": 1.149
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1515,
"predicted_3B": 0.0145,
"predicted_AB": 3.8671,
"predicted_AVG": 0.2152,
"predicted_BB": 0.4495,
"predicted_H": 0.8293,
"predicted_HBP": 0.021,
"predicted_HR": 0.1291,
"predicted_OBP": 0.3179,
"predicted_R": 0.5815,
"predicted_RBI": 0.5197,
"predicted_SLG": 0.3636,
"predicted_SO": 1.1629
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.184,
"after": 0.1515,
"delta": -0.0325,
"percent_delta": -0.1766,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.018,
"after": 0.0145,
"delta": -0.0035,
"percent_delta": -0.1944,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.1,
"after": 3.8671,
"delta": -0.2329,
"percent_delta": -0.0568,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.216,
"after": 0.2152,
"delta": -0.0008,
"percent_delta": -0.0037,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.43,
"after": 0.4495,
"delta": 0.0195,
"percent_delta": 0.0453,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.88,
"after": 0.8293,
"delta": -0.0507,
"percent_delta": -0.0576,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.13,
"after": 0.1291,
"delta": -0.0009,
"percent_delta": -0.0069,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.325,
"after": 0.3179,
"delta": -0.0071,
"percent_delta": -0.0218,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.588,
"after": 0.5815,
"delta": -0.0065,
"percent_delta": -0.0111,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.55,
"after": 0.5197,
"delta": -0.0303,
"percent_delta": -0.0551,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.368,
"after": 0.3636,
"delta": -0.0044,
"percent_delta": -0.012,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.149,
"after": 1.1629,
"delta": 0.0139,
"percent_delta": 0.0121,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_AB",
"before": 4.1,
"after": 3.8671,
"delta": -0.2329,
"percent_delta": -0.0568,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 114
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1515,
"predicted_3B": 0.0145,
"predicted_AB": 3.8671,
"predicted_AVG": 0.218,
"predicted_BB": 0.4547,
"predicted_H": 0.8431,
"predicted_HBP": 0.021,
"predicted_HR": 0.1317,
"predicted_OBP": 0.3003,
"predicted_R": 0.5991,
"predicted_RBI": 0.5354,
"predicted_SLG": 0.3668,
"predicted_SO": 1.1495
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1515,
"after": 0.1515,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0145,
"after": 0.0145,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.8671,
"after": 3.8671,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2152,
"after": 0.218,
"delta": 0.0028,
"percent_delta": 0.013,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.4495,
"after": 0.4547,
"delta": 0.0052,
"percent_delta": 0.0116,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.8293,
"after": 0.8431,
"delta": 0.0138,
"percent_delta": 0.0166,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.021,
"after": 0.021,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1291,
"after": 0.1317,
"delta": 0.0026,
"percent_delta": 0.0201,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3179,
"after": 0.3003,
"delta": -0.0176,
"percent_delta": -0.0554,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.5815,
"after": 0.5991,
"delta": 0.0176,
"percent_delta": 0.0303,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.5197,
"after": 0.5354,
"delta": 0.0157,
"percent_delta": 0.0302,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3636,
"after": 0.3668,
"delta": 0.0032,
"percent_delta": 0.0088,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.1629,
"after": 1.1495,
"delta": -0.0134,
"percent_delta": -0.0115,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.3179,
"after": 0.3003,
"delta": -0.0176,
"percent_delta": -0.0554,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 4 (raw=4.10), rates preserved: AVG=0.196 HR/AB=0.032",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1515,
"after": 0.0,
"delta": -0.1515,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0145,
"after": 0.0,
"delta": -0.0145,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.8671,
"after": 4.0,
"delta": 0.1329,
"percent_delta": 0.0344,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.4547,
"after": 1.0,
"delta": 0.5453,
"percent_delta": 1.1993,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8431,
"after": 1.0,
"delta": 0.1569,
"percent_delta": 0.1861,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.021,
"after": 0.0,
"delta": -0.021,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.1317,
"after": 0.0,
"delta": -0.1317,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.5354,
"after": 0.0,
"delta": -0.5354,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.1495,
"after": 1.0,
"delta": -0.1495,
"percent_delta": -0.1301,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 3,
"deboosted_metrics": 4,
"better_metrics": 4,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.4547,
"after": 1.0,
"delta": 0.5453,
"percent_delta": 1.1993,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 0.5354,
"after": 0.0,
"delta": -0.5354,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "bvp_blend",
"description": "Sample-size BvP blend (BvP AB=16.0, weight=0.139, BvP AVG=0.250)",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {
"model_expectation": 0.8609,
"bvp": 0.1391
},
"window_games": {}
},
{
"index": 7,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 1.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.5991,
"after": 1.0,
"delta": 0.4009,
"percent_delta": 0.6692,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.5991,
"after": 1.0,
"delta": 0.4009,
"percent_delta": 0.6692,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1645,
"predicted_3B": 0.014,
"predicted_BB": 0.485,
"predicted_H": 0.853,
"predicted_HR": 0.0941,
"predicted_RBI": 0.4956,
"predicted_SO": 1.1425
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1645,
"delta": 0.1645,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.014,
"delta": 0.014,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 1.0,
"after": 0.485,
"delta": -0.515,
"percent_delta": -0.515,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.853,
"delta": -0.147,
"percent_delta": -0.147,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0941,
"delta": 0.0941,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.4956,
"delta": 0.4956,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.1425,
"delta": 0.1425,
"percent_delta": 0.1425,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 4,
"deboosted_metrics": 2,
"better_metrics": 3,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.4956,
"delta": 0.4956,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 1.0,
"after": 0.485,
"delta": -0.515,
"percent_delta": -0.515,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1645,
"after": 0.0,
"delta": -0.1645,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.014,
"after": 0.0,
"delta": -0.014,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.485,
"after": 0.0,
"delta": -0.485,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.853,
"after": 1.0,
"delta": 0.147,
"percent_delta": 0.1723,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0941,
"after": 0.0,
"delta": -0.0941,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.4956,
"after": 1.0,
"delta": 0.5044,
"percent_delta": 1.0178,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.1425,
"after": 1.0,
"delta": -0.1425,
"percent_delta": -0.1247,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 2,
"deboosted_metrics": 4,
"better_metrics": 3,
"worse_metrics": 3,
"biggest_boost": {
"metric": "predicted_RBI",
"before": 0.4956,
"after": 1.0,
"delta": 0.5044,
"percent_delta": 1.0178,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.485,
"after": 0.0,
"delta": -0.485,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.229,
"predicted_BB": 1.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.324,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.357,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.218,
"after": 0.229,
"delta": 0.011,
"percent_delta": 0.0505,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.3003,
"after": 0.324,
"delta": 0.0237,
"percent_delta": 0.0789,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.3668,
"after": 0.357,
"delta": -0.0098,
"percent_delta": -0.0267,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 5,
"boosted_metrics": 3,
"deboosted_metrics": 2,
"better_metrics": 3,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_RBI",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 4,
"boosted_metrics": 0,
"deboosted_metrics": 4,
"better_metrics": 1,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_BB",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 12,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.218,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_DH": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3003,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.3668,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.229,
"after": 0.218,
"delta": -0.011,
"percent_delta": -0.048,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.324,
"after": 0.3003,
"delta": -0.0237,
"percent_delta": -0.0732,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.357,
"after": 0.3668,
"delta": 0.0098,
"percent_delta": 0.0276,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.357,
"after": 0.3668,
"delta": 0.0098,
"percent_delta": 0.0276,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.324,
"after": 0.3003,
"delta": -0.0237,
"percent_delta": -0.0732,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.184,
"after": 0.0,
"delta": -0.184,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.018,
"after": 0.0,
"delta": -0.018,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.1,
"after": 4.0,
"delta": -0.1,
"percent_delta": -0.0244,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.216,
"after": 0.218,
"delta": 0.002,
"percent_delta": 0.0093,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.43,
"after": 0.0,
"delta": -0.43,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.88,
"after": 0.0,
"delta": -0.88,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.13,
"after": 0.0,
"delta": -0.13,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.325,
"after": 0.3003,
"delta": -0.0247,
"percent_delta": -0.076,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.588,
"after": 0.0,
"delta": -0.588,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.55,
"after": 0.0,
"delta": -0.55,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.368,
"after": 0.3668,
"delta": -0.0012,
"percent_delta": -0.0033,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.149,
"after": 0.0,
"delta": -1.149,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 9,
"boosted_metrics": 0,
"deboosted_metrics": 9,
"better_metrics": 1,
"worse_metrics": 8,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SO",
"before": 1.149,
"after": 0.0,
"delta": -1.149,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "better",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.184 | - |
| predicted_3B | 0.018 | - |
| predicted_AB | 4.100 | - |
| predicted_AVG | 0.216 | - |
| predicted_BB | 0.430 | - |
| predicted_H | 0.880 | - |
| predicted_HR | 0.130 | - |
| predicted_OBP | 0.325 | - |
| predicted_R | 0.588 | - |
| predicted_RBI | 0.550 | - |
| predicted_SLG | 0.368 | - |
| predicted_SO | 1.149 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.151 | -0.033 |
| predicted_3B | 0.015 | -0.003 |
| predicted_AB | 3.867 | -0.233 |
| predicted_AVG | 0.215 | -0.001 |
| predicted_BB | 0.450 | 0.020 |
| predicted_H | 0.829 | -0.051 |
| predicted_HBP | 0.021 | - |
| predicted_HR | 0.129 | -0.001 |
| predicted_OBP | 0.318 | -0.007 |
| predicted_R | 0.582 | -0.006 |
| predicted_RBI | 0.520 | -0.030 |
| predicted_SLG | 0.364 | -0.004 |
| predicted_SO | 1.163 | 0.014 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.151 | 0.000 |
| predicted_3B | 0.015 | 0.000 |
| predicted_AB | 3.867 | 0.000 |
| predicted_AVG | 0.218 | 0.003 |
| predicted_BB | 0.455 | 0.005 |
| predicted_H | 0.843 | 0.014 |
| predicted_HBP | 0.021 | 0.000 |
| predicted_HR | 0.132 | 0.003 |
| predicted_OBP | 0.300 | -0.018 |
| predicted_R | 0.599 | 0.018 |
| predicted_RBI | 0.535 | 0.016 |
| predicted_SLG | 0.367 | 0.003 |
| predicted_SO | 1.149 | -0.013 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 4 (raw=4.10), rates preserved: AVG=0.196 HR/AB=0.032
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 4.000 | - |
| BB | 1.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Sample-size BvP blend (BvP AB=16.0, weight=0.139, BvP AVG=0.250)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 0.000 |
| H | 1.000 | 0.000 |
| HR | 0.000 | 0.000 |
| RBI | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 1.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.165 | 0.165 |
| 3B | 0.014 | 0.014 |
| BB | 0.485 | -0.515 |
| H | 0.853 | -0.147 |
| HR | 0.094 | 0.094 |
| RBI | 0.496 | 0.496 |
| SO | 1.143 | 0.143 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.165 |
| 3B | 0.000 | -0.014 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | -0.485 |
| H | 1.000 | 0.147 |
| HR | 0.000 | -0.094 |
| R | 1.000 | 0.000 |
| RBI | 1.000 | 0.504 |
| SO | 1.000 | -0.143 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.151 |
| predicted_3B | 0.000 | -0.015 |
| predicted_AB | 4.000 | 0.133 |
| predicted_AVG | 0.229 | 0.011 |
| predicted_BB | 1.000 | 0.545 |
| predicted_H | 1.000 | 0.157 |
| predicted_HR | 0.000 | -0.132 |
| predicted_OBP | 0.324 | 0.024 |
| predicted_R | 1.000 | 0.401 |
| predicted_RBI | 0.000 | -0.535 |
| predicted_SLG | 0.357 | -0.010 |
| predicted_SO | 1.000 | -0.149 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | -1.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | -1.000 |
| RBI | 0.000 | -1.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 0.000 | -1.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 15.000 | 3.000 | 0.000 | 0.000 | 1.000 | 2.000 | 3.000 | 3.000 | 6.000 | 0.2000 | 0.3333 | 0.4000 | 0.2000 | 0.0667 | 0.1333 | 0.2000 | 0.4000 |
| last_10 | 0.20 | 10 | - | 35.000 | 6.000 | 0.000 | 0.000 | 1.000 | 5.000 | 5.000 | 5.000 | 13.000 | 0.1714 | 0.2750 | 0.2571 | 0.1714 | 0.0286 | 0.1429 | 0.1429 | 0.3714 |
| season | 0.60 | 114 | - | 427.000 | 98.000 | 21.000 | 2.000 | 12.000 | 57.000 | 67.000 | 49.000 | 131.000 | 0.2295 | 0.3120 | 0.3724 | 0.2295 | 0.0281 | 0.1335 | 0.1148 | 0.3068 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1090 |
| predicted_3B | 0.0100 |
| predicted_AB | 3.5620 |
| predicted_AVG | 0.2141 |
| predicted_BB | 0.4750 |
| predicted_H | 0.7630 |
| predicted_HBP | 0.0210 |
| predicted_HR | 0.1280 |
| predicted_OBP | 0.3087 |
| predicted_R | 0.5730 |
| predicted_RBI | 0.4800 |
| predicted_SLG | 0.3579 |
| predicted_SO | 1.1810 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.1840 | 0.1090 | 0.1515 | model_form_blend |
| predicted_3B | 0.0180 | 0.0100 | 0.0145 | model_form_blend |
| predicted_AB | 4.1000 | 3.5620 | 3.8671 | model_form_blend |
| predicted_AVG | 0.2160 | 0.2141 | 0.2152 | model_form_blend |
| predicted_BB | 0.4300 | 0.4750 | 0.4495 | model_form_blend |
| predicted_H | 0.8800 | 0.7630 | 0.8293 | model_form_blend |
| predicted_HBP | - | 0.0210 | 0.0210 | form_only |
| predicted_HR | 0.1300 | 0.1280 | 0.1291 | model_form_blend |
| predicted_OBP | 0.3250 | 0.3087 | 0.3179 | model_form_blend |
| predicted_R | 0.5880 | 0.5730 | 0.5815 | model_form_blend |
| predicted_RBI | 0.5500 | 0.4800 | 0.5197 | model_form_blend |
| predicted_SLG | 0.3680 | 0.3579 | 0.3636 | model_form_blend |
| predicted_SO | 1.1490 | 1.1810 | 1.1629 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 476 |
| Season rows before report date | 476 |
| Report year | 2026 |
| Profile rows used | 114 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 0 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 4 |
| Hitting_AVG | 0.25 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 1 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 2 |
| Hitting_TB | 1 |
| Hitting_battingOrder | 6 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | DH |
| gameID | 20260927_STL@MIL |
| game_type | full |
| mlbID | 592885 |
| playerID | 592885 |
| playerName | Christian Yelich |
| pos | DH |
| started | True |
| startingPosition | DH |
| team | MIL |
| teamID | 16 |
| game_date | 2026-09-27 |
| sl_k_percent | 27.0 |
| sl_bb_percent | 9.8 |
| sl_woba | 0.305 |
| sl_xwoba | 0.308 |
| sl_xba | 0.23 |
| sl_xslg | 0.385 |
| sl_sweet_spot_percent | 29.5 |
| sl_barrel_batted_rate | 9.6 |
| sl_hard_hit_percent | 42.9 |
| sl_exit_velocity_avg | 88.9 |
| sl_launch_angle_avg | 4.0 |
| sl_whiff_percent | 29.6 |
| sl_swing_percent | 45.4 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_2B | 0.204 | 0.000 | 0.000 | Hitting_2B | 0.233 | 0.000 | -0.233 | 0.000 |
| predicted_3B | 0.029 | 0.000 | 0.000 | Hitting_3B | 0.034 | 0.000 | -0.034 | 0.000 |
| predicted_AB | 3.285 | 4.000 | 3.000 | Hitting_AB | 3.540 | 3.000 | 0.460 | 1.000 |
| predicted_AVG | 0.252 | 0.000 | 0.000 | Hitting_AVG | 0.273 | 0.333 | -0.273 | -0.333 |
| predicted_BB | 0.401 | 0.000 | 0.000 | Hitting_BB | 0.430 | 1.000 | -0.430 | -1.000 |
| predicted_CS | - | 0.000 | 0.000 | BaseRunning_CS | 0.058 | 0.000 | -0.058 | 0.000 |
| predicted_H | 0.820 | 0.000 | 0.000 | Hitting_H | 0.968 | 1.000 | -0.968 | -1.000 |
| predicted_HR | 0.080 | 0.000 | 0.000 | Hitting_HR | 0.084 | 0.000 | -0.084 | 0.000 |
| predicted_OBP | 0.332 | 0.000 | 0.000 | Hitting_OBP | 0.358 | 0.500 | -0.358 | -0.500 |
| predicted_R | 0.518 | 0.000 | 1.000 | Hitting_R | 0.582 | 1.000 | -0.582 | -1.000 |
| predicted_RBI | 0.300 | 0.000 | 0.000 | Hitting_RBI | 0.528 | 0.000 | -0.528 | 0.000 |
| predicted_SLG | 0.367 | 0.000 | 0.000 | Hitting_SLG | 0.429 | 0.333 | -0.429 | -0.333 |
| predicted_SO | 1.182 | 1.000 | 1.000 | Hitting_SO | 1.179 | 0.000 | -0.179 | 1.000 |
| Impact Item | Value |
|---|---|
| From | xgboost_raw |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 11 |
| Boosted Metrics | 2 |
| Deboosted Metrics | 9 |
| Better Metrics | 3 |
| Worse Metrics | 8 |
| Biggest Boost | predicted_AB: 3.2850 -> 4.0000 (boost 0.7150, better) |
| Biggest Deboost | predicted_H: 0.8200 -> 0.0000 (deboost -0.8200, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | xgboost_raw | 0 | 0 | 0 | 0 | 0 | - | - | Raw model output with missing event categories filled from season-profile fallback |
| 2 | weighted_recent_form_blend | 3 | 0 | 3 | 0 | 3 | - | predicted_SLG: 0.3670 -> 0.3489 (deboost -0.0181, worse) | Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season. |
| 3 | team_form_snapshot | 1 | 1 | 0 | 1 | 0 | predicted_SLG: 0.3489 -> 0.3737 (boost 0.0248, better) | - | Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed) |
| 4 | matchup_context | 0 | 0 | 0 | 0 | 0 | - | - | Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied |
| 5 | ab_floor_and_scaling | 7 | 1 | 6 | 2 | 5 | predicted_H: 0.8072 -> 1.0000 (boost 0.1928, better) | predicted_BB: 0.4030 -> 0.0000 (deboost -0.4030, worse) | AB rounded to 3 (raw=3.31), rates preserved: AVG=0.233 HR/AB=0.020 |
| 6 | consistency_constraints | 1 | 1 | 0 | 1 | 0 | predicted_R: 0.5640 -> 1.0000 (boost 0.4360, better) | - | Enforced H<=AB, HR<=H, safety nets, derived R |
| 7 | hitter_rate_engine | 6 | 5 | 1 | 4 | 2 | predicted_BB: 0.0000 -> 0.4536 (boost 0.4536, better) | predicted_H: 1.0000 -> 0.7952 (deboost -0.2048, worse) | Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context |
| 8 | lineup_integer_allocation | 6 | 0 | 6 | 1 | 5 | - | predicted_H: 0.7952 -> 0.0000 (deboost -0.7952, worse) | Lineup-level largest-remainder allocation so team totals match the summed model expectation |
| 9 | embedded_savant_player_context | 2 | 2 | 0 | 2 | 0 | predicted_H: 0.0000 -> 1.0000 (boost 1.0000, better) | - | Player Savant profile contributed to the team run-environment adjustment against the opposing starter |
| 10 | simulation_box_score_reference | 3 | 1 | 2 | 1 | 2 | predicted_AB: 3.0000 -> 4.0000 (boost 1.0000, better) | predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse) | Attached simulation box score without overwriting model prediction |
| 11 | current_json_final | 1 | 0 | 1 | 0 | 1 | - | predicted_OBP: 0.3370 -> 0.3261 (deboost -0.0109, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "batter",
"player_id": "669003",
"player_name": "Garrett Mitchell",
"position": "CF",
"team": "MIL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "xgboost_raw",
"description": "Raw model output with missing event categories filled from season-profile fallback",
"stats": {
"predicted_2B": 0.204,
"predicted_3B": 0.029,
"predicted_AB": 3.285,
"predicted_AVG": 0.252,
"predicted_BB": 0.401,
"predicted_H": 0.82,
"predicted_HR": 0.08,
"predicted_OBP": 0.332,
"predicted_R": 0.518,
"predicted_RBI": 0.3,
"predicted_SLG": 0.367,
"predicted_SO": 1.182
},
"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": "weighted_recent_form_blend",
"description": "Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.",
"stats": {
"predicted_2B": 0.1784,
"predicted_3B": 0.0242,
"predicted_AB": 3.308,
"predicted_AVG": 0.2414,
"predicted_BB": 0.3984,
"predicted_H": 0.794,
"predicted_HBP": 0.027,
"predicted_HR": 0.0661,
"predicted_OBP": 0.324,
"predicted_R": 0.5475,
"predicted_RBI": 0.2857,
"predicted_SLG": 0.3489,
"predicted_SO": 1.1954
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.204,
"after": 0.1784,
"delta": -0.0256,
"percent_delta": -0.1255,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.029,
"after": 0.0242,
"delta": -0.0048,
"percent_delta": -0.1655,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.285,
"after": 3.308,
"delta": 0.023,
"percent_delta": 0.007,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.252,
"after": 0.2414,
"delta": -0.0106,
"percent_delta": -0.0421,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.401,
"after": 0.3984,
"delta": -0.0026,
"percent_delta": -0.0065,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.82,
"after": 0.794,
"delta": -0.026,
"percent_delta": -0.0317,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.08,
"after": 0.0661,
"delta": -0.0139,
"percent_delta": -0.1737,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.332,
"after": 0.324,
"delta": -0.008,
"percent_delta": -0.0241,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.518,
"after": 0.5475,
"delta": 0.0295,
"percent_delta": 0.0569,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.3,
"after": 0.2857,
"delta": -0.0143,
"percent_delta": -0.0477,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.367,
"after": 0.3489,
"delta": -0.0181,
"percent_delta": -0.0493,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.182,
"after": 1.1954,
"delta": 0.0134,
"percent_delta": 0.0113,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 0,
"deboosted_metrics": 3,
"better_metrics": 0,
"worse_metrics": 3,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_SLG",
"before": 0.367,
"after": 0.3489,
"delta": -0.0181,
"percent_delta": -0.0493,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {
"xgboost_raw": 0.55,
"weighted_form": 0.45,
"form_windows": {
"last_5": 0.2,
"last_10": 0.2,
"season": 0.6
}
},
"window_games": {
"last_5": 5,
"last_10": 10,
"season": 137
}
},
{
"index": 3,
"step": "team_form_snapshot",
"description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
"stats": {
"predicted_2B": 0.1784,
"predicted_3B": 0.0242,
"predicted_AB": 3.308,
"predicted_AVG": 0.244,
"predicted_BB": 0.403,
"predicted_H": 0.8072,
"predicted_HBP": 0.027,
"predicted_HR": 0.0674,
"predicted_OBP": 0.3261,
"predicted_R": 0.564,
"predicted_RBI": 0.2943,
"predicted_SLG": 0.3737,
"predicted_SO": 1.1817
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1784,
"after": 0.1784,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0242,
"after": 0.0242,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.308,
"after": 3.308,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.2414,
"after": 0.244,
"delta": 0.0026,
"percent_delta": 0.0108,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.3984,
"after": 0.403,
"delta": 0.0046,
"percent_delta": 0.0115,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.794,
"after": 0.8072,
"delta": 0.0132,
"percent_delta": 0.0166,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.027,
"after": 0.027,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0661,
"after": 0.0674,
"delta": 0.0013,
"percent_delta": 0.0197,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_OBP",
"before": 0.324,
"after": 0.3261,
"delta": 0.0021,
"percent_delta": 0.0065,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_R",
"before": 0.5475,
"after": 0.564,
"delta": 0.0165,
"percent_delta": 0.0301,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.2857,
"after": 0.2943,
"delta": 0.0086,
"percent_delta": 0.0301,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3489,
"after": 0.3737,
"delta": 0.0248,
"percent_delta": 0.0711,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.1954,
"after": 1.1817,
"delta": -0.0137,
"percent_delta": -0.0115,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SLG",
"before": 0.3489,
"after": 0.3737,
"delta": 0.0248,
"percent_delta": 0.0711,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 4,
"step": "matchup_context",
"description": "Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied",
"stats": {},
"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": 5,
"step": "ab_floor_and_scaling",
"description": "AB rounded to 3 (raw=3.31), rates preserved: AVG=0.233 HR/AB=0.020",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1784,
"after": 0.0,
"delta": -0.1784,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0242,
"after": 0.0,
"delta": -0.0242,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.308,
"after": 3.0,
"delta": -0.308,
"percent_delta": -0.0931,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.403,
"after": 0.0,
"delta": -0.403,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.8072,
"after": 1.0,
"delta": 0.1928,
"percent_delta": 0.2389,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.027,
"after": 0.0,
"delta": -0.027,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0674,
"after": 0.0,
"delta": -0.0674,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.2943,
"after": 0.0,
"delta": -0.2943,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.1817,
"after": 1.0,
"delta": -0.1817,
"percent_delta": -0.1538,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 7,
"boosted_metrics": 1,
"deboosted_metrics": 6,
"better_metrics": 2,
"worse_metrics": 5,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.8072,
"after": 1.0,
"delta": 0.1928,
"percent_delta": 0.2389,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_BB",
"before": 0.403,
"after": 0.0,
"delta": -0.403,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 6,
"step": "consistency_constraints",
"description": "Enforced H<=AB, HR<=H, safety nets, derived R",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 1.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 0.564,
"after": 1.0,
"delta": 0.436,
"percent_delta": 0.773,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_R",
"before": 0.564,
"after": 1.0,
"delta": 0.436,
"percent_delta": 0.773,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 7,
"step": "hitter_rate_engine",
"description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
"stats": {
"predicted_2B": 0.1554,
"predicted_3B": 0.0182,
"predicted_BB": 0.4536,
"predicted_H": 0.7952,
"predicted_HR": 0.0791,
"predicted_RBI": 0.4485,
"predicted_SO": 1.2352
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.1554,
"delta": 0.1554,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0182,
"delta": 0.0182,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.4536,
"delta": 0.4536,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.7952,
"delta": -0.2048,
"percent_delta": -0.2048,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0791,
"delta": 0.0791,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.4485,
"delta": 0.4485,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.2352,
"delta": 0.2352,
"percent_delta": 0.2352,
"direction": "boost",
"projection_effect": "worse",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 5,
"deboosted_metrics": 1,
"better_metrics": 4,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_BB",
"before": 0.0,
"after": 0.4536,
"delta": 0.4536,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.7952,
"delta": -0.2048,
"percent_delta": -0.2048,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 8,
"step": "lineup_integer_allocation",
"description": "Lineup-level largest-remainder allocation so team totals match the summed model expectation",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_BB": 0.0,
"predicted_H": 0.0,
"predicted_HR": 0.0,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.1554,
"after": 0.0,
"delta": -0.1554,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.0182,
"after": 0.0,
"delta": -0.0182,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_BB",
"before": 0.4536,
"after": 0.0,
"delta": -0.4536,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.7952,
"after": 0.0,
"delta": -0.7952,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.0791,
"after": 0.0,
"delta": -0.0791,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.4485,
"after": 0.0,
"delta": -0.4485,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.2352,
"after": 1.0,
"delta": -0.2352,
"percent_delta": -0.1904,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 6,
"boosted_metrics": 0,
"deboosted_metrics": 6,
"better_metrics": 1,
"worse_metrics": 5,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_H",
"before": 0.7952,
"after": 0.0,
"delta": -0.7952,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 9,
"step": "embedded_savant_player_context",
"description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 3.0,
"predicted_AVG": 0.241,
"predicted_BB": 0.0,
"predicted_H": 1.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.337,
"predicted_R": 1.0,
"predicted_RBI": 0.0,
"predicted_SLG": 0.37,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.244,
"after": 0.241,
"delta": -0.003,
"percent_delta": -0.0123,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_H",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_OBP",
"before": 0.3261,
"after": 0.337,
"delta": 0.0109,
"percent_delta": 0.0334,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_R",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.3737,
"after": 0.37,
"delta": -0.0037,
"percent_delta": -0.0099,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 2,
"boosted_metrics": 2,
"deboosted_metrics": 0,
"better_metrics": 2,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_H",
"before": 0.0,
"after": 1.0,
"delta": 1.0,
"percent_delta": null,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 10,
"step": "simulation_box_score_reference",
"description": "Attached simulation box score without overwriting model prediction",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_BB": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_R",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 3,
"boosted_metrics": 1,
"deboosted_metrics": 2,
"better_metrics": 1,
"worse_metrics": 2,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.0,
"after": 4.0,
"delta": 1.0,
"percent_delta": 0.3333,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 1.0,
"after": 0.0,
"delta": -1.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
},
{
"index": 11,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_2B": 0.0,
"predicted_3B": 0.0,
"predicted_AB": 4.0,
"predicted_AVG": 0.244,
"predicted_BB": 0.0,
"predicted_CF": 0.0,
"predicted_CS": 0.0,
"predicted_H": 0.0,
"predicted_HBP": 0.0,
"predicted_HR": 0.0,
"predicted_OBP": 0.3261,
"predicted_R": 0.0,
"predicted_RBI": 0.0,
"predicted_SB": 0.0,
"predicted_SF": 0.0,
"predicted_SLG": 0.3737,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_3B",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AVG",
"before": 0.241,
"after": 0.244,
"delta": 0.003,
"percent_delta": 0.0125,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"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_CS",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HBP",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"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_OBP",
"before": 0.337,
"after": 0.3261,
"delta": -0.0109,
"percent_delta": -0.0323,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_RBI",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SF",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SLG",
"before": 0.37,
"after": 0.3737,
"delta": 0.0037,
"percent_delta": 0.01,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 0,
"deboosted_metrics": 1,
"better_metrics": 0,
"worse_metrics": 1,
"biggest_boost": null,
"biggest_deboost": {
"metric": "predicted_OBP",
"before": 0.337,
"after": 0.3261,
"delta": -0.0109,
"percent_delta": -0.0323,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "xgboost_raw",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_2B",
"before": 0.204,
"after": 0.0,
"delta": -0.204,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_3B",
"before": 0.029,
"after": 0.0,
"delta": -0.029,
"percent_delta": -1.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_AB",
"before": 3.285,
"after": 4.0,
"delta": 0.715,
"percent_delta": 0.2177,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_AVG",
"before": 0.252,
"after": 0.244,
"delta": -0.008,
"percent_delta": -0.0317,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_BB",
"before": 0.401,
"after": 0.0,
"delta": -0.401,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_H",
"before": 0.82,
"after": 0.0,
"delta": -0.82,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_HR",
"before": 0.08,
"after": 0.0,
"delta": -0.08,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_OBP",
"before": 0.332,
"after": 0.3261,
"delta": -0.0059,
"percent_delta": -0.0178,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_R",
"before": 0.518,
"after": 0.0,
"delta": -0.518,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_RBI",
"before": 0.3,
"after": 0.0,
"delta": -0.3,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
{
"metric": "predicted_SLG",
"before": 0.367,
"after": 0.3737,
"delta": 0.0067,
"percent_delta": 0.0183,
"direction": "boost",
"projection_effect": "better",
"material": true
},
{
"metric": "predicted_SO",
"before": 1.182,
"after": 1.0,
"delta": -0.182,
"percent_delta": -0.154,
"direction": "deboost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 11,
"boosted_metrics": 2,
"deboosted_metrics": 9,
"better_metrics": 3,
"worse_metrics": 8,
"biggest_boost": {
"metric": "predicted_AB",
"before": 3.285,
"after": 4.0,
"delta": 0.715,
"percent_delta": 0.2177,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": {
"metric": "predicted_H",
"before": 0.82,
"after": 0.0,
"delta": -0.82,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Raw model output with missing event categories filled from season-profile fallback
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.204 | - |
| predicted_3B | 0.029 | - |
| predicted_AB | 3.285 | - |
| predicted_AVG | 0.252 | - |
| predicted_BB | 0.401 | - |
| predicted_H | 0.820 | - |
| predicted_HR | 0.080 | - |
| predicted_OBP | 0.332 | - |
| predicted_R | 0.518 | - |
| predicted_RBI | 0.300 | - |
| predicted_SLG | 0.367 | - |
| predicted_SO | 1.182 | - |
Final model input calibrated with local form: 55% XGBoost raw, 45% weighted form. Batter form uses 20% last 5 games, 20% last 10 games, 60% season.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.178 | -0.026 |
| predicted_3B | 0.024 | -0.005 |
| predicted_AB | 3.308 | 0.023 |
| predicted_AVG | 0.241 | -0.011 |
| predicted_BB | 0.398 | -0.003 |
| predicted_H | 0.794 | -0.026 |
| predicted_HBP | 0.027 | - |
| predicted_HR | 0.066 | -0.014 |
| predicted_OBP | 0.324 | -0.008 |
| predicted_R | 0.547 | 0.029 |
| predicted_RBI | 0.286 | -0.014 |
| predicted_SLG | 0.349 | -0.018 |
| predicted_SO | 1.195 | 0.013 |
Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.178 | 0.000 |
| predicted_3B | 0.024 | 0.000 |
| predicted_AB | 3.308 | 0.000 |
| predicted_AVG | 0.244 | 0.003 |
| predicted_BB | 0.403 | 0.005 |
| predicted_H | 0.807 | 0.013 |
| predicted_HBP | 0.027 | 0.000 |
| predicted_HR | 0.067 | 0.001 |
| predicted_OBP | 0.326 | 0.002 |
| predicted_R | 0.564 | 0.016 |
| predicted_RBI | 0.294 | 0.009 |
| predicted_SLG | 0.374 | 0.025 |
| predicted_SO | 1.182 | -0.014 |
Step 3b: at-bat volume from the batting slot blended with the player's prior playing time, then the opposing starter's hit, walk and strikeout rates applied
| Metric | Value | Delta vs Prev Step |
|---|
AB rounded to 3 (raw=3.31), rates preserved: AVG=0.233 HR/AB=0.020
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | - |
| 3B | 0.000 | - |
| AB | 3.000 | - |
| BB | 0.000 | - |
| H | 1.000 | - |
| HBP | 0.000 | - |
| HR | 0.000 | - |
| RBI | 0.000 | - |
| SB | 0.000 | - |
| SO | 1.000 | - |
Enforced H<=AB, HR<=H, safety nets, derived R
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | - |
| H | 1.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| R | 1.000 | - |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | - |
| SO | 1.000 | 0.000 |
Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.155 | 0.155 |
| 3B | 0.018 | 0.018 |
| BB | 0.454 | 0.454 |
| H | 0.795 | -0.205 |
| HR | 0.079 | 0.079 |
| RBI | 0.449 | 0.449 |
| SO | 1.235 | 0.235 |
Lineup-level largest-remainder allocation so team totals match the summed model expectation
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | -0.155 |
| 3B | 0.000 | -0.018 |
| AB | 3.000 | 0.000 |
| BB | 0.000 | -0.454 |
| H | 0.000 | -0.795 |
| HR | 0.000 | -0.079 |
| R | 1.000 | 0.000 |
| RBI | 0.000 | -0.449 |
| SO | 1.000 | -0.235 |
Player Savant profile contributed to the team run-environment adjustment against the opposing starter
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_2B | 0.000 | -0.178 |
| predicted_3B | 0.000 | -0.024 |
| predicted_AB | 3.000 | -0.308 |
| predicted_AVG | 0.241 | -0.003 |
| predicted_BB | 0.000 | -0.403 |
| predicted_H | 1.000 | 0.193 |
| predicted_HR | 0.000 | -0.067 |
| predicted_OBP | 0.337 | 0.011 |
| predicted_R | 1.000 | 0.436 |
| predicted_RBI | 0.000 | -0.294 |
| predicted_SLG | 0.370 | -0.004 |
| predicted_SO | 1.000 | -0.182 |
Attached simulation box score without overwriting model prediction
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| 2B | 0.000 | 0.000 |
| 3B | 0.000 | 0.000 |
| AB | 4.000 | 1.000 |
| BB | 0.000 | 0.000 |
| CS | 0.000 | 0.000 |
| H | 0.000 | 0.000 |
| HBP | 0.000 | 0.000 |
| HR | 0.000 | 0.000 |
| PA | 4.000 | - |
| R | 0.000 | -1.000 |
| RBI | 0.000 | 0.000 |
| SB | 0.000 | 0.000 |
| SF | 0.000 | 0.000 |
| SO | 1.000 | 0.000 |
| Window | Weight | Games | Total PA | Total AB | Total H | Total 2B | Total 3B | Total HR | Total RBI | Total R | Total BB | Total SO | AVG | OBP | SLG | H_per_AB | HR_per_AB | RBI_per_AB | BB_per_AB | SO_per_AB |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.20 | 5 | - | 17.000 | 3.000 | 0.000 | 0.000 | 0.000 | 0.000 | 4.000 | 2.000 | 6.000 | 0.1765 | 0.2632 | 0.1765 | 0.1765 | 0.0000 | 0.0000 | 0.1177 | 0.3529 |
| last_10 | 0.20 | 10 | - | 33.000 | 6.000 | 1.000 | 0.000 | 0.000 | 0.000 | 6.000 | 4.000 | 14.000 | 0.1818 | 0.2703 | 0.2121 | 0.1818 | 0.0000 | 0.0000 | 0.1212 | 0.4242 |
| season | 0.60 | 137 | - | 450.000 | 116.000 | 28.000 | 4.000 | 10.000 | 58.000 | 71.000 | 55.000 | 162.000 | 0.2578 | 0.3457 | 0.4044 | 0.2578 | 0.0222 | 0.1289 | 0.1222 | 0.3600 |
| Metric | Value |
|---|---|
| predicted_2B | 0.1450 |
| predicted_3B | 0.0180 |
| predicted_AB | 3.3380 |
| predicted_AVG | 0.2276 |
| predicted_BB | 0.3950 |
| predicted_H | 0.7600 |
| predicted_HBP | 0.0270 |
| predicted_HR | 0.0480 |
| predicted_OBP | 0.3136 |
| predicted_R | 0.5860 |
| predicted_RBI | 0.2670 |
| predicted_SLG | 0.3252 |
| predicted_SO | 1.2130 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_2B | 0.2040 | 0.1450 | 0.1784 | model_form_blend |
| predicted_3B | 0.0290 | 0.0180 | 0.0242 | model_form_blend |
| predicted_AB | 3.2850 | 3.3380 | 3.3080 | model_form_blend |
| predicted_AVG | 0.2520 | 0.2276 | 0.2414 | model_form_blend |
| predicted_BB | 0.4010 | 0.3950 | 0.3984 | model_form_blend |
| predicted_H | 0.8200 | 0.7600 | 0.7940 | model_form_blend |
| predicted_HBP | - | 0.0270 | 0.0270 | form_only |
| predicted_HR | 0.0800 | 0.0480 | 0.0661 | model_form_blend |
| predicted_OBP | 0.3320 | 0.3136 | 0.3240 | model_form_blend |
| predicted_R | 0.5180 | 0.5860 | 0.5475 | model_form_blend |
| predicted_RBI | 0.3000 | 0.2670 | 0.2857 | model_form_blend |
| predicted_SLG | 0.3670 | 0.3252 | 0.3489 | model_form_blend |
| predicted_SO | 1.1820 | 1.2130 | 1.1954 | model_form_blend |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 20% last 5 + 20% last 10 + 60% season |
| Active form weights | last_5=20%, last_10=20%, season=60% |
| Model calibration | 55% raw model + 45% weighted form |
| Rows before report date | 502 |
| Season rows before report date | 502 |
| Report year | 2026 |
| Profile rows used | 137 |
| Hitter metrics | Hitting_AB, Hitting_H, Hitting_HR, Hitting_RBI, Hitting_AVG, Hitting_OBP, Hitting_SLG, Hitting_BB, Hitting_SO, Hitting_2B, Hitting_3B, Hitting_R, BaseRunning_SB, BaseRunning_CS |
| Simulation Box Score Field | Value |
|---|---|
| PA | 4 |
| AB | 4 |
| H | 0 |
| 2B | 0 |
| 3B | 0 |
| HR | 0 |
| R | 0 |
| RBI | 0 |
| BB | 0 |
| SO | 1 |
| SF | 0 |
| HBP | 0 |
| season_avg | 0.0 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 3 |
| Hitting_AVG | 0.333 |
| Hitting_BB | 1 |
| Hitting_GIDP | 0 |
| Hitting_H | 1 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 1 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 1 |
| Hitting_battingOrder | 1 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 0 |
| Pitching_ER | 0 |
| Pitching_ERA | 0 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 0 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 0.0 |
| Pitching_Pitches | 0 |
| Pitching_R | 0 |
| Pitching_SO | 0 |
| Pitching_Strikes | 0 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 0 |
| allPositionsPlayed | CF |
| gameID | 20260927_STL@MIL |
| game_type | full |
| mlbID | 669003 |
| playerID | 669003 |
| playerName | Garrett Mitchell |
| pos | CF |
| started | True |
| startingPosition | CF |
| team | MIL |
| teamID | 16 |
| game_date | 2026-09-27 |
| sl_k_percent | 31.5 |
| sl_bb_percent | 11.3 |
| sl_woba | 0.34 |
| sl_xwoba | 0.353 |
| sl_xba | 0.268 |
| sl_xslg | 0.447 |
| sl_sweet_spot_percent | 31.5 |
| sl_barrel_batted_rate | 11.7 |
| sl_hard_hit_percent | 52.7 |
| sl_exit_velocity_avg | 93.2 |
| sl_launch_angle_avg | 2.2 |
| sl_whiff_percent | 35.8 |
| sl_swing_percent | 43.9 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 4.000 | 4.000 | 4.000 | Pitching_BB | 1.467 | 2.000 | 2.533 | 2.000 |
| predicted_ER | 1.000 | 1.000 | 1.000 | Pitching_ER | 1.167 | 0.000 | -0.167 | 1.000 |
| predicted_H | 4.000 | 4.000 | 4.000 | Pitching_H | 3.200 | 2.000 | 0.800 | 2.000 |
| predicted_IP | 6.000 | 6.000 | 6.000 | Pitching_InningsPitched | 5.783 | 5.100 | 0.217 | 0.900 |
| predicted_SO | 6.000 | 6.000 | 6.000 | Pitching_SO | 8.400 | 5.000 | -2.400 | 1.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_form_blend |
| To | current_json_final |
| Dominant Effect | better |
| Changed Metrics | 1 |
| Boosted Metrics | 1 |
| Deboosted Metrics | 0 |
| Better Metrics | 1 |
| Worse Metrics | 0 |
| Biggest Boost | predicted_SO: 4.0000 -> 6.0000 (boost 2.0000, better) |
| Biggest Deboost | - |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 2 | pitcher_quality_guardrail | 1 | 1 | 0 | 1 | 0 | predicted_SO: 4.0000 -> 6.0000 (boost 2.0000, better) | - | Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form. |
| 3 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "pitcher",
"player_id": "694819",
"player_name": "Jacob Misiorowski",
"position": "Starter",
"team": "MIL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 4.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "pitcher_quality_guardrail",
"description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 3,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 4.0,
"predicted_ER": 1.0,
"predicted_H": 4.0,
"predicted_HR": 0.0,
"predicted_IP": 6.0,
"predicted_R": 1.0,
"predicted_SO": 6.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 4.0,
"after": 4.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 6.0,
"after": 6.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
}
],
"summary": {
"changed_metrics": 1,
"boosted_metrics": 1,
"deboosted_metrics": 0,
"better_metrics": 1,
"worse_metrics": 0,
"biggest_boost": {
"metric": "predicted_SO",
"before": 4.0,
"after": 6.0,
"delta": 2.0,
"percent_delta": 0.5,
"direction": "boost",
"projection_effect": "better",
"material": true
},
"biggest_deboost": null,
"has_material_change": true,
"dominant_effect": "better"
}
}
}Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 4.000 | - |
| predicted_ER | 1.000 | - |
| predicted_H | 4.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 6.000 | - |
| predicted_SO | 4.000 | - |
Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 4.000 | 0.000 |
| predicted_ER | 1.000 | 0.000 |
| predicted_H | 4.000 | 0.000 |
| predicted_HR | 0.000 | 0.000 |
| predicted_IP | 6.000 | 0.000 |
| predicted_SO | 6.000 | 2.000 |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 23.200 | 6.000 | 17.000 | 9.000 | 30.000 | 1.000 | 2.2817 | 1.0986 | 0.2535 | 0.7183 | 0.3803 | 1.2676 | 0.0423 |
| last_10 | 0.35 | 10 | 54.200 | 14.000 | 34.000 | 16.000 | 67.000 | 4.000 | 2.3049 | 0.9146 | 0.2561 | 0.6220 | 0.2927 | 1.2256 | 0.0732 |
| season | 0.20 | 30 | 174.200 | 35.000 | 96.000 | 44.000 | 252.000 | 14.000 | 1.8034 | 0.8015 | 0.2004 | 0.5496 | 0.2519 | 1.4427 | 0.0801 |
| Metric | Value |
|---|---|
| predicted_BB | 1.7350 |
| predicted_ER | 1.4750 |
| predicted_ERA | 2.5393 |
| predicted_H | 3.6520 |
| predicted_HR | 0.3820 |
| predicted_IP | 5.1000 |
| predicted_SO | 6.4690 |
| predicted_WHIP | 1.0303 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 4.0000 | 1.7350 | 2.6645 | model_form_blend |
| predicted_ER | 1.0000 | 1.4750 | 1.2801 | model_form_blend |
| predicted_ERA | - | 2.5393 | 2.5393 | form_only |
| predicted_H | 4.0000 | 3.6520 | 3.7948 | model_form_blend |
| predicted_HR | 0.0000 | 0.3820 | 0.2252 | model_form_blend |
| predicted_IP | 6.0000 | 5.1000 | 5.2000 | model_form_blend |
| predicted_SO | 4.0000 | 6.4690 | 5.4558 | model_form_blend |
| predicted_WHIP | - | 1.0303 | 1.0303 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 30 |
| Season rows before report date | 30 |
| Report year | 2026 |
| Profile rows used | 30 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 6.0 |
| H | 4 |
| R | 1 |
| ER | 1 |
| BB | 4 |
| SO | 6 |
| HR | 0 |
| BF | 26 |
| Pitches | 116 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 2 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 19 |
| Pitching_ER | 0 |
| Pitching_ERA | 1.80 |
| Pitching_Flyouts | 3 |
| Pitching_Groundouts | 3 |
| Pitching_H | 2 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 5.1 |
| Pitching_Pitches | 68 |
| Pitching_R | 0 |
| Pitching_SO | 5 |
| Pitching_Strikes | 44 |
| Pitching_Wild Pitch | 1 |
| Pitching_decision | W |
| Pitching_pitchingOrder | 1 |
| allPositionsPlayed | P |
| gameID | 20260927_STL@MIL |
| game_type | full |
| mlbID | 694819 |
| playerID | 694819 |
| playerName | Jacob Misiorowski |
| pos | P |
| started | True |
| startingPosition | P |
| team | MIL |
| teamID | 16 |
| game_date | 2026-09-27 |
| sl_k_percent | 37.9 |
| sl_bb_percent | 6.6 |
| sl_woba | 0.216 |
| sl_xwoba | 0.226 |
| sl_sweet_spot_percent | 33.9 |
| sl_barrel_batted_rate | 3.6 |
| sl_hard_hit_percent | 33.3 |
| sl_whiff_percent | 37.3 |
| sl_swing_percent | 51.3 |
| sl_avg_best_speed | 76.498458531 |
| sl_avg_hyper_speed | 92.952685282 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 0.000 | 0.000 | 0.000 | Pitching_BB | 0.547 | 0.000 | -0.547 | 0.000 |
| predicted_ER | 2.000 | 2.000 | 2.000 | Pitching_ER | 0.413 | 0.000 | 1.587 | 2.000 |
| predicted_H | 3.000 | 3.000 | 3.000 | Pitching_H | 1.013 | 0.000 | 1.987 | 3.000 |
| predicted_IP | 1.000 | 1.000 | 1.000 | Pitching_InningsPitched | 1.095 | 2.000 | -0.095 | -1.000 |
| predicted_SO | 0.000 | 0.000 | 0.000 | Pitching_SO | 1.547 | 2.000 | -1.547 | -2.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_form_blend |
| To | current_json_final |
| Dominant Effect | neutral |
| Changed Metrics | 0 |
| Boosted Metrics | 0 |
| Deboosted Metrics | 0 |
| Better Metrics | 0 |
| Worse Metrics | 0 |
| Biggest Boost | - |
| Biggest Deboost | - |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 2 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "pitcher",
"player_id": "676879",
"player_name": "Aaron Ashby",
"position": "Middle Reliever (High Leverage)",
"team": "MIL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 1.0,
"predicted_SO": 0.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 2.0,
"predicted_H": 3.0,
"predicted_HR": 0.0,
"predicted_IP": 1.0,
"predicted_R": 2.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 3.0,
"after": 3.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
}Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 0.000 | - |
| predicted_ER | 2.000 | - |
| predicted_H | 3.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 1.000 | - |
| predicted_SO | 0.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 8.000 | 2.000 | 3.000 | 2.000 | 7.000 | 1.000 | 2.2500 | 0.6250 | 0.2500 | 0.3750 | 0.2500 | 0.8750 | 0.1250 |
| last_10 | 0.35 | 10 | 12.100 | 4.000 | 10.000 | 4.000 | 11.000 | 2.000 | 2.9189 | 1.1351 | 0.3243 | 0.8108 | 0.3243 | 0.8919 | 0.1622 |
| season | 0.20 | 75 | 89.100 | 31.000 | 76.000 | 41.000 | 116.000 | 8.000 | 3.1231 | 1.3097 | 0.3470 | 0.8508 | 0.4590 | 1.2985 | 0.0896 |
| Metric | Value |
|---|---|
| predicted_BB | 0.4570 |
| predicted_ER | 0.4720 |
| predicted_ERA | 3.0754 |
| predicted_H | 0.9660 |
| predicted_HR | 0.1860 |
| predicted_IP | 1.1000 |
| predicted_SO | 1.3230 |
| predicted_WHIP | 1.0308 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 0.0000 | 0.4570 | 0.2558 | model_form_blend |
| predicted_ER | 2.0000 | 0.4720 | 1.1447 | model_form_blend |
| predicted_ERA | - | 3.0754 | 3.0754 | form_only |
| predicted_H | 3.0000 | 0.9660 | 1.8615 | model_form_blend |
| predicted_HR | 0.0000 | 0.1860 | 0.1041 | model_form_blend |
| predicted_IP | 1.0000 | 1.1000 | 1.2000 | model_form_blend |
| predicted_SO | 0.0000 | 1.3230 | 0.7406 | model_form_blend |
| predicted_WHIP | - | 1.0308 | 1.0308 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 75 |
| Season rows before report date | 75 |
| Report year | 2026 |
| Profile rows used | 75 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 1.0 |
| H | 3 |
| R | 2 |
| ER | 2 |
| BB | 0 |
| SO | 0 |
| HR | 0 |
| BF | 6 |
| Pitches | 26 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 6 |
| Pitching_ER | 0 |
| Pitching_ERA | 3.12 |
| Pitching_Flyouts | 1 |
| Pitching_Groundouts | 3 |
| Pitching_H | 0 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 2.0 |
| Pitching_Pitches | 26 |
| Pitching_R | 0 |
| Pitching_SO | 2 |
| Pitching_Strikes | 16 |
| Pitching_Wild Pitch | 0 |
| Pitching_decision | S |
| Pitching_pitchingOrder | 5 |
| allPositionsPlayed | P |
| gameID | 20260926_STL@MIL |
| game_type | full |
| mlbID | 676879 |
| playerID | 676879 |
| playerName | Aaron Ashby |
| pos | P |
| started | False |
| startingPosition | P |
| team | MIL |
| teamID | 16 |
| game_date | 2026-09-26 |
| sl_k_percent | 30.3 |
| sl_bb_percent | 10.7 |
| sl_woba | 0.287 |
| sl_xwoba | 0.268 |
| sl_sweet_spot_percent | 28.1 |
| sl_barrel_batted_rate | 4.9 |
| sl_hard_hit_percent | 40.2 |
| sl_whiff_percent | 32.1 |
| sl_swing_percent | 40.5 |
| sl_avg_best_speed | 76.20475045 |
| sl_avg_hyper_speed | 94.447155135 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 0.000 | 0.000 | 0.000 | Pitching_BB | 0.311 | 0.000 | -0.311 | 0.000 |
| predicted_ER | 0.000 | 0.000 | 0.000 | Pitching_ER | 0.213 | 0.000 | -0.213 | 0.000 |
| predicted_H | 2.000 | 2.000 | 2.000 | Pitching_H | 0.689 | 1.000 | 1.311 | 1.000 |
| predicted_IP | 1.000 | 1.000 | 1.000 | Pitching_InningsPitched | 0.900 | 1.000 | 0.100 | 0.000 |
| predicted_SO | 0.000 | 0.000 | 0.000 | Pitching_SO | 1.016 | 1.000 | -1.016 | -1.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_form_blend |
| To | current_json_final |
| Dominant Effect | worse |
| Changed Metrics | 1 |
| Boosted Metrics | 0 |
| Deboosted Metrics | 1 |
| Better Metrics | 0 |
| Worse Metrics | 1 |
| Biggest Boost | - |
| Biggest Deboost | predicted_SO: 2.0000 -> 0.0000 (deboost -2.0000, worse) |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 2 | current_json_final | 1 | 0 | 1 | 0 | 1 | - | predicted_SO: 2.0000 -> 0.0000 (deboost -2.0000, worse) | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "pitcher",
"player_id": "682842",
"player_name": "Abner Uribe",
"position": "Setup Man",
"team": "MIL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 1.0,
"predicted_SO": 2.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 0.0,
"predicted_H": 2.0,
"predicted_HR": 0.0,
"predicted_IP": 1.0,
"predicted_R": 0.0,
"predicted_SO": 0.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 0.0,
"delta": -2.0,
"percent_delta": -1.0,
"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": 2.0,
"after": 0.0,
"delta": -2.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
}
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 2.0,
"after": 2.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 2.0,
"after": 0.0,
"delta": -2.0,
"percent_delta": -1.0,
"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": 2.0,
"after": 0.0,
"delta": -2.0,
"percent_delta": -1.0,
"direction": "deboost",
"projection_effect": "worse",
"material": true
},
"has_material_change": true,
"dominant_effect": "worse"
}
}
}Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 0.000 | - |
| predicted_ER | 0.000 | - |
| predicted_H | 2.000 | - |
| predicted_HR | 0.000 | - |
| predicted_IP | 1.000 | - |
| predicted_SO | 2.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 5.000 | 0.000 | 5.000 | 0.000 | 6.000 | 0.000 | 0.0000 | 1.0000 | 0.0000 | 1.0000 | 0.0000 | 1.2000 | 0.0000 |
| last_10 | 0.35 | 10 | 9.000 | 2.000 | 10.000 | 1.000 | 11.000 | 0.000 | 2.0000 | 1.2222 | 0.2222 | 1.1111 | 0.1111 | 1.2222 | 0.0000 |
| season | 0.20 | 61 | 59.100 | 13.000 | 42.000 | 19.000 | 62.000 | 3.000 | 1.9719 | 1.0281 | 0.2191 | 0.7079 | 0.3202 | 1.0449 | 0.0506 |
| Metric | Value |
|---|---|
| predicted_BB | 0.1830 |
| predicted_ER | 0.2350 |
| predicted_ERA | 2.1145 |
| predicted_H | 0.9820 |
| predicted_HR | 0.0500 |
| predicted_IP | 1.0000 |
| predicted_SO | 1.1060 |
| predicted_WHIP | 1.1647 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 0.0000 | 0.1830 | 0.0965 | model_form_blend |
| predicted_ER | 0.0000 | 0.2350 | 0.1239 | model_form_blend |
| predicted_ERA | - | 2.1145 | 2.1145 | form_only |
| predicted_H | 2.0000 | 0.9820 | 1.4631 | model_form_blend |
| predicted_HR | 0.0000 | 0.0500 | 0.0264 | model_form_blend |
| predicted_IP | 1.0000 | 1.0000 | 1.0000 | model_form_blend |
| predicted_SO | 2.0000 | 1.1060 | 1.5285 | model_form_blend |
| predicted_WHIP | - | 1.1647 | 1.1647 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 61 |
| Season rows before report date | 61 |
| Report year | 2026 |
| Profile rows used | 61 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 1.0 |
| H | 2 |
| R | 0 |
| ER | 0 |
| BB | 0 |
| SO | 0 |
| HR | 0 |
| BF | 5 |
| Pitches | 19 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 4 |
| Pitching_ER | 0 |
| Pitching_ERA | 1.97 |
| Pitching_Flyouts | 0 |
| Pitching_Groundouts | 2 |
| Pitching_H | 1 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 1.0 |
| Pitching_Pitches | 11 |
| Pitching_R | 0 |
| Pitching_SO | 1 |
| Pitching_Strikes | 9 |
| Pitching_Wild Pitch | 0 |
| Pitching_decision | W |
| Pitching_pitchingOrder | 3 |
| allPositionsPlayed | P |
| gameID | 20260925_STL@MIL |
| game_type | full |
| mlbID | 682842 |
| playerID | 682842 |
| playerName | Abner Uribe |
| pos | P |
| started | False |
| startingPosition | P |
| team | MIL |
| teamID | 16 |
| game_date | 2026-09-25 |
| sl_k_percent | 26.5 |
| sl_bb_percent | 8.1 |
| sl_woba | 0.239 |
| sl_xwoba | 0.26 |
| sl_sweet_spot_percent | 27.0 |
| sl_barrel_batted_rate | 2.0 |
| sl_hard_hit_percent | 34.9 |
| sl_whiff_percent | 26.8 |
| sl_swing_percent | 43.0 |
| sl_avg_best_speed | 76.721875867 |
| sl_avg_hyper_speed | 93.478825705 |
| Metric | XGBoost Raw | Final Simulated Prediction | Pre-Sim Finalized | True Data Column | Historical Baseline | Latest Real Game | Final - Baseline | Final - Latest Real |
|---|---|---|---|---|---|---|---|---|
| predicted_BB | 0.000 | 0.000 | 0.000 | Pitching_BB | 0.238 | 0.000 | -0.238 | 0.000 |
| predicted_ER | 1.000 | 1.000 | 1.000 | Pitching_ER | 0.286 | 0.000 | 0.714 | 1.000 |
| predicted_H | 1.000 | 1.000 | 1.000 | Pitching_H | 0.635 | 1.000 | 0.365 | 0.000 |
| predicted_IP | 1.000 | 1.000 | 1.000 | Pitching_InningsPitched | 0.960 | 1.000 | 0.040 | 0.000 |
| predicted_SO | 1.000 | 1.000 | 1.000 | Pitching_SO | 1.095 | 1.000 | -0.095 | 0.000 |
| Impact Item | Value |
|---|---|
| From | pitcher_form_blend |
| To | current_json_final |
| Dominant Effect | neutral |
| Changed Metrics | 0 |
| Boosted Metrics | 0 |
| Deboosted Metrics | 0 |
| Better Metrics | 0 |
| Worse Metrics | 0 |
| Biggest Boost | - |
| Biggest Deboost | - |
| # | Step | Changed | Boosted | Deboosted | Better | Worse | Biggest Boost | Biggest Deboost | Reason |
|---|---|---|---|---|---|---|---|---|---|
| 1 | pitcher_form_blend | 0 | 0 | 0 | 0 | 0 | - | - | Pitcher model/profile expectation with Bayesian recent-form shrinkage |
| 2 | current_json_final | 0 | 0 | 0 | 0 | 0 | - | - | Final player values currently stored in the game JSON |
{
"trace_version": "1.0",
"role": "pitcher",
"player_id": "656730",
"player_name": "Trevor Megill",
"position": "Closer",
"team": "MIL",
"interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
"steps": [
{
"index": 1,
"step": "pitcher_form_blend",
"description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_IP": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
},
{
"index": 2,
"step": "current_json_final",
"description": "Final player values currently stored in the game JSON",
"stats": {
"predicted_BB": 0.0,
"predicted_ER": 1.0,
"predicted_H": 1.0,
"predicted_HR": 1.0,
"predicted_IP": 1.0,
"predicted_R": 1.0,
"predicted_SO": 1.0
},
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_HR",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_IP",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null
},
"weights": {},
"window_games": {}
}
],
"total_change": {
"from_step": "pitcher_form_blend",
"to_step": "current_json_final",
"changed_metrics": [
{
"metric": "predicted_BB",
"before": 0.0,
"after": 0.0,
"delta": 0.0,
"percent_delta": null,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_ER",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_H",
"before": 1.0,
"after": 1.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": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
},
{
"metric": "predicted_SO",
"before": 1.0,
"after": 1.0,
"delta": 0.0,
"percent_delta": 0.0,
"direction": "no_change",
"projection_effect": "neutral",
"material": false
}
],
"summary": {
"changed_metrics": 0,
"boosted_metrics": 0,
"deboosted_metrics": 0,
"better_metrics": 0,
"worse_metrics": 0,
"biggest_boost": null,
"biggest_deboost": null,
"has_material_change": false,
"dominant_effect": "neutral"
}
}
}Pitcher model/profile expectation with Bayesian recent-form shrinkage
| Metric | Value | Delta vs Prev Step |
|---|---|---|
| predicted_BB | 0.000 | - |
| predicted_ER | 1.000 | - |
| predicted_H | 1.000 | - |
| predicted_HR | 1.000 | - |
| predicted_IP | 1.000 | - |
| predicted_SO | 1.000 | - |
| Window | Weight | Games | Total IP | Total ER | Total H | Total BB | Total SO | Total HR | ERA | WHIP | ER_per_IP | H_per_IP | BB_per_IP | SO_per_IP | HR_per_IP |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| last_5 | 0.45 | 5 | 5.000 | 2.000 | 3.000 | 0.000 | 6.000 | 0.000 | 3.6000 | 0.6000 | 0.4000 | 0.6000 | 0.0000 | 1.2000 | 0.0000 |
| last_10 | 0.35 | 10 | 9.100 | 5.000 | 10.000 | 1.000 | 12.000 | 1.000 | 4.8214 | 1.1786 | 0.5357 | 1.0714 | 0.1071 | 1.2857 | 0.1071 |
| season | 0.20 | 62 | 61.200 | 14.000 | 38.000 | 15.000 | 69.000 | 1.000 | 2.0432 | 0.8595 | 0.2270 | 0.6162 | 0.2432 | 1.1189 | 0.0162 |
| Metric | Value |
|---|---|
| predicted_BB | 0.1690 |
| predicted_ER | 0.4410 |
| predicted_ERA | 3.9683 |
| predicted_H | 0.8290 |
| predicted_HR | 0.0710 |
| predicted_IP | 1.0000 |
| predicted_SO | 1.1350 |
| predicted_WHIP | 0.9981 |
| Metric | Model | Weighted Form | Final Model Input | Source |
|---|---|---|---|---|
| predicted_BB | 0.0000 | 0.1690 | 0.0897 | model_form_blend |
| predicted_ER | 1.0000 | 0.4410 | 0.7033 | model_form_blend |
| predicted_ERA | - | 3.9683 | 3.9683 | form_only |
| predicted_H | 1.0000 | 0.8290 | 0.9092 | model_form_blend |
| predicted_HR | 1.0000 | 0.0710 | 0.5070 | model_form_blend |
| predicted_IP | 1.0000 | 1.0000 | 1.0000 | model_form_blend |
| predicted_SO | 1.0000 | 1.1350 | 1.0716 | model_form_blend |
| predicted_WHIP | - | 0.9981 | 0.9981 | form_only |
| Trace Item | Value |
|---|---|
| Primary player source | data/all_players_stats.csv |
| Rolling form windows | last 5 games, last 10 games, season-to-date before report date |
| Blend formula | 45% last 5 + 35% last 10 + 20% season |
| Active form weights | last_5=45%, last_10=35%, season=20% |
| Model calibration | 35% raw model + 65% weighted form |
| Rows before report date | 63 |
| Season rows before report date | 63 |
| Report year | 2026 |
| Profile rows used | 62 |
| Pitcher metrics | Pitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB |
| Simulation Box Score Field | Value |
|---|---|
| IP | 1.0 |
| H | 1 |
| R | 1 |
| ER | 1 |
| BB | 0 |
| SO | 1 |
| HR | 1 |
| BF | 4 |
| Pitches | 16 |
| Latest Real Data Column | Value |
|---|---|
| BaseRunning_CS | 0 |
| BaseRunning_PO | 0 |
| BaseRunning_SB | 0 |
| Fielding_E | 0 |
| Fielding_Outfield assists | 0 |
| Fielding_Passed Ball | 0 |
| Fielding_Pickoffs | 0 |
| Hitting_2B | 0 |
| Hitting_3B | 0 |
| Hitting_AB | 0 |
| Hitting_AVG | 0.0 |
| Hitting_BB | 0 |
| Hitting_GIDP | 0 |
| Hitting_H | 0 |
| Hitting_HBP | 0 |
| Hitting_HR | 0 |
| Hitting_IBB | 0 |
| Hitting_R | 0 |
| Hitting_RBI | 0 |
| Hitting_SAC | 0 |
| Hitting_SF | 0 |
| Hitting_SO | 0 |
| Hitting_TB | 0 |
| Hitting_battingOrder | 0 |
| Hitting_substitutionOrder | 0 |
| Pitching_BB | 0 |
| Pitching_Balk | 0 |
| Pitching_Batters Faced | 4 |
| Pitching_ER | 0 |
| Pitching_ERA | 2.63 |
| Pitching_Flyouts | 1 |
| Pitching_Groundouts | 0 |
| Pitching_H | 1 |
| Pitching_HBP | 0 |
| Pitching_HR | 0 |
| Pitching_Inherited Runners | 0 |
| Pitching_Inherited Runners Scored | 0 |
| Pitching_InningsPitched | 1.0 |
| Pitching_Pitches | 11 |
| Pitching_R | 0 |
| Pitching_SO | 1 |
| Pitching_Strikes | 11 |
| Pitching_Wild Pitch | 0 |
| Pitching_pitchingOrder | 4 |
| allPositionsPlayed | P |
| gameID | 20260925_STL@MIL |
| game_type | full |
| mlbID | 656730 |
| playerID | 656730 |
| playerName | Trevor Megill |
| pos | P |
| started | False |
| startingPosition | P |
| team | MIL |
| teamID | 16 |
| game_date | 2026-09-25 |
| sl_k_percent | 28.5 |
| sl_bb_percent | 6.2 |
| sl_woba | 0.208 |
| sl_xwoba | 0.252 |
| sl_sweet_spot_percent | 28.7 |
| sl_barrel_batted_rate | 6.4 |
| sl_hard_hit_percent | 42.0 |
| sl_whiff_percent | 30.5 |
| sl_swing_percent | 54.0 |
| sl_avg_best_speed | 81.208537368 |
| sl_avg_hyper_speed | 94.306671184 |