Ultra Detailed Player Audit - 20260921

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.

20260921_MIN@SF

Prediction Method: enhanced_ml_savant_pitcher_quality_pitcher_opponent_strength
Team Recent Window (Home): 10 games
Team Recent Window (Away): 10 games
Team Recent Period: Latest 10 games from dataset
Enhanced Prediction Target: {"away_runs": 5, "home_runs": 4, "confidence": 0.5675027500000001, "home_win_probability": 0.43249724999999994, "away_win_probability": 0.5675027500000001, "predicted_score_text": "MIN 5 - 4 SF", "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": "MIN", "original_runs": 5, "run_delta": 0.1928, "adjusted_runs": 5, "lineup": {"players_used": 8, "total_weight": 30.0, "quality": 0.048420496037944315, "contact": 0.13936104861467058, "power": 0.3018763722339929, "discipline": -0.0022111595998060007, "xwoba": 0.32189999999999996, "recent_xwoba": 0.32189999999999996, "barrel": 9.72, "ab_hard_contact": 0.1811113245740404, "ab_bat_speed": 70.006377594646, "ab_strikeout_rate": 0.22835844642151143, "available_players": 8, "top_players": [{"player_id": "665019", "player_name": "Kody Clemens", "position": "2B", "weight": 4.0, "quality": 0.5937132997127965, "contact": 0.5746271997374386, "power": 0.944723667230276, "discipline": -0.20863717433117676, "xwoba": 0.335, "recent_xwoba": 0.335, "barrel": 11.4, "ab_hard_contact": 0.3756162017483867, "ab_bat_speed": 70.51572322954824, "ab_strikeout_rate": 0.23283208020050128, "available": 1.0}, {"player_id": "691181", "player_name": "Emmanuel Rodriguez", "position": "LF", "weight": 4.0, "quality": 0.0954455946967759, "contact": 0.7254133603174604, "power": 2.0, "discipline": -1.7325908084163897, "xwoba": 0.343, "recent_xwoba": 0.343, "barrel": 23.5, "ab_hard_contact": 1.4381171944444444, "ab_bat_speed": 74.10738888888889, "ab_strikeout_rate": 0.39, "available": 1.0}, {"player_id": "680777", "player_name": "Ryan Jeffers", "position": "C", "weight": 4.0, "quality": 0.5427966976635071, "contact": 0.5260931553232674, "power": 0.5422531846996385, "discipline": 0.9502454285174081, "xwoba": 0.349, "recent_xwoba": 0.349, "barrel": 10.6, "ab_hard_contact": 0.39173036065943984, "ab_bat_speed": 72.53055692729767, "ab_strikeout_rate": 0.1798780487804878, "available": 1.0}, {"player_id": "686797", "player_name": "Brooks Lee", "position": "3B", "weight": 4.0, "quality": -0.466309491745967, "contact": -0.48376046535686534, "power": -0.5237747135368747, "discipline": 0.015885548559967183, "xwoba": 0.275, "recent_xwoba": 0.275, "barrel": 4.1, "ab_hard_contact": -0.29530379454700356, "ab_bat_speed": 68.75714635032416, "ab_strikeout_rate": 0.16445221445221445, "available": 1.0}, {"player_id": "807712", "player_name": "Luke Keaschall", "position": "RF", "weight": 4.0, "quality": -0.3080732471354959, "contact": -0.14384379233367087, "power": -0.7371711162457842, "discipline": 0.6307879487602398, "xwoba": 0.317, "recent_xwoba": 0.317, "barrel": 3.3, "ab_hard_contact": -0.34570803920140036, "ab_bat_speed": 67.33198353174603, "ab_strikeout_rate": 0.15969267139479904, "available": 1.0}]}, "opposing_starter": {"available": true, "player_id": "694918", "player_name": "Blade Tidwell", "quality": -0.16195487123800467, "contact": -0.0587411180228883, "command": -0.44509004346907566, "movement": -0.09368625471001715, "xwoba": 0.325, "whiff": 23.1, "faced_est_woba": 0.2648585351179453, "faced_launch_speed": 83.79207589285714, "faced_strikeout_rate": 0.23575569358178053, "faced_run_exp": 0.006506401041666653}}, "home": {"team": "SF", "original_runs": 4, "run_delta": -0.2595, "adjusted_runs": 4, "lineup": {"players_used": 8, "total_weight": 26.0, "quality": -0.33567083104392387, "contact": -0.9175577556704904, "power": -0.7893840178047605, "discipline": -0.5566682512396848, "xwoba": 0.2635, "recent_xwoba": 0.2635, "barrel": 5.076923076923077, "ab_hard_contact": -0.8162456248680972, "ab_bat_speed": 68.01627237335259, "ab_strikeout_rate": 0.29454396467353783, "available_players": 8, "top_players": [{"player_id": "683766", "player_name": "Christian Koss", "position": "SS", "weight": 3.0, "quality": -0.8555322281213693, "contact": -1.2195361556998559, "power": -1.0868220799283541, "discipline": -0.6464284707540521, "xwoba": 0.252, "recent_xwoba": 0.252, "barrel": 4.3, "ab_hard_contact": -1.0114892176146906, "ab_bat_speed": 66.76001825396825, "ab_strikeout_rate": 0.23948051948051946, "available": 1.0}, {"player_id": "691785", "player_name": "Marcelo Mayer", "position": "DH", "weight": 3.0, "quality": -0.7405631857929735, "contact": -0.9737081306637808, "power": -0.7447136578424268, "discipline": -0.174304372629954, "xwoba": 0.259, "recent_xwoba": 0.259, "barrel": 6.1, "ab_hard_contact": -0.6550350616104326, "ab_bat_speed": 73.37816648629149, "ab_strikeout_rate": 0.20707070707070707, "available": 1.0}, {"player_id": "814154", "player_name": "Scott Bandura", "position": "LF", "weight": 3.0, "quality": -0.0873405765530303, "contact": -2.0, "power": -2.0, "discipline": -1.4374999999999998, "xwoba": 0.153, "recent_xwoba": 0.153, "barrel": 0.0, "ab_hard_contact": -1.633089472222222, "ab_bat_speed": 69.19305555555556, "ab_strikeout_rate": 0.5, "available": 1.0}, {"player_id": "701852", "player_name": "Drew Cavanaugh", "position": "C", "weight": 3.0, "quality": -0.35442463704388516, "contact": -0.6258506233029384, "power": -0.7725119650504996, "discipline": -0.09008088778146911, "xwoba": 0.307, "recent_xwoba": 0.307, "barrel": 4.5, "ab_hard_contact": -0.8593821581528339, "ab_bat_speed": 67.0060768321513, "ab_strikeout_rate": 0.3378472222222222, "available": 1.0}, {"player_id": "813841", "player_name": "Jonah Cox", "position": "2B", "weight": 4.0, "quality": -0.44333722991047053, "contact": -0.9286234573364305, "power": -0.3315504054898586, "discipline": -1.436327742214299, "xwoba": 0.265, "recent_xwoba": 0.265, "barrel": 6.3, "ab_hard_contact": -0.5601509669400226, "ab_bat_speed": 64.72581978319784, "ab_strikeout_rate": 0.42195121951219516, "available": 1.0}]}, "opposing_starter": {"available": true, "player_id": "805673", "player_name": "Zebby Matthews", "quality": -0.41793490853010373, "contact": -0.6190679229017572, "command": -0.31994995207898425, "movement": -0.1351375532223106, "xwoba": 0.324, "whiff": 22.2, "faced_est_woba": 0.27874068055555556, "faced_launch_speed": 81.88532986111112, "faced_strikeout_rate": 0.22060185185185185, "faced_run_exp": 0.032430311397707225}}}, "fundamental_edge_target_review": {"applied": false, "method": "post_score_adjustment_fundamental_edge_review_v1", "previous_score": {"away_runs": 5, "home_runs": 4, "winner_side": "away"}, "adjusted_score": {"away_runs": 5, "home_runs": 4, "winner_side": "away"}, "signals": {"season_quality_edge_home_minus_away": -0.162, "recent_form_edge_home_minus_away": -0.064, "pitcher_matchup_edge_home_minus_away": -0.0529, "composite_home_edge": -0.4015, "existing_home_win_probability": 0.4206, "refreshed_home_win_probability": 0.3094, "winner_support_before_review": 0.4015}, "reasons": ["target direction already matched refreshed fundamentals or margin was not fragile"]}, "uncapped_home_win_probability": 0.420585, "uncapped_away_win_probability": 0.579415, "confidence_shrinkage": {"policy": "starter_quality_shrinkage_v3", "staged_confidence": 0.579415, "discount_factor": 0.85, "published_confidence": 0.567503, "guardrail_confidence_cap": null, "guardrail_cap_enforced": false, "applied_discounts": [{"reason": "projected_margin_is_one_run", "factor": 0.85}]}, "score_probability_reconciliation": {"policy": "published_probability_follows_published_score_v1", "incoming_home_win_probability": 0.309393, "incoming_favoured_side": "away", "score_winner_side": "away", "published_home_win_probability": 0.432497, "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.", "pre_simulation_target": {"away_runs": 5, "home_runs": 4, "predicted_score_text": "MIN 5 - 4 SF", "confidence": 0.5675027500000001, "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": 5, "home_runs": 4, "score_text": "MIN 5 - 4 SF", "winner": "MIN"}, "final_simulation_score": {"away_runs": 5, "home_runs": 4, "score_text": "MIN 5 - 4 SF", "winner": "MIN"}, "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.0529, "recent_form_edge_home_minus_away": -0.064, "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": 5, "home_runs": 4, "winner": "MIN", "model_winner": "MIN", "simulation_winner": "MIN", "simulation_winner_agrees": true, "simulation_agreement_scope": "selected_draw_only", "simulation_distribution_agreement": {"available": true, "draw_count": 5, "published_winner": "MIN", "published_winner_draw_share": 0.6, "draw_majority_team": "MIN", "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": 5, "home_runs": 4}, "simulation_score": {"away_runs": 5, "home_runs": 4}}, "final_margin_quality_review": {"review_required": false, "pre_margin": 1, "final_margin": 1, "winner_quality_edge": 0.162, "winner": "MIN", "score_reviewed": {"away_runs": 5, "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": "MIN", "display_confidence": 0.5675, "internal_signal_score": 0.5855, "internal_signal_status": "ranking_signal_not_a_calibrated_fair_probability", "model_pick_probability": 0.5675, "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.162, "winner_recent_form_edge": 0.064, "winner_pitcher_matchup_edge": 0.0529, "winner_simulation_draw_rate": 0.6, "blowout_draw_rate_margin_4_plus": 0.0, "high_total_draw_rate_11_plus": 0.0, "low_total_draw_rate_6_or_less": 0.6, "total_runs_spread": {"min": 2, "median": 6, "max": 9, "range": 7}}, "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."}}
Factors Considered: Historical team performance, Season-to-date run differential, Recent form (latest 10 games), Head-to-head matchup history, Player-level statistics, Baseball Savant hitter xwOBA/xBA/xSLG/contact quality, Baseball Savant pitcher xwOBA/contact/whiff quality, Pitcher splits versus opponent batting strength, Recent-form versus season-quality arbitration, Recent 10-game performance trends, Pitcher recent form analysis, Team hitting/pitching streaks, Low-score probability modeling, Environmental factors, Home field advantage, Game timing factors, Seasonal adjustments, Machine learning models

Game-Level Prediction Audit

LayerScoreWinnerConfidenceSource or usageSynced or matches
Shipped predictionMIN 5 - 4 SFMIN0.568enhanced_prediction.pre_simulation_targetTrue
Simulation drawMIN 5 - 4 SFMIN-organic_simulation_realized_targetTrue

The shipped score is reconciled to the final simulation score. The original model target remains visible as the pre-simulation audit layer.

Full Prediction Process

Optimization Roadmap Runtime Status

This table distinguishes newly generated artifacts from older files. Missing trace data is shown as legacy/unavailable, never inferred.

PriorityChangeRuntime statusEvidence
P1Empirical confidence blendappliedraw=0.6305; empirical=0.5687; weight=0.5000; final=0.5996
P1H2H margin as base featureunavailable / legacy artifacthome net=0; abs=-; home delta=0; away delta=0
P2Wider score distributionimplemented_above_requested_1.4xvariance multiplier=2.1500; floor=2.7500
P2Simulation flip controldiagnostic_only_unless_independently_supportedcandidate=False; trusted=False; published flip=False
P3Season edge + recent formimplementedwindow=10; season edge=-0.2147; recent edge=-0.0640; blended=-
P3Continuous calibration audittrace emittedChecked by CONFIDENCE_CALIBRATION_APPLIED and bucket_calibration_error in learning reports.
Process LayerWhat It DoesStored FieldObserved Value
1. Historical modelStarts from trained game model output.score_evolution.steps[historical_ml]-
2. Variance layerApplies bounded game variance before enhanced corrections.score_evolution.steps[variance_applied]-
3. Recent/team formUses latest team form, recent scoring, prevention, and streak state.enhanced_prediction_analysis.recent_formTrue
4. Season qualityUses season run differential and record quality guardrails.season_run_differential_adjustment, season_quality_guardrailTrue
5. Savant hittersApplies lineup-level Statcast xwOBA, xBA, xSLG, barrel, hard-hit, sweet-spot, EV, launch-angle, whiff, K and BB quality.savant_batter_quality_adjustmentTrue
6. Savant pitchersApplies starter run prevention, strikeout, walk, HR and regression factors from xwOBA, wOBA, contact quality and whiff/command.savant_pitcher_quality_adjustmentTrue
7. Low-score analysisControls unrealistic totals and preserves the pre-sync low-score expected total.low_score_analysis6.9000
8. Probability/governorsApplies win probability calibration, matchup guardrails, margin governor and confidence governor.win_probability_calibration, margin_governor, confidence_governor0.5675
9. Simulation reconciliationReconciles final shipped score with the simulation box score while retaining the pre-simulation target.simulation_reconciliationorganic_simulation_realized_target
10. Score evolution rendered7 stored score steps are rendered below.game.score_evolution.stepstrue

Score Evolution Steps

StepLayerAway RunsHome RunsConfidenceDescription
1historical_ml4.6974.343-Base ML historical model prediction
2variance_applied54-Deterministic baseline target (variance factor 1.0)
3enhanced_prediction540.5675Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run)
4embedded_savant_run_environment54-Target score adjusted by temporal Savant lineup quality versus opposing starter quality
5fundamental_edge_target_review54-Refreshed score target and win probability after Savant/pitcher/team-strength adjustments
6capped_target54-Capped at max 12 realistic runs
7simulation_result54-Final inning-by-inning simulation result

Governors, Guardrails, and Reconciliation

Low Score Analysis
{
  "low_score_probability": 0.5206448170631667,
  "base_low_score_probability": 0.4249384741591468,
  "low_score_signal_threshold": 0.5049384741591468,
  "low_score_signal_strength": 0.09570634290401986,
  "confidence": 0.7126120000000002,
  "factors": {
    "environmental": 1.0710000000000002,
    "pitcher_form": 1.1,
    "team_form": 1.0,
    "situational": 1.04,
    "combined": 1.2252240000000005
  },
  "prediction": "low_scoring",
  "expected_total_runs": 9,
  "score_scale_mode": "control",
  "pre_simulation_expected_total_runs": 6.9,
  "low_score_model_expected_total_runs": 6.9,
  "final_simulation_total_runs": 9,
  "score_source": "enhanced_prediction.pre_simulation_target"
}
Win Probability Calibration
{
  "method": "monotone_reliability_shrinkage",
  "policy": "shrink_toward_even_score_floor_v3",
  "sample_size": 640,
  "near_bucket_sample_size": 640,
  "medium_bucket_sample_size": 898,
  "wide_bucket_sample_size": 1004,
  "global_sample_size": 1026,
  "bucket_scope": "near_0.05",
  "sparse_bucket": false,
  "empirical_hit_rate": 0.5687,
  "bayesian_hit_rate": 0.5669,
  "prior_strength": 18.0,
  "raw_pick_probability": 0.5702,
  "raw_pick_probability_unclamped": 0.5702,
  "score_probability_conflict": false,
  "margin_implied_home_probability": 0.4137,
  "margin_implied_pick_probability": 0.5863,
  "score_blend_weight": 0.45,
  "blended_raw_pick_probability": 0.5774,
  "score_implied_floor_pick_probability": 0.5848,
  "max_published_pick_probability": 0.9,
  "uncapped_home_win_probability": 0.429821,
  "uncapped_away_win_probability": 0.570179,
  "calibrated_pick_probability": 0.5848,
  "predicted_side": "away",
  "reliability": 0.972644,
  "shrink_floor": 0.35,
  "empirical_penalty": 1.0,
  "shrinkage_weight": 0.982219
}
Empirical Confidence Calibration
{
  "method": "empirical_hit_rate_weighted_v1",
  "applied": true,
  "reason": "raw confidence blended with verified historical bucket hit rate",
  "raw_confidence": 0.630515,
  "sample_size": 640,
  "empirical_hit_rate": 0.5687,
  "empirical_weight": 0.5,
  "blended_confidence": 0.599607,
  "published_confidence": 0.567503,
  "published_after_governors": true,
  "governor_mode": "shrinkage_not_clamp"
}
H2H Base Feature
{
  "method": "h2h_net_margin_monotonic_v1",
  "available": false,
  "sample_size": 0,
  "home_net_margin": 0.0,
  "home_average_margin": 0.0,
  "home_run_delta": 0.0,
  "away_run_delta": 0.0,
  "evidence": []
}
Season Run Differential Adjustment
{
  "applied": false,
  "home": {
    "team": "SF",
    "games": 156,
    "wins": 64,
    "losses": 92,
    "win_pct": 0.41025641025641024,
    "runs_scored": 656,
    "runs_allowed": 740,
    "run_differential": -84,
    "run_differential_per_game": -0.5384615384615384,
    "available": true
  },
  "away": {
    "team": "MIN",
    "games": 156,
    "wins": 73,
    "losses": 83,
    "win_pct": 0.46794871794871795,
    "runs_scored": 712,
    "runs_allowed": 776,
    "run_differential": -64,
    "run_differential_per_game": -0.41025641025641024,
    "available": true
  },
  "run_differential_edge_per_game": -0.1282,
  "win_pct_edge": -0.0577,
  "quality_edge": -0.162,
  "season_quality_edge": -0.2147,
  "recent_quality_blend": {
    "method": "season_recent_quality_blend_v2_adaptive",
    "recent_window": 10,
    "season_quality_edge": -0.2147,
    "recent_quality_edge": -0.064,
    "season_weight": 0.65,
    "recent_weight": 0.35,
    "recent_reliability": 1.0,
    "alignment": "aligned",
    "blended_quality_edge": -0.162
  },
  "margin_adjustment": 0.0,
  "reason": "season quality edge below action threshold"
}
Score Distribution Widening
{
  "most_likely": [
    {
      "home_runs": 4,
      "away_runs": 5,
      "probability": 0.019191595875746353
    },
    {
      "home_runs": 3,
      "away_runs": 5,
      "probability": 0.018531836702459465
    },
    {
      "home_runs": 4,
      "away_runs": 4,
      "probability": 0.018391945331383202
    },
    {
      "home_runs": 4,
      "away_runs": 6,
      "probability": 0.01823113140154843
    },
    {
      "home_runs": 3,
      "away_runs": 4,
      "probability": 0.017759676148271345
    }
  ],
  "home_distribution": {
    "0": 0.06214005061778167,
    "1": 0.09304277076280003,
    "2": 0.12320288138163138,
    "3": 0.14427340860007837,
    "4": 0.1494097426997975,
    "5": 0.13683548656794986,
    "6": 0.11082704697637939,
    "7": 0.07938162404961936,
    "8": 0.05028302489101253,
    "9": 0.028167610678044283,
    "10": 0.013954228195863023,
    "11": 0.006113484702210527,
    "12": 0.002368639876831903
  },
  "away_distribution": {
    "0": 0.04059814086402878,
    "1": 0.061675564606200786,
    "2": 0.0852980750493617,
    "3": 0.10739509230349525,
    "4": 0.1230973629901588,
    "5": 0.1284494272525935,
    "6": 0.12202103472046967,
    "7": 0.10552523875529597,
    "8": 0.08308011559972775,
    "9": 0.05954659731927168,
    "10": 0.03885401609014574,
    "11": 0.02307990359908874,
    "12": 0.012481051466503867,
    "13": 0.0061445129839214005,
    "14": 0.00275386639973633
  },
  "model": "overdispersed_score_distribution",
  "variance_multiplier": 2.15,
  "variance_floor": 2.75,
  "roadmap_status": "implemented_above_requested_1.4x"
}
Matchup Recency Guardrail
{
  "applied": false,
  "confidence_cap": null,
  "winner_flipped": false,
  "reasons": [],
  "signals": {
    "predicted_team": "MIN",
    "opponent_team": "SF",
    "prediction_memory": {
      "available": false,
      "reason": "no_verified_prior_matchup_predictions",
      "verification_policy": "pregame_artifact_matched_to_one_official_final",
      "verified_outcome_count": 0,
      "consecutive_same_pick_count": 0,
      "same_pick_actual_loss_count": 0,
      "same_pick_blowout_loss_count": 0,
      "prior_predictions": []
    },
    "guardrail_predicted_team": "MIN",
    "guardrail_opponent_team": "SF",
    "output_pre_simulation_winner": "MIN",
    "output_opponent_team": "SF",
    "simulation_score_winner": "MIN",
    "final_score_winner": "MIN",
    "pre_simulation_winner": "MIN",
    "winner_flipped_by_simulation": false,
    "simulation_would_flip_winner": false
  },
  "final_prediction_sync": {
    "pre_simulation_score": {
      "away_runs": 5,
      "home_runs": 4,
      "score_text": "MIN 5 - 4 SF",
      "winner": "MIN"
    },
    "final_simulation_score": {
      "away_runs": 5,
      "home_runs": 4,
      "score_text": "MIN 5 - 4 SF",
      "winner": "MIN"
    },
    "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.0529,
      "recent_form_edge_home_minus_away": -0.064,
      "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": 5,
      "home_runs": 4,
      "winner": "MIN",
      "model_winner": "MIN",
      "simulation_winner": "MIN",
      "simulation_winner_agrees": true,
      "simulation_agreement_scope": "selected_draw_only",
      "simulation_distribution_agreement": {
        "available": true,
        "draw_count": 5,
        "published_winner": "MIN",
        "published_winner_draw_share": 0.6,
        "draw_majority_team": "MIN",
        "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": 5,
        "home_runs": 4
      },
      "simulation_score": {
        "away_runs": 5,
        "home_runs": 4
      }
    },
    "final_margin_quality_review": {
      "review_required": false,
      "pre_margin": 1,
      "final_margin": 1,
      "winner_quality_edge": 0.162,
      "winner": "MIN",
      "score_reviewed": {
        "away_runs": 5,
        "home_runs": 4,
        "source": "enhanced_prediction.pre_simulation_target"
      },
      "reason": "published margin is directionally supported or within review threshold"
    }
  }
}
Season Quality Guardrail
{
  "applied": false,
  "confidence_cap": null,
  "winner_flipped": false,
  "hard_flip_suppressed": false,
  "policy": "recency_uncertainty_shrinkage_v2",
  "reasons": [],
  "signals": {
    "home": {
      "team": "SF",
      "games": 156,
      "wins": 64,
      "losses": 92,
      "win_pct": 0.41025641025641024,
      "runs_scored": 656,
      "runs_allowed": 740,
      "run_differential": -84,
      "run_differential_per_game": -0.5384615384615384,
      "available": true
    },
    "away": {
      "team": "MIN",
      "games": 156,
      "wins": 73,
      "losses": 83,
      "win_pct": 0.46794871794871795,
      "runs_scored": 712,
      "runs_allowed": 776,
      "run_differential": -64,
      "run_differential_per_game": -0.41025641025641024,
      "available": true
    }
  }
}
Margin Governor
{
  "applied": false,
  "raw_margin": -1.1686,
  "final_margin": -1.1686,
  "margin_cap": 1.5,
  "season_quality_edge": 0.162,
  "reason": "raw target margin within supported range"
}
Confidence Governor
{
  "applied": true,
  "policy": "align_to_calibrated_probability_v2",
  "raw_confidence": 0.599607,
  "final_confidence": 0.5848,
  "calibrated_pick_probability": 0.5848,
  "shrinkage_weight": 0.982219,
  "hard_maximum": 0.9,
  "confidence_floor": 0.505,
  "score_gap": 1.1686,
  "calibration_sample_size": 640,
  "calibration_empirical_hit_rate": 0.5687,
  "calibration_bayesian_hit_rate": 0.5669,
  "calibration_sparse_bucket": false,
  "season_quality_edge": 0.162,
  "reasons": [
    "confidence aligned to the calibrated pick probability"
  ],
  "score_coherence": {
    "policy": "probability_follows_published_score_v1",
    "published_score": {
      "away_runs": 5,
      "home_runs": 4
    },
    "margin": -1,
    "probability_before": 0.415203,
    "margin_implied_home_probability": 0.425967,
    "shrinkage_weight": 0.982219,
    "side_flipped": false,
    "applied": true,
    "probability_after": 0.420585,
    "aligned_pick_probability": 0.579415
  },
  "starter_experience": {
    "applied": false,
    "min_starter_games": 16,
    "shrink_factor": 1.0
  }
}
Simulation Reconciliation
{
  "pre_simulation_score": {
    "away_runs": 5,
    "home_runs": 4,
    "score_text": "MIN 5 - 4 SF",
    "winner": "MIN"
  },
  "final_simulation_score": {
    "away_runs": 5,
    "home_runs": 4,
    "score_text": "MIN 5 - 4 SF",
    "winner": "MIN"
  },
  "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.0529,
    "recent_form_edge_home_minus_away": -0.064,
    "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": 5,
    "home_runs": 4,
    "winner": "MIN",
    "model_winner": "MIN",
    "simulation_winner": "MIN",
    "simulation_winner_agrees": true,
    "simulation_agreement_scope": "selected_draw_only",
    "simulation_distribution_agreement": {
      "available": true,
      "draw_count": 5,
      "published_winner": "MIN",
      "published_winner_draw_share": 0.6,
      "draw_majority_team": "MIN",
      "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": 5,
      "home_runs": 4
    },
    "simulation_score": {
      "away_runs": 5,
      "home_runs": 4
    }
  },
  "final_margin_quality_review": {
    "review_required": false,
    "pre_margin": 1,
    "final_margin": 1,
    "winner_quality_edge": 0.162,
    "winner": "MIN",
    "score_reviewed": {
      "away_runs": 5,
      "home_runs": 4,
      "source": "enhanced_prediction.pre_simulation_target"
    },
    "reason": "published margin is directionally supported or within review threshold"
  }
}
Enhanced Prediction Target
{
  "away_runs": 5,
  "home_runs": 4,
  "confidence": 0.5675027500000001,
  "home_win_probability": 0.43249724999999994,
  "away_win_probability": 0.5675027500000001,
  "predicted_score_text": "MIN 5 - 4 SF",
  "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": "MIN",
      "original_runs": 5,
      "run_delta": 0.1928,
      "adjusted_runs": 5,
      "lineup": {
        "players_used": 8,
        "total_weight": 30.0,
        "quality": 0.048420496037944315,
        "contact": 0.13936104861467058,
        "power": 0.3018763722339929,
        "discipline": -0.0022111595998060007,
        "xwoba": 0.32189999999999996,
        "recent_xwoba": 0.32189999999999996,
        "barrel": 9.72,
        "ab_hard_contact": 0.1811113245740404,
        "ab_bat_speed": 70.006377594646,
        "ab_strikeout_rate": 0.22835844642151143,
        "available_players": 8,
        "top_players": [
          {
            "player_id": "665019",
            "player_name": "Kody Clemens",
            "position": "2B",
            "weight": 4.0,
            "quality": 0.5937132997127965,
            "contact": 0.5746271997374386,
            "power": 0.944723667230276,
            "discipline": -0.20863717433117676,
            "xwoba": 0.335,
            "recent_xwoba": 0.335,
            "barrel": 11.4,
            "ab_hard_contact": 0.3756162017483867,
            "ab_bat_speed": 70.51572322954824,
            "ab_strikeout_rate": 0.23283208020050128,
            "available": 1.0
          },
          {
            "player_id": "691181",
            "player_name": "Emmanuel Rodriguez",
            "position": "LF",
            "weight": 4.0,
            "quality": 0.0954455946967759,
            "contact": 0.7254133603174604,
            "power": 2.0,
            "discipline": -1.7325908084163897,
            "xwoba": 0.343,
            "recent_xwoba": 0.343,
            "barrel": 23.5,
            "ab_hard_contact": 1.4381171944444444,
            "ab_bat_speed": 74.10738888888889,
            "ab_strikeout_rate": 0.39,
            "available": 1.0
          },
          {
            "player_id": "680777",
            "player_name": "Ryan Jeffers",
            "position": "C",
            "weight": 4.0,
            "quality": 0.5427966976635071,
            "contact": 0.5260931553232674,
            "power": 0.5422531846996385,
            "discipline": 0.9502454285174081,
            "xwoba": 0.349,
            "recent_xwoba": 0.349,
            "barrel": 10.6,
            "ab_hard_contact": 0.39173036065943984,
            "ab_bat_speed": 72.53055692729767,
            "ab_strikeout_rate": 0.1798780487804878,
            "available": 1.0
          },
          {
            "player_id": "686797",
            "player_name": "Brooks Lee",
            "position": "3B",
            "weight": 4.0,
            "quality": -0.466309491745967,
            "contact": -0.48376046535686534,
            "power": -0.5237747135368747,
            "discipline": 0.015885548559967183,
            "xwoba": 0.275,
            "recent_xwoba": 0.275,
            "barrel": 4.1,
            "ab_hard_contact": -0.29530379454700356,
            "ab_bat_speed": 68.75714635032416,
            "ab_strikeout_rate": 0.16445221445221445,
            "available": 1.0
          },
          {
            "player_id": "807712",
            "player_name": "Luke Keaschall",
            "position": "RF",
            "weight": 4.0,
            "quality": -0.3080732471354959,
            "contact": -0.14384379233367087,
            "power": -0.7371711162457842,
            "discipline": 0.6307879487602398,
            "xwoba": 0.317,
            "recent_xwoba": 0.317,
            "barrel": 3.3,
            "ab_hard_contact": -0.34570803920140036,
            "ab_bat_speed": 67.33198353174603,
            "ab_strikeout_rate": 0.15969267139479904,
            "available": 1.0
          }
        ]
      },
      "opposing_starter": {
        "available": true,
        "player_id": "694918",
        "player_name": "Blade Tidwell",
        "quality": -0.16195487123800467,
        "contact": -0.0587411180228883,
        "command": -0.44509004346907566,
        "movement": -0.09368625471001715,
        "xwoba": 0.325,
        "whiff": 23.1,
        "faced_est_woba": 0.2648585351179453,
        "faced_launch_speed": 83.79207589285714,
        "faced_strikeout_rate": 0.23575569358178053,
        "faced_run_exp": 0.006506401041666653
      }
    },
    "home": {
      "team": "SF",
      "original_runs": 4,
      "run_delta": -0.2595,
      "adjusted_runs": 4,
      "lineup": {
        "players_used": 8,
        "total_weight": 26.0,
        "quality": -0.33567083104392387,
        "contact": -0.9175577556704904,
        "power": -0.7893840178047605,
        "discipline": -0.5566682512396848,
        "xwoba": 0.2635,
        "recent_xwoba": 0.2635,
        "barrel": 5.076923076923077,
        "ab_hard_contact": -0.8162456248680972,
        "ab_bat_speed": 68.01627237335259,
        "ab_strikeout_rate": 0.29454396467353783,
        "available_players": 8,
        "top_players": [
          {
            "player_id": "683766",
            "player_name": "Christian Koss",
            "position": "SS",
            "weight": 3.0,
            "quality": -0.8555322281213693,
            "contact": -1.2195361556998559,
            "power": -1.0868220799283541,
            "discipline": -0.6464284707540521,
            "xwoba": 0.252,
            "recent_xwoba": 0.252,
            "barrel": 4.3,
            "ab_hard_contact": -1.0114892176146906,
            "ab_bat_speed": 66.76001825396825,
            "ab_strikeout_rate": 0.23948051948051946,
            "available": 1.0
          },
          {
            "player_id": "691785",
            "player_name": "Marcelo Mayer",
            "position": "DH",
            "weight": 3.0,
            "quality": -0.7405631857929735,
            "contact": -0.9737081306637808,
            "power": -0.7447136578424268,
            "discipline": -0.174304372629954,
            "xwoba": 0.259,
            "recent_xwoba": 0.259,
            "barrel": 6.1,
            "ab_hard_contact": -0.6550350616104326,
            "ab_bat_speed": 73.37816648629149,
            "ab_strikeout_rate": 0.20707070707070707,
            "available": 1.0
          },
          {
            "player_id": "814154",
            "player_name": "Scott Bandura",
            "position": "LF",
            "weight": 3.0,
            "quality": -0.0873405765530303,
            "contact": -2.0,
            "power": -2.0,
            "discipline": -1.4374999999999998,
            "xwoba": 0.153,
            "recent_xwoba": 0.153,
            "barrel": 0.0,
            "ab_hard_contact": -1.633089472222222,
            "ab_bat_speed": 69.19305555555556,
            "ab_strikeout_rate": 0.5,
            "available": 1.0
          },
          {
            "player_id": "701852",
            "player_name": "Drew Cavanaugh",
            "position": "C",
            "weight": 3.0,
            "quality": -0.35442463704388516,
            "contact": -0.6258506233029384,
            "power": -0.7725119650504996,
            "discipline": -0.09008088778146911,
            "xwoba": 0.307,
            "recent_xwoba": 0.307,
            "barrel": 4.5,
            "ab_hard_contact": -0.8593821581528339,
            "ab_bat_speed": 67.0060768321513,
            "ab_strikeout_rate": 0.3378472222222222,
            "available": 1.0
          },
          {
            "player_id": "813841",
            "player_name": "Jonah Cox",
            "position": "2B",
            "weight": 4.0,
            "quality": -0.44333722991047053,
            "contact": -0.9286234573364305,
            "power": -0.3315504054898586,
            "discipline": -1.436327742214299,
            "xwoba": 0.265,
            "recent_xwoba": 0.265,
            "barrel": 6.3,
            "ab_hard_contact": -0.5601509669400226,
            "ab_bat_speed": 64.72581978319784,
            "ab_strikeout_rate": 0.42195121951219516,
            "available": 1.0
          }
        ]
      },
      "opposing_starter": {
        "available": true,
        "player_id": "805673",
        "player_name": "Zebby Matthews",
        "quality": -0.41793490853010373,
        "contact": -0.6190679229017572,
        "command": -0.31994995207898425,
        "movement": -0.1351375532223106,
        "xwoba": 0.324,
        "whiff": 22.2,
        "faced_est_woba": 0.27874068055555556,
        "faced_launch_speed": 81.88532986111112,
        "faced_strikeout_rate": 0.22060185185185185,
        "faced_run_exp": 0.032430311397707225
      }
    }
  },
  "fundamental_edge_target_review": {
    "applied": false,
    "method": "post_score_adjustment_fundamental_edge_review_v1",
    "previous_score": {
      "away_runs": 5,
      "home_runs": 4,
      "winner_side": "away"
    },
    "adjusted_score": {
      "away_runs": 5,
      "home_runs": 4,
      "winner_side": "away"
    },
    "signals": {
      "season_quality_edge_home_minus_away": -0.162,
      "recent_form_edge_home_minus_away": -0.064,
      "pitcher_matchup_edge_home_minus_away": -0.0529,
      "composite_home_edge": -0.4015,
      "existing_home_win_probability": 0.4206,
      "refreshed_home_win_probability": 0.3094,
      "winner_support_before_review": 0.4015
    },
    "reasons": [
      "target direction already matched refreshed fundamentals or margin was not fragile"
    ]
  },
  "uncapped_home_win_probability": 0.420585,
  "uncapped_away_win_probability": 0.579415,
  "confidence_shrinkage": {
    "policy": "starter_quality_shrinkage_v3",
    "staged_confidence": 0.579415,
    "discount_factor": 0.85,
    "published_confidence": 0.567503,
    "guardrail_confidence_cap": null,
    "guardrail_cap_enforced": false,
    "applied_discounts": [
      {
        "reason": "projected_margin_is_one_run",
        "factor": 0.85
      }
    ]
  },
  "score_probability_reconciliation": {
    "policy": "published_probability_follows_published_score_v1",
    "incoming_home_win_probability": 0.309393,
    "incoming_favoured_side": "away",
    "score_winner_side": "away",
    "published_home_win_probability": 0.432497,
    "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.",
  "pre_simulation_target": {
    "away_runs": 5,
    "home_runs": 4,
    "predicted_score_text": "MIN 5 - 4 SF",
    "confidence": 0.5675027500000001,
    "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": 5,
      "home_runs": 4,
      "score_text": "MIN 5 - 4 SF",
      "winner": "MIN"
    },
    "final_simulation_score": {
      "away_runs": 5,
      "home_runs": 4,
      "score_text": "MIN 5 - 4 SF",
      "winner": "MIN"
    },
    "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.0529,
      "recent_form_edge_home_minus_away": -0.064,
      "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": 5,
      "home_runs": 4,
      "winner": "MIN",
      "model_winner": "MIN",
      "simulation_winner": "MIN",
      "simulation_winner_agrees": true,
      "simulation_agreement_scope": "selected_draw_only",
      "simulation_distribution_agreement": {
        "available": true,
        "draw_count": 5,
        "published_winner": "MIN",
        "published_winner_draw_share": 0.6,
        "draw_majority_team": "MIN",
        "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": 5,
        "home_runs": 4
      },
      "simulation_score": {
        "away_runs": 5,
        "home_runs": 4
      }
    },
    "final_margin_quality_review": {
      "review_required": false,
      "pre_margin": 1,
      "final_margin": 1,
      "winner_quality_edge": 0.162,
      "winner": "MIN",
      "score_reviewed": {
        "away_runs": 5,
        "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": "MIN",
    "display_confidence": 0.5675,
    "internal_signal_score": 0.5855,
    "internal_signal_status": "ranking_signal_not_a_calibrated_fair_probability",
    "model_pick_probability": 0.5675,
    "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.162,
      "winner_recent_form_edge": 0.064,
      "winner_pitcher_matchup_edge": 0.0529,
      "winner_simulation_draw_rate": 0.6,
      "blowout_draw_rate_margin_4_plus": 0.0,
      "high_total_draw_rate_11_plus": 0.0,
      "low_total_draw_rate_6_or_less": 0.6,
      "total_runs_spread": {
        "min": 2,
        "median": 6,
        "max": 9,
        "range": 7
      }
    },
    "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."
  }
}

Savant Batter Quality

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.

TeamAppliedOffense FactorRaw Avg FactorCoverage WeightCoveredMissing
Away MINTrue1.01761.01980.888981
Home SFTrue0.97440.97130.888981

Away Batter Inputs

PosPlayerESPN RankOff FactorQualityRegressionxwOBAxBAxSLGBarrel%HardHit%EVLAWhiff%K%BB%Regression Edge
RFLuke Keaschall-0.9924-0.1011neutral0.31700.24800.35803.3029.1085.4017.7016.9014.309.40-0.6571
CRyan Jeffers-1.05890.7852neutral0.34900.24800.438010.6041.2088.7016.20171712.70-0.2000
DHAlan Roden-1.02460.3282positive_batter_regression0.34200.27900.39805.1040.7087.9011.3015.9013.9011.401.3714
LFEmmanuel Rodriguez-1.05540.7384positive_batter_regression0.34300.26000.524023.5058.8094.1010.2037.90403.302
3BBrooks Lee-0.9603-0.5289negative_batter_regression0.27500.22800.34804.1033.9088.1015.9020.8016.306-1.1429
CFWalker Jenkins-1.00880.1172neutral0.31900.22800.39409.8034.1087.8014.802925.8010.600.0857
2BKody Clemens-1.06340.8458neutral0.33500.25300.456011.404692.1015.4024.5022.3070.1429
SSRyan Kreidler-0.9943-0.0766neutral0.29300.21800.38408.5037.5088.4013.1031.20237.40-0.0286

Home Batter Inputs

PosPlayerESPN RankOff FactorQualityRegressionxwOBAxBAxSLGBarrel%HardHit%EVLAWhiff%K%BB%Regression Edge
DHMarcelo Mayer-0.9452-0.7304neutral0.25900.20100.29706.103686.108.8026.5019.307-0.2286
2BJonah Cox-0.9705-0.3929negative_batter_regression0.26500.21700.34406.303888.5011.1035.8037.905-1.8857
1BBrett Harris-0.9572-0.5708neutral0.23600.13800.21905.9035.30884.8023.8027.603.40-0.6000
3BOsleivis Basabe-0.9901-0.1321neutral0.28200.22900.34407.2032.7087.309.2024.7019.905.900.2286
SSChristian Koss-0.9435-0.7537neutral0.25200.22000.30004.3027.9084.1010.6027.5023.404.60-0.4857
CFDrew Gilbert-1.03230.4306neutral0.33100.25700.39605.7036.2086.6014.1022.5017.909.800.4857
LFScott Bandura-0.9310-0.9198negative_batter_regression0.15300.11100.1450016.7075.7024.9046.20507.10-2
CDrew Cavanaugh-1.00020.0022neutral0.30700.24100.34604.5028.608512.6029.2029.7011.600.8000
Raw Savant Batter Quality JSON
{
  "home": {
    "applied": true,
    "offense_factor": 0.9744,
    "raw_average_factor": 0.9713,
    "team_espn_average_rank": null,
    "coverage_weight": 0.8889,
    "covered_batters": 8,
    "missing_batters": 1,
    "players": [
      {
        "position": "DH",
        "player_id": "691785",
        "player_name": "Marcelo Mayer",
        "offense_factor": 0.9452,
        "quality_score": -0.7304,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "691785",
          "espn_rank": null
        },
        "metrics": {
          "pa": 219.0,
          "k_percent": 19.3,
          "bb_percent": 7.0,
          "woba": 0.267,
          "xwoba": 0.259,
          "xba": 0.201,
          "xslg": 0.297,
          "sweet_spot_percent": 25.6,
          "barrel_batted_rate": 6.1,
          "hard_hit_percent": 36.0,
          "exit_velocity_avg": 86.1,
          "launch_angle_avg": 8.8,
          "whiff_percent": 26.5,
          "swing_percent": 50.1
        },
        "components": {
          "expected_quality": -0.816,
          "regression_edge": -0.2286,
          "xwoba_edge": -1.1429,
          "xba_edge": -1.0,
          "xslg_edge": -0.9643,
          "barrel_edge": -0.1333,
          "hard_hit_edge": -0.2429,
          "exit_velocity_edge": -0.92,
          "sweet_spot_edge": -1.2833,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "2B",
        "player_id": "813841",
        "player_name": "Jonah Cox",
        "offense_factor": 0.9705,
        "quality_score": -0.3929,
        "regression_flag": "negative_batter_regression",
        "espn_rank": {
          "available": false,
          "player_id": "813841",
          "espn_rank": null
        },
        "metrics": {
          "pa": 122.0,
          "k_percent": 37.9,
          "bb_percent": 5.0,
          "woba": 0.331,
          "xwoba": 0.265,
          "xba": 0.217,
          "xslg": 0.344,
          "sweet_spot_percent": 34.2,
          "barrel_batted_rate": 6.3,
          "hard_hit_percent": 38.0,
          "exit_velocity_avg": 88.5,
          "launch_angle_avg": 11.1,
          "whiff_percent": 35.8,
          "swing_percent": 52.1
        },
        "components": {
          "expected_quality": -0.5168,
          "regression_edge": -1.8857,
          "xwoba_edge": -0.9714,
          "xba_edge": -0.5429,
          "xslg_edge": -0.2929,
          "barrel_edge": -0.0889,
          "hard_hit_edge": 0.0429,
          "exit_velocity_edge": 0.04,
          "sweet_spot_edge": 0.15,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "1B",
        "player_id": "695391",
        "player_name": "Brett Harris",
        "offense_factor": 0.9572,
        "quality_score": -0.5708,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "695391",
          "espn_rank": null
        },
        "metrics": {
          "pa": 19.0,
          "k_percent": 27.6,
          "bb_percent": 3.4,
          "woba": 0.257,
          "xwoba": 0.236,
          "xba": 0.138,
          "xslg": 0.219,
          "sweet_spot_percent": 29.4,
          "barrel_batted_rate": 5.9,
          "hard_hit_percent": 35.3,
          "exit_velocity_avg": 88.0,
          "launch_angle_avg": 4.8,
          "whiff_percent": 23.8,
          "swing_percent": 43.3
        },
        "components": {
          "expected_quality": -1.3772,
          "regression_edge": -0.6,
          "xwoba_edge": -1.8,
          "xba_edge": -2.5,
          "xslg_edge": -2.0786,
          "barrel_edge": -0.1778,
          "hard_hit_edge": -0.3429,
          "exit_velocity_edge": -0.16,
          "sweet_spot_edge": -0.65,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "3B",
        "player_id": "678545",
        "player_name": "Osleivis Basabe",
        "offense_factor": 0.9901,
        "quality_score": -0.1321,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "678545",
          "espn_rank": null
        },
        "metrics": {
          "pa": 125.0,
          "k_percent": 19.9,
          "bb_percent": 5.9,
          "woba": 0.274,
          "xwoba": 0.282,
          "xba": 0.229,
          "xslg": 0.344,
          "sweet_spot_percent": 33.7,
          "barrel_batted_rate": 7.2,
          "hard_hit_percent": 32.7,
          "exit_velocity_avg": 87.3,
          "launch_angle_avg": 9.2,
          "whiff_percent": 24.7,
          "swing_percent": 45.9
        },
        "components": {
          "expected_quality": -0.3075,
          "regression_edge": 0.2286,
          "xwoba_edge": -0.4857,
          "xba_edge": -0.2,
          "xslg_edge": -0.2929,
          "barrel_edge": 0.1111,
          "hard_hit_edge": -0.7143,
          "exit_velocity_edge": -0.44,
          "sweet_spot_edge": 0.0667,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "SS",
        "player_id": "683766",
        "player_name": "Christian Koss",
        "offense_factor": 0.9435,
        "quality_score": -0.7537,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "683766",
          "espn_rank": null
        },
        "metrics": {
          "pa": 178.0,
          "k_percent": 23.4,
          "bb_percent": 4.6,
          "woba": 0.269,
          "xwoba": 0.252,
          "xba": 0.22,
          "xslg": 0.3,
          "sweet_spot_percent": 30.0,
          "barrel_batted_rate": 4.3,
          "hard_hit_percent": 27.9,
          "exit_velocity_avg": 84.1,
          "launch_angle_avg": 10.6,
          "whiff_percent": 27.5,
          "swing_percent": 53.1
        },
        "components": {
          "expected_quality": -1.0041,
          "regression_edge": -0.4857,
          "xwoba_edge": -1.3429,
          "xba_edge": -0.4571,
          "xslg_edge": -0.9214,
          "barrel_edge": -0.5333,
          "hard_hit_edge": -1.4,
          "exit_velocity_edge": -1.72,
          "sweet_spot_edge": -0.55,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "CF",
        "player_id": "687551",
        "player_name": "Drew Gilbert",
        "offense_factor": 1.0323,
        "quality_score": 0.4306,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "687551",
          "espn_rank": null
        },
        "metrics": {
          "pa": 343.0,
          "k_percent": 17.9,
          "bb_percent": 9.8,
          "woba": 0.314,
          "xwoba": 0.331,
          "xba": 0.257,
          "xslg": 0.396,
          "sweet_spot_percent": 36.2,
          "barrel_batted_rate": 5.7,
          "hard_hit_percent": 36.2,
          "exit_velocity_avg": 86.6,
          "launch_angle_avg": 14.1,
          "whiff_percent": 22.5,
          "swing_percent": 42.2
        },
        "components": {
          "expected_quality": 0.4216,
          "regression_edge": 0.4857,
          "xwoba_edge": 0.9143,
          "xba_edge": 0.6,
          "xslg_edge": 0.45,
          "barrel_edge": -0.2222,
          "hard_hit_edge": -0.2143,
          "exit_velocity_edge": -0.72,
          "sweet_spot_edge": 0.4833,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "LF",
        "player_id": "814154",
        "player_name": "Scott Bandura",
        "offense_factor": 0.931,
        "quality_score": -0.9198,
        "regression_flag": "negative_batter_regression",
        "espn_rank": {
          "available": false,
          "player_id": "814154",
          "espn_rank": null
        },
        "metrics": {
          "pa": 10.0,
          "k_percent": 50.0,
          "bb_percent": 7.1,
          "woba": 0.267,
          "xwoba": 0.153,
          "xba": 0.111,
          "xslg": 0.145,
          "sweet_spot_percent": 50.0,
          "barrel_batted_rate": 0.0,
          "hard_hit_percent": 16.7,
          "exit_velocity_avg": 75.7,
          "launch_angle_avg": 24.9,
          "whiff_percent": 46.2,
          "swing_percent": 47.3
        },
        "components": {
          "expected_quality": -2.0511,
          "regression_edge": -2.0,
          "xwoba_edge": -2.5,
          "xba_edge": -2.5,
          "xslg_edge": -2.5,
          "barrel_edge": -1.4889,
          "hard_hit_edge": -2.5,
          "exit_velocity_edge": -2.5,
          "sweet_spot_edge": 2.5,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "C",
        "player_id": "701852",
        "player_name": "Drew Cavanaugh",
        "offense_factor": 1.0002,
        "quality_score": 0.0022,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "701852",
          "espn_rank": null
        },
        "metrics": {
          "pa": 141.0,
          "k_percent": 29.7,
          "bb_percent": 11.6,
          "woba": 0.279,
          "xwoba": 0.307,
          "xba": 0.241,
          "xslg": 0.346,
          "sweet_spot_percent": 41.8,
          "barrel_batted_rate": 4.5,
          "hard_hit_percent": 28.6,
          "exit_velocity_avg": 85.0,
          "launch_angle_avg": 12.6,
          "whiff_percent": 29.2,
          "swing_percent": 46.8
        },
        "components": {
          "expected_quality": -0.1263,
          "regression_edge": 0.8,
          "xwoba_edge": 0.2286,
          "xba_edge": 0.1429,
          "xslg_edge": -0.2643,
          "barrel_edge": -0.4889,
          "hard_hit_edge": -1.3,
          "exit_velocity_edge": -1.36,
          "sweet_spot_edge": 1.4167,
          "launch_angle_hr_bonus": 0.0
        }
      }
    ],
    "source": "all_players_stats.csv embedded Savant batter features"
  },
  "away": {
    "applied": true,
    "offense_factor": 1.0176,
    "raw_average_factor": 1.0198,
    "team_espn_average_rank": null,
    "coverage_weight": 0.8889,
    "covered_batters": 8,
    "missing_batters": 1,
    "players": [
      {
        "position": "RF",
        "player_id": "807712",
        "player_name": "Luke Keaschall",
        "offense_factor": 0.9924,
        "quality_score": -0.1011,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "807712",
          "espn_rank": null
        },
        "metrics": {
          "pa": 571.0,
          "k_percent": 14.3,
          "bb_percent": 9.4,
          "woba": 0.34,
          "xwoba": 0.317,
          "xba": 0.248,
          "xslg": 0.358,
          "sweet_spot_percent": 34.8,
          "barrel_batted_rate": 3.3,
          "hard_hit_percent": 29.1,
          "exit_velocity_avg": 85.4,
          "launch_angle_avg": 17.7,
          "whiff_percent": 16.9,
          "swing_percent": 42.6
        },
        "components": {
          "expected_quality": -0.0106,
          "regression_edge": -0.6571,
          "xwoba_edge": 0.5143,
          "xba_edge": 0.3429,
          "xslg_edge": -0.0929,
          "barrel_edge": -0.7556,
          "hard_hit_edge": -1.2286,
          "exit_velocity_edge": -1.2,
          "sweet_spot_edge": 0.25,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "C",
        "player_id": "680777",
        "player_name": "Ryan Jeffers",
        "offense_factor": 1.0589,
        "quality_score": 0.7852,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "680777",
          "espn_rank": null
        },
        "metrics": {
          "pa": 339.0,
          "k_percent": 17.0,
          "bb_percent": 12.7,
          "woba": 0.356,
          "xwoba": 0.349,
          "xba": 0.248,
          "xslg": 0.438,
          "sweet_spot_percent": 35.5,
          "barrel_batted_rate": 10.6,
          "hard_hit_percent": 41.2,
          "exit_velocity_avg": 88.7,
          "launch_angle_avg": 16.2,
          "whiff_percent": 17.0,
          "swing_percent": 40.4
        },
        "components": {
          "expected_quality": 0.9456,
          "regression_edge": -0.2,
          "xwoba_edge": 1.4286,
          "xba_edge": 0.3429,
          "xslg_edge": 1.05,
          "barrel_edge": 0.8667,
          "hard_hit_edge": 0.5,
          "exit_velocity_edge": 0.12,
          "sweet_spot_edge": 0.3667,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "DH",
        "player_id": "702176",
        "player_name": "Alan Roden",
        "offense_factor": 1.0246,
        "quality_score": 0.3282,
        "regression_flag": "positive_batter_regression",
        "espn_rank": {
          "available": false,
          "player_id": "702176",
          "espn_rank": null
        },
        "metrics": {
          "pa": 78.0,
          "k_percent": 13.9,
          "bb_percent": 11.4,
          "woba": 0.294,
          "xwoba": 0.342,
          "xba": 0.279,
          "xslg": 0.398,
          "sweet_spot_percent": 27.1,
          "barrel_batted_rate": 5.1,
          "hard_hit_percent": 40.7,
          "exit_velocity_avg": 87.9,
          "launch_angle_avg": 11.3,
          "whiff_percent": 15.9,
          "swing_percent": 45.8
        },
        "components": {
          "expected_quality": 0.6248,
          "regression_edge": 1.3714,
          "xwoba_edge": 1.2286,
          "xba_edge": 1.2286,
          "xslg_edge": 0.4786,
          "barrel_edge": -0.3556,
          "hard_hit_edge": 0.4286,
          "exit_velocity_edge": -0.2,
          "sweet_spot_edge": -1.0333,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "LF",
        "player_id": "691181",
        "player_name": "Emmanuel Rodriguez",
        "offense_factor": 1.0554,
        "quality_score": 0.7384,
        "regression_flag": "positive_batter_regression",
        "espn_rank": {
          "available": false,
          "player_id": "691181",
          "espn_rank": null
        },
        "metrics": {
          "pa": 21.0,
          "k_percent": 40.0,
          "bb_percent": 3.3,
          "woba": 0.246,
          "xwoba": 0.343,
          "xba": 0.26,
          "xslg": 0.524,
          "sweet_spot_percent": 47.1,
          "barrel_batted_rate": 23.5,
          "hard_hit_percent": 58.8,
          "exit_velocity_avg": 94.1,
          "launch_angle_avg": 10.2,
          "whiff_percent": 37.9,
          "swing_percent": 49.6
        },
        "components": {
          "expected_quality": 1.5824,
          "regression_edge": 2.0,
          "xwoba_edge": 1.2571,
          "xba_edge": 0.6857,
          "xslg_edge": 2.2786,
          "barrel_edge": 2.5,
          "hard_hit_edge": 2.5,
          "exit_velocity_edge": 2.28,
          "sweet_spot_edge": 2.3,
          "launch_angle_hr_bonus": 0.2
        }
      },
      {
        "position": "3B",
        "player_id": "686797",
        "player_name": "Brooks Lee",
        "offense_factor": 0.9603,
        "quality_score": -0.5289,
        "regression_flag": "negative_batter_regression",
        "espn_rank": {
          "available": false,
          "player_id": "686797",
          "espn_rank": null
        },
        "metrics": {
          "pa": 586.0,
          "k_percent": 16.3,
          "bb_percent": 6.0,
          "woba": 0.315,
          "xwoba": 0.275,
          "xba": 0.228,
          "xslg": 0.348,
          "sweet_spot_percent": 31.3,
          "barrel_batted_rate": 4.1,
          "hard_hit_percent": 33.9,
          "exit_velocity_avg": 88.1,
          "launch_angle_avg": 15.9,
          "whiff_percent": 20.8,
          "swing_percent": 53.3
        },
        "components": {
          "expected_quality": -0.4289,
          "regression_edge": -1.1429,
          "xwoba_edge": -0.6857,
          "xba_edge": -0.2286,
          "xslg_edge": -0.2357,
          "barrel_edge": -0.5778,
          "hard_hit_edge": -0.5429,
          "exit_velocity_edge": -0.12,
          "sweet_spot_edge": -0.3333,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "CF",
        "player_id": "805805",
        "player_name": "Walker Jenkins",
        "offense_factor": 1.0088,
        "quality_score": 0.1172,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "805805",
          "espn_rank": null
        },
        "metrics": {
          "pa": 56.0,
          "k_percent": 25.8,
          "bb_percent": 10.6,
          "woba": 0.316,
          "xwoba": 0.319,
          "xba": 0.228,
          "xslg": 0.394,
          "sweet_spot_percent": 34.1,
          "barrel_batted_rate": 9.8,
          "hard_hit_percent": 34.1,
          "exit_velocity_avg": 87.8,
          "launch_angle_avg": 14.8,
          "whiff_percent": 29.0,
          "swing_percent": 47.7
        },
        "components": {
          "expected_quality": 0.2889,
          "regression_edge": 0.0857,
          "xwoba_edge": 0.5714,
          "xba_edge": -0.2286,
          "xslg_edge": 0.4214,
          "barrel_edge": 0.6889,
          "hard_hit_edge": -0.5143,
          "exit_velocity_edge": -0.24,
          "sweet_spot_edge": 0.1333,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "2B",
        "player_id": "665019",
        "player_name": "Kody Clemens",
        "offense_factor": 1.0634,
        "quality_score": 0.8458,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "665019",
          "espn_rank": null
        },
        "metrics": {
          "pa": 539.0,
          "k_percent": 22.3,
          "bb_percent": 7.0,
          "woba": 0.33,
          "xwoba": 0.335,
          "xba": 0.253,
          "xslg": 0.456,
          "sweet_spot_percent": 33.6,
          "barrel_batted_rate": 11.4,
          "hard_hit_percent": 46.0,
          "exit_velocity_avg": 92.1,
          "launch_angle_avg": 15.4,
          "whiff_percent": 24.5,
          "swing_percent": 49.8
        },
        "components": {
          "expected_quality": 0.9602,
          "regression_edge": 0.1429,
          "xwoba_edge": 1.0286,
          "xba_edge": 0.4857,
          "xslg_edge": 1.3071,
          "barrel_edge": 1.0444,
          "hard_hit_edge": 1.1857,
          "exit_velocity_edge": 1.48,
          "sweet_spot_edge": 0.05,
          "launch_angle_hr_bonus": 0.2
        }
      },
      {
        "position": "SS",
        "player_id": "668952",
        "player_name": "Ryan Kreidler",
        "offense_factor": 0.9943,
        "quality_score": -0.0766,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "668952",
          "espn_rank": null
        },
        "metrics": {
          "pa": 243.0,
          "k_percent": 23.0,
          "bb_percent": 7.4,
          "woba": 0.294,
          "xwoba": 0.293,
          "xba": 0.218,
          "xslg": 0.384,
          "sweet_spot_percent": 26.7,
          "barrel_batted_rate": 8.5,
          "hard_hit_percent": 37.5,
          "exit_velocity_avg": 88.4,
          "launch_angle_avg": 13.1,
          "whiff_percent": 31.2,
          "swing_percent": 52.2
        },
        "components": {
          "expected_quality": -0.0845,
          "regression_edge": -0.0286,
          "xwoba_edge": -0.1714,
          "xba_edge": -0.5143,
          "xslg_edge": 0.2786,
          "barrel_edge": 0.4,
          "hard_hit_edge": -0.0286,
          "exit_velocity_edge": 0.0,
          "sweet_spot_edge": -1.1,
          "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"
}

Savant Pitcher Quality

Source: data/all_players_stats.csv embedded Savant pitcher and movement features. Starter quality modifies opposing run scoring and pitcher strikeout/walk/homer expectations.

TeamPitcherAvailableESPN RankQualitySample WtRun PrevK FactorBB FactorHR FactorRegressionxwOBAwOBAK%BB%Whiff%Barrel%HardHit%
Away MINTrue--0.293011.02490.97540.96801.0997neutral0.32400.325020.507.5022.2010.8042.20
Home SFTrue--0.19350.78801.01640.97751.00631.0588neutral0.32500.305018.909.5023.1010.5038.60

Pitch Movement And Arsenal

TeamPitcherMovement AvailablePrimary PitchPitchesVeloSpinAxisHBIVBDropRel XRel ZExtensionArm AngleMovement Score
Away MINTrueNone8889.972239000000000.0069
Home SFTrueNone8689.49245200000000-0.0201
Run FactorValue
away_runs_vs_home_pitcher1.0099
home_runs_vs_away_pitcher1.0196
home_pitcher_starter_only_factor1.0129
away_pitcher_starter_only_factor1.0249
home_pitcher_workload_share0.5926
away_pitcher_workload_share0.6296
home_pitcher_quality_edge0.0698
Raw Savant Pitcher Quality JSON
{
  "applied": true,
  "home_pitcher": {
    "available": true,
    "pitcher_id": "694918",
    "player_name": "",
    "source": "all_players_stats.csv embedded Savant pitcher features",
    "source_url": null,
    "metrics": {
      "pa": 197.0,
      "k_percent": 18.9,
      "bb_percent": 9.5,
      "woba": 0.305,
      "xwoba": 0.325,
      "sweet_spot_percent": 30.1,
      "barrel_batted_rate": 10.5,
      "hard_hit_percent": 38.6,
      "avg_best_speed": 77.2772,
      "avg_hyper_speed": 94.0983,
      "whiff_percent": 23.1,
      "swing_percent": 44.2
    },
    "league_medians": {
      "pa": 135.0,
      "k_percent": 22.0,
      "bb_percent": 9.1,
      "woba": 0.316,
      "xwoba": 0.311,
      "sweet_spot_percent": 33.3,
      "barrel_batted_rate": 7.2,
      "hard_hit_percent": 37.9,
      "avg_best_speed": 77.6329,
      "avg_hyper_speed": 93.8957,
      "whiff_percent": 25.0,
      "swing_percent": 47.4
    },
    "components": {
      "contact_quality": -0.1876,
      "command_and_miss": -0.3143,
      "regression_edge": -0.5714,
      "xwoba_edge": -0.4,
      "barrel_edge": -0.7333,
      "hard_hit_edge": -0.1,
      "whiff_edge": -0.2714,
      "bb_edge": -0.1,
      "pitch_design_score": -0.0201
    },
    "pitch_movement_profile": {
      "available": true,
      "pitcher_id": "694918",
      "player_name": null,
      "source": "all_players_stats.csv embedded Savant pitcher movement features",
      "total_pitches": 86,
      "primary_pitch": {
        "pitch_type": null,
        "pitch_name": null,
        "pitches": 86,
        "pitch_usage": 0.0,
        "release_speed": 89.4928593467488,
        "release_spin_rate": 2451.7297481784312,
        "spin_axis": null,
        "horizontal_break_inches": 0.0,
        "induced_vertical_break_inches": 0.0,
        "vertical_break_with_gravity_inches": null,
        "release_pos_x": null,
        "release_pos_z": null,
        "release_extension": 0.0,
        "arm_angle": 0.0,
        "whiff_percent": 0.0,
        "xwoba": 0.0,
        "hard_hit_percent": 0.0
      },
      "pitch_mix": [
        {
          "pitch_type": null,
          "pitch_name": null,
          "pitches": 86,
          "pitch_usage": 0.0,
          "release_speed": 89.4928593467488,
          "release_spin_rate": 2451.7297481784312,
          "spin_axis": null,
          "horizontal_break_inches": 0.0,
          "induced_vertical_break_inches": 0.0,
          "vertical_break_with_gravity_inches": null,
          "release_pos_x": null,
          "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.4929,
        "release_spin_rate": 2451.7297,
        "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.0201,
        "horizontal_break_edge": 0.0,
        "induced_vertical_break_edge": 0.0,
        "extension_edge": 0.0,
        "velocity_edge": -0.1435,
        "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.1935,
    "sample_weight": 0.788,
    "run_prevention_factor": 1.0164,
    "strikeout_factor": 0.9775,
    "walk_factor": 1.0063,
    "homer_factor": 1.0588,
    "woba_minus_xwoba": -0.02,
    "regression_flag": "neutral",
    "espn_rank": {
      "available": false,
      "player_id": "694918",
      "espn_rank": null
    }
  },
  "away_pitcher": {
    "available": true,
    "pitcher_id": "805673",
    "player_name": "",
    "source": "all_players_stats.csv embedded Savant pitcher features",
    "source_url": null,
    "metrics": {
      "pa": 499.0,
      "k_percent": 20.5,
      "bb_percent": 7.5,
      "woba": 0.325,
      "xwoba": 0.324,
      "sweet_spot_percent": 34.4,
      "barrel_batted_rate": 10.8,
      "hard_hit_percent": 42.2,
      "avg_best_speed": 80.9334,
      "avg_hyper_speed": 94.7522,
      "whiff_percent": 22.2,
      "swing_percent": 47.6
    },
    "league_medians": {
      "pa": 135.0,
      "k_percent": 22.0,
      "bb_percent": 9.1,
      "woba": 0.316,
      "xwoba": 0.311,
      "sweet_spot_percent": 33.3,
      "barrel_batted_rate": 7.2,
      "hard_hit_percent": 37.9,
      "avg_best_speed": 77.6329,
      "avg_hyper_speed": 93.8957,
      "whiff_percent": 25.0,
      "swing_percent": 47.4
    },
    "components": {
      "contact_quality": -0.4567,
      "command_and_miss": -0.1564,
      "regression_edge": 0.0286,
      "xwoba_edge": -0.3714,
      "barrel_edge": -0.8,
      "hard_hit_edge": -0.6143,
      "whiff_edge": -0.4,
      "bb_edge": 0.4,
      "pitch_design_score": 0.0069
    },
    "pitch_movement_profile": {
      "available": true,
      "pitcher_id": "805673",
      "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": 89.97441694218836,
        "release_spin_rate": 2239.16671925691,
        "spin_axis": null,
        "horizontal_break_inches": 0.0,
        "induced_vertical_break_inches": 0.0,
        "vertical_break_with_gravity_inches": null,
        "release_pos_x": null,
        "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": 89.97441694218836,
          "release_spin_rate": 2239.16671925691,
          "spin_axis": null,
          "horizontal_break_inches": 0.0,
          "induced_vertical_break_inches": 0.0,
          "vertical_break_with_gravity_inches": null,
          "release_pos_x": null,
          "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.9744,
        "release_spin_rate": 2239.1667,
        "spin_axis": 0.0,
        "horizontal_break_inches": 0.0,
        "induced_vertical_break_inches": 0.0,
        "vertical_break_with_gravity_inches": 0.0,
        "release_pos_x": 0.0,
        "release_pos_z": 0.0,
        "release_extension": 0.0,
        "arm_angle": 0.0,
        "whiff_percent": 0.0,
        "xwoba": 0.0,
        "hard_hit_percent": 0.0
      },
      "components": {
        "movement_score": 0.0069,
        "horizontal_break_edge": 0.0,
        "induced_vertical_break_edge": 0.0,
        "extension_edge": 0.0,
        "velocity_edge": 0.0492,
        "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.293,
    "sample_weight": 1.0,
    "run_prevention_factor": 1.0249,
    "strikeout_factor": 0.9754,
    "walk_factor": 0.968,
    "homer_factor": 1.0997,
    "woba_minus_xwoba": 0.001,
    "regression_flag": "neutral",
    "espn_rank": {
      "available": false,
      "player_id": "805673",
      "espn_rank": null
    }
  },
  "run_factors": {
    "away_runs_vs_home_pitcher": 1.0099,
    "home_runs_vs_away_pitcher": 1.0196,
    "home_pitcher_starter_only_factor": 1.0129,
    "away_pitcher_starter_only_factor": 1.0249,
    "home_pitcher_workload_share": 0.5926,
    "away_pitcher_workload_share": 0.6296,
    "home_pitcher_quality_edge": 0.0698
  },
  "score_before": {
    "away_runs": 5.0,
    "home_runs": 4.0
  },
  "score_after": {
    "away_runs": 5.0497,
    "home_runs": 4.0783,
    "home_win_probability": 0.4187
  },
  "reason": "Baseball Savant xwOBA, barrel, hard-hit, sweet-spot, whiff, K%, and BB% adjusted starter run prevention"
}

Team Form Snapshot

TeamLast-10 W-LWin %R/GRA/GRun DiffStreakOffenseDefense
Away MIN4-60.4003.704.80-111Waverageaverage
Home SF3-70.3004.605.70-113Laverageweak

Season Run Differential

TeamRecordWin %Run DiffRD/GameAvailable
Away MIN73-830.468-64-0.410True
Home SF64-920.410-84-0.538True
Signal---0.128-0.162applied=False

Recent Head-to-Head

DateMatchupScoreWinnerMarginType
------

Player/Game Reconciliation

LayerABHRHRRBIBBSO
Game target MIN--5----
Game target SF--4----
Player finalized MIN33741437
Player finalized SF30731438
Player model fractional MIN33.217.723.991.114.122.886.82
Player model fractional SF26.455.523.110.632.431.957.95
Simulation box MIN4111535411
Simulation box SF366414410

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.

Pitching Snapshot

TeamRolePitcherPre IPPre ERPre SOPre HPre BBWeighted ERAWeighted WHIPBox Sync
Away MINStarterZebby Matthews5.2017204.001.12True
Away MINMiddle Reliever (High Leverage)A.J. Minter100104.041.35True
Away MINSetup ManJeff Hoffman101011.760.93True
Away MINCloserYoendrys Gómez1.10323314.123.15True
Away MINRelieverTaylor Rogers000004.151.71-
Home SFStarterBlade Tidwell5.1035624.751.25True
Home SFMiddle Reliever (High Leverage)Carson Seymour1.2001114.261.54True
Home SFCloserDylan Smith1.1001115.271.78True
Home SFSetup ManTrent Harris0.2012202.731.15True
Home SFMiddle Reliever (High Leverage)Jason Foley012104.771.52True
Market-line comparison is not rendered because no local odds or sportsbook line CSV was found in data/. Add a real odds source before using market deltas as a model feature.

Player Boost/Deboost Impact Summary

SideTeamRolePosPlayerDominantChangedBoostedDeboostedBetterWorseLargest MetricLargest DeltaDirectionEffect
awayMINbatterDHAlan Rodenbetter1192101predicted_AB2.4290boostbetter
homeSFbatterSSChristian Kossworse92718predicted_SO2.2370boostworse
awayMINbatterSSRyan Kreidlerworse113829predicted_AB2.2140boostbetter
homeSFbatter2BJonah Coxworse82617predicted_AB2.1780boostbetter
awayMINbatterCFWalker Jenkinsworse115647predicted_SO2.0560boostworse
homeSFbatterDHMarcelo Mayerbetter85362predicted_AB1.9850boostbetter
homeSFbatter1BBrett Harrisbetter108291predicted_H1.6300boostbetter
awayMINbatter2BKody Clemensworse105546predicted_RBI1.4900boostbetter
homeSFbatterLFScott Banduraworse102837predicted_SO-1.4060deboostbetter
homeSFbatterCDrew Cavanaughworse114738predicted_AB1.3800boostbetter
awayMINbatterLFEmmanuel Rodriguezbetter117465predicted_AB1.3330boostbetter
homeSFbatter3BOsleivis Basabebetter97263predicted_SO1.2820boostworse
homeSFbatterCFDrew Gilbertworse115647predicted_AB1.2330boostbetter
homeSFbatterRFPlayer-815589better84453predicted_H1.1940boostbetter
awayMINbatterCRyan Jeffersbetter106473predicted_H1.1000boostbetter
awayMINbatterRFLuke Keaschallbetter118374predicted_H1.0280boostbetter
awayMINbatter3BBrooks Leeworse113829predicted_AB-0.9500deboostworse
awayMINbatter1BPlayer-693306worse83526predicted_H-0.8880deboostworse
awayMINpitcherCloserYoendrys Gómezbetter11010predicted_IP0.5333boostbetter
awayMINpitcherStarterZebby Matthewsworse10101predicted_IP-0.4667deboostworse
homeSFpitcherMiddle Reliever (High Leverage)Jason Foleyworse10101predicted_IP-0.4667deboostworse
homeSFpitcherStarterBlade Tidwellworse10101predicted_IP-0.2333deboostworse
homeSFpitcherMiddle Reliever (High Leverage)Carson Seymourbetter11010predicted_IP0.2000boostbetter
awayMINpitcherRelieverTaylor Rogersbetter11010predicted_IP0.1000boostbetter
homeSFpitcherCloserDylan Smithbetter11010predicted_IP0.1000boostbetter

This table ranks players whose JSON evolution changed materially. Boost/deboost is numeric movement; better/worse is role-aware.

Away Team: MIN

Away Pitcher Deep Analysis

FieldValue
PitcherZebby Matthews
RoleStarter
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score-0.2930
ESPN Rank-
Movement AvailableTrue
Primary Pitch-
Movement Score0.0069
Avg Velo89.9744
Avg Spin2239.1667
HB Inches0
IVB Inches0
Release Extension0
Pre IP5.2000
Pre ER1
Pre H2
Pre BB0
Pre SO7
Season ERA4.7394
Season WHIP1.2447
Role Avg IP5.6970
Recent Avg IP5.7330
Last Start IP6
Team Form Snapshot
{
  "method": "team_form_snapshot",
  "role": "pitcher",
  "team": {
    "team": "MIN",
    "games": 156,
    "wins": 73,
    "losses": 83,
    "win_pct": 0.4679,
    "runs_scored": 712.0,
    "runs_allowed": 776.0,
    "run_differential": -64.0,
    "run_differential_per_game": -0.4103,
    "avg_runs_scored": 4.5641,
    "avg_runs_allowed": 4.9744,
    "offense_index": 1.0136,
    "defense_index": 0.9052,
    "current_streak": "W1",
    "recent": {
      "games": 10,
      "wins": 4,
      "losses": 6,
      "win_pct": 0.4,
      "avg_runs_scored": 3.7,
      "avg_runs_allowed": 4.8,
      "run_differential": -11.0
    },
    "available": true,
    "quality_score": -0.1124
  },
  "opponent": {
    "team": "SF",
    "games": 156,
    "wins": 64,
    "losses": 92,
    "win_pct": 0.4103,
    "runs_scored": 656.0,
    "runs_allowed": 740.0,
    "run_differential": -84.0,
    "run_differential_per_game": -0.5385,
    "avg_runs_scored": 4.2051,
    "avg_runs_allowed": 4.7436,
    "offense_index": 0.9339,
    "defense_index": 0.9492,
    "current_streak": "L3",
    "recent": {
      "games": 10,
      "wins": 3,
      "losses": 7,
      "win_pct": 0.3,
      "avg_runs_scored": 4.6,
      "avg_runs_allowed": 5.7,
      "run_differential": -11.0
    },
    "available": true,
    "quality_score": -0.212
  },
  "edges": {
    "quality_edge": 0.0996,
    "offense_edge": 0.0136,
    "opponent_offense_edge": -0.0661,
    "defense_strength": -0.0948,
    "opponent_defense_weakness": 0.0508,
    "recent_win_pct_edge": 0.1
  },
  "player_factors": {
    "ip": 1.0038,
    "run_prevention": 0.9939,
    "strikeout": 1.0083
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "805673",
    "profile": {
      "available": true,
      "pitcher_id": "805673",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 499.0,
        "k_percent": 20.5,
        "bb_percent": 7.5,
        "woba": 0.325,
        "xwoba": 0.324,
        "sweet_spot_percent": 34.4,
        "barrel_batted_rate": 10.8,
        "hard_hit_percent": 42.2,
        "avg_best_speed": 80.9334,
        "avg_hyper_speed": 94.7522,
        "whiff_percent": 22.2,
        "swing_percent": 47.6
      },
      "league_medians": {
        "pa": 135.0,
        "k_percent": 22.0,
        "bb_percent": 9.1,
        "woba": 0.316,
        "xwoba": 0.311,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6329,
        "avg_hyper_speed": 93.8957,
        "whiff_percent": 25.0,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": -0.4567,
        "command_and_miss": -0.1564,
        "regression_edge": 0.0286,
        "xwoba_edge": -0.3714,
        "barrel_edge": -0.8,
        "hard_hit_edge": -0.6143,
        "whiff_edge": -0.4,
        "bb_edge": 0.4,
        "pitch_design_score": 0.0069
      },
      "pitch_movement_profile": {
        "available": true,
        "pitcher_id": "805673",
        "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": 89.97441694218836,
          "release_spin_rate": 2239.16671925691,
          "spin_axis": null,
          "horizontal_break_inches": 0.0,
          "induced_vertical_break_inches": 0.0,
          "vertical_break_with_gravity_inches": null,
          "release_pos_x": null,
          "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": 89.97441694218836,
            "release_spin_rate": 2239.16671925691,
            "spin_axis": null,
            "horizontal_break_inches": 0.0,
            "induced_vertical_break_inches": 0.0,
            "vertical_break_with_gravity_inches": null,
            "release_pos_x": null,
            "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.9744,
          "release_spin_rate": 2239.1667,
          "spin_axis": 0.0,
          "horizontal_break_inches": 0.0,
          "induced_vertical_break_inches": 0.0,
          "vertical_break_with_gravity_inches": 0.0,
          "release_pos_x": 0.0,
          "release_pos_z": 0.0,
          "release_extension": 0.0,
          "arm_angle": 0.0,
          "whiff_percent": 0.0,
          "xwoba": 0.0,
          "hard_hit_percent": 0.0
        },
        "components": {
          "movement_score": 0.0069,
          "horizontal_break_edge": 0.0,
          "induced_vertical_break_edge": 0.0,
          "extension_edge": 0.0,
          "velocity_edge": 0.0492,
          "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.293,
      "sample_weight": 1.0,
      "run_prevention_factor": 1.0249,
      "strikeout_factor": 0.9754,
      "walk_factor": 0.968,
      "homer_factor": 1.0997,
      "woba_minus_xwoba": 0.001,
      "regression_flag": "neutral",
      "espn_rank": {
        "available": false,
        "player_id": "805673",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 2.0,
        "factor": 1.0249,
        "adjusted": 2
      },
      "predicted_H": {
        "original": 4.0,
        "factor": 1.0249,
        "adjusted": 4
      },
      "predicted_BB": {
        "original": 2.0,
        "factor": 0.968,
        "adjusted": 2
      },
      "predicted_HR": {
        "original": 1.0,
        "factor": 1.0997,
        "adjusted": 1
      },
      "predicted_SO": {
        "original": 5.0,
        "factor": 0.9754,
        "adjusted": 5
      }
    }
  }
}
Recent Form Pitching
{
  "hitting": {
    "AB": 0,
    "H": 0,
    "HR": 0,
    "RBI": 0,
    "R": 0,
    "BB": 0,
    "SO": 0,
    "2B": 0,
    "3B": 0,
    "AVG": 0,
    "OBP": 0,
    "SLG": 0,
    "OPS": 0,
    "games_played": 0,
    "hot_streak": false,
    "cold_streak": true,
    "trend": "stable"
  },
  "pitching": {
    "IP": 55.1,
    "ER": 24,
    "H": 44,
    "BB": 18,
    "SO": 49,
    "HR": 8,
    "ERA": 3.903614457831325,
    "WHIP": 1.1204819277108433,
    "K9": 7.969879518072289,
    "HR9": 1.3012048192771084,
    "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-16T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": true,
  "pitcher_id": "805673",
  "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": 89.97441694218836,
    "release_spin_rate": 2239.16671925691,
    "spin_axis": null,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": null,
    "release_pos_x": null,
    "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": 89.97441694218836,
      "release_spin_rate": 2239.16671925691,
      "spin_axis": null,
      "horizontal_break_inches": 0.0,
      "induced_vertical_break_inches": 0.0,
      "vertical_break_with_gravity_inches": null,
      "release_pos_x": null,
      "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.9744,
    "release_spin_rate": 2239.1667,
    "spin_axis": 0.0,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": 0.0,
    "release_pos_x": 0.0,
    "release_pos_z": 0.0,
    "release_extension": 0.0,
    "arm_angle": 0.0,
    "whiff_percent": 0.0,
    "xwoba": 0.0,
    "hard_hit_percent": 0.0
  },
  "components": {
    "movement_score": 0.0069,
    "horizontal_break_edge": 0.0,
    "induced_vertical_break_edge": 0.0,
    "extension_edge": 0.0,
    "velocity_edge": 0.0492,
    "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."
}
Player Form Blend
{
  "form_version": "player_form_v3_5_10_season",
  "method": "weighted_recent_form",
  "description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
  "weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "effective_weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 22.0,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.8148,
    "prior_weight": 0.1852
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "805673",
  "report_date": "20260921",
  "season_year": 2026,
  "rows_used": 22,
  "reference_playing_time": 5.667,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 28.2,
        "ER": 11.0,
        "R": 11.0,
        "H": 19.0,
        "BB": 8.0,
        "SO": 26.0,
        "HR": 4.0,
        "BF": 112.0,
        "Pitches": 447.0
      },
      "per_game": {
        "IP": 5.2,
        "ER": 2.2,
        "R": 2.2,
        "H": 3.8,
        "BB": 1.6,
        "SO": 5.2,
        "HR": 0.8,
        "BF": 22.4,
        "Pitches": 89.4
      },
      "rates": {
        "ERA": 3.4535,
        "WHIP": 0.9419,
        "ER_per_IP": 0.38372,
        "H_per_IP": 0.66279,
        "BB_per_IP": 0.27907,
        "SO_per_IP": 0.90698,
        "HR_per_IP": 0.13953
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 55.1,
        "ER": 24.0,
        "R": 27.0,
        "H": 44.0,
        "BB": 18.0,
        "SO": 49.0,
        "HR": 8.0,
        "BF": 225.0,
        "Pitches": 907.0
      },
      "per_game": {
        "IP": 5.2,
        "ER": 2.4,
        "R": 2.7,
        "H": 4.4,
        "BB": 1.8,
        "SO": 4.9,
        "HR": 0.8,
        "BF": 22.5,
        "Pitches": 90.7
      },
      "rates": {
        "ERA": 3.9036,
        "WHIP": 1.1205,
        "ER_per_IP": 0.43373,
        "H_per_IP": 0.79518,
        "BB_per_IP": 0.3253,
        "SO_per_IP": 0.88554,
        "HR_per_IP": 0.14458
      }
    },
    "season": {
      "games": 22,
      "totals": {
        "IP": 125.1,
        "ER": 66.0,
        "R": 71.0,
        "H": 117.0,
        "BB": 39.0,
        "SO": 107.0,
        "HR": 23.0,
        "BF": 522.0,
        "Pitches": 2017.0
      },
      "per_game": {
        "IP": 5.2,
        "ER": 3.0,
        "R": 3.2273,
        "H": 5.3182,
        "BB": 1.7727,
        "SO": 4.8636,
        "HR": 1.0455,
        "BF": 23.7273,
        "Pitches": 91.6818
      },
      "rates": {
        "ERA": 4.7394,
        "WHIP": 1.2447,
        "ER_per_IP": 0.5266,
        "H_per_IP": 0.93351,
        "BB_per_IP": 0.31117,
        "SO_per_IP": 0.85372,
        "HR_per_IP": 0.18351
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 5.2,
    "predicted_ER": 2.519,
    "predicted_H": 4.553,
    "predicted_BB": 1.788,
    "predicted_SO": 5.087,
    "predicted_HR": 0.849,
    "predicted_ERA": 4.0012,
    "predicted_WHIP": 1.119
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.4282,
  "form_weight": 0.5718,
  "form_reliability": 0.8148,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 22.0,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.8148,
    "prior_weight": 0.1852
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 5.2,
      "form": 5.2,
      "final": 5.2,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 1.0,
      "form": 2.519,
      "final": 1.8685,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 2.0,
      "form": 4.553,
      "final": 3.4597,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 0.0,
      "form": 1.788,
      "final": 1.0223,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 7.0,
      "form": 5.087,
      "final": 5.9062,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 0.0,
      "form": 0.849,
      "final": 0.4854,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 4.0012,
      "final": 4.0012,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 1.119,
      "final": 1.119,
      "source": "form_only"
    }
  }
}
Inning Pitch Details
{
  "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."
}
FieldValue
PitcherA.J. Minter
RoleMiddle Reliever (High Leverage)
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score0.1230
ESPN Rank-
Movement AvailableTrue
Primary Pitch-
Movement Score0.0153
Avg Velo90.1253
Avg Spin2416.6268
HB Inches0
IVB Inches0
Release Extension0
Pre IP1
Pre ER0
Pre H1
Pre BB0
Pre SO0
Season ERA2.0930
Season WHIP1.0233
Role Avg IP0.9770
Recent Avg IP1
Last Start IP0
Team Form Snapshot
{
  "method": "team_form_snapshot",
  "role": "pitcher",
  "team": {
    "team": "MIN",
    "games": 156,
    "wins": 73,
    "losses": 83,
    "win_pct": 0.4679,
    "runs_scored": 712.0,
    "runs_allowed": 776.0,
    "run_differential": -64.0,
    "run_differential_per_game": -0.4103,
    "avg_runs_scored": 4.5641,
    "avg_runs_allowed": 4.9744,
    "offense_index": 1.0136,
    "defense_index": 0.9052,
    "current_streak": "W1",
    "recent": {
      "games": 10,
      "wins": 4,
      "losses": 6,
      "win_pct": 0.4,
      "avg_runs_scored": 3.7,
      "avg_runs_allowed": 4.8,
      "run_differential": -11.0
    },
    "available": true,
    "quality_score": -0.1124
  },
  "opponent": {
    "team": "SF",
    "games": 156,
    "wins": 64,
    "losses": 92,
    "win_pct": 0.4103,
    "runs_scored": 656.0,
    "runs_allowed": 740.0,
    "run_differential": -84.0,
    "run_differential_per_game": -0.5385,
    "avg_runs_scored": 4.2051,
    "avg_runs_allowed": 4.7436,
    "offense_index": 0.9339,
    "defense_index": 0.9492,
    "current_streak": "L3",
    "recent": {
      "games": 10,
      "wins": 3,
      "losses": 7,
      "win_pct": 0.3,
      "avg_runs_scored": 4.6,
      "avg_runs_allowed": 5.7,
      "run_differential": -11.0
    },
    "available": true,
    "quality_score": -0.212
  },
  "edges": {
    "quality_edge": 0.0996,
    "offense_edge": 0.0136,
    "opponent_offense_edge": -0.0661,
    "defense_strength": -0.0948,
    "opponent_defense_weakness": 0.0508,
    "recent_win_pct_edge": 0.1
  },
  "player_factors": {
    "ip": 1.0038,
    "run_prevention": 0.9939,
    "strikeout": 1.0083
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "621345",
    "profile": {
      "available": true,
      "pitcher_id": "621345",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 170.0,
        "k_percent": 22.7,
        "bb_percent": 4.5,
        "woba": 0.299,
        "xwoba": 0.299,
        "sweet_spot_percent": 29.1,
        "barrel_batted_rate": 10.2,
        "hard_hit_percent": 36.2,
        "avg_best_speed": 75.3917,
        "avg_hyper_speed": 93.1308,
        "whiff_percent": 23.8,
        "swing_percent": 52.3
      },
      "league_medians": {
        "pa": 135.0,
        "k_percent": 22.0,
        "bb_percent": 9.1,
        "woba": 0.316,
        "xwoba": 0.311,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6329,
        "avg_hyper_speed": 93.8957,
        "whiff_percent": 25.0,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": 0.221,
        "command_and_miss": 0.215,
        "regression_edge": 0.0,
        "xwoba_edge": 0.3429,
        "barrel_edge": -0.6667,
        "hard_hit_edge": 0.2429,
        "whiff_edge": -0.1714,
        "bb_edge": 1.15,
        "pitch_design_score": 0.0153
      },
      "pitch_movement_profile": {
        "available": true,
        "pitcher_id": "621345",
        "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": 90.12527566874944,
          "release_spin_rate": 2416.626806784899,
          "spin_axis": null,
          "horizontal_break_inches": 0.0,
          "induced_vertical_break_inches": 0.0,
          "vertical_break_with_gravity_inches": null,
          "release_pos_x": null,
          "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": 90.12527566874944,
            "release_spin_rate": 2416.626806784899,
            "spin_axis": null,
            "horizontal_break_inches": 0.0,
            "induced_vertical_break_inches": 0.0,
            "vertical_break_with_gravity_inches": null,
            "release_pos_x": null,
            "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.1253,
          "release_spin_rate": 2416.6268,
          "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.0153,
          "horizontal_break_edge": 0.0,
          "induced_vertical_break_edge": 0.0,
          "extension_edge": 0.0,
          "velocity_edge": 0.1095,
          "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.123,
      "sample_weight": 0.68,
      "run_prevention_factor": 0.9895,
      "strikeout_factor": 0.9981,
      "walk_factor": 0.9374,
      "homer_factor": 1.0227,
      "woba_minus_xwoba": 0.0,
      "regression_flag": "neutral",
      "espn_rank": {
        "available": false,
        "player_id": "621345",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 0.0,
        "factor": 0.9929,
        "adjusted": 0
      },
      "predicted_H": {
        "original": 1.0,
        "factor": 0.9929,
        "adjusted": 1
      },
      "predicted_BB": {
        "original": 0.0,
        "factor": 0.9574,
        "adjusted": 0
      },
      "predicted_HR": {
        "original": 0.0,
        "factor": 1.0154,
        "adjusted": 0
      },
      "predicted_SO": {
        "original": 2.0,
        "factor": 0.9987,
        "adjusted": 2
      }
    }
  }
}
Recent Form Pitching
{
  "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": 3,
    "H": 9,
    "BB": 4,
    "SO": 12,
    "HR": 2,
    "ERA": 2.8928571428571432,
    "WHIP": 1.392857142857143,
    "K9": 11.571428571428573,
    "HR9": 1.9285714285714288,
    "games_pitched": 9,
    "quality_starts": 0,
    "dominant_form": false,
    "struggling_form": false
  },
  "fielding": {
    "errors": 0,
    "assists": 0,
    "games_fielded": 10,
    "error_prone": false
  },
  "games_count": 10,
  "latest_game_date": "2026-09-19T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": true,
  "pitcher_id": "621345",
  "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": 90.12527566874944,
    "release_spin_rate": 2416.626806784899,
    "spin_axis": null,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": null,
    "release_pos_x": null,
    "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": 90.12527566874944,
      "release_spin_rate": 2416.626806784899,
      "spin_axis": null,
      "horizontal_break_inches": 0.0,
      "induced_vertical_break_inches": 0.0,
      "vertical_break_with_gravity_inches": null,
      "release_pos_x": null,
      "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.1253,
    "release_spin_rate": 2416.6268,
    "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.0153,
    "horizontal_break_edge": 0.0,
    "induced_vertical_break_edge": 0.0,
    "extension_edge": 0.0,
    "velocity_edge": 0.1095,
    "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."
}
Player Form Blend
{
  "form_version": "player_form_v3_5_10_season",
  "method": "weighted_recent_form",
  "description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
  "weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "effective_weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 8.745,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.6362,
    "prior_weight": 0.3638
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "621345",
  "report_date": "20260921",
  "season_year": 2026,
  "rows_used": 44,
  "reference_playing_time": 1.0,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 5.0,
        "ER": 3.0,
        "R": 3.0,
        "H": 7.0,
        "BB": 1.0,
        "SO": 7.0,
        "HR": 2.0,
        "BF": 23.0,
        "Pitches": 77.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.6,
        "R": 0.6,
        "H": 1.4,
        "BB": 0.2,
        "SO": 1.4,
        "HR": 0.4,
        "BF": 4.6,
        "Pitches": 15.4
      },
      "rates": {
        "ERA": 5.4,
        "WHIP": 1.6,
        "ER_per_IP": 0.6,
        "H_per_IP": 1.4,
        "BB_per_IP": 0.2,
        "SO_per_IP": 1.4,
        "HR_per_IP": 0.4
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 10.2,
        "ER": 3.0,
        "R": 3.0,
        "H": 9.0,
        "BB": 4.0,
        "SO": 14.0,
        "HR": 2.0,
        "BF": 45.0,
        "Pitches": 178.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.3,
        "R": 0.3,
        "H": 0.9,
        "BB": 0.4,
        "SO": 1.4,
        "HR": 0.2,
        "BF": 4.5,
        "Pitches": 17.8
      },
      "rates": {
        "ERA": 2.5312,
        "WHIP": 1.2188,
        "ER_per_IP": 0.28125,
        "H_per_IP": 0.84375,
        "BB_per_IP": 0.375,
        "SO_per_IP": 1.3125,
        "HR_per_IP": 0.1875
      }
    },
    "season": {
      "games": 44,
      "totals": {
        "IP": 43.0,
        "ER": 10.0,
        "R": 12.0,
        "H": 36.0,
        "BB": 8.0,
        "SO": 40.0,
        "HR": 7.0,
        "BF": 173.0,
        "Pitches": 634.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.2273,
        "R": 0.2727,
        "H": 0.8182,
        "BB": 0.1818,
        "SO": 0.9091,
        "HR": 0.1591,
        "BF": 3.9318,
        "Pitches": 14.4091
      },
      "rates": {
        "ERA": 2.093,
        "WHIP": 1.0233,
        "ER_per_IP": 0.23256,
        "H_per_IP": 0.83721,
        "BB_per_IP": 0.18605,
        "SO_per_IP": 0.93023,
        "HR_per_IP": 0.16279
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 1.0,
    "predicted_ER": 0.449,
    "predicted_H": 1.052,
    "predicted_BB": 0.301,
    "predicted_SO": 1.152,
    "predicted_HR": 0.231,
    "predicted_ERA": 4.0443,
    "predicted_WHIP": 1.3532
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.5037,
  "form_weight": 0.4963,
  "form_reliability": 0.6362,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 8.745,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.6362,
    "prior_weight": 0.3638
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 1.0,
      "form": 1.0,
      "final": 1.0,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 0.0,
      "form": 0.449,
      "final": 0.2228,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 1.0,
      "form": 1.052,
      "final": 1.0258,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 0.0,
      "form": 0.301,
      "final": 0.1494,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 0.0,
      "form": 1.152,
      "final": 0.5717,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 1.0,
      "form": 0.231,
      "final": 0.6183,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 4.0443,
      "final": 4.0443,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 1.3532,
      "final": 1.3532,
      "source": "form_only"
    }
  }
}
Inning Pitch Details
{
  "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."
}
FieldValue
PitcherJeff Hoffman
RoleSetup Man
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score0.6519
ESPN Rank-
Movement AvailableTrue
Primary Pitch-
Movement Score0.0372
Avg Velo90.5150
Avg Spin2486.7845
HB Inches0
IVB Inches0
Release Extension0
Pre IP1
Pre ER0
Pre H0
Pre BB1
Pre SO1
Season ERA3.4615
Season WHIP1.3077
Role Avg IP0.9290
Recent Avg IP0.8670
Last Start IP0
Team Form Snapshot
{
  "method": "team_form_snapshot",
  "role": "pitcher",
  "team": {
    "team": "MIN",
    "games": 156,
    "wins": 73,
    "losses": 83,
    "win_pct": 0.4679,
    "runs_scored": 712.0,
    "runs_allowed": 776.0,
    "run_differential": -64.0,
    "run_differential_per_game": -0.4103,
    "avg_runs_scored": 4.5641,
    "avg_runs_allowed": 4.9744,
    "offense_index": 1.0136,
    "defense_index": 0.9052,
    "current_streak": "W1",
    "recent": {
      "games": 10,
      "wins": 4,
      "losses": 6,
      "win_pct": 0.4,
      "avg_runs_scored": 3.7,
      "avg_runs_allowed": 4.8,
      "run_differential": -11.0
    },
    "available": true,
    "quality_score": -0.1124
  },
  "opponent": {
    "team": "SF",
    "games": 156,
    "wins": 64,
    "losses": 92,
    "win_pct": 0.4103,
    "runs_scored": 656.0,
    "runs_allowed": 740.0,
    "run_differential": -84.0,
    "run_differential_per_game": -0.5385,
    "avg_runs_scored": 4.2051,
    "avg_runs_allowed": 4.7436,
    "offense_index": 0.9339,
    "defense_index": 0.9492,
    "current_streak": "L3",
    "recent": {
      "games": 10,
      "wins": 3,
      "losses": 7,
      "win_pct": 0.3,
      "avg_runs_scored": 4.6,
      "avg_runs_allowed": 5.7,
      "run_differential": -11.0
    },
    "available": true,
    "quality_score": -0.212
  },
  "edges": {
    "quality_edge": 0.0996,
    "offense_edge": 0.0136,
    "opponent_offense_edge": -0.0661,
    "defense_strength": -0.0948,
    "opponent_defense_weakness": 0.0508,
    "recent_win_pct_edge": 0.1
  },
  "player_factors": {
    "ip": 1.0038,
    "run_prevention": 0.9939,
    "strikeout": 1.0083
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "656546",
    "profile": {
      "available": true,
      "pitcher_id": "656546",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 274.0,
        "k_percent": 35.3,
        "bb_percent": 9.8,
        "woba": 0.293,
        "xwoba": 0.278,
        "sweet_spot_percent": 35.8,
        "barrel_batted_rate": 8.7,
        "hard_hit_percent": 36.4,
        "avg_best_speed": 78.2517,
        "avg_hyper_speed": 93.4497,
        "whiff_percent": 38.2,
        "swing_percent": 49.9
      },
      "league_medians": {
        "pa": 135.0,
        "k_percent": 22.0,
        "bb_percent": 9.1,
        "woba": 0.316,
        "xwoba": 0.311,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6329,
        "avg_hyper_speed": 93.8957,
        "whiff_percent": 25.0,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": 0.3952,
        "command_and_miss": 1.48,
        "regression_edge": 0.4286,
        "xwoba_edge": 0.9429,
        "barrel_edge": -0.3333,
        "hard_hit_edge": 0.2143,
        "whiff_edge": 1.8857,
        "bb_edge": -0.175,
        "pitch_design_score": 0.0372
      },
      "pitch_movement_profile": {
        "available": true,
        "pitcher_id": "656546",
        "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.51499233857929,
          "release_spin_rate": 2486.7844592847637,
          "spin_axis": null,
          "horizontal_break_inches": 0.0,
          "induced_vertical_break_inches": 0.0,
          "vertical_break_with_gravity_inches": null,
          "release_pos_x": null,
          "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.51499233857929,
            "release_spin_rate": 2486.7844592847637,
            "spin_axis": null,
            "horizontal_break_inches": 0.0,
            "induced_vertical_break_inches": 0.0,
            "vertical_break_with_gravity_inches": null,
            "release_pos_x": null,
            "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.515,
          "release_spin_rate": 2486.7845,
          "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.0372,
          "horizontal_break_edge": 0.0,
          "induced_vertical_break_edge": 0.0,
          "extension_edge": 0.0,
          "velocity_edge": 0.2654,
          "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.6519,
      "sample_weight": 1.0,
      "run_prevention_factor": 0.9446,
      "strikeout_factor": 1.1514,
      "walk_factor": 1.014,
      "homer_factor": 0.9898,
      "woba_minus_xwoba": 0.015,
      "regression_flag": "neutral",
      "espn_rank": {
        "available": false,
        "player_id": "656546",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 0.0,
        "factor": 0.9446,
        "adjusted": 0
      },
      "predicted_H": {
        "original": 1.0,
        "factor": 0.9446,
        "adjusted": 1
      },
      "predicted_BB": {
        "original": 0.0,
        "factor": 1.014,
        "adjusted": 0
      },
      "predicted_HR": {
        "original": 0.0,
        "factor": 0.9898,
        "adjusted": 0
      },
      "predicted_SO": {
        "original": 3.0,
        "factor": 1.1514,
        "adjusted": 3
      }
    }
  }
}
Recent Form Pitching
{
  "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": 0,
    "H": 2,
    "BB": 3,
    "SO": 15,
    "HR": 0,
    "ERA": 0.0,
    "WHIP": 0.5555555555555557,
    "K9": 15.000000000000004,
    "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-19T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": true,
  "pitcher_id": "656546",
  "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.51499233857929,
    "release_spin_rate": 2486.7844592847637,
    "spin_axis": null,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": null,
    "release_pos_x": null,
    "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.51499233857929,
      "release_spin_rate": 2486.7844592847637,
      "spin_axis": null,
      "horizontal_break_inches": 0.0,
      "induced_vertical_break_inches": 0.0,
      "vertical_break_with_gravity_inches": null,
      "release_pos_x": null,
      "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.515,
    "release_spin_rate": 2486.7845,
    "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.0372,
    "horizontal_break_edge": 0.0,
    "induced_vertical_break_edge": 0.0,
    "extension_edge": 0.0,
    "velocity_edge": 0.2654,
    "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."
}
Player Form Blend
{
  "form_version": "player_form_v3_5_10_season",
  "method": "weighted_recent_form",
  "description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
  "weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "effective_weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 13.219,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.7256,
    "prior_weight": 0.2744
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "656546",
  "report_date": "20260921",
  "season_year": 2026,
  "rows_used": 70,
  "reference_playing_time": 1.0,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 4.1,
        "ER": 0.0,
        "R": 0.0,
        "H": 0.0,
        "BB": 3.0,
        "SO": 8.0,
        "HR": 0.0,
        "BF": 16.0,
        "Pitches": 69.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.0,
        "R": 0.0,
        "H": 0.0,
        "BB": 0.6,
        "SO": 1.6,
        "HR": 0.0,
        "BF": 3.2,
        "Pitches": 13.8
      },
      "rates": {
        "ERA": 0.0,
        "WHIP": 0.6923,
        "ER_per_IP": 0.0,
        "H_per_IP": 0.0,
        "BB_per_IP": 0.69231,
        "SO_per_IP": 1.84615,
        "HR_per_IP": 0.0
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 9.0,
        "ER": 0.0,
        "R": 0.0,
        "H": 2.0,
        "BB": 3.0,
        "SO": 15.0,
        "HR": 0.0,
        "BF": 32.0,
        "Pitches": 139.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.0,
        "R": 0.0,
        "H": 0.2,
        "BB": 0.3,
        "SO": 1.5,
        "HR": 0.0,
        "BF": 3.2,
        "Pitches": 13.9
      },
      "rates": {
        "ERA": 0.0,
        "WHIP": 0.5556,
        "ER_per_IP": 0.0,
        "H_per_IP": 0.22222,
        "BB_per_IP": 0.33333,
        "SO_per_IP": 1.66667,
        "HR_per_IP": 0.0
      }
    },
    "season": {
      "games": 70,
      "totals": {
        "IP": 65.0,
        "ER": 25.0,
        "R": 32.0,
        "H": 57.0,
        "BB": 28.0,
        "SO": 101.0,
        "HR": 4.0,
        "BF": 286.0,
        "Pitches": 1187.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.3571,
        "R": 0.4571,
        "H": 0.8143,
        "BB": 0.4,
        "SO": 1.4429,
        "HR": 0.0571,
        "BF": 4.0857,
        "Pitches": 16.9571
      },
      "rates": {
        "ERA": 3.4615,
        "WHIP": 1.3077,
        "ER_per_IP": 0.38462,
        "H_per_IP": 0.87692,
        "BB_per_IP": 0.43077,
        "SO_per_IP": 1.55385,
        "HR_per_IP": 0.06154
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 1.0,
    "predicted_ER": 0.196,
    "predicted_H": 0.453,
    "predicted_BB": 0.477,
    "predicted_SO": 1.509,
    "predicted_HR": 0.05,
    "predicted_ERA": 1.7608,
    "predicted_WHIP": 0.9291
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.4659,
  "form_weight": 0.5341,
  "form_reliability": 0.7256,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 13.219,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.7256,
    "prior_weight": 0.2744
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 1.0,
      "form": 1.0,
      "final": 1.0,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 0.0,
      "form": 0.196,
      "final": 0.1047,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 0.0,
      "form": 0.453,
      "final": 0.2419,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 1.0,
      "form": 0.477,
      "final": 0.7207,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 1.0,
      "form": 1.509,
      "final": 1.2718,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 0.0,
      "form": 0.05,
      "final": 0.0267,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 1.7608,
      "final": 1.7608,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 0.9291,
      "final": 0.9291,
      "source": "form_only"
    }
  }
}
Inning Pitch Details
{
  "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."
}
FieldValue
PitcherYoendrys Gómez
RoleCloser
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score-0.6388
ESPN Rank-
Movement AvailableTrue
Primary Pitch-
Movement Score0.1289
Avg Velo92.1539
Avg Spin2529.1719
HB Inches0
IVB Inches0
Release Extension0
Pre IP1.1000
Pre ER3
Pre H3
Pre BB3
Pre SO2
Season ERA4.4767
Season WHIP1.5078
Role Avg IP0.9890
Recent Avg IP0.5330
Last Start IP0
Team Form Snapshot
{
  "method": "team_form_snapshot",
  "role": "pitcher",
  "team": {
    "team": "MIN",
    "games": 156,
    "wins": 73,
    "losses": 83,
    "win_pct": 0.4679,
    "runs_scored": 712.0,
    "runs_allowed": 776.0,
    "run_differential": -64.0,
    "run_differential_per_game": -0.4103,
    "avg_runs_scored": 4.5641,
    "avg_runs_allowed": 4.9744,
    "offense_index": 1.0136,
    "defense_index": 0.9052,
    "current_streak": "W1",
    "recent": {
      "games": 10,
      "wins": 4,
      "losses": 6,
      "win_pct": 0.4,
      "avg_runs_scored": 3.7,
      "avg_runs_allowed": 4.8,
      "run_differential": -11.0
    },
    "available": true,
    "quality_score": -0.1124
  },
  "opponent": {
    "team": "SF",
    "games": 156,
    "wins": 64,
    "losses": 92,
    "win_pct": 0.4103,
    "runs_scored": 656.0,
    "runs_allowed": 740.0,
    "run_differential": -84.0,
    "run_differential_per_game": -0.5385,
    "avg_runs_scored": 4.2051,
    "avg_runs_allowed": 4.7436,
    "offense_index": 0.9339,
    "defense_index": 0.9492,
    "current_streak": "L3",
    "recent": {
      "games": 10,
      "wins": 3,
      "losses": 7,
      "win_pct": 0.3,
      "avg_runs_scored": 4.6,
      "avg_runs_allowed": 5.7,
      "run_differential": -11.0
    },
    "available": true,
    "quality_score": -0.212
  },
  "edges": {
    "quality_edge": 0.0996,
    "offense_edge": 0.0136,
    "opponent_offense_edge": -0.0661,
    "defense_strength": -0.0948,
    "opponent_defense_weakness": 0.0508,
    "recent_win_pct_edge": 0.1
  },
  "player_factors": {
    "ip": 1.0038,
    "run_prevention": 0.9939,
    "strikeout": 1.0083
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "672782",
    "profile": {
      "available": true,
      "pitcher_id": "672782",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 268.0,
        "k_percent": 21.5,
        "bb_percent": 13.5,
        "woba": 0.326,
        "xwoba": 0.362,
        "sweet_spot_percent": 42.2,
        "barrel_batted_rate": 8.6,
        "hard_hit_percent": 44.9,
        "avg_best_speed": 77.751,
        "avg_hyper_speed": 94.0358,
        "whiff_percent": 26.0,
        "swing_percent": 46.8
      },
      "league_medians": {
        "pa": 135.0,
        "k_percent": 22.0,
        "bb_percent": 9.1,
        "woba": 0.316,
        "xwoba": 0.311,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6329,
        "avg_hyper_speed": 93.8957,
        "whiff_percent": 25.0,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": -0.8816,
        "command_and_miss": -0.2021,
        "regression_edge": -1.0286,
        "xwoba_edge": -1.4571,
        "barrel_edge": -0.3111,
        "hard_hit_edge": -1.0,
        "whiff_edge": 0.1429,
        "bb_edge": -1.1,
        "pitch_design_score": 0.1289
      },
      "pitch_movement_profile": {
        "available": true,
        "pitcher_id": "672782",
        "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.15392589940822,
          "release_spin_rate": 2529.171875348275,
          "spin_axis": null,
          "horizontal_break_inches": 0.0,
          "induced_vertical_break_inches": 0.0,
          "vertical_break_with_gravity_inches": null,
          "release_pos_x": null,
          "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.15392589940822,
            "release_spin_rate": 2529.171875348275,
            "spin_axis": null,
            "horizontal_break_inches": 0.0,
            "induced_vertical_break_inches": 0.0,
            "vertical_break_with_gravity_inches": null,
            "release_pos_x": null,
            "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.1539,
          "release_spin_rate": 2529.1719,
          "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.1289,
          "horizontal_break_edge": 0.0,
          "induced_vertical_break_edge": 0.0,
          "extension_edge": 0.0,
          "velocity_edge": 0.921,
          "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.6388,
      "sample_weight": 1.0,
      "run_prevention_factor": 1.0543,
      "strikeout_factor": 1.0029,
      "walk_factor": 1.088,
      "homer_factor": 1.1086,
      "woba_minus_xwoba": -0.036,
      "regression_flag": "negative_pitcher_regression",
      "espn_rank": {
        "available": false,
        "player_id": "672782",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 1.0,
        "factor": 1.0543,
        "adjusted": 1
      },
      "predicted_H": {
        "original": 1.0,
        "factor": 1.0543,
        "adjusted": 1
      },
      "predicted_BB": {
        "original": 1.0,
        "factor": 1.088,
        "adjusted": 1
      },
      "predicted_HR": {
        "original": 0.0,
        "factor": 1.1086,
        "adjusted": 0
      },
      "predicted_SO": {
        "original": 2.0,
        "factor": 1.0029,
        "adjusted": 2
      }
    }
  }
}
Recent Form Pitching
{
  "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": 12,
    "H": 13,
    "BB": 10,
    "SO": 10,
    "HR": 0,
    "ERA": 13.5,
    "WHIP": 2.875,
    "K9": 11.25,
    "HR9": 0.0,
    "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-19T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": true,
  "pitcher_id": "672782",
  "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.15392589940822,
    "release_spin_rate": 2529.171875348275,
    "spin_axis": null,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": null,
    "release_pos_x": null,
    "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.15392589940822,
      "release_spin_rate": 2529.171875348275,
      "spin_axis": null,
      "horizontal_break_inches": 0.0,
      "induced_vertical_break_inches": 0.0,
      "vertical_break_with_gravity_inches": null,
      "release_pos_x": null,
      "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.1539,
    "release_spin_rate": 2529.1719,
    "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.1289,
    "horizontal_break_edge": 0.0,
    "induced_vertical_break_edge": 0.0,
    "extension_edge": 0.0,
    "velocity_edge": 0.921,
    "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."
}
Player Form Blend
{
  "form_version": "player_form_v3_5_10_season",
  "method": "weighted_recent_form",
  "description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
  "weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "effective_weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 13.083,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.7235,
    "prior_weight": 0.2765
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "672782",
  "report_date": "20260921",
  "season_year": 2026,
  "rows_used": 63,
  "reference_playing_time": 0.667,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 2.2,
        "ER": 8.0,
        "R": 9.0,
        "H": 9.0,
        "BB": 6.0,
        "SO": 5.0,
        "HR": 0.0,
        "BF": 23.0,
        "Pitches": 97.0
      },
      "per_game": {
        "IP": 0.2,
        "ER": 1.6,
        "R": 1.8,
        "H": 1.8,
        "BB": 1.2,
        "SO": 1.0,
        "HR": 0.0,
        "BF": 4.6,
        "Pitches": 19.4
      },
      "rates": {
        "ERA": 27.0,
        "WHIP": 5.625,
        "ER_per_IP": 3.0,
        "H_per_IP": 3.375,
        "BB_per_IP": 2.25,
        "SO_per_IP": 1.875,
        "HR_per_IP": 0.0
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 8.0,
        "ER": 12.0,
        "R": 13.0,
        "H": 13.0,
        "BB": 10.0,
        "SO": 10.0,
        "HR": 0.0,
        "BF": 46.0,
        "Pitches": 177.0
      },
      "per_game": {
        "IP": 0.2,
        "ER": 1.2,
        "R": 1.3,
        "H": 1.3,
        "BB": 1.0,
        "SO": 1.0,
        "HR": 0.0,
        "BF": 4.6,
        "Pitches": 17.7
      },
      "rates": {
        "ERA": 13.5,
        "WHIP": 2.875,
        "ER_per_IP": 1.5,
        "H_per_IP": 1.625,
        "BB_per_IP": 1.25,
        "SO_per_IP": 1.25,
        "HR_per_IP": 0.0
      }
    },
    "season": {
      "games": 63,
      "totals": {
        "IP": 64.1,
        "ER": 32.0,
        "R": 36.0,
        "H": 58.0,
        "BB": 39.0,
        "SO": 62.0,
        "HR": 7.0,
        "BF": 289.0,
        "Pitches": 1119.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.5079,
        "R": 0.5714,
        "H": 0.9206,
        "BB": 0.619,
        "SO": 0.9841,
        "HR": 0.1111,
        "BF": 4.5873,
        "Pitches": 17.7619
      },
      "rates": {
        "ERA": 4.4767,
        "WHIP": 1.5078,
        "ER_per_IP": 0.49741,
        "H_per_IP": 0.90155,
        "BB_per_IP": 0.60622,
        "SO_per_IP": 0.96373,
        "HR_per_IP": 0.10881
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 0.2,
    "predicted_ER": 1.122,
    "predicted_H": 1.367,
    "predicted_BB": 0.887,
    "predicted_SO": 0.948,
    "predicted_HR": 0.041,
    "predicted_ERA": 14.1249,
    "predicted_WHIP": 3.1526
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.4668,
  "form_weight": 0.5332,
  "form_reliability": 0.7235,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 13.083,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.7235,
    "prior_weight": 0.2765
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 0.2,
      "form": 0.2,
      "final": 0.2,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 3.0,
      "form": 1.122,
      "final": 1.9987,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 3.0,
      "form": 1.367,
      "final": 2.1293,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 3.0,
      "form": 0.887,
      "final": 1.8734,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 2.0,
      "form": 0.948,
      "final": 1.4391,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 0.0,
      "form": 0.041,
      "final": 0.0219,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 14.1249,
      "final": 14.1249,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 3.1526,
      "final": 3.1526,
      "source": "form_only"
    }
  }
}
Inning Pitch Details
{
  "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."
}
FieldValue
PitcherTaylor Rogers
RoleReliever
Projection Source-
Savant Quality Score-0.1398
ESPN Rank-
Movement AvailableTrue
Primary Pitch-
Movement Score-0.2800
Avg Velo84.3171
Avg Spin2520.5158
HB Inches0
IVB Inches0
Release Extension0
Pre IP0
Pre ER0
Pre H0
Pre BB0
Pre SO0
Season ERA-
Season WHIP-
Role Avg IP-
Recent Avg IP-
Last Start IP-
Team Form Snapshot
{
  "available": false,
  "reason": "No team-form snapshot was stored for this pitcher row.",
  "display_fallback": "Use the game-level Team Form Snapshot section for team context."
}
Recent Form Pitching
{
  "available": false,
  "reason": "No pitcher-specific recent-form block was stored for this row.",
  "display_fallback": "Use Player Form Blend windows for last-5, last-10, and season pitcher form."
}
Savant Pitch Movement Profile
{
  "available": true,
  "pitcher_id": "573124",
  "player_name": null,
  "source": "all_players_stats.csv embedded Savant pitcher movement features",
  "total_pitches": 18,
  "primary_pitch": {
    "pitch_type": null,
    "pitch_name": null,
    "pitches": 18,
    "pitch_usage": 0.0,
    "release_speed": 84.31707789650395,
    "release_spin_rate": 2520.5157649605744,
    "spin_axis": null,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": null,
    "release_pos_x": null,
    "release_pos_z": null,
    "release_extension": 0.0,
    "arm_angle": 0.0,
    "whiff_percent": 0.0,
    "xwoba": 0.0,
    "hard_hit_percent": 0.0
  },
  "pitch_mix": [
    {
      "pitch_type": null,
      "pitch_name": null,
      "pitches": 18,
      "pitch_usage": 0.0,
      "release_speed": 84.31707789650395,
      "release_spin_rate": 2520.5157649605744,
      "spin_axis": null,
      "horizontal_break_inches": 0.0,
      "induced_vertical_break_inches": 0.0,
      "vertical_break_with_gravity_inches": null,
      "release_pos_x": null,
      "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": 84.3171,
    "release_spin_rate": 2520.5158,
    "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."
}
Player Form Blend
{
  "form_version": "player_form_v3_5_10_season",
  "method": "weighted_recent_form",
  "description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
  "weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "effective_weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 11.592,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.6986,
    "prior_weight": 0.3014
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "573124",
  "report_date": "20260921",
  "season_year": 2026,
  "rows_used": 61,
  "reference_playing_time": 0.1,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 6.0,
        "ER": 3.0,
        "R": 8.0,
        "H": 7.0,
        "BB": 5.0,
        "SO": 8.0,
        "HR": 1.0,
        "BF": 32.0,
        "Pitches": 117.0
      },
      "per_game": {
        "IP": 1.1,
        "ER": 0.6,
        "R": 1.6,
        "H": 1.4,
        "BB": 1.0,
        "SO": 1.6,
        "HR": 0.2,
        "BF": 6.4,
        "Pitches": 23.4
      },
      "rates": {
        "ERA": 4.5,
        "WHIP": 2.0,
        "ER_per_IP": 0.5,
        "H_per_IP": 1.16667,
        "BB_per_IP": 0.83333,
        "SO_per_IP": 1.33333,
        "HR_per_IP": 0.16667
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 11.1,
        "ER": 4.0,
        "R": 10.0,
        "H": 11.0,
        "BB": 10.0,
        "SO": 13.0,
        "HR": 2.0,
        "BF": 57.0,
        "Pitches": 207.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.4,
        "R": 1.0,
        "H": 1.1,
        "BB": 1.0,
        "SO": 1.3,
        "HR": 0.2,
        "BF": 5.7,
        "Pitches": 20.7
      },
      "rates": {
        "ERA": 3.1765,
        "WHIP": 1.8529,
        "ER_per_IP": 0.35294,
        "H_per_IP": 0.97059,
        "BB_per_IP": 0.88235,
        "SO_per_IP": 1.14706,
        "HR_per_IP": 0.17647
      }
    },
    "season": {
      "games": 61,
      "totals": {
        "IP": 57.0,
        "ER": 26.0,
        "R": 32.0,
        "H": 60.0,
        "BB": 30.0,
        "SO": 52.0,
        "HR": 5.0,
        "BF": 262.0,
        "Pitches": 1014.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.4262,
        "R": 0.5246,
        "H": 0.9836,
        "BB": 0.4918,
        "SO": 0.8525,
        "HR": 0.082,
        "BF": 4.2951,
        "Pitches": 16.623
      },
      "rates": {
        "ERA": 4.1053,
        "WHIP": 1.5789,
        "ER_per_IP": 0.45614,
        "H_per_IP": 1.05263,
        "BB_per_IP": 0.52632,
        "SO_per_IP": 0.91228,
        "HR_per_IP": 0.08772
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 1.0,
    "predicted_ER": 0.416,
    "predicted_H": 0.946,
    "predicted_BB": 0.601,
    "predicted_SO": 1.003,
    "predicted_HR": 0.138,
    "predicted_ERA": 4.1472,
    "predicted_WHIP": 1.7112
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.4773,
  "form_weight": 0.5227,
  "form_reliability": 0.6986,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 11.592,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.6986,
    "prior_weight": 0.3014
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 0.1,
      "form": 1.0,
      "final": 0.2,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 0.0,
      "form": 0.416,
      "final": 0.2174,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 0.0,
      "form": 0.946,
      "final": 0.4944,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 0.0,
      "form": 0.601,
      "final": 0.3141,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 0.0,
      "form": 1.003,
      "final": 0.5242,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 0.0,
      "form": 0.138,
      "final": 0.0721,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 4.1472,
      "final": 4.1472,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 1.7112,
      "final": 1.7112,
      "source": "form_only"
    }
  }
}
Inning Pitch Details
{
  "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."
}
Luke Keaschall (807712) · BATTER · RF · Team MIN
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 582
All-history rows before 20260921: 582
System season_avg: 0.2780
Data season_avg (2026 season-to-date): 0.2845
Diff (system - data): -0.0065
System opponent_avg: 0.2780

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1790.0000.000Hitting_2B0.1891.000-0.189-1.000
predicted_3B0.0070.0000.000Hitting_3B0.0070.000-0.0070.000
predicted_AB3.4974.0004.000Hitting_AB3.6005.0000.400-1.000
predicted_AVG0.2780.5000.250Hitting_AVG0.2840.2000.2160.300
predicted_BB0.3861.0001.000Hitting_BB0.4210.0000.5791.000
predicted_CS-0.0000.000BaseRunning_CS0.0460.000-0.0460.000
predicted_H0.9722.0001.000Hitting_H1.0241.0000.9761.000
predicted_HR0.0620.0000.000Hitting_HR0.0670.000-0.0670.000
predicted_OBP0.3500.6000.400Hitting_OBP0.3790.2000.2210.400
predicted_R0.5241.0001.000Hitting_R0.5811.0000.4190.000
predicted_RBI0.3170.0000.000Hitting_RBI0.3541.000-0.354-1.000
predicted_SLG0.3870.5000.250Hitting_SLG0.3970.4000.1030.100
predicted_SO0.5861.0000.000Hitting_SO0.5861.0000.4140.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics11
Boosted Metrics8
Deboosted Metrics3
Better Metrics7
Worse Metrics4
Biggest Boostpredicted_H: 0.9720 -> 2.0000 (boost 1.0280, better)
Biggest Deboostpredicted_RBI: 0.3170 -> 0.0000 (deboost -0.3170, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend44040predicted_AB: 3.4970 -> 3.6116 (boost 0.1146, 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.
3team_form_snapshot10101-predicted_OBP: 0.3638 -> 0.3575 (deboost -0.0063, worse)Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling82617predicted_SO: 0.5775 -> 1.0000 (boost 0.4225, worse)predicted_BB: 0.3519 -> 0.0000 (deboost -0.3519, worse)AB rounded to 4 (raw=3.61), rates preserved: AVG=0.282 HR/AB=0.015
6consistency_constraints11010predicted_R: 0.5400 -> 1.0000 (boost 0.4600, better)-Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine64251predicted_BB: 0.0000 -> 0.3946 (boost 0.3946, better)predicted_SO: 1.0000 -> 0.5894 (deboost -0.4106, better)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation62433predicted_BB: 0.3946 -> 1.0000 (boost 0.6054, better)predicted_SO: 0.5894 -> 0.0000 (deboost -0.5894, better)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context51405predicted_SO: 0.0000 -> 1.0000 (boost 1.0000, worse)predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse)Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10simulation_box_score_reference22020predicted_BB: 0.0000 -> 1.0000 (boost 1.0000, better)-Attached simulation box score without overwriting model prediction
11current_json_final33030predicted_AVG: 0.2390 -> 0.2948 (boost 0.0558, better)-Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "807712",
  "player_name": "Luke Keaschall",
  "position": "RF",
  "team": "MIN",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "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": 3.497,
        "predicted_AVG": 0.278,
        "predicted_BB": 0.386,
        "predicted_H": 0.972,
        "predicted_HR": 0.062,
        "predicted_OBP": 0.35,
        "predicted_R": 0.524,
        "predicted_RBI": 0.317,
        "predicted_SLG": 0.387,
        "predicted_SO": 0.586
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.1746,
        "predicted_3B": 0.0061,
        "predicted_AB": 3.6116,
        "predicted_AVG": 0.2907,
        "predicted_BB": 0.3507,
        "predicted_H": 1.0518,
        "predicted_HBP": 0.16,
        "predicted_HR": 0.0542,
        "predicted_OBP": 0.3638,
        "predicted_R": 0.5288,
        "predicted_RBI": 0.3183,
        "predicted_SLG": 0.3885,
        "predicted_SO": 0.5795
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.179,
          "after": 0.1746,
          "delta": -0.0044,
          "percent_delta": -0.0246,
          "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.497,
          "after": 3.6116,
          "delta": 0.1146,
          "percent_delta": 0.0328,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.278,
          "after": 0.2907,
          "delta": 0.0127,
          "percent_delta": 0.0457,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.386,
          "after": 0.3507,
          "delta": -0.0353,
          "percent_delta": -0.0915,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.972,
          "after": 1.0518,
          "delta": 0.0798,
          "percent_delta": 0.0821,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.062,
          "after": 0.0542,
          "delta": -0.0078,
          "percent_delta": -0.1258,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.35,
          "after": 0.3638,
          "delta": 0.0138,
          "percent_delta": 0.0394,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.524,
          "after": 0.5288,
          "delta": 0.0048,
          "percent_delta": 0.0092,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.317,
          "after": 0.3183,
          "delta": 0.0013,
          "percent_delta": 0.0041,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.387,
          "after": 0.3885,
          "delta": 0.0015,
          "percent_delta": 0.0039,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.586,
          "after": 0.5795,
          "delta": -0.0065,
          "percent_delta": -0.0111,
          "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_AB",
          "before": 3.497,
          "after": 3.6116,
          "delta": 0.1146,
          "percent_delta": 0.0328,
          "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.1746,
        "predicted_3B": 0.0061,
        "predicted_AB": 3.6116,
        "predicted_AVG": 0.2948,
        "predicted_BB": 0.3519,
        "predicted_H": 1.0648,
        "predicted_HBP": 0.16,
        "predicted_HR": 0.0548,
        "predicted_OBP": 0.3575,
        "predicted_R": 0.54,
        "predicted_RBI": 0.325,
        "predicted_SLG": 0.3921,
        "predicted_SO": 0.5775
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1746,
          "after": 0.1746,
          "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.6116,
          "after": 3.6116,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2907,
          "after": 0.2948,
          "delta": 0.0041,
          "percent_delta": 0.0141,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.3507,
          "after": 0.3519,
          "delta": 0.0012,
          "percent_delta": 0.0034,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 1.0518,
          "after": 1.0648,
          "delta": 0.013,
          "percent_delta": 0.0124,
          "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.0542,
          "after": 0.0548,
          "delta": 0.0006,
          "percent_delta": 0.0111,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3638,
          "after": 0.3575,
          "delta": -0.0063,
          "percent_delta": -0.0173,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.5288,
          "after": 0.54,
          "delta": 0.0112,
          "percent_delta": 0.0212,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3183,
          "after": 0.325,
          "delta": 0.0067,
          "percent_delta": 0.021,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3885,
          "after": 0.3921,
          "delta": 0.0036,
          "percent_delta": 0.0093,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.5795,
          "after": 0.5775,
          "delta": -0.002,
          "percent_delta": -0.0035,
          "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.3638,
          "after": 0.3575,
          "delta": -0.0063,
          "percent_delta": -0.0173,
          "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.61), rates preserved: AVG=0.282 HR/AB=0.015",
      "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.1746,
          "after": 0.0,
          "delta": -0.1746,
          "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.6116,
          "after": 4.0,
          "delta": 0.3884,
          "percent_delta": 0.1075,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3519,
          "after": 0.0,
          "delta": -0.3519,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0648,
          "after": 1.0,
          "delta": -0.0648,
          "percent_delta": -0.0609,
          "direction": "deboost",
          "projection_effect": "worse",
          "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.0548,
          "after": 0.0,
          "delta": -0.0548,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.325,
          "after": 0.0,
          "delta": -0.325,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.5775,
          "after": 1.0,
          "delta": 0.4225,
          "percent_delta": 0.7316,
          "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.5775,
          "after": 1.0,
          "delta": 0.4225,
          "percent_delta": 0.7316,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.3519,
          "after": 0.0,
          "delta": -0.3519,
          "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.54,
          "after": 1.0,
          "delta": 0.46,
          "percent_delta": 0.8519,
          "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.54,
          "after": 1.0,
          "delta": 0.46,
          "percent_delta": 0.8519,
          "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.165,
        "predicted_3B": 0.0168,
        "predicted_BB": 0.3946,
        "predicted_H": 0.917,
        "predicted_HR": 0.0731,
        "predicted_RBI": 0.373,
        "predicted_SO": 0.5894
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.165,
          "delta": 0.165,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0168,
          "delta": 0.0168,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.3946,
          "delta": 0.3946,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.917,
          "delta": -0.083,
          "percent_delta": -0.083,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.0731,
          "delta": 0.0731,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.373,
          "delta": 0.373,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.5894,
          "delta": -0.4106,
          "percent_delta": -0.4106,
          "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.3946,
          "delta": 0.3946,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.5894,
          "delta": -0.4106,
          "percent_delta": -0.4106,
          "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": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SO": 0.0
      },
      "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.0168,
          "after": 0.0,
          "delta": -0.0168,
          "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.3946,
          "after": 1.0,
          "delta": 0.6054,
          "percent_delta": 1.5342,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.917,
          "after": 1.0,
          "delta": 0.083,
          "percent_delta": 0.0905,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0731,
          "after": 0.0,
          "delta": -0.0731,
          "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.373,
          "after": 0.0,
          "delta": -0.373,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.5894,
          "after": 0.0,
          "delta": -0.5894,
          "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.3946,
          "after": 1.0,
          "delta": 0.6054,
          "percent_delta": 1.5342,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 0.5894,
          "after": 0.0,
          "delta": -0.5894,
          "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.239,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.315,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.348,
        "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.2948,
          "after": 0.239,
          "delta": -0.0558,
          "percent_delta": -0.1893,
          "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.3575,
          "after": 0.315,
          "delta": -0.0425,
          "percent_delta": -0.1189,
          "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.3921,
          "after": 0.348,
          "delta": -0.0441,
          "percent_delta": -0.1125,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "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": 5,
        "boosted_metrics": 1,
        "deboosted_metrics": 4,
        "better_metrics": 0,
        "worse_metrics": 5,
        "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": {
          "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": 1.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": 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": 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": 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": 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.2948,
        "predicted_BB": 1.0,
        "predicted_CS": 0.0,
        "predicted_H": 2.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.3575,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_RF": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.3921,
        "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.239,
          "after": 0.2948,
          "delta": 0.0558,
          "percent_delta": 0.2336,
          "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.315,
          "after": 0.3575,
          "delta": 0.0425,
          "percent_delta": 0.1348,
          "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.348,
          "after": 0.3921,
          "delta": 0.0441,
          "percent_delta": 0.1268,
          "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.239,
          "after": 0.2948,
          "delta": 0.0558,
          "percent_delta": 0.2336,
          "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.179,
        "after": 0.0,
        "delta": -0.179,
        "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.497,
        "after": 4.0,
        "delta": 0.503,
        "percent_delta": 0.1438,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.278,
        "after": 0.2948,
        "delta": 0.0168,
        "percent_delta": 0.0604,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.386,
        "after": 1.0,
        "delta": 0.614,
        "percent_delta": 1.5907,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.972,
        "after": 2.0,
        "delta": 1.028,
        "percent_delta": 1.0576,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.062,
        "after": 0.0,
        "delta": -0.062,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.35,
        "after": 0.3575,
        "delta": 0.0075,
        "percent_delta": 0.0214,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.524,
        "after": 1.0,
        "delta": 0.476,
        "percent_delta": 0.9084,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.317,
        "after": 0.0,
        "delta": -0.317,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.387,
        "after": 0.3921,
        "delta": 0.0051,
        "percent_delta": 0.0132,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.586,
        "after": 1.0,
        "delta": 0.414,
        "percent_delta": 0.7065,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 11,
      "boosted_metrics": 8,
      "deboosted_metrics": 3,
      "better_metrics": 7,
      "worse_metrics": 4,
      "biggest_boost": {
        "metric": "predicted_H",
        "before": 0.972,
        "after": 2.0,
        "delta": 1.028,
        "percent_delta": 1.0576,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_RBI",
        "before": 0.317,
        "after": 0.0,
        "delta": -0.317,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "better"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.179-
predicted_3B0.007-
predicted_AB3.497-
predicted_AVG0.278-
predicted_BB0.386-
predicted_H0.972-
predicted_HR0.062-
predicted_OBP0.350-
predicted_R0.524-
predicted_RBI0.317-
predicted_SLG0.387-
predicted_SO0.586-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.175-0.004
predicted_3B0.006-0.001
predicted_AB3.6120.115
predicted_AVG0.2910.013
predicted_BB0.351-0.035
predicted_H1.0520.080
predicted_HBP0.160-
predicted_HR0.054-0.008
predicted_OBP0.3640.014
predicted_R0.5290.005
predicted_RBI0.3180.001
predicted_SLG0.3890.002
predicted_SO0.580-0.006
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1750.000
predicted_3B0.0060.000
predicted_AB3.6120.000
predicted_AVG0.2950.004
predicted_BB0.3520.001
predicted_H1.0650.013
predicted_HBP0.1600.000
predicted_HR0.0550.001
predicted_OBP0.357-0.006
predicted_R0.5400.011
predicted_RBI0.3250.007
predicted_SLG0.3920.004
predicted_SO0.578-0.002
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 4 (raw=3.61), rates preserved: AVG=0.282 HR/AB=0.015

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB4.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R1.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1650.165
3B0.0170.017
BB0.3950.395
H0.917-0.083
HR0.0730.073
RBI0.3730.373
SO0.589-0.411
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.165
3B0.000-0.017
AB4.0000.000
BB1.0000.605
H1.0000.083
HR0.000-0.073
R1.0000.000
RBI0.000-0.373
SO0.000-0.589
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.175
predicted_3B0.000-0.006
predicted_AB4.0000.388
predicted_AVG0.239-0.056
predicted_BB0.000-0.352
predicted_H1.000-0.065
predicted_HR0.000-0.055
predicted_OBP0.315-0.042
predicted_R1.0000.460
predicted_RBI0.000-0.325
predicted_SLG0.348-0.044
predicted_SO1.0000.422
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB1.0000.000
CS0.0000.000
H2.0001.000
HBP0.0000.000
HR0.0000.000
PA5.000-
R1.0000.000
RBI0.0000.000
SB0.0000.000
SF0.0000.000
SO1.0001.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 145
Reference playing time: 3.803
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-22.0009.0001.0000.0000.0002.0003.0000.0003.0000.40910.43480.45450.40910.00000.09090.00000.1364
last_100.2010-39.00012.0001.0000.0000.0002.0005.0003.0004.0000.30770.38640.33330.30770.00000.05130.07690.1026
season0.60145-507.000141.00026.0001.0009.00046.00076.00056.00085.0000.27810.36890.38660.27810.01770.09070.11050.1676
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1690
predicted_3B0.0050
predicted_AB3.7600
predicted_AVG0.3072
predicted_BB0.3050
predicted_H1.1550
predicted_HBP0.1600
predicted_HR0.0440
predicted_OBP0.3817
predicted_R0.5350
predicted_RBI0.3200
predicted_SLG0.3904
predicted_SO0.5710
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.17900.16900.1746model_form_blend
predicted_3B0.00700.00500.0061model_form_blend
predicted_AB3.49703.76003.6116model_form_blend
predicted_AVG0.27800.30720.2907model_form_blend
predicted_BB0.38600.30500.3507model_form_blend
predicted_H0.97201.15501.0518model_form_blend
predicted_HBP-0.16000.1600form_only
predicted_HR0.06200.04400.0542model_form_blend
predicted_OBP0.35000.38170.3638model_form_blend
predicted_R0.52400.53500.5288model_form_blend
predicted_RBI0.31700.32000.3183model_form_blend
predicted_SLG0.38700.39040.3885model_form_blend
predicted_SO0.58600.57100.5795model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date582
Season rows before report date582
Report year2026
Profile rows used145
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA5
AB4
H2
2B0
3B0
HR0
R1
RBI0
BB1
SO1
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB1
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B1
Hitting_3B0
Hitting_AB5
Hitting_AVG0.2
Hitting_BB0
Hitting_GIDP0
Hitting_H1
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R1
Hitting_RBI1
Hitting_SAC0
Hitting_SF0
Hitting_SO1
Hitting_TB2
Hitting_battingOrder1
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedRF
gameID20260919_MIN@LAA
game_typefull
mlbID807712
playerID807712
playerNameLuke Keaschall
pos2B
startedTrue
startingPositionRF
teamMIN
teamID17
game_date2026-09-19
sl_k_percent14.3
sl_bb_percent9.4
sl_woba0.34
sl_xwoba0.317
sl_xba0.248
sl_xslg0.358
sl_sweet_spot_percent34.8
sl_barrel_batted_rate3.3
sl_hard_hit_percent29.1
sl_exit_velocity_avg85.4
sl_launch_angle_avg17.7
sl_whiff_percent16.9
sl_swing_percent42.6
Ryan Jeffers (680777) · BATTER · C · Team MIN
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 347
All-history rows before 20260921: 347
System season_avg: 0.2550
Data season_avg (2026 season-to-date): 0.2624
Diff (system - data): -0.0074
System opponent_avg: 0.2550

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.2141.0001.000Hitting_2B0.2390.0000.7611.000
predicted_3B0.0240.0000.000Hitting_3B0.0260.000-0.0260.000
predicted_AB4.0105.0004.000Hitting_AB3.7125.0001.2880.000
predicted_AVG0.2240.4000.250Hitting_AVG0.2620.0000.1380.400
predicted_BB0.4880.0001.000Hitting_BB0.5330.000-0.5330.000
predicted_CS-0.0000.000BaseRunning_CS0.0000.0000.0000.000
predicted_H0.9002.0001.000Hitting_H0.9740.0001.0262.000
predicted_HR0.1401.0000.000Hitting_HR0.1700.0000.8301.000
predicted_OBP0.2920.4000.400Hitting_OBP0.3590.0000.0410.400
predicted_R0.5711.0000.000Hitting_R0.6140.0000.3861.000
predicted_RBI0.5601.0001.000Hitting_RBI0.6970.0000.3031.000
predicted_SLG0.3901.2000.500Hitting_SLG0.4780.0000.7221.200
predicted_SO0.7140.0001.000Hitting_SO0.7520.000-0.7520.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics10
Boosted Metrics6
Deboosted Metrics4
Better Metrics7
Worse Metrics3
Biggest Boostpredicted_H: 0.9000 -> 2.0000 (boost 1.1000, better)
Biggest Deboostpredicted_SO: 0.7140 -> 0.0000 (deboost -0.7140, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend71607predicted_SO: 0.7140 -> 0.7691 (boost 0.0551, worse)predicted_AB: 4.0100 -> 3.8803 (deboost -0.1297, 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.
3team_form_snapshot22020predicted_OBP: 0.2837 -> 0.2960 (boost 0.0123, better)-Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling74334predicted_RBI: 0.5615 -> 1.0000 (boost 0.4385, better)predicted_BB: 0.4469 -> 0.0000 (deboost -0.4469, worse)AB rounded to 4 (raw=4.01), rates preserved: AVG=0.199 HR/AB=0.034
6consistency_constraints11010predicted_R: 0.5007 -> 1.0000 (boost 0.4993, better)-Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine63342predicted_BB: 0.0000 -> 0.4582 (boost 0.4582, better)predicted_RBI: 1.0000 -> 0.5871 (deboost -0.4129, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation75243predicted_2B: 0.1697 -> 1.0000 (boost 0.8303, better)predicted_R: 1.0000 -> 0.0000 (deboost -1.0000, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context64242predicted_R: 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
10simulation_box_score_reference54150predicted_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
11current_json_final30303-predicted_OBP: 0.3180 -> 0.2960 (deboost -0.0220, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "680777",
  "player_name": "Ryan Jeffers",
  "position": "C",
  "team": "MIN",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.214,
        "predicted_3B": 0.024,
        "predicted_AB": 4.01,
        "predicted_AVG": 0.224,
        "predicted_BB": 0.488,
        "predicted_H": 0.9,
        "predicted_HR": 0.14,
        "predicted_OBP": 0.292,
        "predicted_R": 0.571,
        "predicted_RBI": 0.56,
        "predicted_SLG": 0.39,
        "predicted_SO": 0.714
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.1884,
        "predicted_3B": 0.0202,
        "predicted_AB": 3.8803,
        "predicted_AVG": 0.2115,
        "predicted_BB": 0.4453,
        "predicted_H": 0.8236,
        "predicted_HBP": 0.041,
        "predicted_HR": 0.1332,
        "predicted_OBP": 0.2837,
        "predicted_R": 0.4903,
        "predicted_RBI": 0.5498,
        "predicted_SLG": 0.3705,
        "predicted_SO": 0.7691
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.214,
          "after": 0.1884,
          "delta": -0.0256,
          "percent_delta": -0.1196,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.024,
          "after": 0.0202,
          "delta": -0.0038,
          "percent_delta": -0.1583,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 4.01,
          "after": 3.8803,
          "delta": -0.1297,
          "percent_delta": -0.0323,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.224,
          "after": 0.2115,
          "delta": -0.0125,
          "percent_delta": -0.0558,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.488,
          "after": 0.4453,
          "delta": -0.0427,
          "percent_delta": -0.0875,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.9,
          "after": 0.8236,
          "delta": -0.0764,
          "percent_delta": -0.0849,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.14,
          "after": 0.1332,
          "delta": -0.0068,
          "percent_delta": -0.0486,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.292,
          "after": 0.2837,
          "delta": -0.0083,
          "percent_delta": -0.0284,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.571,
          "after": 0.4903,
          "delta": -0.0807,
          "percent_delta": -0.1413,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.56,
          "after": 0.5498,
          "delta": -0.0102,
          "percent_delta": -0.0182,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.39,
          "after": 0.3705,
          "delta": -0.0195,
          "percent_delta": -0.05,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.714,
          "after": 0.7691,
          "delta": 0.0551,
          "percent_delta": 0.0772,
          "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.714,
          "after": 0.7691,
          "delta": 0.0551,
          "percent_delta": 0.0772,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 4.01,
          "after": 3.8803,
          "delta": -0.1297,
          "percent_delta": -0.0323,
          "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.1884,
        "predicted_3B": 0.0202,
        "predicted_AB": 3.8803,
        "predicted_AVG": 0.2149,
        "predicted_BB": 0.4469,
        "predicted_H": 0.8338,
        "predicted_HBP": 0.041,
        "predicted_HR": 0.1348,
        "predicted_OBP": 0.296,
        "predicted_R": 0.5007,
        "predicted_RBI": 0.5615,
        "predicted_SLG": 0.378,
        "predicted_SO": 0.7664
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1884,
          "after": 0.1884,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.0202,
          "after": 0.0202,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 3.8803,
          "after": 3.8803,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2115,
          "after": 0.2149,
          "delta": 0.0034,
          "percent_delta": 0.0161,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.4453,
          "after": 0.4469,
          "delta": 0.0016,
          "percent_delta": 0.0036,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.8236,
          "after": 0.8338,
          "delta": 0.0102,
          "percent_delta": 0.0124,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HBP",
          "before": 0.041,
          "after": 0.041,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.1332,
          "after": 0.1348,
          "delta": 0.0016,
          "percent_delta": 0.012,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2837,
          "after": 0.296,
          "delta": 0.0123,
          "percent_delta": 0.0434,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.4903,
          "after": 0.5007,
          "delta": 0.0104,
          "percent_delta": 0.0212,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5498,
          "after": 0.5615,
          "delta": 0.0117,
          "percent_delta": 0.0213,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3705,
          "after": 0.378,
          "delta": 0.0075,
          "percent_delta": 0.0202,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.7691,
          "after": 0.7664,
          "delta": -0.0027,
          "percent_delta": -0.0035,
          "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.2837,
          "after": 0.296,
          "delta": 0.0123,
          "percent_delta": 0.0434,
          "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.01), rates preserved: AVG=0.199 HR/AB=0.034",
      "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.1884,
          "after": 0.0,
          "delta": -0.1884,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "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": 3.8803,
          "after": 4.0,
          "delta": 0.1197,
          "percent_delta": 0.0308,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.4469,
          "after": 0.0,
          "delta": -0.4469,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8338,
          "after": 1.0,
          "delta": 0.1662,
          "percent_delta": 0.1993,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HBP",
          "before": 0.041,
          "after": 0.0,
          "delta": -0.041,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "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_RBI",
          "before": 0.5615,
          "after": 1.0,
          "delta": 0.4385,
          "percent_delta": 0.7809,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.7664,
          "after": 1.0,
          "delta": 0.2336,
          "percent_delta": 0.3048,
          "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.5615,
          "after": 1.0,
          "delta": 0.4385,
          "percent_delta": 0.7809,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.4469,
          "after": 0.0,
          "delta": -0.4469,
          "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.5007,
          "after": 1.0,
          "delta": 0.4993,
          "percent_delta": 0.9972,
          "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.5007,
          "after": 1.0,
          "delta": 0.4993,
          "percent_delta": 0.9972,
          "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.1697,
        "predicted_3B": 0.0249,
        "predicted_BB": 0.4582,
        "predicted_H": 0.8709,
        "predicted_HR": 0.1312,
        "predicted_RBI": 0.5871,
        "predicted_SO": 0.6939
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1697,
          "delta": 0.1697,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0249,
          "delta": 0.0249,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.4582,
          "delta": 0.4582,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8709,
          "delta": -0.1291,
          "percent_delta": -0.1291,
          "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.5871,
          "delta": -0.4129,
          "percent_delta": -0.4129,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.6939,
          "delta": -0.3061,
          "percent_delta": -0.3061,
          "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.4582,
          "delta": 0.4582,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.5871,
          "delta": -0.4129,
          "percent_delta": -0.4129,
          "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": 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.1697,
          "after": 1.0,
          "delta": 0.8303,
          "percent_delta": 4.8928,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0249,
          "after": 0.0,
          "delta": -0.0249,
          "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.4582,
          "after": 1.0,
          "delta": 0.5418,
          "percent_delta": 1.1825,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8709,
          "after": 1.0,
          "delta": 0.1291,
          "percent_delta": 0.1482,
          "direction": "boost",
          "projection_effect": "better",
          "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": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5871,
          "after": 1.0,
          "delta": 0.4129,
          "percent_delta": 0.7033,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.6939,
          "after": 1.0,
          "delta": 0.3061,
          "percent_delta": 0.4411,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 7,
        "boosted_metrics": 5,
        "deboosted_metrics": 2,
        "better_metrics": 4,
        "worse_metrics": 3,
        "biggest_boost": {
          "metric": "predicted_2B",
          "before": 0.1697,
          "after": 1.0,
          "delta": 0.8303,
          "percent_delta": 4.8928,
          "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.23,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.318,
        "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.2149,
          "after": 0.23,
          "delta": 0.0151,
          "percent_delta": 0.0703,
          "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.296,
          "after": 0.318,
          "delta": 0.022,
          "percent_delta": 0.0743,
          "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": 1.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.378,
          "after": 0.391,
          "delta": 0.013,
          "percent_delta": 0.0344,
          "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": 4,
        "deboosted_metrics": 2,
        "better_metrics": 4,
        "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_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": 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": 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": 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": 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": 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": 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": 5.0,
        "predicted_AVG": 0.2149,
        "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.296,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.378,
        "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": 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.23,
          "after": 0.2149,
          "delta": -0.0151,
          "percent_delta": -0.0657,
          "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": 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.318,
          "after": 0.296,
          "delta": -0.022,
          "percent_delta": -0.0693,
          "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.391,
          "after": 0.378,
          "delta": -0.013,
          "percent_delta": -0.0332,
          "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_OBP",
          "before": 0.318,
          "after": 0.296,
          "delta": -0.022,
          "percent_delta": -0.0693,
          "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.214,
        "after": 1.0,
        "delta": 0.786,
        "percent_delta": 3.6729,
        "direction": "boost",
        "projection_effect": "better",
        "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": 4.01,
        "after": 5.0,
        "delta": 0.99,
        "percent_delta": 0.2469,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.224,
        "after": 0.2149,
        "delta": -0.0091,
        "percent_delta": -0.0406,
        "direction": "deboost",
        "projection_effect": "worse",
        "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": 0.9,
        "after": 2.0,
        "delta": 1.1,
        "percent_delta": 1.2222,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.14,
        "after": 1.0,
        "delta": 0.86,
        "percent_delta": 6.1429,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.292,
        "after": 0.296,
        "delta": 0.004,
        "percent_delta": 0.0137,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_R",
        "before": 0.571,
        "after": 1.0,
        "delta": 0.429,
        "percent_delta": 0.7513,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.56,
        "after": 1.0,
        "delta": 0.44,
        "percent_delta": 0.7857,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.39,
        "after": 0.378,
        "delta": -0.012,
        "percent_delta": -0.0308,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.714,
        "after": 0.0,
        "delta": -0.714,
        "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_H",
        "before": 0.9,
        "after": 2.0,
        "delta": 1.1,
        "percent_delta": 1.2222,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_SO",
        "before": 0.714,
        "after": 0.0,
        "delta": -0.714,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "better"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.214-
predicted_3B0.024-
predicted_AB4.010-
predicted_AVG0.224-
predicted_BB0.488-
predicted_H0.900-
predicted_HR0.140-
predicted_OBP0.292-
predicted_R0.571-
predicted_RBI0.560-
predicted_SLG0.390-
predicted_SO0.714-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.188-0.026
predicted_3B0.020-0.004
predicted_AB3.880-0.130
predicted_AVG0.211-0.013
predicted_BB0.445-0.043
predicted_H0.824-0.076
predicted_HBP0.041-
predicted_HR0.133-0.007
predicted_OBP0.284-0.008
predicted_R0.490-0.081
predicted_RBI0.550-0.010
predicted_SLG0.370-0.020
predicted_SO0.7690.055
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1880.000
predicted_3B0.0200.000
predicted_AB3.8800.000
predicted_AVG0.2150.003
predicted_BB0.4470.002
predicted_H0.8340.010
predicted_HBP0.0410.000
predicted_HR0.1350.002
predicted_OBP0.2960.012
predicted_R0.5010.010
predicted_RBI0.5610.012
predicted_SLG0.3780.008
predicted_SO0.766-0.003
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 4 (raw=4.01), rates preserved: AVG=0.199 HR/AB=0.034

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB4.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI1.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R1.000-
RBI1.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1700.170
3B0.0250.025
BB0.4580.458
H0.871-0.129
HR0.1310.131
RBI0.587-0.413
SO0.694-0.306
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B1.0000.830
3B0.000-0.025
AB4.0000.000
BB1.0000.542
H1.0000.129
HR0.000-0.131
R0.000-1.000
RBI1.0000.413
SO1.0000.306
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.188
predicted_3B0.000-0.020
predicted_AB4.0000.120
predicted_AVG0.2300.015
predicted_BB0.000-0.447
predicted_H1.0000.166
predicted_HR0.000-0.135
predicted_OBP0.3180.022
predicted_R1.0000.499
predicted_RBI1.0000.439
predicted_SLG0.3910.013
predicted_SO1.0000.234
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B1.0000.000
3B0.0000.000
AB5.0001.000
BB0.000-1.000
CS0.0000.000
H2.0001.000
HBP0.0000.000
HR1.0001.000
PA5.000-
R1.0001.000
RBI1.0000.000
SB0.0000.000
SF0.0000.000
SO0.000-1.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 84
Reference playing time: 4.010
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-20.0001.0000.0000.0000.0001.0000.0001.0006.0000.05000.09090.05000.05000.00000.05000.05000.3000
last_100.2010-37.0005.0001.0000.0001.0005.0001.0003.0009.0000.13510.21430.24320.13510.02700.13510.08110.2432
season0.6084-302.00077.00018.0002.00014.00055.00048.00041.00060.0000.25500.34770.46690.25500.04640.18210.13580.1987
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1540
predicted_3B0.0150
predicted_AB3.7060
predicted_AVG0.1946
predicted_BB0.3880
predicted_H0.7210
predicted_HBP0.0410
predicted_HR0.1240
predicted_OBP0.2725
predicted_R0.3820
predicted_RBI0.5360
predicted_SLG0.3443
predicted_SO0.8430
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.21400.15400.1884model_form_blend
predicted_3B0.02400.01500.0202model_form_blend
predicted_AB4.01003.70603.8803model_form_blend
predicted_AVG0.22400.19460.2115model_form_blend
predicted_BB0.48800.38800.4453model_form_blend
predicted_H0.90000.72100.8236model_form_blend
predicted_HBP-0.04100.0410form_only
predicted_HR0.14000.12400.1332model_form_blend
predicted_OBP0.29200.27250.2837model_form_blend
predicted_R0.57100.38200.4903model_form_blend
predicted_RBI0.56000.53600.5498model_form_blend
predicted_SLG0.39000.34430.3705model_form_blend
predicted_SO0.71400.84300.7691model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date347
Season rows before report date347
Report year2026
Profile rows used84
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA5
AB5
H2
2B1
3B0
HR1
R1
RBI1
BB0
SO0
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball1
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB5
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB0
Hitting_battingOrder3
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedC
gameID20260919_MIN@LAA
game_typefull
mlbID680777
playerID680777
playerNameRyan Jeffers
posC
startedTrue
startingPositionC
teamMIN
teamID17
game_date2026-09-19
sl_k_percent17.0
sl_bb_percent12.7
sl_woba0.356
sl_xwoba0.349
sl_xba0.248
sl_xslg0.438
sl_sweet_spot_percent35.5
sl_barrel_batted_rate10.6
sl_hard_hit_percent41.2
sl_exit_velocity_avg88.7
sl_launch_angle_avg16.2
sl_whiff_percent17.0
sl_swing_percent40.4
Alan Roden (702176) · BATTER · DH · Team MIN
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 81
All-history rows before 20260921: 81
System season_avg: 0.2780
Data season_avg (2026 season-to-date): 0.2844
Diff (system - data): -0.0064
System opponent_avg: 0.2780

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1431.0000.000Hitting_2B0.1850.0000.8151.000
predicted_3B0.0000.0000.000Hitting_3B0.0000.0000.0000.000
predicted_AB2.5715.0003.000Hitting_AB2.7785.0002.2220.000
predicted_AVG0.2780.4000.000Hitting_AVG0.2840.6000.116-0.200
predicted_BB0.3210.0000.000Hitting_BB0.4070.000-0.4070.000
predicted_CS-0.0000.000BaseRunning_CS0.0000.0000.0000.000
predicted_H0.7142.0000.000Hitting_H0.7903.0001.210-1.000
predicted_HR0.0361.0000.000Hitting_HR0.0121.0000.9880.000
predicted_OBP0.3580.4000.000Hitting_OBP0.3670.6000.033-0.200
predicted_R0.2141.0000.000Hitting_R0.2841.0000.7160.000
predicted_RBI0.5001.0000.000Hitting_RBI0.4944.0000.506-3.000
predicted_SLG0.3751.2000.000Hitting_SLG0.3641.2000.8360.000
predicted_SO0.4290.0000.000Hitting_SO0.4071.000-0.407-1.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics11
Boosted Metrics9
Deboosted Metrics2
Better Metrics10
Worse Metrics1
Biggest Boostpredicted_AB: 2.5710 -> 5.0000 (boost 2.4290, better)
Biggest Deboostpredicted_SO: 0.4290 -> 0.0000 (deboost -0.4290, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend55041predicted_AB: 2.5710 -> 2.7616 (boost 0.1906, 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.
3team_form_snapshot11010predicted_SLG: 0.4054 -> 0.4132 (boost 0.0078, better)-Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling74334predicted_SO: 0.4779 -> 1.0000 (boost 0.5221, worse)predicted_BB: 0.3139 -> 0.0000 (deboost -0.3139, worse)AB rounded to 3 (raw=2.76), rates preserved: AVG=0.279 HR/AB=0.020
6consistency_constraints10101-predicted_R: 0.2428 -> 0.0000 (deboost -0.2428, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine63342predicted_BB: 0.0000 -> 0.3519 (boost 0.3519, better)predicted_RBI: 1.0000 -> 0.4350 (deboost -0.5650, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation60615-predicted_H: 0.7246 -> 0.0000 (deboost -0.7246, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context63324predicted_H: 0.0000 -> 1.0000 (boost 1.0000, better)predicted_AVG: 0.2916 -> 0.2320 (deboost -0.0596, worse)Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10simulation_box_score_reference65160predicted_AB: 3.0000 -> 5.0000 (boost 2.0000, better)predicted_SO: 1.0000 -> 0.0000 (deboost -1.0000, better)Attached simulation box score without overwriting model prediction
11current_json_final33030predicted_AVG: 0.2320 -> 0.2916 (boost 0.0596, better)-Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "702176",
  "player_name": "Alan Roden",
  "position": "DH",
  "team": "MIN",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.143,
        "predicted_3B": 0.0,
        "predicted_AB": 2.571,
        "predicted_AVG": 0.278,
        "predicted_BB": 0.321,
        "predicted_H": 0.714,
        "predicted_HR": 0.036,
        "predicted_OBP": 0.358,
        "predicted_R": 0.214,
        "predicted_RBI": 0.5,
        "predicted_SLG": 0.375,
        "predicted_SO": 0.429
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.0011,
        "predicted_AB": 2.7616,
        "predicted_AVG": 0.2872,
        "predicted_BB": 0.3128,
        "predicted_H": 0.7955,
        "predicted_HBP": 0.007,
        "predicted_HR": 0.0557,
        "predicted_OBP": 0.3598,
        "predicted_R": 0.2378,
        "predicted_RBI": 0.5242,
        "predicted_SLG": 0.4054,
        "predicted_SO": 0.4796
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.143,
          "after": 0.1646,
          "delta": 0.0216,
          "percent_delta": 0.151,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0011,
          "delta": 0.0011,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 2.571,
          "after": 2.7616,
          "delta": 0.1906,
          "percent_delta": 0.0741,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.278,
          "after": 0.2872,
          "delta": 0.0092,
          "percent_delta": 0.0331,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.321,
          "after": 0.3128,
          "delta": -0.0082,
          "percent_delta": -0.0255,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.714,
          "after": 0.7955,
          "delta": 0.0815,
          "percent_delta": 0.1141,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.036,
          "after": 0.0557,
          "delta": 0.0197,
          "percent_delta": 0.5472,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.358,
          "after": 0.3598,
          "delta": 0.0018,
          "percent_delta": 0.005,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.214,
          "after": 0.2378,
          "delta": 0.0238,
          "percent_delta": 0.1112,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5,
          "after": 0.5242,
          "delta": 0.0242,
          "percent_delta": 0.0484,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.375,
          "after": 0.4054,
          "delta": 0.0304,
          "percent_delta": 0.0811,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.429,
          "after": 0.4796,
          "delta": 0.0506,
          "percent_delta": 0.1179,
          "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_AB",
          "before": 2.571,
          "after": 2.7616,
          "delta": 0.1906,
          "percent_delta": 0.0741,
          "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": 28
      }
    },
    {
      "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.0011,
        "predicted_AB": 2.7616,
        "predicted_AVG": 0.2916,
        "predicted_BB": 0.3139,
        "predicted_H": 0.8054,
        "predicted_HBP": 0.007,
        "predicted_HR": 0.0564,
        "predicted_OBP": 0.3639,
        "predicted_R": 0.2428,
        "predicted_RBI": 0.5353,
        "predicted_SLG": 0.4132,
        "predicted_SO": 0.4779
      },
      "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.0011,
          "after": 0.0011,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 2.7616,
          "after": 2.7616,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2872,
          "after": 0.2916,
          "delta": 0.0044,
          "percent_delta": 0.0153,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.3128,
          "after": 0.3139,
          "delta": 0.0011,
          "percent_delta": 0.0035,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.7955,
          "after": 0.8054,
          "delta": 0.0099,
          "percent_delta": 0.0124,
          "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.0557,
          "after": 0.0564,
          "delta": 0.0007,
          "percent_delta": 0.0126,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3598,
          "after": 0.3639,
          "delta": 0.0041,
          "percent_delta": 0.0114,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.2378,
          "after": 0.2428,
          "delta": 0.005,
          "percent_delta": 0.021,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5242,
          "after": 0.5353,
          "delta": 0.0111,
          "percent_delta": 0.0212,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4054,
          "after": 0.4132,
          "delta": 0.0078,
          "percent_delta": 0.0192,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.4796,
          "after": 0.4779,
          "delta": -0.0017,
          "percent_delta": -0.0035,
          "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.4054,
          "after": 0.4132,
          "delta": 0.0078,
          "percent_delta": 0.0192,
          "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=2.76), rates preserved: AVG=0.279 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": 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.0011,
          "after": 0.0,
          "delta": -0.0011,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 2.7616,
          "after": 3.0,
          "delta": 0.2384,
          "percent_delta": 0.0863,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3139,
          "after": 0.0,
          "delta": -0.3139,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8054,
          "after": 1.0,
          "delta": 0.1946,
          "percent_delta": 0.2416,
          "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.0564,
          "after": 0.0,
          "delta": -0.0564,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5353,
          "after": 1.0,
          "delta": 0.4647,
          "percent_delta": 0.8681,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.4779,
          "after": 1.0,
          "delta": 0.5221,
          "percent_delta": 1.0925,
          "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_SO",
          "before": 0.4779,
          "after": 1.0,
          "delta": 0.5221,
          "percent_delta": 1.0925,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.3139,
          "after": 0.0,
          "delta": -0.3139,
          "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": 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.2428,
          "after": 0.0,
          "delta": -0.2428,
          "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.2428,
          "after": 0.0,
          "delta": -0.2428,
          "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.1387,
        "predicted_3B": 0.016,
        "predicted_BB": 0.3519,
        "predicted_H": 0.7246,
        "predicted_HR": 0.0797,
        "predicted_RBI": 0.435,
        "predicted_SO": 0.5421
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1387,
          "delta": 0.1387,
          "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.3519,
          "delta": 0.3519,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7246,
          "delta": -0.2754,
          "percent_delta": -0.2754,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.0797,
          "delta": 0.0797,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.435,
          "delta": -0.565,
          "percent_delta": -0.565,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.5421,
          "delta": -0.4579,
          "percent_delta": -0.4579,
          "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.3519,
          "delta": 0.3519,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.435,
          "delta": -0.565,
          "percent_delta": -0.565,
          "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": 0.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1387,
          "after": 0.0,
          "delta": -0.1387,
          "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.0,
          "after": 3.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.3519,
          "after": 0.0,
          "delta": -0.3519,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.7246,
          "after": 0.0,
          "delta": -0.7246,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0797,
          "after": 0.0,
          "delta": -0.0797,
          "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.435,
          "after": 0.0,
          "delta": -0.435,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.5421,
          "after": 0.0,
          "delta": -0.5421,
          "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_H",
          "before": 0.7246,
          "after": 0.0,
          "delta": -0.7246,
          "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.232,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.315,
        "predicted_R": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.363,
        "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.2916,
          "after": 0.232,
          "delta": -0.0596,
          "percent_delta": -0.2044,
          "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.3639,
          "after": 0.315,
          "delta": -0.0489,
          "percent_delta": -0.1344,
          "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.4132,
          "after": 0.363,
          "delta": -0.0502,
          "percent_delta": -0.1215,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "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": 6,
        "boosted_metrics": 3,
        "deboosted_metrics": 3,
        "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_AVG",
          "before": 0.2916,
          "after": 0.232,
          "delta": -0.0596,
          "percent_delta": -0.2044,
          "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": 5.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": 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": 5.0,
          "delta": 2.0,
          "percent_delta": 0.6667,
          "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": 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": 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": 6,
        "boosted_metrics": 5,
        "deboosted_metrics": 1,
        "better_metrics": 6,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_AB",
          "before": 3.0,
          "after": 5.0,
          "delta": 2.0,
          "percent_delta": 0.6667,
          "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": 5.0,
        "predicted_AVG": 0.2916,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_DH": 0.0,
        "predicted_H": 2.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 1.0,
        "predicted_OBP": 0.3639,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.4132,
        "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": 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.2916,
          "delta": 0.0596,
          "percent_delta": 0.257,
          "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.315,
          "after": 0.3639,
          "delta": 0.0489,
          "percent_delta": 0.1553,
          "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.363,
          "after": 0.4132,
          "delta": 0.0502,
          "percent_delta": 0.1384,
          "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.232,
          "after": 0.2916,
          "delta": 0.0596,
          "percent_delta": 0.257,
          "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.143,
        "after": 1.0,
        "delta": 0.857,
        "percent_delta": 5.993,
        "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.571,
        "after": 5.0,
        "delta": 2.429,
        "percent_delta": 0.9448,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.278,
        "after": 0.2916,
        "delta": 0.0136,
        "percent_delta": 0.0489,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.321,
        "after": 0.0,
        "delta": -0.321,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.714,
        "after": 2.0,
        "delta": 1.286,
        "percent_delta": 1.8011,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.036,
        "after": 1.0,
        "delta": 0.964,
        "percent_delta": 26.7778,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.358,
        "after": 0.3639,
        "delta": 0.0059,
        "percent_delta": 0.0165,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.214,
        "after": 1.0,
        "delta": 0.786,
        "percent_delta": 3.6729,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.5,
        "after": 1.0,
        "delta": 0.5,
        "percent_delta": 1.0,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.375,
        "after": 0.4132,
        "delta": 0.0382,
        "percent_delta": 0.1019,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.429,
        "after": 0.0,
        "delta": -0.429,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 11,
      "boosted_metrics": 9,
      "deboosted_metrics": 2,
      "better_metrics": 10,
      "worse_metrics": 1,
      "biggest_boost": {
        "metric": "predicted_AB",
        "before": 2.571,
        "after": 5.0,
        "delta": 2.429,
        "percent_delta": 0.9448,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_SO",
        "before": 0.429,
        "after": 0.0,
        "delta": -0.429,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "better"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.143-
predicted_3B0.000-
predicted_AB2.571-
predicted_AVG0.278-
predicted_BB0.321-
predicted_H0.714-
predicted_HR0.036-
predicted_OBP0.358-
predicted_R0.214-
predicted_RBI0.500-
predicted_SLG0.375-
predicted_SO0.429-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.1650.022
predicted_3B0.0010.001
predicted_AB2.7620.191
predicted_AVG0.2870.009
predicted_BB0.313-0.008
predicted_H0.7950.082
predicted_HBP0.007-
predicted_HR0.0560.020
predicted_OBP0.3600.002
predicted_R0.2380.024
predicted_RBI0.5240.024
predicted_SLG0.4050.030
predicted_SO0.4800.051
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1650.000
predicted_3B0.0010.000
predicted_AB2.7620.000
predicted_AVG0.2920.004
predicted_BB0.3140.001
predicted_H0.8050.010
predicted_HBP0.0070.000
predicted_HR0.0560.001
predicted_OBP0.3640.004
predicted_R0.2430.005
predicted_RBI0.5350.011
predicted_SLG0.4130.008
predicted_SO0.478-0.002
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 3 (raw=2.76), rates preserved: AVG=0.279 HR/AB=0.020

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB3.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI1.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI1.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1390.139
3B0.0160.016
BB0.3520.352
H0.725-0.275
HR0.0800.080
RBI0.435-0.565
SO0.542-0.458
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.139
3B0.000-0.016
AB3.0000.000
BB0.000-0.352
H0.000-0.725
HR0.000-0.080
R0.0000.000
RBI0.000-0.435
SO0.000-0.542
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.165
predicted_3B0.000-0.001
predicted_AB3.0000.238
predicted_AVG0.232-0.060
predicted_BB0.000-0.314
predicted_H1.0000.195
predicted_HR0.000-0.056
predicted_OBP0.315-0.049
predicted_R0.000-0.243
predicted_RBI1.0000.465
predicted_SLG0.363-0.050
predicted_SO1.0000.522
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B1.0001.000
3B0.0000.000
AB5.0002.000
BB0.0000.000
CS0.0000.000
H2.0002.000
HBP0.0000.000
HR1.0001.000
PA5.000-
R1.0001.000
RBI1.0001.000
SB0.0000.000
SF0.0000.000
SO0.0000.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 28
Reference playing time: 3.803
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-17.0007.0001.0000.0001.0004.0001.0001.0003.0000.41180.44440.64710.41180.05880.23530.05880.1765
last_100.2010-30.00011.0004.0000.0001.0006.0002.0003.0005.0000.36670.42420.60000.36670.03330.20000.10000.1667
season0.6028-72.00020.0004.0000.0001.00014.0006.0009.00012.0000.27780.34940.37500.27780.01390.19440.12500.1667
Weighted Prediction From Real Data
MetricValue
predicted_2B0.2010
predicted_3B0.0030
predicted_AB3.0830
predicted_AVG0.3027
predicted_BB0.2990
predicted_H0.9330
predicted_HBP0.0070
predicted_HR0.0890
predicted_OBP0.3627
predicted_R0.2780
predicted_RBI0.5650
predicted_SLG0.4567
predicted_SO0.5650
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.14300.20100.1646model_form_blend
predicted_3B0.00000.00300.0011model_form_blend
predicted_AB2.57103.08302.7616model_form_blend
predicted_AVG0.27800.30270.2872model_form_blend
predicted_BB0.32100.29900.3128model_form_blend
predicted_H0.71400.93300.7955model_form_blend
predicted_HBP-0.00700.0070form_only
predicted_HR0.03600.08900.0557model_form_blend
predicted_OBP0.35800.36270.3598model_form_blend
predicted_R0.21400.27800.2378model_form_blend
predicted_RBI0.50000.56500.5242model_form_blend
predicted_SLG0.37500.45670.4054model_form_blend
predicted_SO0.42900.56500.4796model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date81
Season rows before report date81
Report year2026
Profile rows used28
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA5
AB5
H2
2B1
3B0
HR1
R1
RBI1
BB0
SO0
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB5
Hitting_AVG0.6
Hitting_BB0
Hitting_GIDP0
Hitting_H3
Hitting_HBP0
Hitting_HR1
Hitting_IBB0
Hitting_R1
Hitting_RBI4
Hitting_SAC0
Hitting_SF0
Hitting_SO1
Hitting_TB6
Hitting_battingOrder5
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedRF
gameID20260920_MIN@LAA
game_typefull
mlbID702176
playerID702176
playerNameAlan Roden
posRF
startedTrue
startingPositionRF
teamMIN
teamID17
game_date2026-09-20
sl_k_percent13.9
sl_bb_percent11.4
sl_woba0.294
sl_xwoba0.342
sl_xba0.279
sl_xslg0.398
sl_sweet_spot_percent27.1
sl_barrel_batted_rate5.1
sl_hard_hit_percent40.7
sl_exit_velocity_avg87.9
sl_launch_angle_avg11.3
sl_whiff_percent15.9
sl_swing_percent45.8
Player-693306 (693306) · BATTER · 1B · Team MIN
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 0
All-history rows before 20260921: 0
System season_avg: 0.2482
Data season_avg (2026 season-to-date): -
Diff (system - data): -
System opponent_avg: 0.2482

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1710.0000.000Hitting_2B----
predicted_3B0.0100.0000.000Hitting_3B----
predicted_AB3.4904.0003.000Hitting_AB----
predicted_AVG0.2550.0000.333Hitting_AVG----
predicted_BB0.3891.0000.000Hitting_BB----
predicted_CS-0.0000.000BaseRunning_CS----
predicted_H0.8880.0001.000Hitting_H----
predicted_HR0.1470.0000.000Hitting_HR----
predicted_OBP0.3290.2000.333Hitting_OBP----
predicted_R0.4670.0000.000Hitting_R----
predicted_RBI0.5160.0000.000Hitting_RBI----
predicted_SLG0.4360.0000.333Hitting_SLG----
predicted_SO0.8681.0001.000Hitting_SO----

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics8
Boosted Metrics3
Deboosted Metrics5
Better Metrics2
Worse Metrics6
Biggest Boostpredicted_BB: 0.3890 -> 1.0000 (boost 0.6110, better)
Biggest Deboostpredicted_H: 0.8880 -> 0.0000 (deboost -0.8880, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend00000--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.
3team_form_snapshot00000--Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling73425predicted_RBI: 0.5214 -> 1.0000 (boost 0.4786, better)predicted_AB: 3.5393 -> 3.0000 (deboost -0.5393, worse)AB rounded to 3 (raw=3.54), rates preserved: AVG=0.246 HR/AB=0.041
6consistency_constraints10101-predicted_R: 0.4822 -> 0.0000 (deboost -0.4822, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine63342predicted_BB: 0.0000 -> 0.3454 (boost 0.3454, better)predicted_RBI: 1.0000 -> 0.4313 (deboost -0.5687, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation62415predicted_SO: 0.7695 -> 1.0000 (boost 0.2305, worse)predicted_RBI: 0.4313 -> 0.0000 (deboost -0.4313, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context41313predicted_RBI: 0.0000 -> 1.0000 (boost 1.0000, better)predicted_SLG: 0.4355 -> 0.3740 (deboost -0.0615, worse)Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10simulation_box_score_reference42222predicted_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
11current_json_final33030predicted_SLG: 0.3740 -> 0.4355 (boost 0.0615, better)-Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "693306",
  "player_name": "Player-693306",
  "position": "1B",
  "team": "MIN",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.171,
        "predicted_3B": 0.01,
        "predicted_AB": 3.49,
        "predicted_AVG": 0.255,
        "predicted_BB": 0.389,
        "predicted_H": 0.888,
        "predicted_HR": 0.147,
        "predicted_OBP": 0.329,
        "predicted_R": 0.467,
        "predicted_RBI": 0.516,
        "predicted_SLG": 0.436,
        "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.1721,
        "predicted_3B": 0.0109,
        "predicted_AB": 3.5393,
        "predicted_AVG": 0.2539,
        "predicted_BB": 0.3693,
        "predicted_H": 0.8968,
        "predicted_HBP": 0.033,
        "predicted_HR": 0.1448,
        "predicted_OBP": 0.3253,
        "predicted_R": 0.4722,
        "predicted_RBI": 0.5106,
        "predicted_SLG": 0.4315,
        "predicted_SO": 0.865
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.171,
          "after": 0.1721,
          "delta": 0.0011,
          "percent_delta": 0.0064,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.01,
          "after": 0.0109,
          "delta": 0.0009,
          "percent_delta": 0.09,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 3.49,
          "after": 3.5393,
          "delta": 0.0493,
          "percent_delta": 0.0141,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.255,
          "after": 0.2539,
          "delta": -0.0011,
          "percent_delta": -0.0043,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.389,
          "after": 0.3693,
          "delta": -0.0197,
          "percent_delta": -0.0506,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.888,
          "after": 0.8968,
          "delta": 0.0088,
          "percent_delta": 0.0099,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.147,
          "after": 0.1448,
          "delta": -0.0022,
          "percent_delta": -0.015,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.329,
          "after": 0.3253,
          "delta": -0.0037,
          "percent_delta": -0.0112,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.467,
          "after": 0.4722,
          "delta": 0.0052,
          "percent_delta": 0.0111,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.516,
          "after": 0.5106,
          "delta": -0.0054,
          "percent_delta": -0.0105,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.436,
          "after": 0.4315,
          "delta": -0.0045,
          "percent_delta": -0.0103,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.868,
          "after": 0.865,
          "delta": -0.003,
          "percent_delta": -0.0035,
          "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": 0,
        "last_10": 0,
        "season": 0
      }
    },
    {
      "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.1721,
        "predicted_3B": 0.0109,
        "predicted_AB": 3.5393,
        "predicted_AVG": 0.2565,
        "predicted_BB": 0.3706,
        "predicted_H": 0.9079,
        "predicted_HBP": 0.033,
        "predicted_HR": 0.1465,
        "predicted_OBP": 0.327,
        "predicted_R": 0.4822,
        "predicted_RBI": 0.5214,
        "predicted_SLG": 0.4355,
        "predicted_SO": 0.862
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1721,
          "after": 0.1721,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.0109,
          "after": 0.0109,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 3.5393,
          "after": 3.5393,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2539,
          "after": 0.2565,
          "delta": 0.0026,
          "percent_delta": 0.0102,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.3693,
          "after": 0.3706,
          "delta": 0.0013,
          "percent_delta": 0.0035,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.8968,
          "after": 0.9079,
          "delta": 0.0111,
          "percent_delta": 0.0124,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HBP",
          "before": 0.033,
          "after": 0.033,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.1448,
          "after": 0.1465,
          "delta": 0.0017,
          "percent_delta": 0.0117,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3253,
          "after": 0.327,
          "delta": 0.0017,
          "percent_delta": 0.0052,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.4722,
          "after": 0.4822,
          "delta": 0.01,
          "percent_delta": 0.0212,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5106,
          "after": 0.5214,
          "delta": 0.0108,
          "percent_delta": 0.0212,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4315,
          "after": 0.4355,
          "delta": 0.004,
          "percent_delta": 0.0093,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.865,
          "after": 0.862,
          "delta": -0.003,
          "percent_delta": -0.0035,
          "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.54), rates preserved: AVG=0.246 HR/AB=0.041",
      "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.1721,
          "after": 0.0,
          "delta": -0.1721,
          "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.5393,
          "after": 3.0,
          "delta": -0.5393,
          "percent_delta": -0.1524,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3706,
          "after": 0.0,
          "delta": -0.3706,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.9079,
          "after": 1.0,
          "delta": 0.0921,
          "percent_delta": 0.1014,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HBP",
          "before": 0.033,
          "after": 0.0,
          "delta": -0.033,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.1465,
          "after": 0.0,
          "delta": -0.1465,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5214,
          "after": 1.0,
          "delta": 0.4786,
          "percent_delta": 0.9179,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.862,
          "after": 1.0,
          "delta": 0.138,
          "percent_delta": 0.1601,
          "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.5214,
          "after": 1.0,
          "delta": 0.4786,
          "percent_delta": 0.9179,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 3.5393,
          "after": 3.0,
          "delta": -0.5393,
          "percent_delta": -0.1524,
          "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.4822,
          "after": 0.0,
          "delta": -0.4822,
          "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.4822,
          "after": 0.0,
          "delta": -0.4822,
          "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.1497,
        "predicted_3B": 0.0212,
        "predicted_BB": 0.3454,
        "predicted_H": 0.7959,
        "predicted_HR": 0.1013,
        "predicted_RBI": 0.4313,
        "predicted_SO": 0.7695
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1497,
          "delta": 0.1497,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0212,
          "delta": 0.0212,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.3454,
          "delta": 0.3454,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7959,
          "delta": -0.2041,
          "percent_delta": -0.2041,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1013,
          "delta": 0.1013,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.4313,
          "delta": -0.5687,
          "percent_delta": -0.5687,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.7695,
          "delta": -0.2305,
          "percent_delta": -0.2305,
          "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.3454,
          "delta": 0.3454,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.4313,
          "delta": -0.5687,
          "percent_delta": -0.5687,
          "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.1497,
          "after": 0.0,
          "delta": -0.1497,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0212,
          "after": 0.0,
          "delta": -0.0212,
          "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.3454,
          "after": 0.0,
          "delta": -0.3454,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.7959,
          "after": 1.0,
          "delta": 0.2041,
          "percent_delta": 0.2564,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1013,
          "after": 0.0,
          "delta": -0.1013,
          "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.4313,
          "after": 0.0,
          "delta": -0.4313,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.7695,
          "after": 1.0,
          "delta": 0.2305,
          "percent_delta": 0.2995,
          "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.7695,
          "after": 1.0,
          "delta": 0.2305,
          "percent_delta": 0.2995,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.4313,
          "after": 0.0,
          "delta": -0.4313,
          "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.231,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.306,
        "predicted_R": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.374,
        "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.2565,
          "after": 0.231,
          "delta": -0.0255,
          "percent_delta": -0.0994,
          "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.327,
          "after": 0.306,
          "delta": -0.021,
          "percent_delta": -0.0642,
          "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.4355,
          "after": 0.374,
          "delta": -0.0615,
          "percent_delta": -0.1412,
          "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.4355,
          "after": 0.374,
          "delta": -0.0615,
          "percent_delta": -0.1412,
          "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": 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": 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": 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_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.2565,
        "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.327,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.4355,
        "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.231,
          "after": 0.2565,
          "delta": 0.0255,
          "percent_delta": 0.1105,
          "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.306,
          "after": 0.327,
          "delta": 0.021,
          "percent_delta": 0.0686,
          "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.374,
          "after": 0.4355,
          "delta": 0.0615,
          "percent_delta": 0.1644,
          "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.374,
          "after": 0.4355,
          "delta": 0.0615,
          "percent_delta": 0.1644,
          "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.171,
        "after": 0.0,
        "delta": -0.171,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_3B",
        "before": 0.01,
        "after": 0.0,
        "delta": -0.01,
        "percent_delta": -1.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_AB",
        "before": 3.49,
        "after": 4.0,
        "delta": 0.51,
        "percent_delta": 0.1461,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.255,
        "after": 0.2565,
        "delta": 0.0015,
        "percent_delta": 0.0059,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_BB",
        "before": 0.389,
        "after": 1.0,
        "delta": 0.611,
        "percent_delta": 1.5707,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.888,
        "after": 0.0,
        "delta": -0.888,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.147,
        "after": 0.0,
        "delta": -0.147,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.329,
        "after": 0.327,
        "delta": -0.002,
        "percent_delta": -0.0061,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_R",
        "before": 0.467,
        "after": 0.0,
        "delta": -0.467,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.516,
        "after": 0.0,
        "delta": -0.516,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.436,
        "after": 0.4355,
        "delta": -0.0005,
        "percent_delta": -0.0011,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_SO",
        "before": 0.868,
        "after": 1.0,
        "delta": 0.132,
        "percent_delta": 0.1521,
        "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_BB",
        "before": 0.389,
        "after": 1.0,
        "delta": 0.611,
        "percent_delta": 1.5707,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_H",
        "before": 0.888,
        "after": 0.0,
        "delta": -0.888,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.171-
predicted_3B0.010-
predicted_AB3.490-
predicted_AVG0.255-
predicted_BB0.389-
predicted_H0.888-
predicted_HR0.147-
predicted_OBP0.329-
predicted_R0.467-
predicted_RBI0.516-
predicted_SLG0.436-
predicted_SO0.868-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.1720.001
predicted_3B0.0110.001
predicted_AB3.5390.049
predicted_AVG0.254-0.001
predicted_BB0.369-0.020
predicted_H0.8970.009
predicted_HBP0.033-
predicted_HR0.145-0.002
predicted_OBP0.325-0.004
predicted_R0.4720.005
predicted_RBI0.511-0.005
predicted_SLG0.431-0.005
predicted_SO0.865-0.003
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1720.000
predicted_3B0.0110.000
predicted_AB3.5390.000
predicted_AVG0.2570.003
predicted_BB0.3710.001
predicted_H0.9080.011
predicted_HBP0.0330.000
predicted_HR0.1460.002
predicted_OBP0.3270.002
predicted_R0.4820.010
predicted_RBI0.5210.011
predicted_SLG0.4350.004
predicted_SO0.862-0.003
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 3 (raw=3.54), rates preserved: AVG=0.246 HR/AB=0.041

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB3.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI1.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI1.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1500.150
3B0.0210.021
BB0.3450.345
H0.796-0.204
HR0.1010.101
RBI0.431-0.569
SO0.769-0.231
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.150
3B0.000-0.021
AB3.0000.000
BB0.000-0.345
H1.0000.204
HR0.000-0.101
R0.0000.000
RBI0.000-0.431
SO1.0000.231
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.172
predicted_3B0.000-0.011
predicted_AB3.000-0.539
predicted_AVG0.231-0.025
predicted_BB0.000-0.371
predicted_H1.0000.092
predicted_HR0.000-0.146
predicted_OBP0.306-0.021
predicted_R0.000-0.482
predicted_RBI1.0000.479
predicted_SLG0.374-0.061
predicted_SO1.0000.138
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0001.000
BB1.0001.000
CS0.0000.000
H0.000-1.000
HBP0.0000.000
HR0.0000.000
PA5.000-
R0.0000.000
RBI0.0000.000
SB0.0000.000
SF0.0000.000
SO1.0000.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 0
Reference playing time: 3.803
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.200-0.0000.0000.0000.0000.0000.0000.0000.0000.000--------
last_100.200-0.0000.0000.0000.0000.0000.0000.0000.0000.000--------
season0.600-0.0000.0000.0000.0000.0000.0000.0000.0000.000--------
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1780
predicted_3B0.0160
predicted_AB3.8030
predicted_AVG0.2482
predicted_BB0.2640
predicted_H0.9440
predicted_HBP0.0330
predicted_HR0.1330
predicted_OBP0.3055
predicted_R0.5000
predicted_RBI0.4820
predicted_SLG0.4077
predicted_SO0.8490
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.17100.17800.1721model_form_blend
predicted_3B0.01000.01600.0109model_form_blend
predicted_AB3.49003.80303.5393model_form_blend
predicted_AVG0.25500.24820.2539model_form_blend
predicted_BB0.38900.26400.3693model_form_blend
predicted_H0.88800.94400.8968model_form_blend
predicted_HBP-0.03300.0330form_only
predicted_HR0.14700.13300.1448model_form_blend
predicted_OBP0.32900.30550.3253model_form_blend
predicted_R0.46700.50000.4722model_form_blend
predicted_RBI0.51600.48200.5106model_form_blend
predicted_SLG0.43600.40770.4315model_form_blend
predicted_SO0.86800.84900.8650model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date0
Season rows before report date0
Report year2026
Profile rows used0
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA5
AB4
H0
2B0
3B0
HR0
R0
RBI0
BB1
SO1
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

No historical data found for this player before report date.

Emmanuel Rodriguez (691181) · BATTER · LF · Team MIN
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 25
All-history rows before 20260921: 25
System season_avg: 0.1820
Data season_avg (2026 season-to-date): 0.1546
Diff (system - data): 0.0274
System opponent_avg: 0.1820
System season_avg diverges from 2026 season-to-date by 0.0274. This usually means mixed-season window logic.

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.2221.0000.000Hitting_2B0.0801.0000.9200.000
predicted_3B0.1110.0000.000Hitting_3B0.1600.000-0.1600.000
predicted_AB3.6675.0004.000Hitting_AB3.8804.0001.1201.000
predicted_AVG0.1820.2000.250Hitting_AVG0.1550.2500.045-0.050
predicted_BB0.1110.0000.000Hitting_BB0.2000.000-0.2000.000
predicted_CS-0.0000.000BaseRunning_CS0.0000.0000.0000.000
predicted_H0.6671.0001.000Hitting_H0.6001.0000.4000.000
predicted_HR0.1110.0000.000Hitting_HR0.1600.000-0.1600.000
predicted_OBP0.2060.2000.250Hitting_OBP0.1960.2500.004-0.050
predicted_R0.2221.0000.000Hitting_R0.2001.0000.8000.000
predicted_RBI0.4441.0000.000Hitting_RBI0.5200.0000.4801.000
predicted_SLG0.3940.4000.250Hitting_SLG0.3810.5000.019-0.100
predicted_SO1.3332.0001.000Hitting_SO1.4800.0000.5202.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics11
Boosted Metrics7
Deboosted Metrics4
Better Metrics6
Worse Metrics5
Biggest Boostpredicted_AB: 3.6670 -> 5.0000 (boost 1.3330, better)
Biggest Deboostpredicted_3B: 0.1110 -> 0.0000 (deboost -0.1110, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend21111predicted_OBP: 0.2060 -> 0.2113 (boost 0.0053, better)predicted_SLG: 0.3940 -> 0.3699 (deboost -0.0241, 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.
3team_form_snapshot00000--Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling82635predicted_H: 0.6705 -> 1.0000 (boost 0.3295, better)predicted_RBI: 0.4160 -> 0.0000 (deboost -0.4160, worse)AB rounded to 4 (raw=3.68), rates preserved: AVG=0.174 HR/AB=0.028
6consistency_constraints10101-predicted_R: 0.2654 -> 0.0000 (deboost -0.2654, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine54141predicted_RBI: 0.0000 -> 0.4399 (boost 0.4399, better)predicted_H: 1.0000 -> 0.8034 (deboost -0.1966, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation51414predicted_H: 0.8034 -> 1.0000 (boost 0.1966, better)predicted_RBI: 0.4399 -> 0.0000 (deboost -0.4399, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context22020predicted_OBP: 0.2125 -> 0.2950 (boost 0.0825, better)-Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10simulation_box_score_reference55041predicted_2B: 0.0000 -> 1.0000 (boost 1.0000, better)-Attached simulation box score without overwriting model prediction
11current_json_final20202-predicted_OBP: 0.2950 -> 0.2125 (deboost -0.0825, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "691181",
  "player_name": "Emmanuel Rodriguez",
  "position": "LF",
  "team": "MIN",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.222,
        "predicted_3B": 0.111,
        "predicted_AB": 3.667,
        "predicted_AVG": 0.182,
        "predicted_BB": 0.111,
        "predicted_H": 0.667,
        "predicted_HR": 0.111,
        "predicted_OBP": 0.206,
        "predicted_R": 0.222,
        "predicted_RBI": 0.444,
        "predicted_SLG": 0.394,
        "predicted_SO": 1.333
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.2136,
        "predicted_3B": 0.0869,
        "predicted_AB": 3.6808,
        "predicted_AVG": 0.18,
        "predicted_BB": 0.1413,
        "predicted_H": 0.6623,
        "predicted_HBP": 0.015,
        "predicted_HR": 0.1035,
        "predicted_OBP": 0.2113,
        "predicted_R": 0.2599,
        "predicted_RBI": 0.4074,
        "predicted_SLG": 0.3699,
        "predicted_SO": 1.2895
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.222,
          "after": 0.2136,
          "delta": -0.0084,
          "percent_delta": -0.0378,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.111,
          "after": 0.0869,
          "delta": -0.0241,
          "percent_delta": -0.2171,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 3.667,
          "after": 3.6808,
          "delta": 0.0138,
          "percent_delta": 0.0038,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.182,
          "after": 0.18,
          "delta": -0.002,
          "percent_delta": -0.011,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.111,
          "after": 0.1413,
          "delta": 0.0303,
          "percent_delta": 0.273,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.667,
          "after": 0.6623,
          "delta": -0.0047,
          "percent_delta": -0.007,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.111,
          "after": 0.1035,
          "delta": -0.0075,
          "percent_delta": -0.0676,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.206,
          "after": 0.2113,
          "delta": 0.0053,
          "percent_delta": 0.0257,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.222,
          "after": 0.2599,
          "delta": 0.0379,
          "percent_delta": 0.1707,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.444,
          "after": 0.4074,
          "delta": -0.0366,
          "percent_delta": -0.0824,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.394,
          "after": 0.3699,
          "delta": -0.0241,
          "percent_delta": -0.0612,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.333,
          "after": 1.2895,
          "delta": -0.0435,
          "percent_delta": -0.0326,
          "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.206,
          "after": 0.2113,
          "delta": 0.0053,
          "percent_delta": 0.0257,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SLG",
          "before": 0.394,
          "after": 0.3699,
          "delta": -0.0241,
          "percent_delta": -0.0612,
          "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": 9,
        "season": 9
      }
    },
    {
      "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.2136,
        "predicted_3B": 0.0869,
        "predicted_AB": 3.6808,
        "predicted_AVG": 0.1822,
        "predicted_BB": 0.1418,
        "predicted_H": 0.6705,
        "predicted_HBP": 0.015,
        "predicted_HR": 0.1047,
        "predicted_OBP": 0.2125,
        "predicted_R": 0.2654,
        "predicted_RBI": 0.416,
        "predicted_SLG": 0.3728,
        "predicted_SO": 1.285
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.2136,
          "after": 0.2136,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.0869,
          "after": 0.0869,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 3.6808,
          "after": 3.6808,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.18,
          "after": 0.1822,
          "delta": 0.0022,
          "percent_delta": 0.0122,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.1413,
          "after": 0.1418,
          "delta": 0.0005,
          "percent_delta": 0.0035,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.6623,
          "after": 0.6705,
          "delta": 0.0082,
          "percent_delta": 0.0124,
          "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.1035,
          "after": 0.1047,
          "delta": 0.0012,
          "percent_delta": 0.0116,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2113,
          "after": 0.2125,
          "delta": 0.0012,
          "percent_delta": 0.0057,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.2599,
          "after": 0.2654,
          "delta": 0.0055,
          "percent_delta": 0.0212,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4074,
          "after": 0.416,
          "delta": 0.0086,
          "percent_delta": 0.0211,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3699,
          "after": 0.3728,
          "delta": 0.0029,
          "percent_delta": 0.0078,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 1.2895,
          "after": 1.285,
          "delta": -0.0045,
          "percent_delta": -0.0035,
          "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.68), rates preserved: AVG=0.174 HR/AB=0.028",
      "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.2136,
          "after": 0.0,
          "delta": -0.2136,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0869,
          "after": 0.0,
          "delta": -0.0869,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AB",
          "before": 3.6808,
          "after": 4.0,
          "delta": 0.3192,
          "percent_delta": 0.0867,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.1418,
          "after": 0.0,
          "delta": -0.1418,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.6705,
          "after": 1.0,
          "delta": 0.3295,
          "percent_delta": 0.4914,
          "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.1047,
          "after": 0.0,
          "delta": -0.1047,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.416,
          "after": 0.0,
          "delta": -0.416,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.285,
          "after": 1.0,
          "delta": -0.285,
          "percent_delta": -0.2218,
          "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_H",
          "before": 0.6705,
          "after": 1.0,
          "delta": 0.3295,
          "percent_delta": 0.4914,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.416,
          "after": 0.0,
          "delta": -0.416,
          "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.2654,
          "after": 0.0,
          "delta": -0.2654,
          "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.2654,
          "after": 0.0,
          "delta": -0.2654,
          "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.1575,
        "predicted_3B": 0.0254,
        "predicted_BB": 0.3111,
        "predicted_H": 0.8034,
        "predicted_HR": 0.1055,
        "predicted_RBI": 0.4399,
        "predicted_SO": 0.9625
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1575,
          "delta": 0.1575,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0254,
          "delta": 0.0254,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.3111,
          "delta": 0.3111,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8034,
          "delta": -0.1966,
          "percent_delta": -0.1966,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1055,
          "delta": 0.1055,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.4399,
          "delta": 0.4399,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.9625,
          "delta": -0.0375,
          "percent_delta": -0.0375,
          "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.4399,
          "delta": 0.4399,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8034,
          "delta": -0.1966,
          "percent_delta": -0.1966,
          "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.1575,
          "after": 0.0,
          "delta": -0.1575,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0254,
          "after": 0.0,
          "delta": -0.0254,
          "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.3111,
          "after": 0.0,
          "delta": -0.3111,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8034,
          "after": 1.0,
          "delta": 0.1966,
          "percent_delta": 0.2447,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1055,
          "after": 0.0,
          "delta": -0.1055,
          "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.4399,
          "after": 0.0,
          "delta": -0.4399,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.9625,
          "after": 1.0,
          "delta": 0.0375,
          "percent_delta": 0.039,
          "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.8034,
          "after": 1.0,
          "delta": 0.1966,
          "percent_delta": 0.2447,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.4399,
          "after": 0.0,
          "delta": -0.4399,
          "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.295,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.375,
        "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.1822,
          "after": 0.227,
          "delta": 0.0448,
          "percent_delta": 0.2459,
          "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.2125,
          "after": 0.295,
          "delta": 0.0825,
          "percent_delta": 0.3882,
          "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.3728,
          "after": 0.375,
          "delta": 0.0022,
          "percent_delta": 0.0059,
          "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_OBP",
          "before": 0.2125,
          "after": 0.295,
          "delta": 0.0825,
          "percent_delta": 0.3882,
          "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": 5.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": 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": 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": 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": 5,
        "boosted_metrics": 5,
        "deboosted_metrics": 0,
        "better_metrics": 4,
        "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": null
      },
      "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": 5.0,
        "predicted_AVG": 0.1822,
        "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.2125,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.3728,
        "predicted_SO": 2.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.227,
          "after": 0.1822,
          "delta": -0.0448,
          "percent_delta": -0.1975,
          "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": 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.2125,
          "delta": -0.0825,
          "percent_delta": -0.2797,
          "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.375,
          "after": 0.3728,
          "delta": -0.0022,
          "percent_delta": -0.006,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 2.0,
          "after": 2.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        }
      ],
      "summary": {
        "changed_metrics": 2,
        "boosted_metrics": 0,
        "deboosted_metrics": 2,
        "better_metrics": 0,
        "worse_metrics": 2,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_OBP",
          "before": 0.295,
          "after": 0.2125,
          "delta": -0.0825,
          "percent_delta": -0.2797,
          "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.222,
        "after": 1.0,
        "delta": 0.778,
        "percent_delta": 3.5045,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_3B",
        "before": 0.111,
        "after": 0.0,
        "delta": -0.111,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AB",
        "before": 3.667,
        "after": 5.0,
        "delta": 1.333,
        "percent_delta": 0.3635,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.182,
        "after": 0.1822,
        "delta": 0.0002,
        "percent_delta": 0.0011,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_BB",
        "before": 0.111,
        "after": 0.0,
        "delta": -0.111,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.667,
        "after": 1.0,
        "delta": 0.333,
        "percent_delta": 0.4993,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.111,
        "after": 0.0,
        "delta": -0.111,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.206,
        "after": 0.2125,
        "delta": 0.0065,
        "percent_delta": 0.0316,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.222,
        "after": 1.0,
        "delta": 0.778,
        "percent_delta": 3.5045,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.444,
        "after": 1.0,
        "delta": 0.556,
        "percent_delta": 1.2523,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.394,
        "after": 0.3728,
        "delta": -0.0212,
        "percent_delta": -0.0538,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 1.333,
        "after": 2.0,
        "delta": 0.667,
        "percent_delta": 0.5004,
        "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_AB",
        "before": 3.667,
        "after": 5.0,
        "delta": 1.333,
        "percent_delta": 0.3635,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_3B",
        "before": 0.111,
        "after": 0.0,
        "delta": -0.111,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "better"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.222-
predicted_3B0.111-
predicted_AB3.667-
predicted_AVG0.182-
predicted_BB0.111-
predicted_H0.667-
predicted_HR0.111-
predicted_OBP0.206-
predicted_R0.222-
predicted_RBI0.444-
predicted_SLG0.394-
predicted_SO1.333-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.214-0.008
predicted_3B0.087-0.024
predicted_AB3.6810.014
predicted_AVG0.180-0.002
predicted_BB0.1410.030
predicted_H0.662-0.005
predicted_HBP0.015-
predicted_HR0.103-0.008
predicted_OBP0.2110.005
predicted_R0.2600.038
predicted_RBI0.407-0.037
predicted_SLG0.370-0.024
predicted_SO1.290-0.043
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.2140.000
predicted_3B0.0870.000
predicted_AB3.6810.000
predicted_AVG0.1820.002
predicted_BB0.1420.001
predicted_H0.6700.008
predicted_HBP0.0150.000
predicted_HR0.1050.001
predicted_OBP0.2120.001
predicted_R0.2650.006
predicted_RBI0.4160.009
predicted_SLG0.3730.003
predicted_SO1.285-0.005
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 4 (raw=3.68), rates preserved: AVG=0.174 HR/AB=0.028

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB4.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1580.158
3B0.0250.025
BB0.3110.311
H0.803-0.197
HR0.1050.105
RBI0.4400.440
SO0.963-0.037
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.158
3B0.000-0.025
AB4.0000.000
BB0.000-0.311
H1.0000.197
HR0.000-0.105
R0.0000.000
RBI0.000-0.440
SO1.0000.037
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.214
predicted_3B0.000-0.087
predicted_AB4.0000.319
predicted_AVG0.2270.045
predicted_BB0.000-0.142
predicted_H1.0000.330
predicted_HR0.000-0.105
predicted_OBP0.2950.082
predicted_R0.000-0.265
predicted_RBI0.000-0.416
predicted_SLG0.3750.002
predicted_SO1.000-0.285
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B1.0001.000
3B0.0000.000
AB5.0001.000
BB0.0000.000
CS0.0000.000
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA5.000-
R1.0001.000
RBI1.0001.000
SB0.0000.000
SF0.0000.000
SO2.0001.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 9
Reference playing time: 3.803
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-18.0001.0001.0000.0000.0000.0001.0001.0008.0000.05560.10530.11110.05560.00000.00000.05560.4444
last_100.209-33.0006.0002.0001.0001.0004.0002.0001.00012.0000.18180.20590.39390.18180.03030.12120.03030.3636
season0.609-33.0006.0002.0001.0001.0004.0002.0001.00012.0000.18180.20590.39390.18180.03030.12120.03030.3636
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1950
predicted_3B0.0340
predicted_AB3.7110
predicted_AVG0.1757
predicted_BB0.2080
predicted_H0.6520
predicted_HBP0.0150
predicted_HR0.0870
predicted_OBP0.2229
predicted_R0.3430
predicted_RBI0.3270
predicted_SLG0.3169
predicted_SO1.1940
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.22200.19500.2136model_form_blend
predicted_3B0.11100.03400.0869model_form_blend
predicted_AB3.66703.71103.6808model_form_blend
predicted_AVG0.18200.17570.1800model_form_blend
predicted_BB0.11100.20800.1413model_form_blend
predicted_H0.66700.65200.6623model_form_blend
predicted_HBP-0.01500.0150form_only
predicted_HR0.11100.08700.1035model_form_blend
predicted_OBP0.20600.22290.2113model_form_blend
predicted_R0.22200.34300.2599model_form_blend
predicted_RBI0.44400.32700.4074model_form_blend
predicted_SLG0.39400.31690.3699model_form_blend
predicted_SO1.33301.19401.2895model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date25
Season rows before report date25
Report year2026
Profile rows used9
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA5
AB5
H1
2B1
3B0
HR0
R1
RBI1
BB0
SO2
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B1
Hitting_3B0
Hitting_AB4
Hitting_AVG0.25
Hitting_BB0
Hitting_GIDP0
Hitting_H1
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R1
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB2
Hitting_battingOrder8
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedLF
gameID20260920_MIN@LAA
game_typefull
mlbID691181
playerID691181
playerNameEmmanuel Rodriguez
posCF
startedTrue
startingPositionLF
teamMIN
teamID17
game_date2026-09-20
sl_k_percent40.0
sl_bb_percent3.3
sl_woba0.246
sl_xwoba0.343
sl_xba0.26
sl_xslg0.524
sl_sweet_spot_percent47.1
sl_barrel_batted_rate23.5
sl_hard_hit_percent58.8
sl_exit_velocity_avg94.1
sl_launch_angle_avg10.2
sl_whiff_percent37.9
sl_swing_percent49.6
Brooks Lee (686797) · BATTER · 3B · Team MIN
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 597
All-history rows before 20260921: 597
System season_avg: 0.2530
Data season_avg (2026 season-to-date): 0.2550
Diff (system - data): -0.0020
System opponent_avg: 0.2530

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1630.0000.000Hitting_2B0.1730.000-0.1730.000
predicted_3B0.0200.0000.000Hitting_3B0.0230.000-0.0230.000
predicted_AB4.9504.0004.000Hitting_AB3.8894.0000.1110.000
predicted_AVG0.3030.2500.250Hitting_AVG0.2550.750-0.005-0.500
predicted_BB0.2381.0000.000Hitting_BB0.2600.0000.7401.000
predicted_CS-0.0000.000BaseRunning_CS0.0370.000-0.0370.000
predicted_H1.5001.0001.000Hitting_H0.9923.0000.008-2.000
predicted_HR0.1100.0000.000Hitting_HR0.1590.000-0.1590.000
predicted_OBP0.3530.4000.250Hitting_OBP0.3040.7500.096-0.350
predicted_R0.4830.0001.000Hitting_R0.4973.000-0.497-3.000
predicted_RBI0.5500.0001.000Hitting_RBI0.5760.000-0.5760.000
predicted_SLG0.4330.2500.250Hitting_SLG0.4340.750-0.184-0.500
predicted_SO0.6671.0001.000Hitting_SO0.6630.0000.3371.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics11
Boosted Metrics3
Deboosted Metrics8
Better Metrics2
Worse Metrics9
Biggest Boostpredicted_BB: 0.2380 -> 1.0000 (boost 0.7620, better)
Biggest Deboostpredicted_AB: 4.9500 -> 4.0000 (deboost -0.9500, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend31212predicted_R: 0.4830 -> 0.5611 (boost 0.0781, better)predicted_AB: 4.9500 -> 4.4441 (deboost -0.5059, 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.
3team_form_snapshot20202-predicted_SLG: 0.4326 -> 0.4232 (deboost -0.0094, worse)Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling70716-predicted_SO: 0.6411 -> 0.0000 (deboost -0.6411, better)AB rounded to 4 (raw=4.95), rates preserved: AVG=0.265 HR/AB=0.021
6consistency_constraints11010predicted_R: 0.5730 -> 1.0000 (boost 0.4270, better)-Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine65142predicted_SO: 0.0000 -> 0.6465 (boost 0.6465, worse)predicted_H: 1.0000 -> 0.9264 (deboost -0.0736, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation63324predicted_RBI: 0.5388 -> 1.0000 (boost 0.4612, better)predicted_BB: 0.2886 -> 0.0000 (deboost -0.2886, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context50514-predicted_RBI: 1.0000 -> 0.0000 (deboost -1.0000, worse)Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10simulation_box_score_reference32112predicted_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
11current_json_final33030predicted_AVG: 0.2380 -> 0.3088 (boost 0.0708, better)-Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "686797",
  "player_name": "Brooks Lee",
  "position": "3B",
  "team": "MIN",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.163,
        "predicted_3B": 0.02,
        "predicted_AB": 4.95,
        "predicted_AVG": 0.303,
        "predicted_BB": 0.238,
        "predicted_H": 1.5,
        "predicted_HR": 0.11,
        "predicted_OBP": 0.353,
        "predicted_R": 0.483,
        "predicted_RBI": 0.55,
        "predicted_SLG": 0.433,
        "predicted_SO": 0.667
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.1613,
        "predicted_3B": 0.0165,
        "predicted_AB": 4.4441,
        "predicted_AVG": 0.3054,
        "predicted_BB": 0.2323,
        "predicted_H": 1.3556,
        "predicted_HBP": 0.037,
        "predicted_HR": 0.1035,
        "predicted_OBP": 0.3502,
        "predicted_R": 0.5611,
        "predicted_RBI": 0.5051,
        "predicted_SLG": 0.4326,
        "predicted_SO": 0.6434
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.163,
          "after": 0.1613,
          "delta": -0.0017,
          "percent_delta": -0.0104,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.02,
          "after": 0.0165,
          "delta": -0.0035,
          "percent_delta": -0.175,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 4.95,
          "after": 4.4441,
          "delta": -0.5059,
          "percent_delta": -0.1022,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.303,
          "after": 0.3054,
          "delta": 0.0024,
          "percent_delta": 0.0079,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.238,
          "after": 0.2323,
          "delta": -0.0057,
          "percent_delta": -0.0239,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 1.5,
          "after": 1.3556,
          "delta": -0.1444,
          "percent_delta": -0.0963,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.11,
          "after": 0.1035,
          "delta": -0.0065,
          "percent_delta": -0.0591,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.353,
          "after": 0.3502,
          "delta": -0.0028,
          "percent_delta": -0.0079,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.483,
          "after": 0.5611,
          "delta": 0.0781,
          "percent_delta": 0.1617,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.55,
          "after": 0.5051,
          "delta": -0.0449,
          "percent_delta": -0.0816,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.433,
          "after": 0.4326,
          "delta": -0.0004,
          "percent_delta": -0.0009,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.667,
          "after": 0.6434,
          "delta": -0.0236,
          "percent_delta": -0.0354,
          "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_R",
          "before": 0.483,
          "after": 0.5611,
          "delta": 0.0781,
          "percent_delta": 0.1617,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 4.95,
          "after": 4.4441,
          "delta": -0.5059,
          "percent_delta": -0.1022,
          "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.1613,
        "predicted_3B": 0.0165,
        "predicted_AB": 4.4441,
        "predicted_AVG": 0.3088,
        "predicted_BB": 0.2331,
        "predicted_H": 1.3724,
        "predicted_HBP": 0.037,
        "predicted_HR": 0.1047,
        "predicted_OBP": 0.3433,
        "predicted_R": 0.573,
        "predicted_RBI": 0.5158,
        "predicted_SLG": 0.4232,
        "predicted_SO": 0.6411
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1613,
          "after": 0.1613,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.0165,
          "after": 0.0165,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 4.4441,
          "after": 4.4441,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.3054,
          "after": 0.3088,
          "delta": 0.0034,
          "percent_delta": 0.0111,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.2323,
          "after": 0.2331,
          "delta": 0.0008,
          "percent_delta": 0.0034,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 1.3556,
          "after": 1.3724,
          "delta": 0.0168,
          "percent_delta": 0.0124,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HBP",
          "before": 0.037,
          "after": 0.037,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.1035,
          "after": 0.1047,
          "delta": 0.0012,
          "percent_delta": 0.0116,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3502,
          "after": 0.3433,
          "delta": -0.0069,
          "percent_delta": -0.0197,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.5611,
          "after": 0.573,
          "delta": 0.0119,
          "percent_delta": 0.0212,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5051,
          "after": 0.5158,
          "delta": 0.0107,
          "percent_delta": 0.0212,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4326,
          "after": 0.4232,
          "delta": -0.0094,
          "percent_delta": -0.0217,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.6434,
          "after": 0.6411,
          "delta": -0.0023,
          "percent_delta": -0.0036,
          "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.4326,
          "after": 0.4232,
          "delta": -0.0094,
          "percent_delta": -0.0217,
          "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.95), rates preserved: AVG=0.265 HR/AB=0.021",
      "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.1613,
          "after": 0.0,
          "delta": -0.1613,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0165,
          "after": 0.0,
          "delta": -0.0165,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 4.4441,
          "after": 4.0,
          "delta": -0.4441,
          "percent_delta": -0.0999,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.2331,
          "after": 0.0,
          "delta": -0.2331,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.3724,
          "after": 1.0,
          "delta": -0.3724,
          "percent_delta": -0.2713,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HBP",
          "before": 0.037,
          "after": 0.0,
          "delta": -0.037,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.1047,
          "after": 0.0,
          "delta": -0.1047,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "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.6411,
          "after": 0.0,
          "delta": -0.6411,
          "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_SO",
          "before": 0.6411,
          "after": 0.0,
          "delta": -0.6411,
          "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": 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.573,
          "after": 1.0,
          "delta": 0.427,
          "percent_delta": 0.7452,
          "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.573,
          "after": 1.0,
          "delta": 0.427,
          "percent_delta": 0.7452,
          "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.1683,
        "predicted_3B": 0.0253,
        "predicted_BB": 0.2886,
        "predicted_H": 0.9264,
        "predicted_HR": 0.1367,
        "predicted_RBI": 0.5388,
        "predicted_SO": 0.6465
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1683,
          "delta": 0.1683,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0253,
          "delta": 0.0253,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.2886,
          "delta": 0.2886,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.9264,
          "delta": -0.0736,
          "percent_delta": -0.0736,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1367,
          "delta": 0.1367,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.5388,
          "delta": 0.5388,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.0,
          "after": 0.6465,
          "delta": 0.6465,
          "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.6465,
          "delta": 0.6465,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.9264,
          "delta": -0.0736,
          "percent_delta": -0.0736,
          "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.1683,
          "after": 0.0,
          "delta": -0.1683,
          "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.0,
          "after": 4.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.2886,
          "after": 0.0,
          "delta": -0.2886,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.9264,
          "after": 1.0,
          "delta": 0.0736,
          "percent_delta": 0.0794,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1367,
          "after": 0.0,
          "delta": -0.1367,
          "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.5388,
          "after": 1.0,
          "delta": 0.4612,
          "percent_delta": 0.856,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.6465,
          "after": 1.0,
          "delta": 0.3535,
          "percent_delta": 0.5468,
          "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.5388,
          "after": 1.0,
          "delta": 0.4612,
          "percent_delta": 0.856,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.2886,
          "after": 0.0,
          "delta": -0.2886,
          "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.238,
        "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.399,
        "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.3088,
          "after": 0.238,
          "delta": -0.0708,
          "percent_delta": -0.2293,
          "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.3433,
          "after": 0.296,
          "delta": -0.0473,
          "percent_delta": -0.1378,
          "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.4232,
          "after": 0.399,
          "delta": -0.0242,
          "percent_delta": -0.0572,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "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": 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": 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": 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": 0.0,
          "after": 1.0,
          "delta": 1.0,
          "percent_delta": null,
          "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_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.3088,
        "predicted_BB": 1.0,
        "predicted_CS": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.3433,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.4232,
        "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.238,
          "after": 0.3088,
          "delta": 0.0708,
          "percent_delta": 0.2975,
          "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.296,
          "after": 0.3433,
          "delta": 0.0473,
          "percent_delta": 0.1597,
          "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.399,
          "after": 0.4232,
          "delta": 0.0242,
          "percent_delta": 0.0607,
          "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.238,
          "after": 0.3088,
          "delta": 0.0708,
          "percent_delta": 0.2975,
          "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.163,
        "after": 0.0,
        "delta": -0.163,
        "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.95,
        "after": 4.0,
        "delta": -0.95,
        "percent_delta": -0.1919,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.303,
        "after": 0.3088,
        "delta": 0.0058,
        "percent_delta": 0.0191,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.238,
        "after": 1.0,
        "delta": 0.762,
        "percent_delta": 3.2017,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 1.5,
        "after": 1.0,
        "delta": -0.5,
        "percent_delta": -0.3333,
        "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.3433,
        "delta": -0.0097,
        "percent_delta": -0.0275,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.483,
        "after": 0.0,
        "delta": -0.483,
        "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.433,
        "after": 0.4232,
        "delta": -0.0098,
        "percent_delta": -0.0226,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.667,
        "after": 1.0,
        "delta": 0.333,
        "percent_delta": 0.4993,
        "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_BB",
        "before": 0.238,
        "after": 1.0,
        "delta": 0.762,
        "percent_delta": 3.2017,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_AB",
        "before": 4.95,
        "after": 4.0,
        "delta": -0.95,
        "percent_delta": -0.1919,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.163-
predicted_3B0.020-
predicted_AB4.950-
predicted_AVG0.303-
predicted_BB0.238-
predicted_H1.500-
predicted_HR0.110-
predicted_OBP0.353-
predicted_R0.483-
predicted_RBI0.550-
predicted_SLG0.433-
predicted_SO0.667-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.161-0.002
predicted_3B0.017-0.003
predicted_AB4.444-0.506
predicted_AVG0.3050.002
predicted_BB0.232-0.006
predicted_H1.356-0.144
predicted_HBP0.037-
predicted_HR0.103-0.007
predicted_OBP0.350-0.003
predicted_R0.5610.078
predicted_RBI0.505-0.045
predicted_SLG0.433-0.000
predicted_SO0.643-0.024
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1610.000
predicted_3B0.0170.000
predicted_AB4.4440.000
predicted_AVG0.3090.003
predicted_BB0.2330.001
predicted_H1.3720.017
predicted_HBP0.0370.000
predicted_HR0.1050.001
predicted_OBP0.343-0.007
predicted_R0.5730.012
predicted_RBI0.5160.011
predicted_SLG0.423-0.009
predicted_SO0.641-0.002
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 4 (raw=4.95), rates preserved: AVG=0.265 HR/AB=0.021

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB4.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO0.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R1.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO0.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1680.168
3B0.0250.025
BB0.2890.289
H0.926-0.074
HR0.1370.137
RBI0.5390.539
SO0.6460.646
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.168
3B0.000-0.025
AB4.0000.000
BB0.000-0.289
H1.0000.074
HR0.000-0.137
R1.0000.000
RBI1.0000.461
SO1.0000.354
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.161
predicted_3B0.000-0.017
predicted_AB4.000-0.444
predicted_AVG0.238-0.071
predicted_BB0.000-0.233
predicted_H1.000-0.372
predicted_HR0.000-0.105
predicted_OBP0.296-0.047
predicted_R1.0000.427
predicted_RBI0.000-0.516
predicted_SLG0.399-0.024
predicted_SO0.000-0.641
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB1.0001.000
CS0.0000.000
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA5.000-
R0.000-1.000
RBI0.000-1.000
SB0.0000.000
SF0.0000.000
SO1.0000.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 147
Reference playing time: 4.950
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-19.0009.0001.0000.0000.0002.0006.0001.0001.0000.47370.47620.52630.47370.00000.10530.05260.0526
last_100.2010-37.00012.0001.0000.0000.0002.0007.0002.0008.0000.32430.36590.35140.32430.00000.05410.05410.2162
season0.60147-561.000142.00024.0003.00023.00080.00071.00035.00098.0000.25310.30020.42960.25310.04100.14260.06240.1747
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1590
predicted_3B0.0120
predicted_AB3.7900
predicted_AVG0.3085
predicted_BB0.2250
predicted_H1.1690
predicted_HBP0.0370
predicted_HR0.0950
predicted_OBP0.3465
predicted_R0.6620
predicted_RBI0.4470
predicted_SLG0.4321
predicted_SO0.6130
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.16300.15900.1613model_form_blend
predicted_3B0.02000.01200.0165model_form_blend
predicted_AB4.95003.79004.4441model_form_blend
predicted_AVG0.30300.30850.3054model_form_blend
predicted_BB0.23800.22500.2323model_form_blend
predicted_H1.50001.16901.3556model_form_blend
predicted_HBP-0.03700.0370form_only
predicted_HR0.11000.09500.1035model_form_blend
predicted_OBP0.35300.34650.3502model_form_blend
predicted_R0.48300.66200.5611model_form_blend
predicted_RBI0.55000.44700.5051model_form_blend
predicted_SLG0.43300.43210.4326model_form_blend
predicted_SO0.66700.61300.6434model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date597
Season rows before report date597
Report year2026
Profile rows used147
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA5
AB4
H1
2B0
3B0
HR0
R0
RBI0
BB1
SO1
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB4
Hitting_AVG0.75
Hitting_BB0
Hitting_GIDP0
Hitting_H3
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R3
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB3
Hitting_battingOrder2
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayed3B
gameID20260920_MIN@LAA
game_typefull
mlbID686797
playerID686797
playerNameBrooks Lee
pos3B
startedTrue
startingPosition3B
teamMIN
teamID17
game_date2026-09-20
sl_k_percent16.3
sl_bb_percent6.0
sl_woba0.315
sl_xwoba0.275
sl_xba0.228
sl_xslg0.348
sl_sweet_spot_percent31.3
sl_barrel_batted_rate4.1
sl_hard_hit_percent33.9
sl_exit_velocity_avg88.1
sl_launch_angle_avg15.9
sl_whiff_percent20.8
sl_swing_percent53.3
Walker Jenkins (805805) · BATTER · CF · Team MIN
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 62
All-history rows before 20260921: 62
System season_avg: 0.2100
Data season_avg (2026 season-to-date): 0.1626
Diff (system - data): 0.0474
System opponent_avg: 0.2100
System season_avg diverges from 2026 season-to-date by 0.0474. This usually means mixed-season window logic.

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1111.0000.000Hitting_2B0.1130.0000.8871.000
predicted_3B0.0000.0000.000Hitting_3B0.0000.0000.0000.000
predicted_AB4.7204.0004.000Hitting_AB3.2745.0000.726-1.000
predicted_AVG0.2400.2500.250Hitting_AVG0.1630.2000.0870.050
predicted_BB0.3891.0001.000Hitting_BB0.4190.0000.5811.000
predicted_CS-0.0000.000BaseRunning_CS0.0810.000-0.0810.000
predicted_H1.1301.0001.000Hitting_H0.5321.0000.4680.000
predicted_HR0.2100.0000.000Hitting_HR0.1450.000-0.1450.000
predicted_OBP0.3250.4000.400Hitting_OBP0.2700.2000.1300.200
predicted_R0.5000.0001.000Hitting_R0.4841.000-0.484-1.000
predicted_RBI0.5300.0001.000Hitting_RBI0.4520.000-0.4520.000
predicted_SLG0.4060.5000.250Hitting_SLG0.3300.2000.1700.300
predicted_SO0.9443.0001.000Hitting_SO1.0650.0001.9353.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics11
Boosted Metrics5
Deboosted Metrics6
Better Metrics4
Worse Metrics7
Biggest Boostpredicted_SO: 0.9440 -> 3.0000 (boost 2.0560, worse)
Biggest Deboostpredicted_AB: 4.7200 -> 4.0000 (deboost -0.7200, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend42222predicted_SLG: 0.4060 -> 0.4223 (boost 0.0163, better)predicted_AB: 4.7200 -> 4.3433 (deboost -0.3767, 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.
3team_form_snapshot10101-predicted_OBP: 0.3261 -> 0.3066 (deboost -0.0195, worse)Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling71607predicted_SO: 0.9060 -> 1.0000 (boost 0.0940, worse)predicted_RBI: 0.5246 -> 0.0000 (deboost -0.5246, worse)AB rounded to 4 (raw=4.72), rates preserved: AVG=0.220 HR/AB=0.044
6consistency_constraints11010predicted_R: 0.5343 -> 1.0000 (boost 0.4657, better)-Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine64251predicted_RBI: 0.0000 -> 0.4584 (boost 0.4584, better)predicted_H: 1.0000 -> 0.8356 (deboost -0.1644, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation64233predicted_BB: 0.4002 -> 1.0000 (boost 0.5998, better)predicted_2B: 0.1589 -> 0.0000 (deboost -0.1589, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context40404-predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse)Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10simulation_box_score_reference43122predicted_SO: 1.0000 -> 3.0000 (boost 2.0000, worse)predicted_R: 1.0000 -> 0.0000 (deboost -1.0000, worse)Attached simulation box score without overwriting model prediction
11current_json_final22020predicted_SLG: 0.3760 -> 0.4179 (boost 0.0419, better)-Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "805805",
  "player_name": "Walker Jenkins",
  "position": "CF",
  "team": "MIN",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.111,
        "predicted_3B": 0.0,
        "predicted_AB": 4.72,
        "predicted_AVG": 0.24,
        "predicted_BB": 0.389,
        "predicted_H": 1.13,
        "predicted_HR": 0.21,
        "predicted_OBP": 0.325,
        "predicted_R": 0.5,
        "predicted_RBI": 0.53,
        "predicted_SLG": 0.406,
        "predicted_SO": 0.944
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.1128,
        "predicted_3B": 0.0018,
        "predicted_AB": 4.3433,
        "predicted_AVG": 0.2478,
        "predicted_BB": 0.3582,
        "predicted_H": 1.0691,
        "predicted_HBP": 0.049,
        "predicted_HR": 0.2031,
        "predicted_OBP": 0.3261,
        "predicted_R": 0.5232,
        "predicted_RBI": 0.5137,
        "predicted_SLG": 0.4223,
        "predicted_SO": 0.9092
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.111,
          "after": 0.1128,
          "delta": 0.0018,
          "percent_delta": 0.0162,
          "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": 4.72,
          "after": 4.3433,
          "delta": -0.3767,
          "percent_delta": -0.0798,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.24,
          "after": 0.2478,
          "delta": 0.0078,
          "percent_delta": 0.0325,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.389,
          "after": 0.3582,
          "delta": -0.0308,
          "percent_delta": -0.0792,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 1.13,
          "after": 1.0691,
          "delta": -0.0609,
          "percent_delta": -0.0539,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.21,
          "after": 0.2031,
          "delta": -0.0069,
          "percent_delta": -0.0329,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.325,
          "after": 0.3261,
          "delta": 0.0011,
          "percent_delta": 0.0034,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.5,
          "after": 0.5232,
          "delta": 0.0232,
          "percent_delta": 0.0464,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.53,
          "after": 0.5137,
          "delta": -0.0163,
          "percent_delta": -0.0308,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.406,
          "after": 0.4223,
          "delta": 0.0163,
          "percent_delta": 0.0401,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.944,
          "after": 0.9092,
          "delta": -0.0348,
          "percent_delta": -0.0369,
          "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.406,
          "after": 0.4223,
          "delta": 0.0163,
          "percent_delta": 0.0401,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 4.72,
          "after": 4.3433,
          "delta": -0.3767,
          "percent_delta": -0.0798,
          "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": 18
      }
    },
    {
      "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.1128,
        "predicted_3B": 0.0018,
        "predicted_AB": 4.3433,
        "predicted_AVG": 0.2492,
        "predicted_BB": 0.3595,
        "predicted_H": 1.0824,
        "predicted_HBP": 0.049,
        "predicted_HR": 0.2055,
        "predicted_OBP": 0.3066,
        "predicted_R": 0.5343,
        "predicted_RBI": 0.5246,
        "predicted_SLG": 0.4179,
        "predicted_SO": 0.906
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1128,
          "after": 0.1128,
          "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": 4.3433,
          "after": 4.3433,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2478,
          "after": 0.2492,
          "delta": 0.0014,
          "percent_delta": 0.0056,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.3582,
          "after": 0.3595,
          "delta": 0.0013,
          "percent_delta": 0.0036,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 1.0691,
          "after": 1.0824,
          "delta": 0.0133,
          "percent_delta": 0.0124,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HBP",
          "before": 0.049,
          "after": 0.049,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.2031,
          "after": 0.2055,
          "delta": 0.0024,
          "percent_delta": 0.0118,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3261,
          "after": 0.3066,
          "delta": -0.0195,
          "percent_delta": -0.0598,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.5232,
          "after": 0.5343,
          "delta": 0.0111,
          "percent_delta": 0.0212,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5137,
          "after": 0.5246,
          "delta": 0.0109,
          "percent_delta": 0.0212,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4223,
          "after": 0.4179,
          "delta": -0.0044,
          "percent_delta": -0.0104,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.9092,
          "after": 0.906,
          "delta": -0.0032,
          "percent_delta": -0.0035,
          "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.3261,
          "after": 0.3066,
          "delta": -0.0195,
          "percent_delta": -0.0598,
          "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.72), rates preserved: AVG=0.220 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": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1128,
          "after": 0.0,
          "delta": -0.1128,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "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": 4.3433,
          "after": 4.0,
          "delta": -0.3433,
          "percent_delta": -0.079,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3595,
          "after": 0.0,
          "delta": -0.3595,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0824,
          "after": 1.0,
          "delta": -0.0824,
          "percent_delta": -0.0761,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HBP",
          "before": 0.049,
          "after": 0.0,
          "delta": -0.049,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.2055,
          "after": 0.0,
          "delta": -0.2055,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5246,
          "after": 0.0,
          "delta": -0.5246,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.906,
          "after": 1.0,
          "delta": 0.094,
          "percent_delta": 0.1038,
          "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.906,
          "after": 1.0,
          "delta": 0.094,
          "percent_delta": 0.1038,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.5246,
          "after": 0.0,
          "delta": -0.5246,
          "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.5343,
          "after": 1.0,
          "delta": 0.4657,
          "percent_delta": 0.8716,
          "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.5343,
          "after": 1.0,
          "delta": 0.4657,
          "percent_delta": 0.8716,
          "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.1589,
        "predicted_3B": 0.0192,
        "predicted_BB": 0.4002,
        "predicted_H": 0.8356,
        "predicted_HR": 0.1204,
        "predicted_RBI": 0.4584,
        "predicted_SO": 0.8609
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1589,
          "delta": 0.1589,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0192,
          "delta": 0.0192,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.4002,
          "delta": 0.4002,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8356,
          "delta": -0.1644,
          "percent_delta": -0.1644,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1204,
          "delta": 0.1204,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.4584,
          "delta": 0.4584,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.8609,
          "delta": -0.1391,
          "percent_delta": -0.1391,
          "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.4584,
          "delta": 0.4584,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8356,
          "delta": -0.1644,
          "percent_delta": -0.1644,
          "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.1589,
          "after": 0.0,
          "delta": -0.1589,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0192,
          "after": 0.0,
          "delta": -0.0192,
          "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.4002,
          "after": 1.0,
          "delta": 0.5998,
          "percent_delta": 1.4988,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8356,
          "after": 1.0,
          "delta": 0.1644,
          "percent_delta": 0.1967,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1204,
          "after": 0.0,
          "delta": -0.1204,
          "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.4584,
          "after": 1.0,
          "delta": 0.5416,
          "percent_delta": 1.1815,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.8609,
          "after": 1.0,
          "delta": 0.1391,
          "percent_delta": 0.1616,
          "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.4002,
          "after": 1.0,
          "delta": 0.5998,
          "percent_delta": 1.4988,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_2B",
          "before": 0.1589,
          "after": 0.0,
          "delta": -0.1589,
          "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.225,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.306,
        "predicted_R": 1.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": 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.2492,
          "after": 0.225,
          "delta": -0.0242,
          "percent_delta": -0.0971,
          "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.3066,
          "after": 0.306,
          "delta": -0.0006,
          "percent_delta": -0.002,
          "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_SLG",
          "before": 0.4179,
          "after": 0.376,
          "delta": -0.0419,
          "percent_delta": -0.1003,
          "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": 1.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": 3.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": 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": 3.0,
          "delta": 2.0,
          "percent_delta": 2.0,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 4,
        "boosted_metrics": 3,
        "deboosted_metrics": 1,
        "better_metrics": 2,
        "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_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": 1.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.2492,
        "predicted_BB": 1.0,
        "predicted_CF": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.3066,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.4179,
        "predicted_SO": 3.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.225,
          "after": 0.2492,
          "delta": 0.0242,
          "percent_delta": 0.1076,
          "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.306,
          "after": 0.3066,
          "delta": 0.0006,
          "percent_delta": 0.0019,
          "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.4179,
          "delta": 0.0419,
          "percent_delta": 0.1115,
          "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": 2,
        "boosted_metrics": 2,
        "deboosted_metrics": 0,
        "better_metrics": 2,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_SLG",
          "before": 0.376,
          "after": 0.4179,
          "delta": 0.0419,
          "percent_delta": 0.1115,
          "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.111,
        "after": 1.0,
        "delta": 0.889,
        "percent_delta": 8.009,
        "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.72,
        "after": 4.0,
        "delta": -0.72,
        "percent_delta": -0.1525,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.24,
        "after": 0.2492,
        "delta": 0.0092,
        "percent_delta": 0.0383,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.389,
        "after": 1.0,
        "delta": 0.611,
        "percent_delta": 1.5707,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 1.13,
        "after": 1.0,
        "delta": -0.13,
        "percent_delta": -0.115,
        "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.325,
        "after": 0.3066,
        "delta": -0.0184,
        "percent_delta": -0.0566,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.5,
        "after": 0.0,
        "delta": -0.5,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.53,
        "after": 0.0,
        "delta": -0.53,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.406,
        "after": 0.4179,
        "delta": 0.0119,
        "percent_delta": 0.0293,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.944,
        "after": 3.0,
        "delta": 2.056,
        "percent_delta": 2.178,
        "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.944,
        "after": 3.0,
        "delta": 2.056,
        "percent_delta": 2.178,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_AB",
        "before": 4.72,
        "after": 4.0,
        "delta": -0.72,
        "percent_delta": -0.1525,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.111-
predicted_3B0.000-
predicted_AB4.720-
predicted_AVG0.240-
predicted_BB0.389-
predicted_H1.130-
predicted_HR0.210-
predicted_OBP0.325-
predicted_R0.500-
predicted_RBI0.530-
predicted_SLG0.406-
predicted_SO0.944-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.1130.002
predicted_3B0.0020.002
predicted_AB4.343-0.377
predicted_AVG0.2480.008
predicted_BB0.358-0.031
predicted_H1.069-0.061
predicted_HBP0.049-
predicted_HR0.203-0.007
predicted_OBP0.3260.001
predicted_R0.5230.023
predicted_RBI0.514-0.016
predicted_SLG0.4220.016
predicted_SO0.909-0.035
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1130.000
predicted_3B0.0020.000
predicted_AB4.3430.000
predicted_AVG0.2490.001
predicted_BB0.3590.001
predicted_H1.0820.013
predicted_HBP0.0490.000
predicted_HR0.2050.002
predicted_OBP0.307-0.020
predicted_R0.5340.011
predicted_RBI0.5250.011
predicted_SLG0.418-0.004
predicted_SO0.906-0.003
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 4 (raw=4.72), rates preserved: AVG=0.220 HR/AB=0.044

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB4.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R1.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1590.159
3B0.0190.019
BB0.4000.400
H0.836-0.164
HR0.1200.120
RBI0.4580.458
SO0.861-0.139
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.159
3B0.000-0.019
AB4.0000.000
BB1.0000.600
H1.0000.164
HR0.000-0.120
R1.0000.000
RBI1.0000.542
SO1.0000.139
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.113
predicted_3B0.000-0.002
predicted_AB4.000-0.343
predicted_AVG0.225-0.024
predicted_BB0.000-0.359
predicted_H1.000-0.082
predicted_HR0.000-0.205
predicted_OBP0.306-0.001
predicted_R1.0000.466
predicted_RBI0.000-0.525
predicted_SLG0.376-0.042
predicted_SO1.0000.094
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B1.0001.000
3B0.0000.000
AB4.0000.000
BB1.0000.000
CS0.0000.000
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA5.000-
R0.000-1.000
RBI0.000-1.000
SB0.0000.000
SF0.0000.000
SO3.0002.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 18
Reference playing time: 4.720
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-21.0009.0000.0000.0002.0003.0005.0001.0002.0000.42860.45450.71430.42860.09520.14290.04760.0952
last_100.2010-36.00010.0001.0000.0002.0005.0005.0002.0009.0000.27780.33330.47220.27780.05560.13890.05560.2500
season0.6018-62.00013.0002.0000.0003.0008.0009.0007.00017.0000.20970.30000.38710.20970.04840.12900.11290.2742
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1160
predicted_3B0.0050
predicted_AB3.6800
predicted_AVG0.2614
predicted_BB0.3040
predicted_H0.9620
predicted_HBP0.0490
predicted_HR0.1910
predicted_OBP0.3279
predicted_R0.5640
predicted_RBI0.4850
predicted_SLG0.4510
predicted_SO0.8480
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.11100.11600.1128model_form_blend
predicted_3B0.00000.00500.0018model_form_blend
predicted_AB4.72003.68004.3433model_form_blend
predicted_AVG0.24000.26140.2478model_form_blend
predicted_BB0.38900.30400.3582model_form_blend
predicted_H1.13000.96201.0691model_form_blend
predicted_HBP-0.04900.0490form_only
predicted_HR0.21000.19100.2031model_form_blend
predicted_OBP0.32500.32790.3261model_form_blend
predicted_R0.50000.56400.5232model_form_blend
predicted_RBI0.53000.48500.5137model_form_blend
predicted_SLG0.40600.45100.4223model_form_blend
predicted_SO0.94400.84800.9092model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date62
Season rows before report date62
Report year2026
Profile rows used18
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA5
AB4
H1
2B1
3B0
HR0
R0
RBI0
BB1
SO3
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB5
Hitting_AVG0.2
Hitting_BB0
Hitting_GIDP0
Hitting_H1
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R1
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB1
Hitting_battingOrder1
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedCF
gameID20260920_MIN@LAA
game_typefull
mlbID805805
playerID805805
playerNameWalker Jenkins
posCF
startedTrue
startingPositionCF
teamMIN
teamID17
game_date2026-09-20
sl_k_percent25.8
sl_bb_percent10.6
sl_woba0.316
sl_xwoba0.319
sl_xba0.228
sl_xslg0.394
sl_sweet_spot_percent34.1
sl_barrel_batted_rate9.8
sl_hard_hit_percent34.1
sl_exit_velocity_avg87.8
sl_launch_angle_avg14.8
sl_whiff_percent29.0
sl_swing_percent47.7
Kody Clemens (665019) · BATTER · 2B · Team MIN
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 552
All-history rows before 20260921: 552
System season_avg: 0.2380
Data season_avg (2026 season-to-date): 0.2427
Diff (system - data): -0.0047
System opponent_avg: 0.2380

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1610.0000.000Hitting_2B0.1630.000-0.1630.000
predicted_3B0.0510.0000.000Hitting_3B0.0510.000-0.0510.000
predicted_AB4.3805.0004.000Hitting_AB3.8304.0001.1701.000
predicted_AVG0.2190.2000.250Hitting_AVG0.2430.000-0.0430.200
predicted_BB0.2850.0000.000Hitting_BB0.3130.000-0.3130.000
predicted_CS-0.0000.000BaseRunning_CS0.0140.000-0.0140.000
predicted_H0.9601.0001.000Hitting_H0.9290.0000.0711.000
predicted_HR0.1801.0001.000Hitting_HR0.1990.0000.8011.000
predicted_OBP0.2850.2000.250Hitting_OBP0.3070.000-0.1070.200
predicted_R0.5261.0001.000Hitting_R0.5650.0000.4351.000
predicted_RBI0.5102.0001.000Hitting_RBI0.6030.0001.3972.000
predicted_SB-0.0000.000BaseRunning_SB0.0710.000-0.0710.000
predicted_SLG0.4160.8001.000Hitting_SLG0.4680.0000.3320.800
predicted_SO0.9051.0001.000Hitting_SO0.9440.0000.0561.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics10
Boosted Metrics5
Deboosted Metrics5
Better Metrics4
Worse Metrics6
Biggest Boostpredicted_RBI: 0.5100 -> 2.0000 (boost 1.4900, better)
Biggest Deboostpredicted_BB: 0.2850 -> 0.0000 (deboost -0.2850, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend30303-predicted_AB: 4.3800 -> 4.1150 (deboost -0.2650, 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.
3team_form_snapshot10101-predicted_OBP: 0.2832 -> 0.2733 (deboost -0.0099, worse)Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling82617predicted_SO: 0.8676 -> 1.0000 (boost 0.1324, worse)predicted_RBI: 0.4719 -> 0.0000 (deboost -0.4719, worse)AB rounded to 4 (raw=4.38), rates preserved: AVG=0.199 HR/AB=0.037
6consistency_constraints11010predicted_R: 0.5069 -> 1.0000 (boost 0.4931, better)-Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine64251predicted_RBI: 0.0000 -> 0.5154 (boost 0.5154, better)predicted_SO: 1.0000 -> 0.8076 (deboost -0.1924, better)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation64233predicted_HR: 0.1489 -> 1.0000 (boost 0.8511, better)predicted_BB: 0.3146 -> 0.0000 (deboost -0.3146, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context53232predicted_OBP: 0.2733 -> 0.2950 (boost 0.0217, 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
10simulation_box_score_reference33030predicted_RBI: 0.0000 -> 2.0000 (boost 2.0000, better)-Attached simulation box score without overwriting model prediction
11current_json_final30303-predicted_OBP: 0.2950 -> 0.2733 (deboost -0.0217, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "665019",
  "player_name": "Kody Clemens",
  "position": "2B",
  "team": "MIN",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.161,
        "predicted_3B": 0.051,
        "predicted_AB": 4.38,
        "predicted_AVG": 0.219,
        "predicted_BB": 0.285,
        "predicted_H": 0.96,
        "predicted_HR": 0.18,
        "predicted_OBP": 0.285,
        "predicted_R": 0.526,
        "predicted_RBI": 0.51,
        "predicted_SLG": 0.416,
        "predicted_SO": 0.905
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.1432,
        "predicted_3B": 0.0662,
        "predicted_AB": 4.115,
        "predicted_AVG": 0.2181,
        "predicted_BB": 0.295,
        "predicted_H": 0.8982,
        "predicted_HBP": 0.031,
        "predicted_HR": 0.1604,
        "predicted_OBP": 0.2832,
        "predicted_R": 0.4964,
        "predicted_RBI": 0.4621,
        "predicted_SLG": 0.4098,
        "predicted_SO": 0.8706
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.161,
          "after": 0.1432,
          "delta": -0.0178,
          "percent_delta": -0.1106,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.051,
          "after": 0.0662,
          "delta": 0.0152,
          "percent_delta": 0.298,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 4.38,
          "after": 4.115,
          "delta": -0.265,
          "percent_delta": -0.0605,
          "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.285,
          "after": 0.295,
          "delta": 0.01,
          "percent_delta": 0.0351,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.96,
          "after": 0.8982,
          "delta": -0.0618,
          "percent_delta": -0.0644,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.18,
          "after": 0.1604,
          "delta": -0.0196,
          "percent_delta": -0.1089,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.285,
          "after": 0.2832,
          "delta": -0.0018,
          "percent_delta": -0.0063,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.526,
          "after": 0.4964,
          "delta": -0.0296,
          "percent_delta": -0.0563,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.51,
          "after": 0.4621,
          "delta": -0.0479,
          "percent_delta": -0.0939,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.416,
          "after": 0.4098,
          "delta": -0.0062,
          "percent_delta": -0.0149,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.905,
          "after": 0.8706,
          "delta": -0.0344,
          "percent_delta": -0.038,
          "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.38,
          "after": 4.115,
          "delta": -0.265,
          "percent_delta": -0.0605,
          "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.1432,
        "predicted_3B": 0.0662,
        "predicted_AB": 4.115,
        "predicted_AVG": 0.221,
        "predicted_BB": 0.296,
        "predicted_H": 0.9093,
        "predicted_HBP": 0.031,
        "predicted_HR": 0.1623,
        "predicted_OBP": 0.2733,
        "predicted_R": 0.5069,
        "predicted_RBI": 0.4719,
        "predicted_SLG": 0.4063,
        "predicted_SO": 0.8676
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1432,
          "after": 0.1432,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.0662,
          "after": 0.0662,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 4.115,
          "after": 4.115,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2181,
          "after": 0.221,
          "delta": 0.0029,
          "percent_delta": 0.0133,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.295,
          "after": 0.296,
          "delta": 0.001,
          "percent_delta": 0.0034,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.8982,
          "after": 0.9093,
          "delta": 0.0111,
          "percent_delta": 0.0124,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HBP",
          "before": 0.031,
          "after": 0.031,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.1604,
          "after": 0.1623,
          "delta": 0.0019,
          "percent_delta": 0.0118,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2832,
          "after": 0.2733,
          "delta": -0.0099,
          "percent_delta": -0.035,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.4964,
          "after": 0.5069,
          "delta": 0.0105,
          "percent_delta": 0.0212,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4621,
          "after": 0.4719,
          "delta": 0.0098,
          "percent_delta": 0.0212,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4098,
          "after": 0.4063,
          "delta": -0.0035,
          "percent_delta": -0.0085,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.8706,
          "after": 0.8676,
          "delta": -0.003,
          "percent_delta": -0.0034,
          "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.2832,
          "after": 0.2733,
          "delta": -0.0099,
          "percent_delta": -0.035,
          "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.199 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": 0.0,
        "predicted_SB": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1432,
          "after": 0.0,
          "delta": -0.1432,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0662,
          "after": 0.0,
          "delta": -0.0662,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AB",
          "before": 4.115,
          "after": 4.0,
          "delta": -0.115,
          "percent_delta": -0.0279,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.296,
          "after": 0.0,
          "delta": -0.296,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.9093,
          "after": 1.0,
          "delta": 0.0907,
          "percent_delta": 0.0997,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HBP",
          "before": 0.031,
          "after": 0.0,
          "delta": -0.031,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.1623,
          "after": 0.0,
          "delta": -0.1623,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4719,
          "after": 0.0,
          "delta": -0.4719,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.8676,
          "after": 1.0,
          "delta": 0.1324,
          "percent_delta": 0.1526,
          "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.8676,
          "after": 1.0,
          "delta": 0.1324,
          "percent_delta": 0.1526,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.4719,
          "after": 0.0,
          "delta": -0.4719,
          "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.5069,
          "after": 1.0,
          "delta": 0.4931,
          "percent_delta": 0.9728,
          "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.5069,
          "after": 1.0,
          "delta": 0.4931,
          "percent_delta": 0.9728,
          "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.1579,
        "predicted_3B": 0.0407,
        "predicted_BB": 0.3146,
        "predicted_H": 0.8357,
        "predicted_HR": 0.1489,
        "predicted_RBI": 0.5154,
        "predicted_SO": 0.8076
      },
      "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.0407,
          "delta": 0.0407,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.3146,
          "delta": 0.3146,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8357,
          "delta": -0.1643,
          "percent_delta": -0.1643,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1489,
          "delta": 0.1489,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.5154,
          "delta": 0.5154,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.8076,
          "delta": -0.1924,
          "percent_delta": -0.1924,
          "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.5154,
          "delta": 0.5154,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.8076,
          "delta": -0.1924,
          "percent_delta": -0.1924,
          "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": 1.0,
        "predicted_R": 1.0,
        "predicted_RBI": 1.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.0407,
          "after": 0.0,
          "delta": -0.0407,
          "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.3146,
          "after": 0.0,
          "delta": -0.3146,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8357,
          "after": 1.0,
          "delta": 0.1643,
          "percent_delta": 0.1966,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1489,
          "after": 1.0,
          "delta": 0.8511,
          "percent_delta": 5.7159,
          "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.5154,
          "after": 1.0,
          "delta": 0.4846,
          "percent_delta": 0.9402,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.8076,
          "after": 1.0,
          "delta": 0.1924,
          "percent_delta": 0.2382,
          "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_HR",
          "before": 0.1489,
          "after": 1.0,
          "delta": 0.8511,
          "percent_delta": 5.7159,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.3146,
          "after": 0.0,
          "delta": -0.3146,
          "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.228,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.295,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.416,
        "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.228,
          "delta": 0.007,
          "percent_delta": 0.0317,
          "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.2733,
          "after": 0.295,
          "delta": 0.0217,
          "percent_delta": 0.0794,
          "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.4063,
          "after": 0.416,
          "delta": 0.0097,
          "percent_delta": 0.0239,
          "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": 3,
        "deboosted_metrics": 2,
        "better_metrics": 3,
        "worse_metrics": 2,
        "biggest_boost": {
          "metric": "predicted_OBP",
          "before": 0.2733,
          "after": 0.295,
          "delta": 0.0217,
          "percent_delta": 0.0794,
          "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": 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": 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": 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": 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_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.221,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 1.0,
        "predicted_OBP": 0.2733,
        "predicted_R": 1.0,
        "predicted_RBI": 2.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.4063,
        "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.221,
          "delta": -0.007,
          "percent_delta": -0.0308,
          "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.295,
          "after": 0.2733,
          "delta": -0.0217,
          "percent_delta": -0.0737,
          "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.416,
          "after": 0.4063,
          "delta": -0.0097,
          "percent_delta": -0.0234,
          "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.295,
          "after": 0.2733,
          "delta": -0.0217,
          "percent_delta": -0.0737,
          "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.161,
        "after": 0.0,
        "delta": -0.161,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_3B",
        "before": 0.051,
        "after": 0.0,
        "delta": -0.051,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AB",
        "before": 4.38,
        "after": 5.0,
        "delta": 0.62,
        "percent_delta": 0.1416,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.219,
        "after": 0.221,
        "delta": 0.002,
        "percent_delta": 0.0091,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_BB",
        "before": 0.285,
        "after": 0.0,
        "delta": -0.285,
        "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.18,
        "after": 1.0,
        "delta": 0.82,
        "percent_delta": 4.5556,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.285,
        "after": 0.2733,
        "delta": -0.0117,
        "percent_delta": -0.0411,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.526,
        "after": 1.0,
        "delta": 0.474,
        "percent_delta": 0.9011,
        "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.416,
        "after": 0.4063,
        "delta": -0.0097,
        "percent_delta": -0.0233,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.905,
        "after": 1.0,
        "delta": 0.095,
        "percent_delta": 0.105,
        "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.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.285,
        "after": 0.0,
        "delta": -0.285,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.161-
predicted_3B0.051-
predicted_AB4.380-
predicted_AVG0.219-
predicted_BB0.285-
predicted_H0.960-
predicted_HR0.180-
predicted_OBP0.285-
predicted_R0.526-
predicted_RBI0.510-
predicted_SLG0.416-
predicted_SO0.905-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.143-0.018
predicted_3B0.0660.015
predicted_AB4.115-0.265
predicted_AVG0.218-0.001
predicted_BB0.2950.010
predicted_H0.898-0.062
predicted_HBP0.031-
predicted_HR0.160-0.020
predicted_OBP0.283-0.002
predicted_R0.496-0.030
predicted_RBI0.462-0.048
predicted_SLG0.410-0.006
predicted_SO0.871-0.034
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1430.000
predicted_3B0.0660.000
predicted_AB4.1150.000
predicted_AVG0.2210.003
predicted_BB0.2960.001
predicted_H0.9090.011
predicted_HBP0.0310.000
predicted_HR0.1620.002
predicted_OBP0.273-0.010
predicted_R0.5070.011
predicted_RBI0.4720.010
predicted_SLG0.406-0.004
predicted_SO0.868-0.003
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 4 (raw=4.38), rates preserved: AVG=0.199 HR/AB=0.037

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB4.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R1.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1580.158
3B0.0410.041
BB0.3150.315
H0.836-0.164
HR0.1490.149
RBI0.5150.515
SO0.808-0.192
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.158
3B0.000-0.041
AB4.0000.000
BB0.000-0.315
H1.0000.164
HR1.0000.851
R1.0000.000
RBI1.0000.485
SO1.0000.192
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.143
predicted_3B0.000-0.066
predicted_AB4.000-0.115
predicted_AVG0.2280.007
predicted_BB0.000-0.296
predicted_H1.0000.091
predicted_HR0.000-0.162
predicted_OBP0.2950.022
predicted_R1.0000.493
predicted_RBI0.000-0.472
predicted_SLG0.4160.010
predicted_SO1.0000.132
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB5.0001.000
BB0.0000.000
CS0.0000.000
H1.0000.000
HBP0.0000.000
HR1.0000.000
PA5.000-
R1.0000.000
RBI2.0001.000
SB0.0000.000
SF0.0000.000
SO1.0000.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 137
Reference playing time: 4.380
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-19.0003.0000.0001.0000.0000.0001.0002.0003.0000.15790.23810.26320.15790.00000.00000.10530.1579
last_100.2010-39.0008.0001.0001.0001.0003.0005.0003.0008.0000.20510.26190.35900.20510.02560.07690.07690.2051
season0.60137-509.000121.00022.0007.00026.00076.00072.00039.000124.0000.23770.29930.46170.23770.05110.14930.07660.2436
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1200
predicted_3B0.0860
predicted_AB3.7710
predicted_AVG0.2169
predicted_BB0.3080
predicted_H0.8180
predicted_HBP0.0310
predicted_HR0.1350
predicted_OBP0.2809
predicted_R0.4580
predicted_RBI0.4000
predicted_SLG0.4018
predicted_SO0.8260
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.16100.12000.1432model_form_blend
predicted_3B0.05100.08600.0662model_form_blend
predicted_AB4.38003.77104.1150model_form_blend
predicted_AVG0.21900.21690.2181model_form_blend
predicted_BB0.28500.30800.2950model_form_blend
predicted_H0.96000.81800.8982model_form_blend
predicted_HBP-0.03100.0310form_only
predicted_HR0.18000.13500.1604model_form_blend
predicted_OBP0.28500.28090.2832model_form_blend
predicted_R0.52600.45800.4964model_form_blend
predicted_RBI0.51000.40000.4621model_form_blend
predicted_SLG0.41600.40180.4098model_form_blend
predicted_SO0.90500.82600.8706model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date552
Season rows before report date552
Report year2026
Profile rows used137
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA5
AB5
H1
2B0
3B0
HR1
R1
RBI2
BB0
SO1
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB4
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB0
Hitting_battingOrder3
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayed2B
gameID20260920_MIN@LAA
game_typefull
mlbID665019
playerID665019
playerNameKody Clemens
pos2B
startedTrue
startingPosition2B
teamMIN
teamID17
game_date2026-09-20
sl_k_percent22.3
sl_bb_percent7.0
sl_woba0.33
sl_xwoba0.335
sl_xba0.253
sl_xslg0.456
sl_sweet_spot_percent33.6
sl_barrel_batted_rate11.4
sl_hard_hit_percent46.0
sl_exit_velocity_avg92.1
sl_launch_angle_avg15.4
sl_whiff_percent24.5
sl_swing_percent49.8
Ryan Kreidler (668952) · BATTER · SS · Team MIN
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 265
All-history rows before 20260921: 265
System season_avg: 0.2180
Data season_avg (2026 season-to-date): 0.2252
Diff (system - data): -0.0072
System opponent_avg: 0.2180

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1070.0000.000Hitting_2B0.1170.000-0.1170.000
predicted_3B0.0360.0000.000Hitting_3B0.0450.000-0.0450.000
predicted_AB2.7865.0003.000Hitting_AB3.0000.0002.0005.000
predicted_AVG0.2180.2000.000Hitting_AVG0.225--0.025-
predicted_BB0.2020.0000.000Hitting_BB0.2301.000-0.230-1.000
predicted_CS-0.0000.000BaseRunning_CS0.0600.000-0.0600.000
predicted_H0.2701.0000.000Hitting_H0.6750.0000.3251.000
predicted_HR0.1100.0000.000Hitting_HR0.0980.000-0.0980.000
predicted_OBP0.2610.2000.000Hitting_OBP0.2851.000-0.085-0.800
predicted_R0.3330.0000.000Hitting_R0.4000.000-0.4000.000
predicted_RBI0.1800.0000.000Hitting_RBI0.3580.000-0.3580.000
predicted_SLG0.3870.2000.000Hitting_SLG0.392--0.192-
predicted_SO0.7022.0001.000Hitting_SO0.7960.0001.2042.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics11
Boosted Metrics3
Deboosted Metrics8
Better Metrics2
Worse Metrics9
Biggest Boostpredicted_AB: 2.7860 -> 5.0000 (boost 2.2140, better)
Biggest Deboostpredicted_R: 0.3330 -> 0.0000 (deboost -0.3330, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend55041predicted_H: 0.2700 -> 0.4078 (boost 0.1378, 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.
3team_form_snapshot30303-predicted_AVG: 0.2132 -> 0.1457 (deboost -0.0675, worse)Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling72516predicted_SO: 0.7701 -> 1.0000 (boost 0.2299, worse)predicted_H: 0.4129 -> 0.0000 (deboost -0.4129, worse)AB rounded to 3 (raw=2.83), rates preserved: AVG=0.140 HR/AB=0.049
6consistency_constraints21111predicted_H: 0.0000 -> 1.0000 (boost 1.0000, better)predicted_R: 0.3409 -> 0.0000 (deboost -0.3409, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine64251predicted_RBI: 0.0000 -> 0.3959 (boost 0.3959, better)predicted_H: 1.0000 -> 0.7136 (deboost -0.2864, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation61506predicted_SO: 0.7570 -> 1.0000 (boost 0.2430, worse)predicted_H: 0.7136 -> 0.0000 (deboost -0.7136, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context44040predicted_H: 0.0000 -> 1.0000 (boost 1.0000, better)-Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10simulation_box_score_reference22011predicted_AB: 3.0000 -> 5.0000 (boost 2.0000, better)-Attached simulation box score without overwriting model prediction
11current_json_final30303-predicted_OBP: 0.2880 -> 0.2095 (deboost -0.0785, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "668952",
  "player_name": "Ryan Kreidler",
  "position": "SS",
  "team": "MIN",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.107,
        "predicted_3B": 0.036,
        "predicted_AB": 2.786,
        "predicted_AVG": 0.218,
        "predicted_BB": 0.202,
        "predicted_H": 0.27,
        "predicted_HR": 0.11,
        "predicted_OBP": 0.261,
        "predicted_R": 0.333,
        "predicted_RBI": 0.18,
        "predicted_SLG": 0.387,
        "predicted_SO": 0.702
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.1024,
        "predicted_3B": 0.0297,
        "predicted_AB": 2.8333,
        "predicted_AVG": 0.2132,
        "predicted_BB": 0.228,
        "predicted_H": 0.4078,
        "predicted_HBP": 0.031,
        "predicted_HR": 0.136,
        "predicted_OBP": 0.269,
        "predicted_R": 0.3338,
        "predicted_RBI": 0.2441,
        "predicted_SLG": 0.4058,
        "predicted_SO": 0.7728
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.107,
          "after": 0.1024,
          "delta": -0.0046,
          "percent_delta": -0.043,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.036,
          "after": 0.0297,
          "delta": -0.0063,
          "percent_delta": -0.175,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 2.786,
          "after": 2.8333,
          "delta": 0.0473,
          "percent_delta": 0.017,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.218,
          "after": 0.2132,
          "delta": -0.0048,
          "percent_delta": -0.022,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.202,
          "after": 0.228,
          "delta": 0.026,
          "percent_delta": 0.1287,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.27,
          "after": 0.4078,
          "delta": 0.1378,
          "percent_delta": 0.5104,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.11,
          "after": 0.136,
          "delta": 0.026,
          "percent_delta": 0.2364,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.261,
          "after": 0.269,
          "delta": 0.008,
          "percent_delta": 0.0307,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.333,
          "after": 0.3338,
          "delta": 0.0008,
          "percent_delta": 0.0024,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.18,
          "after": 0.2441,
          "delta": 0.0641,
          "percent_delta": 0.3561,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.387,
          "after": 0.4058,
          "delta": 0.0188,
          "percent_delta": 0.0486,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.702,
          "after": 0.7728,
          "delta": 0.0708,
          "percent_delta": 0.1009,
          "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_H",
          "before": 0.27,
          "after": 0.4078,
          "delta": 0.1378,
          "percent_delta": 0.5104,
          "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": 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.1024,
        "predicted_3B": 0.0297,
        "predicted_AB": 2.8333,
        "predicted_AVG": 0.1457,
        "predicted_BB": 0.2288,
        "predicted_H": 0.4129,
        "predicted_HBP": 0.031,
        "predicted_HR": 0.1376,
        "predicted_OBP": 0.2095,
        "predicted_R": 0.3409,
        "predicted_RBI": 0.2493,
        "predicted_SLG": 0.3485,
        "predicted_SO": 0.7701
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1024,
          "after": 0.1024,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.0297,
          "after": 0.0297,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 2.8333,
          "after": 2.8333,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2132,
          "after": 0.1457,
          "delta": -0.0675,
          "percent_delta": -0.3166,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.228,
          "after": 0.2288,
          "delta": 0.0008,
          "percent_delta": 0.0035,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.4078,
          "after": 0.4129,
          "delta": 0.0051,
          "percent_delta": 0.0125,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HBP",
          "before": 0.031,
          "after": 0.031,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.136,
          "after": 0.1376,
          "delta": 0.0016,
          "percent_delta": 0.0118,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.269,
          "after": 0.2095,
          "delta": -0.0595,
          "percent_delta": -0.2212,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.3338,
          "after": 0.3409,
          "delta": 0.0071,
          "percent_delta": 0.0213,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.2441,
          "after": 0.2493,
          "delta": 0.0052,
          "percent_delta": 0.0213,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4058,
          "after": 0.3485,
          "delta": -0.0573,
          "percent_delta": -0.1412,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.7728,
          "after": 0.7701,
          "delta": -0.0027,
          "percent_delta": -0.0035,
          "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.2132,
          "after": 0.1457,
          "delta": -0.0675,
          "percent_delta": -0.3166,
          "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.83), rates preserved: AVG=0.140 HR/AB=0.049",
      "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.1024,
          "after": 0.0,
          "delta": -0.1024,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0297,
          "after": 0.0,
          "delta": -0.0297,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 2.8333,
          "after": 3.0,
          "delta": 0.1667,
          "percent_delta": 0.0588,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.2288,
          "after": 0.0,
          "delta": -0.2288,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.4129,
          "after": 0.0,
          "delta": -0.4129,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HBP",
          "before": 0.031,
          "after": 0.0,
          "delta": -0.031,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.1376,
          "after": 0.0,
          "delta": -0.1376,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.2493,
          "after": 0.0,
          "delta": -0.2493,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.7701,
          "after": 1.0,
          "delta": 0.2299,
          "percent_delta": 0.2985,
          "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.7701,
          "after": 1.0,
          "delta": 0.2299,
          "percent_delta": 0.2985,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 0.4129,
          "after": 0.0,
          "delta": -0.4129,
          "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.3409,
          "after": 0.0,
          "delta": -0.3409,
          "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.3409,
          "after": 0.0,
          "delta": -0.3409,
          "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.1299,
        "predicted_3B": 0.0273,
        "predicted_BB": 0.2595,
        "predicted_H": 0.7136,
        "predicted_HR": 0.0952,
        "predicted_RBI": 0.3959,
        "predicted_SO": 0.757
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1299,
          "delta": 0.1299,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0273,
          "delta": 0.0273,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.2595,
          "delta": 0.2595,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7136,
          "delta": -0.2864,
          "percent_delta": -0.2864,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.0952,
          "delta": 0.0952,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.3959,
          "delta": 0.3959,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.757,
          "delta": -0.243,
          "percent_delta": -0.243,
          "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.3959,
          "delta": 0.3959,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7136,
          "delta": -0.2864,
          "percent_delta": -0.2864,
          "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.1299,
          "after": 0.0,
          "delta": -0.1299,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0273,
          "after": 0.0,
          "delta": -0.0273,
          "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.2595,
          "after": 0.0,
          "delta": -0.2595,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.7136,
          "after": 0.0,
          "delta": -0.7136,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0952,
          "after": 0.0,
          "delta": -0.0952,
          "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.3959,
          "after": 0.0,
          "delta": -0.3959,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "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": 6,
        "boosted_metrics": 1,
        "deboosted_metrics": 5,
        "better_metrics": 0,
        "worse_metrics": 6,
        "biggest_boost": {
          "metric": "predicted_SO",
          "before": 0.757,
          "after": 1.0,
          "delta": 0.243,
          "percent_delta": 0.321,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 0.7136,
          "after": 0.0,
          "delta": -0.7136,
          "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.224,
        "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.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.1457,
          "after": 0.224,
          "delta": 0.0783,
          "percent_delta": 0.5374,
          "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.2095,
          "after": 0.288,
          "delta": 0.0785,
          "percent_delta": 0.3747,
          "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.3485,
          "after": 0.371,
          "delta": 0.0225,
          "percent_delta": 0.0646,
          "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": 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": 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": 5.0,
          "delta": 2.0,
          "percent_delta": 0.6667,
          "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": 2.0,
          "delta": 1.0,
          "percent_delta": 1.0,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 2,
        "boosted_metrics": 2,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 1,
        "biggest_boost": {
          "metric": "predicted_AB",
          "before": 3.0,
          "after": 5.0,
          "delta": 2.0,
          "percent_delta": 0.6667,
          "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.1457,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.2095,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.3485,
        "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": 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.224,
          "after": 0.1457,
          "delta": -0.0783,
          "percent_delta": -0.3495,
          "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": 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.2095,
          "delta": -0.0785,
          "percent_delta": -0.2724,
          "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.371,
          "after": 0.3485,
          "delta": -0.0225,
          "percent_delta": -0.0606,
          "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_OBP",
          "before": 0.288,
          "after": 0.2095,
          "delta": -0.0785,
          "percent_delta": -0.2724,
          "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.107,
        "after": 0.0,
        "delta": -0.107,
        "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": 2.786,
        "after": 5.0,
        "delta": 2.214,
        "percent_delta": 0.7947,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.218,
        "after": 0.1457,
        "delta": -0.0723,
        "percent_delta": -0.3317,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.202,
        "after": 0.0,
        "delta": -0.202,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.27,
        "after": 1.0,
        "delta": 0.73,
        "percent_delta": 2.7037,
        "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.261,
        "after": 0.2095,
        "delta": -0.0515,
        "percent_delta": -0.1973,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.333,
        "after": 0.0,
        "delta": -0.333,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.18,
        "after": 0.0,
        "delta": -0.18,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.387,
        "after": 0.3485,
        "delta": -0.0385,
        "percent_delta": -0.0995,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.702,
        "after": 2.0,
        "delta": 1.298,
        "percent_delta": 1.849,
        "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.786,
        "after": 5.0,
        "delta": 2.214,
        "percent_delta": 0.7947,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_R",
        "before": 0.333,
        "after": 0.0,
        "delta": -0.333,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.107-
predicted_3B0.036-
predicted_AB2.786-
predicted_AVG0.218-
predicted_BB0.202-
predicted_H0.270-
predicted_HR0.110-
predicted_OBP0.261-
predicted_R0.333-
predicted_RBI0.180-
predicted_SLG0.387-
predicted_SO0.702-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.102-0.005
predicted_3B0.030-0.006
predicted_AB2.8330.047
predicted_AVG0.213-0.005
predicted_BB0.2280.026
predicted_H0.4080.138
predicted_HBP0.031-
predicted_HR0.1360.026
predicted_OBP0.2690.008
predicted_R0.3340.001
predicted_RBI0.2440.064
predicted_SLG0.4060.019
predicted_SO0.7730.071
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1020.000
predicted_3B0.0300.000
predicted_AB2.8330.000
predicted_AVG0.146-0.068
predicted_BB0.2290.001
predicted_H0.4130.005
predicted_HBP0.0310.000
predicted_HR0.1380.002
predicted_OBP0.209-0.060
predicted_R0.3410.007
predicted_RBI0.2490.005
predicted_SLG0.348-0.057
predicted_SO0.770-0.003
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 3 (raw=2.83), rates preserved: AVG=0.140 HR/AB=0.049

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB3.000-
BB0.000-
H0.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB0.0000.000
CS0.000-
H1.0001.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1300.130
3B0.0270.027
BB0.2600.260
H0.714-0.286
HR0.0950.095
RBI0.3960.396
SO0.757-0.243
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.130
3B0.000-0.027
AB3.0000.000
BB0.000-0.260
H0.000-0.714
HR0.000-0.095
R0.0000.000
RBI0.000-0.396
SO1.0000.243
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.102
predicted_3B0.000-0.030
predicted_AB3.0000.167
predicted_AVG0.2240.078
predicted_BB0.000-0.229
predicted_H1.0000.587
predicted_HR0.000-0.138
predicted_OBP0.2880.078
predicted_R0.000-0.341
predicted_RBI0.000-0.249
predicted_SLG0.3710.023
predicted_SO1.0000.230
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB5.0002.000
BB0.0000.000
CS0.0000.000
H1.0001.000
HBP0.0000.000
HR0.0000.000
PA5.000-
R0.0000.000
RBI0.0000.000
SB0.0000.000
SF0.0000.000
SO2.0001.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 84
Reference playing time: 3.803
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-16.0003.0000.0000.0002.0002.0002.0002.0006.0000.18750.27780.56250.18750.12500.12500.12500.3750
last_100.2010-24.0004.0001.0000.0002.0002.0002.0003.00010.0000.16670.28570.45830.16670.08330.08330.12500.4167
season0.6084-234.00051.0009.0003.0008.00028.00028.00017.00059.0000.21790.27380.38460.21800.03420.11970.07270.2521
Weighted Prediction From Real Data
MetricValue
predicted_2B0.0960
predicted_3B0.0210
predicted_AB2.8990
predicted_AVG0.2065
predicted_BB0.2640
predicted_H0.5990
predicted_HBP0.0310
predicted_HR0.1720
predicted_OBP0.2800
predicted_R0.3350
predicted_RBI0.3330
predicted_SLG0.4320
predicted_SO0.8710
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.10700.09600.1024model_form_blend
predicted_3B0.03600.02100.0297model_form_blend
predicted_AB2.78602.89902.8333model_form_blend
predicted_AVG0.21800.20650.2132model_form_blend
predicted_BB0.20200.26400.2280model_form_blend
predicted_H0.27000.59900.4078model_form_blend
predicted_HBP-0.03100.0310form_only
predicted_HR0.11000.17200.1360model_form_blend
predicted_OBP0.26100.28000.2690model_form_blend
predicted_R0.33300.33500.3338model_form_blend
predicted_RBI0.18000.33300.2441model_form_blend
predicted_SLG0.38700.43200.4058model_form_blend
predicted_SO0.70200.87100.7728model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date265
Season rows before report date265
Report year2026
Profile rows used84
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA5
AB5
H1
2B0
3B0
HR0
R0
RBI0
BB0
SO2
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB0
Hitting_AVG0.0
Hitting_BB1
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB0
Hitting_battingOrder3
Hitting_substitutionOrder1
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedPH
gameID20260920_MIN@LAA
game_typeph
mlbID668952
noteWalked for Clemens in the 9th.
playerID668952
playerNameRyan Kreidler
posSS
startedFalse
startingPositionPH
teamMIN
teamID17
game_date2026-09-20
sl_k_percent23.0
sl_bb_percent7.4
sl_woba0.294
sl_xwoba0.293
sl_xba0.218
sl_xslg0.384
sl_sweet_spot_percent26.7
sl_barrel_batted_rate8.5
sl_hard_hit_percent37.5
sl_exit_velocity_avg88.4
sl_launch_angle_avg13.1
sl_whiff_percent31.2
sl_swing_percent52.2
Zebby Matthews (805673) · PITCHER · Starter · Team MIN
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 22
All-history rows before 20260921: 22

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB0.0000.0000.000Pitching_BB1.7732.000-1.773-2.000
predicted_ER1.0001.0001.000Pitching_ER3.0000.000-2.0001.000
predicted_H2.0002.0002.000Pitching_H5.3182.000-3.3180.000
predicted_IP5.2005.2005.200Pitching_InningsPitched5.6236.000-0.423-0.800
predicted_SO7.0007.0007.000Pitching_SO4.8648.0002.136-1.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_form_blend
Tocurrent_json_final
Dominant Effectworse
Changed Metrics1
Boosted Metrics0
Deboosted Metrics1
Better Metrics0
Worse Metrics1
Biggest Boost-
Biggest Deboostpredicted_IP: 5.6667 -> 5.2000 (deboost -0.4667, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
2current_json_final10101-predicted_IP: 5.6667 -> 5.2000 (deboost -0.4667, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "pitcher",
  "player_id": "805673",
  "player_name": "Zebby Matthews",
  "position": "Starter",
  "team": "MIN",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 0.0,
        "predicted_ER": 1.0,
        "predicted_H": 2.0,
        "predicted_HR": 0.0,
        "predicted_IP": 5.6667,
        "predicted_SO": 7.0
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      },
      "weights": {},
      "window_games": {}
    },
    {
      "index": 2,
      "step": "current_json_final",
      "description": "Final player values currently stored in the game JSON",
      "stats": {
        "predicted_BB": 0.0,
        "predicted_ER": 1.0,
        "predicted_H": 2.0,
        "predicted_HR": 0.0,
        "predicted_IP": 5.2,
        "predicted_R": 1.0,
        "predicted_SO": 7.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.0,
          "delta": 0.0,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_ER",
          "before": 1.0,
          "after": 1.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 2.0,
          "after": 2.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.0,
          "delta": 0.0,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_IP",
          "before": 5.6667,
          "after": 5.2,
          "delta": -0.4667,
          "percent_delta": -0.0824,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 7.0,
          "after": 7.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 0,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 1,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_IP",
          "before": 5.6667,
          "after": 5.2,
          "delta": -0.4667,
          "percent_delta": -0.0824,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      },
      "weights": {},
      "window_games": {}
    }
  ],
  "total_change": {
    "from_step": "pitcher_form_blend",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_BB",
        "before": 0.0,
        "after": 0.0,
        "delta": 0.0,
        "percent_delta": null,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_ER",
        "before": 1.0,
        "after": 1.0,
        "delta": 0.0,
        "percent_delta": 0.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_H",
        "before": 2.0,
        "after": 2.0,
        "delta": 0.0,
        "percent_delta": 0.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_HR",
        "before": 0.0,
        "after": 0.0,
        "delta": 0.0,
        "percent_delta": null,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_IP",
        "before": 5.6667,
        "after": 5.2,
        "delta": -0.4667,
        "percent_delta": -0.0824,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 7.0,
        "after": 7.0,
        "delta": 0.0,
        "percent_delta": 0.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      }
    ],
    "summary": {
      "changed_metrics": 1,
      "boosted_metrics": 0,
      "deboosted_metrics": 1,
      "better_metrics": 0,
      "worse_metrics": 1,
      "biggest_boost": null,
      "biggest_deboost": {
        "metric": "predicted_IP",
        "before": 5.6667,
        "after": 5.2,
        "delta": -0.4667,
        "percent_delta": -0.0824,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_form_blend

Pitcher model/profile expectation with Bayesian recent-form shrinkage

MetricValueDelta vs Prev Step
predicted_BB0.000-
predicted_ER1.000-
predicted_H2.000-
predicted_HR0.000-
predicted_IP5.667-
predicted_SO7.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 22
Reference playing time: 5.667
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.45528.20011.00019.0008.00026.0004.0003.45350.94190.38370.66280.27910.90700.1395
last_100.351055.10024.00044.00018.00049.0008.0003.90361.12050.43370.79520.32530.88550.1446
season0.2022125.10066.000117.00039.000107.00023.0004.73941.24470.52660.93350.31120.85370.1835
Weighted Prediction From Real Data
MetricValue
predicted_BB1.7880
predicted_ER2.5190
predicted_ERA4.0012
predicted_H4.5530
predicted_HR0.8490
predicted_IP5.2000
predicted_SO5.0870
predicted_WHIP1.1190
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB0.00001.78801.0223model_form_blend
predicted_ER1.00002.51901.8685model_form_blend
predicted_ERA-4.00124.0012form_only
predicted_H2.00004.55303.4597model_form_blend
predicted_HR0.00000.84900.4854model_form_blend
predicted_IP5.20005.20005.2000model_form_blend
predicted_SO7.00005.08705.9062model_form_blend
predicted_WHIP-1.11901.1190form_only

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula45% last 5 + 35% last 10 + 20% season
Active form weightslast_5=45%, last_10=35%, season=20%
Model calibration35% raw model + 65% weighted form
Rows before report date22
Season rows before report date22
Report year2026
Profile rows used22
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP5.2
H2
R1
ER1
BB0
SO7
HR0
BF19
Pitches85

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB0
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB0
Hitting_battingOrder0
Hitting_substitutionOrder0
Pitching_BB2
Pitching_Balk0
Pitching_Batters Faced22
Pitching_ER0
Pitching_ERA4.74
Pitching_Flyouts3
Pitching_Groundouts3
Pitching_H2
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched6.0
Pitching_Pitches97
Pitching_R0
Pitching_SO8
Pitching_Strikes63
Pitching_Wild Pitch0
Pitching_pitchingOrder1
allPositionsPlayedP
gameID20260916_NYY@MIN
game_typefull
mlbID805673
playerID805673
playerNameZebby Matthews
posP
startedTrue
startingPositionP
teamMIN
teamID17
game_date2026-09-16
game_pk823655.0
sl_k_percent20.5
sl_bb_percent7.5
sl_woba0.325
sl_xwoba0.324
sl_sweet_spot_percent34.4
sl_barrel_batted_rate10.8
sl_hard_hit_percent42.2
sl_whiff_percent22.2
sl_swing_percent47.6
sv_pitch_count97.0
sv_outs_recorded_est18.0
sv_release_speed90.1876288659794
sv_release_spin_rate2243.8453608247423
sv_effective_speed90.63092783505157
sv_launch_speed85.23
sv_launch_angle20.1
sv_woba_value3.2
sv_woba_denom22.0
sv_delta_run_exp-3.265
sv_delta_home_win_exp0.356
sl_avg_best_speed80.933400595
sl_avg_hyper_speed94.752241572
A.J. Minter (621345) · PITCHER · Middle Reliever (High Leverage) · Team MIN
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 22
All-history rows before 20260921: 22

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB0.0000.0000.000Pitching_BB0.2730.000-0.2730.000
predicted_ER0.0000.0000.000Pitching_ER0.3181.000-0.318-1.000
predicted_H1.0001.0001.000Pitching_H0.8181.0000.1820.000
predicted_IP1.0001.0001.000Pitching_InningsPitched0.7501.0000.2500.000
predicted_SO0.0000.0000.000Pitching_SO0.9090.000-0.9090.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_form_blend
Tocurrent_json_final
Dominant Effectneutral
Changed Metrics0
Boosted Metrics0
Deboosted Metrics0
Better Metrics0
Worse Metrics0
Biggest Boost-
Biggest Deboost-
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
2current_json_final00000--Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "pitcher",
  "player_id": "621345",
  "player_name": "A.J. Minter",
  "position": "Middle Reliever (High Leverage)",
  "team": "MIN",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 0.0,
        "predicted_ER": 0.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": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 1.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": 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": 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": 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"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_form_blend

Pitcher model/profile expectation with Bayesian recent-form shrinkage

MetricValueDelta vs Prev Step
predicted_BB0.000-
predicted_ER0.000-
predicted_H1.000-
predicted_HR1.000-
predicted_IP1.000-
predicted_SO0.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 44
Reference playing time: 1.000
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.4555.0003.0007.0001.0007.0002.0005.40001.60000.60001.40000.20001.40000.4000
last_100.351010.2003.0009.0004.00014.0002.0002.53121.21880.28120.84380.37501.31250.1875
season0.204443.00010.00036.0008.00040.0007.0002.09301.02330.23260.83720.18600.93020.1628
Weighted Prediction From Real Data
MetricValue
predicted_BB0.3010
predicted_ER0.4490
predicted_ERA4.0443
predicted_H1.0520
predicted_HR0.2310
predicted_IP1.0000
predicted_SO1.1520
predicted_WHIP1.3532
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB0.00000.30100.1494model_form_blend
predicted_ER0.00000.44900.2228model_form_blend
predicted_ERA-4.04434.0443form_only
predicted_H1.00001.05201.0258model_form_blend
predicted_HR1.00000.23100.6183model_form_blend
predicted_IP1.00001.00001.0000model_form_blend
predicted_SO0.00001.15200.5717model_form_blend
predicted_WHIP-1.35321.3532form_only

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula45% last 5 + 35% last 10 + 20% season
Active form weightslast_5=45%, last_10=35%, season=20%
Model calibration35% raw model + 65% weighted form
Rows before report date22
Season rows before report date22
Report year2026
Profile rows used44
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP1.0
H1
R0
ER0
BB0
SO0
HR1
BF4
Pitches16

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB0
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB0
Hitting_battingOrder0
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced4
Pitching_ER1
Pitching_ERA2.51
Pitching_Flyouts0
Pitching_Groundouts3
Pitching_H1
Pitching_HBP0
Pitching_HR1
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched1.0
Pitching_Pitches8
Pitching_R1
Pitching_SO0
Pitching_Strikes6
Pitching_Wild Pitch0
Pitching_decisionBS
Pitching_pitchingOrder6
allPositionsPlayedP
gameID20260919_MIN@LAA
game_typefull
mlbID621345
playerID621345
playerNameA.J. Minter
posP
startedFalse
startingPositionP
teamMIN
teamID17
game_date2026-09-19
sl_k_percent22.7
sl_bb_percent4.5
sl_woba0.299
sl_xwoba0.299
sl_sweet_spot_percent29.1
sl_barrel_batted_rate10.2
sl_hard_hit_percent36.2
sl_whiff_percent23.8
sl_swing_percent52.3
sl_avg_best_speed75.391726935
sl_avg_hyper_speed93.130807661
Jeff Hoffman (656546) · PITCHER · Setup Man · Team MIN
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 19
All-history rows before 20260921: 19

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB1.0001.0001.000Pitching_BB0.5261.0000.4740.000
predicted_ER0.0000.0000.000Pitching_ER0.2110.000-0.2110.000
predicted_H0.0000.0000.000Pitching_H0.4740.000-0.4740.000
predicted_IP1.0001.0001.000Pitching_InningsPitched0.7841.0000.2160.000
predicted_SO1.0001.0001.000Pitching_SO1.3681.000-0.3680.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_form_blend
Tocurrent_json_final
Dominant Effectneutral
Changed Metrics0
Boosted Metrics0
Deboosted Metrics0
Better Metrics0
Worse Metrics0
Biggest Boost-
Biggest Deboost-
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
2current_json_final00000--Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "pitcher",
  "player_id": "656546",
  "player_name": "Jeff Hoffman",
  "position": "Setup Man",
  "team": "MIN",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 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": "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.0,
        "predicted_R": 0.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": 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": 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": 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": 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"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_form_blend

Pitcher model/profile expectation with Bayesian recent-form shrinkage

MetricValueDelta vs Prev Step
predicted_BB1.000-
predicted_ER0.000-
predicted_H0.000-
predicted_HR0.000-
predicted_IP1.000-
predicted_SO1.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 70
Reference playing time: 1.000
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.4554.1000.0000.0003.0008.0000.0000.00000.69230.00000.00000.69231.84610.0000
last_100.35109.0000.0002.0003.00015.0000.0000.00000.55560.00000.22220.33331.66670.0000
season0.207065.00025.00057.00028.000101.0004.0003.46151.30770.38460.87690.43081.55380.0615
Weighted Prediction From Real Data
MetricValue
predicted_BB0.4770
predicted_ER0.1960
predicted_ERA1.7608
predicted_H0.4530
predicted_HR0.0500
predicted_IP1.0000
predicted_SO1.5090
predicted_WHIP0.9291
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB1.00000.47700.7207model_form_blend
predicted_ER0.00000.19600.1047model_form_blend
predicted_ERA-1.76081.7608form_only
predicted_H0.00000.45300.2419model_form_blend
predicted_HR0.00000.05000.0267model_form_blend
predicted_IP1.00001.00001.0000model_form_blend
predicted_SO1.00001.50901.2718model_form_blend
predicted_WHIP-0.92910.9291form_only

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula45% last 5 + 35% last 10 + 20% season
Active form weightslast_5=45%, last_10=35%, season=20%
Model calibration35% raw model + 65% weighted form
Rows before report date19
Season rows before report date19
Report year2026
Profile rows used70
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP1.0
H0
R0
ER0
BB1
SO1
HR0
BF4
Pitches17

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB0
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB0
Hitting_battingOrder0
Hitting_substitutionOrder0
Pitching_BB1
Pitching_Balk0
Pitching_Batters Faced4
Pitching_ER0
Pitching_ERA3.46
Pitching_Flyouts1
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched1.0
Pitching_Pitches19
Pitching_R0
Pitching_SO1
Pitching_Strikes11
Pitching_Wild Pitch0
Pitching_decisionH
Pitching_pitchingOrder3
allPositionsPlayedP
gameID20260919_MIN@LAA
game_typefull
mlbID656546
playerID656546
playerNameJeff Hoffman
posP
startedFalse
startingPositionP
teamMIN
teamID17
game_date2026-09-19
sl_k_percent35.3
sl_bb_percent9.8
sl_woba0.293
sl_xwoba0.278
sl_sweet_spot_percent35.8
sl_barrel_batted_rate8.7
sl_hard_hit_percent36.4
sl_whiff_percent38.2
sl_swing_percent49.9
sl_avg_best_speed78.251745067
sl_avg_hyper_speed93.449744094
Yoendrys Gómez (672782) · PITCHER · Closer · Team MIN
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 54
All-history rows before 20260921: 54

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB3.0003.0003.000Pitching_BB0.5372.0002.4631.000
predicted_ER3.0003.0003.000Pitching_ER0.3702.0002.6301.000
predicted_H3.0003.0003.000Pitching_H0.7222.0002.2781.000
predicted_IP1.1001.2001.100Pitching_InningsPitched0.7540.1000.4461.100
predicted_SO2.0002.0002.000Pitching_SO0.9071.0001.0931.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_form_blend
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics1
Boosted Metrics1
Deboosted Metrics0
Better Metrics1
Worse Metrics0
Biggest Boostpredicted_IP: 0.6667 -> 1.2000 (boost 0.5333, better)
Biggest Deboost-
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
2current_json_final11010predicted_IP: 0.6667 -> 1.2000 (boost 0.5333, better)-Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "pitcher",
  "player_id": "672782",
  "player_name": "Yoendrys Gómez",
  "position": "Closer",
  "team": "MIN",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 3.0,
        "predicted_ER": 3.0,
        "predicted_H": 3.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": 3.0,
        "predicted_ER": 3.0,
        "predicted_H": 3.0,
        "predicted_HR": 0.0,
        "predicted_IP": 1.2,
        "predicted_R": 3.0,
        "predicted_SO": 2.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_BB",
          "before": 3.0,
          "after": 3.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_ER",
          "before": 3.0,
          "after": 3.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 3.0,
          "after": 3.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.0,
          "delta": 0.0,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_IP",
          "before": 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": 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_IP",
          "before": 0.6667,
          "after": 1.2,
          "delta": 0.5333,
          "percent_delta": 0.8,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      },
      "weights": {},
      "window_games": {}
    }
  ],
  "total_change": {
    "from_step": "pitcher_form_blend",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_BB",
        "before": 3.0,
        "after": 3.0,
        "delta": 0.0,
        "percent_delta": 0.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_ER",
        "before": 3.0,
        "after": 3.0,
        "delta": 0.0,
        "percent_delta": 0.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_H",
        "before": 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": 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": 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_IP",
        "before": 0.6667,
        "after": 1.2,
        "delta": 0.5333,
        "percent_delta": 0.7999,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": null,
      "has_material_change": true,
      "dominant_effect": "better"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_form_blend

Pitcher model/profile expectation with Bayesian recent-form shrinkage

MetricValueDelta vs Prev Step
predicted_BB3.000-
predicted_ER3.000-
predicted_H3.000-
predicted_HR0.000-
predicted_IP0.667-
predicted_SO2.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 63
Reference playing time: 0.667
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.4552.2008.0009.0006.0005.0000.00027.00005.62503.00003.37502.25001.87500.0000
last_100.35108.00012.00013.00010.00010.0000.00013.50002.87501.50001.62501.25001.25000.0000
season0.206364.10032.00058.00039.00062.0007.0004.47671.50780.49740.90150.60620.96370.1088
Weighted Prediction From Real Data
MetricValue
predicted_BB0.8870
predicted_ER1.1220
predicted_ERA14.1249
predicted_H1.3670
predicted_HR0.0410
predicted_IP0.2000
predicted_SO0.9480
predicted_WHIP3.1526
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB3.00000.88701.8734model_form_blend
predicted_ER3.00001.12201.9987model_form_blend
predicted_ERA-14.124914.1249form_only
predicted_H3.00001.36702.1293model_form_blend
predicted_HR0.00000.04100.0219model_form_blend
predicted_IP0.20000.20000.2000model_form_blend
predicted_SO2.00000.94801.4391model_form_blend
predicted_WHIP-3.15263.1526form_only

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula45% last 5 + 35% last 10 + 20% season
Active form weightslast_5=45%, last_10=35%, season=20%
Model calibration35% raw model + 65% weighted form
Rows before report date54
Season rows before report date54
Report year2026
Profile rows used63
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP1.2
H3
R3
ER3
BB3
SO2
HR0
BF11
Pitches42

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB0
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB0
Hitting_battingOrder0
Hitting_substitutionOrder0
Pitching_BB2
Pitching_Balk0
Pitching_Batters Faced5
Pitching_ER2
Pitching_ERA4.48
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H2
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.1
Pitching_Pitches24
Pitching_R2
Pitching_SO1
Pitching_Strikes12
Pitching_Wild Pitch0
Pitching_decisionH
Pitching_pitchingOrder4
allPositionsPlayedP
gameID20260919_MIN@LAA
game_typefull
mlbID672782
playerID672782
playerNameYoendrys Gómez
posP
startedFalse
startingPositionP
teamMIN
teamID17
game_date2026-09-19
sl_k_percent21.5
sl_bb_percent13.5
sl_woba0.326
sl_xwoba0.362
sl_sweet_spot_percent42.2
sl_barrel_batted_rate8.6
sl_hard_hit_percent44.9
sl_whiff_percent26.0
sl_swing_percent46.8
sl_avg_best_speed77.75104967
sl_avg_hyper_speed94.035827088
Taylor Rogers (573124) · PITCHER · Reliever · Team MIN
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 62
All-history rows before 20260921: 62

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB0.0000.0000.000Pitching_BB0.5002.000-0.500-2.000
predicted_ER0.0000.0000.000Pitching_ER0.4680.000-0.4680.000
predicted_H0.0000.0000.000Pitching_H1.0001.000-1.000-1.000
predicted_IP0.0000.2000.000Pitching_InningsPitched0.7161.200-0.516-1.000
predicted_SO0.0000.0000.000Pitching_SO0.8394.000-0.839-4.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_form_blend
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics1
Boosted Metrics1
Deboosted Metrics0
Better Metrics1
Worse Metrics0
Biggest Boostpredicted_IP: 0.1000 -> 0.2000 (boost 0.1000, better)
Biggest Deboost-
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
2current_json_final11010predicted_IP: 0.1000 -> 0.2000 (boost 0.1000, better)-Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "pitcher",
  "player_id": "573124",
  "player_name": "Taylor Rogers",
  "position": "Reliever",
  "team": "MIN",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 0.0,
        "predicted_ER": 0.0,
        "predicted_H": 0.0,
        "predicted_HR": 0.0,
        "predicted_IP": 0.1,
        "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": 0.2,
        "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": 0.1,
          "after": 0.2,
          "delta": 0.1,
          "percent_delta": 1.0,
          "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": 1,
        "boosted_metrics": 1,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_IP",
          "before": 0.1,
          "after": 0.2,
          "delta": 0.1,
          "percent_delta": 1.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": 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.1,
        "after": 0.2,
        "delta": 0.1,
        "percent_delta": 1.0,
        "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": 1,
      "boosted_metrics": 1,
      "deboosted_metrics": 0,
      "better_metrics": 1,
      "worse_metrics": 0,
      "biggest_boost": {
        "metric": "predicted_IP",
        "before": 0.1,
        "after": 0.2,
        "delta": 0.1,
        "percent_delta": 1.0,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": null,
      "has_material_change": true,
      "dominant_effect": "better"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_form_blend

Pitcher model/profile expectation with Bayesian recent-form shrinkage

MetricValueDelta vs Prev Step
predicted_BB0.000-
predicted_ER0.000-
predicted_H0.000-
predicted_HR0.000-
predicted_IP0.100-
predicted_SO0.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 61
Reference playing time: 0.100
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.4556.0003.0007.0005.0008.0001.0004.50002.00000.50001.16670.83331.33330.1667
last_100.351011.1004.00011.00010.00013.0002.0003.17651.85290.35290.97060.88231.14710.1765
season0.206157.00026.00060.00030.00052.0005.0004.10531.57890.45611.05260.52630.91230.0877
Weighted Prediction From Real Data
MetricValue
predicted_BB0.6010
predicted_ER0.4160
predicted_ERA4.1472
predicted_H0.9460
predicted_HR0.1380
predicted_IP1.0000
predicted_SO1.0030
predicted_WHIP1.7112
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB0.00000.60100.3141model_form_blend
predicted_ER0.00000.41600.2174model_form_blend
predicted_ERA-4.14724.1472form_only
predicted_H0.00000.94600.4944model_form_blend
predicted_HR0.00000.13800.0721model_form_blend
predicted_IP0.10001.00000.2000model_form_blend
predicted_SO0.00001.00300.5242model_form_blend
predicted_WHIP-1.71121.7112form_only

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula45% last 5 + 35% last 10 + 20% season
Active form weightslast_5=45%, last_10=35%, season=20%
Model calibration35% raw model + 65% weighted form
Rows before report date62
Season rows before report date62
Report year2026
Profile rows used61
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP0.2
H0
R0
ER0
BB0
SO0
HR0
BF2
Pitches8

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB0
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB0
Hitting_battingOrder0
Hitting_substitutionOrder0
Pitching_BB2
Pitching_Balk0
Pitching_Batters Faced9
Pitching_ER0
Pitching_ERA4.58
Pitching_Flyouts1
Pitching_Groundouts0
Pitching_H1
Pitching_HBP1
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched1.2
Pitching_Pitches26
Pitching_R1
Pitching_SO4
Pitching_Strikes18
Pitching_Wild Pitch0
Pitching_decisionL
Pitching_pitchingOrder7
allPositionsPlayedP
gameID20260919_MIN@LAA
game_typefull
mlbID573124
playerID573124
playerNameTaylor Rogers
posP
startedFalse
startingPositionP
teamMIN
teamID17
game_date2026-09-19
sl_k_percent19.6
sl_bb_percent11.7
sl_woba0.342
sl_xwoba0.318
sl_sweet_spot_percent38.4
sl_barrel_batted_rate6.2
sl_hard_hit_percent28.2
sl_whiff_percent18.7
sl_swing_percent42.1
sl_avg_best_speed75.782219765
sl_avg_hyper_speed92.436889118

Home Team: SF

Home Pitcher Deep Analysis

FieldValue
PitcherBlade Tidwell
RoleStarter
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score-0.1935
ESPN Rank-
Movement AvailableTrue
Primary Pitch-
Movement Score-0.0201
Avg Velo89.4929
Avg Spin2451.7297
HB Inches0
IVB Inches0
Release Extension0
Pre IP5.1000
Pre ER3
Pre H6
Pre BB2
Pre SO5
Season ERA4.5562
Season WHIP1.2000
Role Avg IP5.1670
Recent Avg IP5.2670
Last Start IP6.2000
Team Form Snapshot
{
  "method": "team_form_snapshot",
  "role": "pitcher",
  "team": {
    "team": "SF",
    "games": 156,
    "wins": 64,
    "losses": 92,
    "win_pct": 0.4103,
    "runs_scored": 656.0,
    "runs_allowed": 740.0,
    "run_differential": -84.0,
    "run_differential_per_game": -0.5385,
    "avg_runs_scored": 4.2051,
    "avg_runs_allowed": 4.7436,
    "offense_index": 0.9339,
    "defense_index": 0.9492,
    "current_streak": "L3",
    "recent": {
      "games": 10,
      "wins": 3,
      "losses": 7,
      "win_pct": 0.3,
      "avg_runs_scored": 4.6,
      "avg_runs_allowed": 5.7,
      "run_differential": -11.0
    },
    "available": true,
    "quality_score": -0.212
  },
  "opponent": {
    "team": "MIN",
    "games": 156,
    "wins": 73,
    "losses": 83,
    "win_pct": 0.4679,
    "runs_scored": 712.0,
    "runs_allowed": 776.0,
    "run_differential": -64.0,
    "run_differential_per_game": -0.4103,
    "avg_runs_scored": 4.5641,
    "avg_runs_allowed": 4.9744,
    "offense_index": 1.0136,
    "defense_index": 0.9052,
    "current_streak": "W1",
    "recent": {
      "games": 10,
      "wins": 4,
      "losses": 6,
      "win_pct": 0.4,
      "avg_runs_scored": 3.7,
      "avg_runs_allowed": 4.8,
      "run_differential": -11.0
    },
    "available": true,
    "quality_score": -0.1124
  },
  "edges": {
    "quality_edge": -0.0996,
    "offense_edge": -0.0661,
    "opponent_offense_edge": 0.0136,
    "defense_strength": -0.0508,
    "opponent_defense_weakness": 0.0948,
    "recent_win_pct_edge": -0.1
  },
  "player_factors": {
    "ip": 0.9939,
    "run_prevention": 1.0122,
    "strikeout": 0.9959
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "694918",
    "profile": {
      "available": true,
      "pitcher_id": "694918",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 197.0,
        "k_percent": 18.9,
        "bb_percent": 9.5,
        "woba": 0.305,
        "xwoba": 0.325,
        "sweet_spot_percent": 30.1,
        "barrel_batted_rate": 10.5,
        "hard_hit_percent": 38.6,
        "avg_best_speed": 77.2772,
        "avg_hyper_speed": 94.0983,
        "whiff_percent": 23.1,
        "swing_percent": 44.2
      },
      "league_medians": {
        "pa": 135.0,
        "k_percent": 22.0,
        "bb_percent": 9.1,
        "woba": 0.316,
        "xwoba": 0.311,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6329,
        "avg_hyper_speed": 93.8957,
        "whiff_percent": 25.0,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": -0.1876,
        "command_and_miss": -0.3143,
        "regression_edge": -0.5714,
        "xwoba_edge": -0.4,
        "barrel_edge": -0.7333,
        "hard_hit_edge": -0.1,
        "whiff_edge": -0.2714,
        "bb_edge": -0.1,
        "pitch_design_score": -0.0201
      },
      "pitch_movement_profile": {
        "available": true,
        "pitcher_id": "694918",
        "player_name": null,
        "source": "all_players_stats.csv embedded Savant pitcher movement features",
        "total_pitches": 86,
        "primary_pitch": {
          "pitch_type": null,
          "pitch_name": null,
          "pitches": 86,
          "pitch_usage": 0.0,
          "release_speed": 89.4928593467488,
          "release_spin_rate": 2451.7297481784312,
          "spin_axis": null,
          "horizontal_break_inches": 0.0,
          "induced_vertical_break_inches": 0.0,
          "vertical_break_with_gravity_inches": null,
          "release_pos_x": null,
          "release_pos_z": null,
          "release_extension": 0.0,
          "arm_angle": 0.0,
          "whiff_percent": 0.0,
          "xwoba": 0.0,
          "hard_hit_percent": 0.0
        },
        "pitch_mix": [
          {
            "pitch_type": null,
            "pitch_name": null,
            "pitches": 86,
            "pitch_usage": 0.0,
            "release_speed": 89.4928593467488,
            "release_spin_rate": 2451.7297481784312,
            "spin_axis": null,
            "horizontal_break_inches": 0.0,
            "induced_vertical_break_inches": 0.0,
            "vertical_break_with_gravity_inches": null,
            "release_pos_x": null,
            "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.4929,
          "release_spin_rate": 2451.7297,
          "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.0201,
          "horizontal_break_edge": 0.0,
          "induced_vertical_break_edge": 0.0,
          "extension_edge": 0.0,
          "velocity_edge": -0.1435,
          "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.1935,
      "sample_weight": 0.788,
      "run_prevention_factor": 1.0164,
      "strikeout_factor": 0.9775,
      "walk_factor": 1.0063,
      "homer_factor": 1.0588,
      "woba_minus_xwoba": -0.02,
      "regression_flag": "neutral",
      "espn_rank": {
        "available": false,
        "player_id": "694918",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 3.0,
        "factor": 1.0129,
        "adjusted": 3
      },
      "predicted_H": {
        "original": 4.0,
        "factor": 1.0129,
        "adjusted": 4
      },
      "predicted_BB": {
        "original": 2.0,
        "factor": 1.005,
        "adjusted": 2
      },
      "predicted_HR": {
        "original": 1.0,
        "factor": 1.0463,
        "adjusted": 1
      },
      "predicted_SO": {
        "original": 4.0,
        "factor": 0.9823,
        "adjusted": 4
      }
    }
  }
}
Recent Form Pitching
{
  "hitting": {
    "AB": 0,
    "H": 0,
    "HR": 0,
    "RBI": 0,
    "R": 0,
    "BB": 0,
    "SO": 0,
    "2B": 0,
    "3B": 0,
    "AVG": 0,
    "OBP": 0,
    "SLG": 0,
    "OPS": 0,
    "games_played": 0,
    "hot_streak": false,
    "cold_streak": true,
    "trend": "stable"
  },
  "pitching": {
    "IP": 45.1,
    "ER": 25,
    "H": 38,
    "BB": 20,
    "SO": 36,
    "HR": 6,
    "ERA": 4.963235294117647,
    "WHIP": 1.2794117647058822,
    "K9": 7.147058823529411,
    "HR9": 1.1911764705882353,
    "games_pitched": 10,
    "quality_starts": 1,
    "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-15T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": true,
  "pitcher_id": "694918",
  "player_name": null,
  "source": "all_players_stats.csv embedded Savant pitcher movement features",
  "total_pitches": 86,
  "primary_pitch": {
    "pitch_type": null,
    "pitch_name": null,
    "pitches": 86,
    "pitch_usage": 0.0,
    "release_speed": 89.4928593467488,
    "release_spin_rate": 2451.7297481784312,
    "spin_axis": null,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": null,
    "release_pos_x": null,
    "release_pos_z": null,
    "release_extension": 0.0,
    "arm_angle": 0.0,
    "whiff_percent": 0.0,
    "xwoba": 0.0,
    "hard_hit_percent": 0.0
  },
  "pitch_mix": [
    {
      "pitch_type": null,
      "pitch_name": null,
      "pitches": 86,
      "pitch_usage": 0.0,
      "release_speed": 89.4928593467488,
      "release_spin_rate": 2451.7297481784312,
      "spin_axis": null,
      "horizontal_break_inches": 0.0,
      "induced_vertical_break_inches": 0.0,
      "vertical_break_with_gravity_inches": null,
      "release_pos_x": null,
      "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.4929,
    "release_spin_rate": 2451.7297,
    "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.0201,
    "horizontal_break_edge": 0.0,
    "induced_vertical_break_edge": 0.0,
    "extension_edge": 0.0,
    "velocity_edge": -0.1435,
    "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."
}
Player Form Blend
{
  "form_version": "player_form_v3_5_10_season",
  "method": "weighted_recent_form",
  "description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
  "weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "effective_weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 16.0,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.7619,
    "prior_weight": 0.2381
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "694918",
  "report_date": "20260921",
  "season_year": 2026,
  "rows_used": 16,
  "reference_playing_time": 5.333,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 26.1,
        "ER": 14.0,
        "R": 15.0,
        "H": 20.0,
        "BB": 11.0,
        "SO": 22.0,
        "HR": 5.0,
        "BF": 112.0,
        "Pitches": 461.0
      },
      "per_game": {
        "IP": 5.1,
        "ER": 2.8,
        "R": 3.0,
        "H": 4.0,
        "BB": 2.2,
        "SO": 4.4,
        "HR": 1.0,
        "BF": 22.4,
        "Pitches": 92.2
      },
      "rates": {
        "ERA": 4.7848,
        "WHIP": 1.1772,
        "ER_per_IP": 0.53165,
        "H_per_IP": 0.75949,
        "BB_per_IP": 0.41772,
        "SO_per_IP": 0.83544,
        "HR_per_IP": 0.18987
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 45.1,
        "ER": 25.0,
        "R": 26.0,
        "H": 38.0,
        "BB": 20.0,
        "SO": 36.0,
        "HR": 6.0,
        "BF": 194.0,
        "Pitches": 792.0
      },
      "per_game": {
        "IP": 4.2,
        "ER": 2.5,
        "R": 2.6,
        "H": 3.8,
        "BB": 2.0,
        "SO": 3.6,
        "HR": 0.6,
        "BF": 19.4,
        "Pitches": 79.2
      },
      "rates": {
        "ERA": 4.9632,
        "WHIP": 1.2794,
        "ER_per_IP": 0.55147,
        "H_per_IP": 0.83824,
        "BB_per_IP": 0.44118,
        "SO_per_IP": 0.79412,
        "HR_per_IP": 0.13235
      }
    },
    "season": {
      "games": 16,
      "totals": {
        "IP": 53.1,
        "ER": 27.0,
        "R": 28.0,
        "H": 43.0,
        "BB": 21.0,
        "SO": 42.0,
        "HR": 7.0,
        "BF": 222.0,
        "Pitches": 902.0
      },
      "per_game": {
        "IP": 3.1,
        "ER": 1.6875,
        "R": 1.75,
        "H": 2.6875,
        "BB": 1.3125,
        "SO": 2.625,
        "HR": 0.4375,
        "BF": 13.875,
        "Pitches": 56.375
      },
      "rates": {
        "ERA": 4.5562,
        "WHIP": 1.2,
        "ER_per_IP": 0.50625,
        "H_per_IP": 0.80625,
        "BB_per_IP": 0.39375,
        "SO_per_IP": 0.7875,
        "HR_per_IP": 0.13125
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 5.0,
    "predicted_ER": 2.56,
    "predicted_H": 4.075,
    "predicted_BB": 1.991,
    "predicted_SO": 4.081,
    "predicted_HR": 0.756,
    "predicted_ERA": 4.7502,
    "predicted_WHIP": 1.2506
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.4506,
  "form_weight": 0.5494,
  "form_reliability": 0.7619,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 16.0,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.7619,
    "prior_weight": 0.2381
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 5.1,
      "form": 5.0,
      "final": 5.2,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 3.0,
      "form": 2.56,
      "final": 2.7583,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 6.0,
      "form": 4.075,
      "final": 4.9424,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 2.0,
      "form": 1.991,
      "final": 1.9951,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 5.0,
      "form": 4.081,
      "final": 4.4951,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 2.0,
      "form": 0.756,
      "final": 1.3165,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 4.7502,
      "final": 4.7502,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 1.2506,
      "final": 1.2506,
      "source": "form_only"
    }
  }
}
Inning Pitch Details
{
  "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."
}
FieldValue
PitcherCarson Seymour
RoleMiddle Reliever (High Leverage)
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score-0.3883
ESPN Rank-
Movement AvailableTrue
Primary Pitch-
Movement Score0.2472
Avg Velo94.2657
Avg Spin2239.5160
HB Inches0
IVB Inches0
Release Extension0
Pre IP1.2000
Pre ER0
Pre H1
Pre BB1
Pre SO1
Season ERA5.0233
Season WHIP1.6395
Role Avg IP1.2220
Recent Avg IP0.9330
Last Start IP0
Team Form Snapshot
{
  "method": "team_form_snapshot",
  "role": "pitcher",
  "team": {
    "team": "SF",
    "games": 156,
    "wins": 64,
    "losses": 92,
    "win_pct": 0.4103,
    "runs_scored": 656.0,
    "runs_allowed": 740.0,
    "run_differential": -84.0,
    "run_differential_per_game": -0.5385,
    "avg_runs_scored": 4.2051,
    "avg_runs_allowed": 4.7436,
    "offense_index": 0.9339,
    "defense_index": 0.9492,
    "current_streak": "L3",
    "recent": {
      "games": 10,
      "wins": 3,
      "losses": 7,
      "win_pct": 0.3,
      "avg_runs_scored": 4.6,
      "avg_runs_allowed": 5.7,
      "run_differential": -11.0
    },
    "available": true,
    "quality_score": -0.212
  },
  "opponent": {
    "team": "MIN",
    "games": 156,
    "wins": 73,
    "losses": 83,
    "win_pct": 0.4679,
    "runs_scored": 712.0,
    "runs_allowed": 776.0,
    "run_differential": -64.0,
    "run_differential_per_game": -0.4103,
    "avg_runs_scored": 4.5641,
    "avg_runs_allowed": 4.9744,
    "offense_index": 1.0136,
    "defense_index": 0.9052,
    "current_streak": "W1",
    "recent": {
      "games": 10,
      "wins": 4,
      "losses": 6,
      "win_pct": 0.4,
      "avg_runs_scored": 3.7,
      "avg_runs_allowed": 4.8,
      "run_differential": -11.0
    },
    "available": true,
    "quality_score": -0.1124
  },
  "edges": {
    "quality_edge": -0.0996,
    "offense_edge": -0.0661,
    "opponent_offense_edge": 0.0136,
    "defense_strength": -0.0508,
    "opponent_defense_weakness": 0.0948,
    "recent_win_pct_edge": -0.1
  },
  "player_factors": {
    "ip": 0.9939,
    "run_prevention": 1.0122,
    "strikeout": 0.9959
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "693313",
    "profile": {
      "available": true,
      "pitcher_id": "693313",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 121.0,
        "k_percent": 16.4,
        "bb_percent": 12.5,
        "woba": 0.358,
        "xwoba": 0.38,
        "sweet_spot_percent": 37.8,
        "barrel_batted_rate": 8.9,
        "hard_hit_percent": 37.8,
        "avg_best_speed": 77.1477,
        "avg_hyper_speed": 93.7652,
        "whiff_percent": 23.7,
        "swing_percent": 46.8
      },
      "league_medians": {
        "pa": 135.0,
        "k_percent": 22.0,
        "bb_percent": 9.1,
        "woba": 0.316,
        "xwoba": 0.311,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6329,
        "avg_hyper_speed": 93.8957,
        "whiff_percent": 25.0,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": -1.0796,
        "command_and_miss": -0.595,
        "regression_edge": -0.6286,
        "xwoba_edge": -1.9714,
        "barrel_edge": -0.3778,
        "hard_hit_edge": 0.0143,
        "whiff_edge": -0.1857,
        "bb_edge": -0.85,
        "pitch_design_score": 0.2472
      },
      "pitch_movement_profile": {
        "available": true,
        "pitcher_id": "693313",
        "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": 94.26568376704982,
          "release_spin_rate": 2239.5160098179445,
          "spin_axis": null,
          "horizontal_break_inches": 0.0,
          "induced_vertical_break_inches": 0.0,
          "vertical_break_with_gravity_inches": null,
          "release_pos_x": null,
          "release_pos_z": null,
          "release_extension": 0.0,
          "arm_angle": 0.0,
          "whiff_percent": 0.0,
          "xwoba": 0.0,
          "hard_hit_percent": 0.0
        },
        "pitch_mix": [
          {
            "pitch_type": null,
            "pitch_name": null,
            "pitches": 21,
            "pitch_usage": 0.0,
            "release_speed": 94.26568376704982,
            "release_spin_rate": 2239.5160098179445,
            "spin_axis": null,
            "horizontal_break_inches": 0.0,
            "induced_vertical_break_inches": 0.0,
            "vertical_break_with_gravity_inches": null,
            "release_pos_x": null,
            "release_pos_z": null,
            "release_extension": 0.0,
            "arm_angle": 0.0,
            "whiff_percent": 0.0,
            "xwoba": 0.0,
            "hard_hit_percent": 0.0
          }
        ],
        "summary": {
          "release_speed": 94.2657,
          "release_spin_rate": 2239.516,
          "spin_axis": 0.0,
          "horizontal_break_inches": 0.0,
          "induced_vertical_break_inches": 0.0,
          "vertical_break_with_gravity_inches": 0.0,
          "release_pos_x": 0.0,
          "release_pos_z": 0.0,
          "release_extension": 0.0,
          "arm_angle": 0.0,
          "whiff_percent": 0.0,
          "xwoba": 0.0,
          "hard_hit_percent": 0.0
        },
        "components": {
          "movement_score": 0.2472,
          "horizontal_break_edge": 0.0,
          "induced_vertical_break_edge": 0.0,
          "extension_edge": 0.0,
          "velocity_edge": 1.7657,
          "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.3883,
      "sample_weight": 0.484,
      "run_prevention_factor": 1.033,
      "strikeout_factor": 0.9809,
      "walk_factor": 1.0329,
      "homer_factor": 1.043,
      "woba_minus_xwoba": -0.022,
      "regression_flag": "neutral",
      "espn_rank": {
        "available": false,
        "player_id": "693313",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 0.0,
        "factor": 1.016,
        "adjusted": 0
      },
      "predicted_H": {
        "original": 1.0,
        "factor": 1.016,
        "adjusted": 1
      },
      "predicted_BB": {
        "original": 1.0,
        "factor": 1.0159,
        "adjusted": 1
      },
      "predicted_HR": {
        "original": 0.0,
        "factor": 1.0208,
        "adjusted": 0
      },
      "predicted_SO": {
        "original": 2.0,
        "factor": 0.9908,
        "adjusted": 2
      }
    }
  }
}
Recent Form Pitching
{
  "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": 6,
    "H": 11,
    "BB": 7,
    "SO": 5,
    "HR": 3,
    "ERA": 6.000000000000001,
    "WHIP": 2.0000000000000004,
    "K9": 5.000000000000001,
    "HR9": 3.0000000000000004,
    "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-20T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": true,
  "pitcher_id": "693313",
  "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": 94.26568376704982,
    "release_spin_rate": 2239.5160098179445,
    "spin_axis": null,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": null,
    "release_pos_x": null,
    "release_pos_z": null,
    "release_extension": 0.0,
    "arm_angle": 0.0,
    "whiff_percent": 0.0,
    "xwoba": 0.0,
    "hard_hit_percent": 0.0
  },
  "pitch_mix": [
    {
      "pitch_type": null,
      "pitch_name": null,
      "pitches": 21,
      "pitch_usage": 0.0,
      "release_speed": 94.26568376704982,
      "release_spin_rate": 2239.5160098179445,
      "spin_axis": null,
      "horizontal_break_inches": 0.0,
      "induced_vertical_break_inches": 0.0,
      "vertical_break_with_gravity_inches": null,
      "release_pos_x": null,
      "release_pos_z": null,
      "release_extension": 0.0,
      "arm_angle": 0.0,
      "whiff_percent": 0.0,
      "xwoba": 0.0,
      "hard_hit_percent": 0.0
    }
  ],
  "summary": {
    "release_speed": 94.2657,
    "release_spin_rate": 2239.516,
    "spin_axis": 0.0,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": 0.0,
    "release_pos_x": 0.0,
    "release_pos_z": 0.0,
    "release_extension": 0.0,
    "arm_angle": 0.0,
    "whiff_percent": 0.0,
    "xwoba": 0.0,
    "hard_hit_percent": 0.0
  },
  "components": {
    "movement_score": 0.2472,
    "horizontal_break_edge": 0.0,
    "induced_vertical_break_edge": 0.0,
    "extension_edge": 0.0,
    "velocity_edge": 1.7657,
    "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."
}
Player Form Blend
{
  "form_version": "player_form_v3_5_10_season",
  "method": "weighted_recent_form",
  "description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
  "weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "effective_weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 5.83,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.5383,
    "prior_weight": 0.4617
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "693313",
  "report_date": "20260921",
  "season_year": 2026,
  "rows_used": 22,
  "reference_playing_time": 1.0,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 4.2,
        "ER": 1.0,
        "R": 3.0,
        "H": 4.0,
        "BB": 3.0,
        "SO": 3.0,
        "HR": 1.0,
        "BF": 21.0,
        "Pitches": 77.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.2,
        "R": 0.6,
        "H": 0.8,
        "BB": 0.6,
        "SO": 0.6,
        "HR": 0.2,
        "BF": 4.2,
        "Pitches": 15.4
      },
      "rates": {
        "ERA": 1.9286,
        "WHIP": 1.5,
        "ER_per_IP": 0.21429,
        "H_per_IP": 0.85714,
        "BB_per_IP": 0.64286,
        "SO_per_IP": 0.64286,
        "HR_per_IP": 0.21429
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 9.0,
        "ER": 6.0,
        "R": 9.0,
        "H": 11.0,
        "BB": 7.0,
        "SO": 5.0,
        "HR": 3.0,
        "BF": 47.0,
        "Pitches": 167.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.6,
        "R": 0.9,
        "H": 1.1,
        "BB": 0.7,
        "SO": 0.5,
        "HR": 0.3,
        "BF": 4.7,
        "Pitches": 16.7
      },
      "rates": {
        "ERA": 6.0,
        "WHIP": 2.0,
        "ER_per_IP": 0.66667,
        "H_per_IP": 1.22222,
        "BB_per_IP": 0.77778,
        "SO_per_IP": 0.55556,
        "HR_per_IP": 0.33333
      }
    },
    "season": {
      "games": 22,
      "totals": {
        "IP": 28.2,
        "ER": 16.0,
        "R": 19.0,
        "H": 31.0,
        "BB": 16.0,
        "SO": 21.0,
        "HR": 6.0,
        "BF": 132.0,
        "Pitches": 505.0
      },
      "per_game": {
        "IP": 1.1,
        "ER": 0.7273,
        "R": 0.8636,
        "H": 1.4091,
        "BB": 0.7273,
        "SO": 0.9545,
        "HR": 0.2727,
        "BF": 6.0,
        "Pitches": 22.9545
      },
      "rates": {
        "ERA": 5.0233,
        "WHIP": 1.6395,
        "ER_per_IP": 0.55814,
        "H_per_IP": 1.0814,
        "BB_per_IP": 0.55814,
        "SO_per_IP": 0.73256,
        "HR_per_IP": 0.2093
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 1.0,
    "predicted_ER": 0.49,
    "predicted_H": 1.043,
    "predicted_BB": 0.555,
    "predicted_SO": 0.8,
    "predicted_HR": 0.213,
    "predicted_ERA": 4.2558,
    "predicted_WHIP": 1.543
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.5451,
  "form_weight": 0.4549,
  "form_reliability": 0.5383,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 5.83,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.5383,
    "prior_weight": 0.4617
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 1.0,
      "form": 1.0,
      "final": 1.0,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 0.0,
      "form": 0.49,
      "final": 0.2229,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 1.0,
      "form": 1.043,
      "final": 1.0196,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 1.0,
      "form": 0.555,
      "final": 0.7976,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 1.0,
      "form": 0.8,
      "final": 0.909,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 0.0,
      "form": 0.213,
      "final": 0.0969,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 4.2558,
      "final": 4.2558,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 1.543,
      "final": 1.543,
      "source": "form_only"
    }
  }
}
Inning Pitch Details
{
  "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."
}
FieldValue
PitcherDylan Smith
RoleCloser
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score-0.0131
ESPN Rank-
Movement AvailableTrue
Primary Pitch-
Movement Score0.1140
Avg Velo91.8880
Avg Spin2337.7438
HB Inches0
IVB Inches0
Release Extension0
Pre IP1.1000
Pre ER0
Pre H1
Pre BB1
Pre SO1
Season ERA3.6486
Season WHIP1.4595
Role Avg IP0.9490
Recent Avg IP1.0670
Last Start IP0
Team Form Snapshot
{
  "method": "team_form_snapshot",
  "role": "pitcher",
  "team": {
    "team": "SF",
    "games": 156,
    "wins": 64,
    "losses": 92,
    "win_pct": 0.4103,
    "runs_scored": 656.0,
    "runs_allowed": 740.0,
    "run_differential": -84.0,
    "run_differential_per_game": -0.5385,
    "avg_runs_scored": 4.2051,
    "avg_runs_allowed": 4.7436,
    "offense_index": 0.9339,
    "defense_index": 0.9492,
    "current_streak": "L3",
    "recent": {
      "games": 10,
      "wins": 3,
      "losses": 7,
      "win_pct": 0.3,
      "avg_runs_scored": 4.6,
      "avg_runs_allowed": 5.7,
      "run_differential": -11.0
    },
    "available": true,
    "quality_score": -0.212
  },
  "opponent": {
    "team": "MIN",
    "games": 156,
    "wins": 73,
    "losses": 83,
    "win_pct": 0.4679,
    "runs_scored": 712.0,
    "runs_allowed": 776.0,
    "run_differential": -64.0,
    "run_differential_per_game": -0.4103,
    "avg_runs_scored": 4.5641,
    "avg_runs_allowed": 4.9744,
    "offense_index": 1.0136,
    "defense_index": 0.9052,
    "current_streak": "W1",
    "recent": {
      "games": 10,
      "wins": 4,
      "losses": 6,
      "win_pct": 0.4,
      "avg_runs_scored": 3.7,
      "avg_runs_allowed": 4.8,
      "run_differential": -11.0
    },
    "available": true,
    "quality_score": -0.1124
  },
  "edges": {
    "quality_edge": -0.0996,
    "offense_edge": -0.0661,
    "opponent_offense_edge": 0.0136,
    "defense_strength": -0.0508,
    "opponent_defense_weakness": 0.0948,
    "recent_win_pct_edge": -0.1
  },
  "player_factors": {
    "ip": 0.9939,
    "run_prevention": 1.0122,
    "strikeout": 0.9959
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "681916",
    "profile": {
      "available": true,
      "pitcher_id": "681916",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 147.0,
        "k_percent": 25.9,
        "bb_percent": 12.3,
        "woba": 0.306,
        "xwoba": 0.308,
        "sweet_spot_percent": 37.8,
        "barrel_batted_rate": 6.1,
        "hard_hit_percent": 49.0,
        "avg_best_speed": 78.8769,
        "avg_hyper_speed": 94.8712,
        "whiff_percent": 25.7,
        "swing_percent": 48.6
      },
      "league_medians": {
        "pa": 135.0,
        "k_percent": 22.0,
        "bb_percent": 9.1,
        "woba": 0.316,
        "xwoba": 0.311,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6329,
        "avg_hyper_speed": 93.8957,
        "whiff_percent": 25.0,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": -0.1043,
        "command_and_miss": 0.1257,
        "regression_edge": -0.0571,
        "xwoba_edge": 0.0857,
        "barrel_edge": 0.2444,
        "hard_hit_edge": -1.5857,
        "whiff_edge": 0.1,
        "bb_edge": -0.8,
        "pitch_design_score": 0.114
      },
      "pitch_movement_profile": {
        "available": true,
        "pitcher_id": "681916",
        "player_name": null,
        "source": "all_players_stats.csv embedded Savant pitcher movement features",
        "total_pitches": 24,
        "primary_pitch": {
          "pitch_type": null,
          "pitch_name": null,
          "pitches": 24,
          "pitch_usage": 0.0,
          "release_speed": 91.8880166719543,
          "release_spin_rate": 2337.743817891972,
          "spin_axis": null,
          "horizontal_break_inches": 0.0,
          "induced_vertical_break_inches": 0.0,
          "vertical_break_with_gravity_inches": null,
          "release_pos_x": null,
          "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": 24,
            "pitch_usage": 0.0,
            "release_speed": 91.8880166719543,
            "release_spin_rate": 2337.743817891972,
            "spin_axis": null,
            "horizontal_break_inches": 0.0,
            "induced_vertical_break_inches": 0.0,
            "vertical_break_with_gravity_inches": null,
            "release_pos_x": null,
            "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.888,
          "release_spin_rate": 2337.7438,
          "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.114,
          "horizontal_break_edge": 0.0,
          "induced_vertical_break_edge": 0.0,
          "extension_edge": 0.0,
          "velocity_edge": 0.8146,
          "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.0131,
      "sample_weight": 0.588,
      "run_prevention_factor": 1.0011,
      "strikeout_factor": 1.0155,
      "walk_factor": 1.0376,
      "homer_factor": 1.0243,
      "woba_minus_xwoba": -0.002,
      "regression_flag": "neutral",
      "espn_rank": {
        "available": false,
        "player_id": "681916",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 0.0,
        "factor": 1.0006,
        "adjusted": 0
      },
      "predicted_H": {
        "original": 1.0,
        "factor": 1.0006,
        "adjusted": 1
      },
      "predicted_BB": {
        "original": 1.0,
        "factor": 1.0221,
        "adjusted": 1
      },
      "predicted_HR": {
        "original": 0.0,
        "factor": 1.0143,
        "adjusted": 0
      },
      "predicted_SO": {
        "original": 2.0,
        "factor": 1.0091,
        "adjusted": 2
      }
    }
  }
}
Recent Form Pitching
{
  "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": 6,
    "H": 14,
    "BB": 7,
    "SO": 7,
    "HR": 1,
    "ERA": 5.586206896551723,
    "WHIP": 2.172413793103448,
    "K9": 6.517241379310344,
    "HR9": 0.9310344827586206,
    "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-20T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": true,
  "pitcher_id": "681916",
  "player_name": null,
  "source": "all_players_stats.csv embedded Savant pitcher movement features",
  "total_pitches": 24,
  "primary_pitch": {
    "pitch_type": null,
    "pitch_name": null,
    "pitches": 24,
    "pitch_usage": 0.0,
    "release_speed": 91.8880166719543,
    "release_spin_rate": 2337.743817891972,
    "spin_axis": null,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": null,
    "release_pos_x": null,
    "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": 24,
      "pitch_usage": 0.0,
      "release_speed": 91.8880166719543,
      "release_spin_rate": 2337.743817891972,
      "spin_axis": null,
      "horizontal_break_inches": 0.0,
      "induced_vertical_break_inches": 0.0,
      "vertical_break_with_gravity_inches": null,
      "release_pos_x": null,
      "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.888,
    "release_spin_rate": 2337.7438,
    "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.114,
    "horizontal_break_edge": 0.0,
    "induced_vertical_break_edge": 0.0,
    "extension_edge": 0.0,
    "velocity_edge": 0.8146,
    "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."
}
Player Form Blend
{
  "form_version": "player_form_v3_5_10_season",
  "method": "weighted_recent_form",
  "description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
  "weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "effective_weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 7.525,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.6008,
    "prior_weight": 0.3992
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "681916",
  "report_date": "20260921",
  "season_year": 2026,
  "rows_used": 39,
  "reference_playing_time": 1.0,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 5.1,
        "ER": 4.0,
        "R": 4.0,
        "H": 7.0,
        "BB": 5.0,
        "SO": 1.0,
        "HR": 0.0,
        "BF": 28.0,
        "Pitches": 104.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.8,
        "R": 0.8,
        "H": 1.4,
        "BB": 1.0,
        "SO": 0.2,
        "HR": 0.0,
        "BF": 5.6,
        "Pitches": 20.8
      },
      "rates": {
        "ERA": 6.75,
        "WHIP": 2.25,
        "ER_per_IP": 0.75,
        "H_per_IP": 1.3125,
        "BB_per_IP": 0.9375,
        "SO_per_IP": 0.1875,
        "HR_per_IP": 0.0
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 9.2,
        "ER": 6.0,
        "R": 8.0,
        "H": 14.0,
        "BB": 7.0,
        "SO": 7.0,
        "HR": 1.0,
        "BF": 49.0,
        "Pitches": 192.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.6,
        "R": 0.8,
        "H": 1.4,
        "BB": 0.7,
        "SO": 0.7,
        "HR": 0.1,
        "BF": 4.9,
        "Pitches": 19.2
      },
      "rates": {
        "ERA": 5.5862,
        "WHIP": 2.1724,
        "ER_per_IP": 0.62069,
        "H_per_IP": 1.44828,
        "BB_per_IP": 0.72414,
        "SO_per_IP": 0.72414,
        "HR_per_IP": 0.10345
      }
    },
    "season": {
      "games": 39,
      "totals": {
        "IP": 37.0,
        "ER": 15.0,
        "R": 18.0,
        "H": 34.0,
        "BB": 20.0,
        "SO": 42.0,
        "HR": 3.0,
        "BF": 166.0,
        "Pitches": 660.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.3846,
        "R": 0.4615,
        "H": 0.8718,
        "BB": 0.5128,
        "SO": 1.0769,
        "HR": 0.0769,
        "BF": 4.2564,
        "Pitches": 16.9231
      },
      "rates": {
        "ERA": 3.6486,
        "WHIP": 1.4595,
        "ER_per_IP": 0.40541,
        "H_per_IP": 0.91892,
        "BB_per_IP": 0.54054,
        "SO_per_IP": 1.13514,
        "HR_per_IP": 0.08108
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 1.0,
    "predicted_ER": 0.585,
    "predicted_H": 1.161,
    "predicted_BB": 0.621,
    "predicted_SO": 0.713,
    "predicted_HR": 0.091,
    "predicted_ERA": 5.2688,
    "predicted_WHIP": 1.782
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.5187,
  "form_weight": 0.4813,
  "form_reliability": 0.6008,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 7.525,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.6008,
    "prior_weight": 0.3992
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 1.0,
      "form": 1.0,
      "final": 1.0,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 0.0,
      "form": 0.585,
      "final": 0.2816,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 1.0,
      "form": 1.161,
      "final": 1.0775,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 1.0,
      "form": 0.621,
      "final": 0.8176,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 1.0,
      "form": 0.713,
      "final": 0.8619,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 0.0,
      "form": 0.091,
      "final": 0.0438,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 5.2688,
      "final": 5.2688,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 1.782,
      "final": 1.782,
      "source": "form_only"
    }
  }
}
Inning Pitch Details
{
  "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."
}
FieldValue
PitcherTrent Harris
RoleSetup Man
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score0.6025
ESPN Rank-
Movement AvailableTrue
Primary Pitch-
Movement Score-0.0813
Avg Velo88.3992
Avg Spin2440.1989
HB Inches0
IVB Inches0
Release Extension0
Pre IP0.2000
Pre ER1
Pre H2
Pre BB0
Pre SO2
Season ERA2.2500
Season WHIP1.1500
Role Avg IP1.1110
Recent Avg IP1
Last Start IP0
Team Form Snapshot
{
  "method": "team_form_snapshot",
  "role": "pitcher",
  "team": {
    "team": "SF",
    "games": 156,
    "wins": 64,
    "losses": 92,
    "win_pct": 0.4103,
    "runs_scored": 656.0,
    "runs_allowed": 740.0,
    "run_differential": -84.0,
    "run_differential_per_game": -0.5385,
    "avg_runs_scored": 4.2051,
    "avg_runs_allowed": 4.7436,
    "offense_index": 0.9339,
    "defense_index": 0.9492,
    "current_streak": "L3",
    "recent": {
      "games": 10,
      "wins": 3,
      "losses": 7,
      "win_pct": 0.3,
      "avg_runs_scored": 4.6,
      "avg_runs_allowed": 5.7,
      "run_differential": -11.0
    },
    "available": true,
    "quality_score": -0.212
  },
  "opponent": {
    "team": "MIN",
    "games": 156,
    "wins": 73,
    "losses": 83,
    "win_pct": 0.4679,
    "runs_scored": 712.0,
    "runs_allowed": 776.0,
    "run_differential": -64.0,
    "run_differential_per_game": -0.4103,
    "avg_runs_scored": 4.5641,
    "avg_runs_allowed": 4.9744,
    "offense_index": 1.0136,
    "defense_index": 0.9052,
    "current_streak": "W1",
    "recent": {
      "games": 10,
      "wins": 4,
      "losses": 6,
      "win_pct": 0.4,
      "avg_runs_scored": 3.7,
      "avg_runs_allowed": 4.8,
      "run_differential": -11.0
    },
    "available": true,
    "quality_score": -0.1124
  },
  "edges": {
    "quality_edge": -0.0996,
    "offense_edge": -0.0661,
    "opponent_offense_edge": 0.0136,
    "defense_strength": -0.0508,
    "opponent_defense_weakness": 0.0948,
    "recent_win_pct_edge": -0.1
  },
  "player_factors": {
    "ip": 0.9939,
    "run_prevention": 1.0122,
    "strikeout": 0.9959
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "805345",
    "profile": {
      "available": true,
      "pitcher_id": "805345",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 77.0,
        "k_percent": 32.5,
        "bb_percent": 9.1,
        "woba": 0.259,
        "xwoba": 0.22,
        "sweet_spot_percent": 28.9,
        "barrel_batted_rate": 0.0,
        "hard_hit_percent": 22.2,
        "avg_best_speed": 72.4019,
        "avg_hyper_speed": 91.588,
        "whiff_percent": 26.0,
        "swing_percent": 41.8
      },
      "league_medians": {
        "pa": 135.0,
        "k_percent": 22.0,
        "bb_percent": 9.1,
        "woba": 0.316,
        "xwoba": 0.311,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6329,
        "avg_hyper_speed": 93.8957,
        "whiff_percent": 25.0,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": 1.867,
        "command_and_miss": 0.725,
        "regression_edge": 1.1143,
        "xwoba_edge": 2.5,
        "barrel_edge": 1.6,
        "hard_hit_edge": 2.2429,
        "whiff_edge": 0.1429,
        "bb_edge": 0.0,
        "pitch_design_score": -0.0813
      },
      "pitch_movement_profile": {
        "available": true,
        "pitcher_id": "805345",
        "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": 88.39924161793789,
          "release_spin_rate": 2440.198891419396,
          "spin_axis": null,
          "horizontal_break_inches": 0.0,
          "induced_vertical_break_inches": 0.0,
          "vertical_break_with_gravity_inches": null,
          "release_pos_x": null,
          "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": 88.39924161793789,
            "release_spin_rate": 2440.198891419396,
            "spin_axis": null,
            "horizontal_break_inches": 0.0,
            "induced_vertical_break_inches": 0.0,
            "vertical_break_with_gravity_inches": null,
            "release_pos_x": null,
            "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.3992,
          "release_spin_rate": 2440.1989,
          "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.0813,
          "horizontal_break_edge": 0.0,
          "induced_vertical_break_edge": 0.0,
          "extension_edge": 0.0,
          "velocity_edge": -0.5809,
          "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.6025,
      "sample_weight": 0.45,
      "run_prevention_factor": 0.9488,
      "strikeout_factor": 1.0296,
      "walk_factor": 1.0,
      "homer_factor": 0.8683,
      "woba_minus_xwoba": 0.039,
      "regression_flag": "positive_pitcher_regression",
      "espn_rank": {
        "available": false,
        "player_id": "805345",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 0.0,
        "factor": 0.977,
        "adjusted": 0
      },
      "predicted_H": {
        "original": 1.0,
        "factor": 0.977,
        "adjusted": 1
      },
      "predicted_BB": {
        "original": 0.0,
        "factor": 1.0,
        "adjusted": 0
      },
      "predicted_HR": {
        "original": 0.0,
        "factor": 0.9407,
        "adjusted": 0
      },
      "predicted_SO": {
        "original": 2.0,
        "factor": 1.0133,
        "adjusted": 2
      }
    }
  }
}
Recent Form Pitching
{
  "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": 0,
    "H": 7,
    "BB": 2,
    "SO": 11,
    "HR": 0,
    "ERA": 0.0,
    "WHIP": 0.9,
    "K9": 9.9,
    "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-20T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": true,
  "pitcher_id": "805345",
  "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": 88.39924161793789,
    "release_spin_rate": 2440.198891419396,
    "spin_axis": null,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": null,
    "release_pos_x": null,
    "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": 88.39924161793789,
      "release_spin_rate": 2440.198891419396,
      "spin_axis": null,
      "horizontal_break_inches": 0.0,
      "induced_vertical_break_inches": 0.0,
      "vertical_break_with_gravity_inches": null,
      "release_pos_x": null,
      "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.3992,
    "release_spin_rate": 2440.1989,
    "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.0813,
    "horizontal_break_edge": 0.0,
    "induced_vertical_break_edge": 0.0,
    "extension_edge": 0.0,
    "velocity_edge": -0.5809,
    "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."
}
Player Form Blend
{
  "form_version": "player_form_v3_5_10_season",
  "method": "weighted_recent_form",
  "description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
  "weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "effective_weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 4.067,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.4486,
    "prior_weight": 0.5514
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "805345",
  "report_date": "20260921",
  "season_year": 2026,
  "rows_used": 18,
  "reference_playing_time": 1.0,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 5.0,
        "ER": 0.0,
        "R": 0.0,
        "H": 4.0,
        "BB": 0.0,
        "SO": 5.0,
        "HR": 0.0,
        "BF": 17.0,
        "Pitches": 50.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.0,
        "R": 0.0,
        "H": 0.8,
        "BB": 0.0,
        "SO": 1.0,
        "HR": 0.0,
        "BF": 3.4,
        "Pitches": 10.0
      },
      "rates": {
        "ERA": 0.0,
        "WHIP": 0.8,
        "ER_per_IP": 0.0,
        "H_per_IP": 0.8,
        "BB_per_IP": 0.0,
        "SO_per_IP": 1.0,
        "HR_per_IP": 0.0
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 10.0,
        "ER": 0.0,
        "R": 1.0,
        "H": 7.0,
        "BB": 2.0,
        "SO": 11.0,
        "HR": 0.0,
        "BF": 37.0,
        "Pitches": 128.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.0,
        "R": 0.1,
        "H": 0.7,
        "BB": 0.2,
        "SO": 1.1,
        "HR": 0.0,
        "BF": 3.7,
        "Pitches": 12.8
      },
      "rates": {
        "ERA": 0.0,
        "WHIP": 0.9,
        "ER_per_IP": 0.0,
        "H_per_IP": 0.7,
        "BB_per_IP": 0.2,
        "SO_per_IP": 1.1,
        "HR_per_IP": 0.0
      }
    },
    "season": {
      "games": 18,
      "totals": {
        "IP": 20.0,
        "ER": 5.0,
        "R": 6.0,
        "H": 16.0,
        "BB": 7.0,
        "SO": 26.0,
        "HR": 0.0,
        "BF": 81.0,
        "Pitches": 316.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.2778,
        "R": 0.3333,
        "H": 0.8889,
        "BB": 0.3889,
        "SO": 1.4444,
        "HR": 0.0,
        "BF": 4.5,
        "Pitches": 17.5556
      },
      "rates": {
        "ERA": 2.25,
        "WHIP": 1.15,
        "ER_per_IP": 0.25,
        "H_per_IP": 0.8,
        "BB_per_IP": 0.35,
        "SO_per_IP": 1.3,
        "HR_per_IP": 0.0
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 1.0,
    "predicted_ER": 0.303,
    "predicted_H": 0.884,
    "predicted_BB": 0.27,
    "predicted_SO": 1.008,
    "predicted_HR": 0.082,
    "predicted_ERA": 2.7306,
    "predicted_WHIP": 1.154
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.583,
  "form_weight": 0.417,
  "form_reliability": 0.4486,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 4.067,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.4486,
    "prior_weight": 0.5514
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 1.0,
      "form": 1.0,
      "final": 1.0,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 1.0,
      "form": 0.303,
      "final": 0.7093,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 2.0,
      "form": 0.884,
      "final": 1.5346,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 0.0,
      "form": 0.27,
      "final": 0.1126,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 2.0,
      "form": 1.008,
      "final": 1.5863,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 1.0,
      "form": 0.082,
      "final": 0.6172,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 2.7306,
      "final": 2.7306,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 1.154,
      "final": 1.154,
      "source": "form_only"
    }
  }
}
Inning Pitch Details
{
  "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."
}
FieldValue
PitcherJason Foley
RoleMiddle Reliever (High Leverage)
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score0.0146
ESPN Rank-
Movement AvailableTrue
Primary Pitch-
Movement Score0.1407
Avg Velo92.3644
Avg Spin2035.6297
HB Inches0
IVB Inches0
Release Extension0
Pre IP0
Pre ER1
Pre H1
Pre BB0
Pre SO2
Season ERA4.3043
Season WHIP1.5652
Role Avg IP1.0950
Recent Avg IP1.3330
Last Start IP0
Team Form Snapshot
{
  "method": "team_form_snapshot",
  "role": "pitcher",
  "team": {
    "team": "SF",
    "games": 156,
    "wins": 64,
    "losses": 92,
    "win_pct": 0.4103,
    "runs_scored": 656.0,
    "runs_allowed": 740.0,
    "run_differential": -84.0,
    "run_differential_per_game": -0.5385,
    "avg_runs_scored": 4.2051,
    "avg_runs_allowed": 4.7436,
    "offense_index": 0.9339,
    "defense_index": 0.9492,
    "current_streak": "L3",
    "recent": {
      "games": 10,
      "wins": 3,
      "losses": 7,
      "win_pct": 0.3,
      "avg_runs_scored": 4.6,
      "avg_runs_allowed": 5.7,
      "run_differential": -11.0
    },
    "available": true,
    "quality_score": -0.212
  },
  "opponent": {
    "team": "MIN",
    "games": 156,
    "wins": 73,
    "losses": 83,
    "win_pct": 0.4679,
    "runs_scored": 712.0,
    "runs_allowed": 776.0,
    "run_differential": -64.0,
    "run_differential_per_game": -0.4103,
    "avg_runs_scored": 4.5641,
    "avg_runs_allowed": 4.9744,
    "offense_index": 1.0136,
    "defense_index": 0.9052,
    "current_streak": "W1",
    "recent": {
      "games": 10,
      "wins": 4,
      "losses": 6,
      "win_pct": 0.4,
      "avg_runs_scored": 3.7,
      "avg_runs_allowed": 4.8,
      "run_differential": -11.0
    },
    "available": true,
    "quality_score": -0.1124
  },
  "edges": {
    "quality_edge": -0.0996,
    "offense_edge": -0.0661,
    "opponent_offense_edge": 0.0136,
    "defense_strength": -0.0508,
    "opponent_defense_weakness": 0.0948,
    "recent_win_pct_edge": -0.1
  },
  "player_factors": {
    "ip": 0.9939,
    "run_prevention": 1.0122,
    "strikeout": 0.9959
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "671345",
    "profile": {
      "available": true,
      "pitcher_id": "671345",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 91.0,
        "k_percent": 13.3,
        "bb_percent": 9.5,
        "woba": 0.319,
        "xwoba": 0.297,
        "sweet_spot_percent": 28.4,
        "barrel_batted_rate": 4.9,
        "hard_hit_percent": 37.0,
        "avg_best_speed": 74.3589,
        "avg_hyper_speed": 93.9067,
        "whiff_percent": 17.0,
        "swing_percent": 42.5
      },
      "league_medians": {
        "pa": 135.0,
        "k_percent": 22.0,
        "bb_percent": 9.1,
        "woba": 0.316,
        "xwoba": 0.311,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6329,
        "avg_hyper_speed": 93.8957,
        "whiff_percent": 25.0,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": 0.3804,
        "command_and_miss": -0.9793,
        "regression_edge": 0.6286,
        "xwoba_edge": 0.4,
        "barrel_edge": 0.5111,
        "hard_hit_edge": 0.1286,
        "whiff_edge": -1.1429,
        "bb_edge": -0.1,
        "pitch_design_score": 0.1407
      },
      "pitch_movement_profile": {
        "available": true,
        "pitcher_id": "671345",
        "player_name": null,
        "source": "all_players_stats.csv embedded Savant pitcher movement features",
        "total_pitches": 25,
        "primary_pitch": {
          "pitch_type": null,
          "pitch_name": null,
          "pitches": 25,
          "pitch_usage": 0.0,
          "release_speed": 92.36444203647275,
          "release_spin_rate": 2035.6296659363304,
          "spin_axis": null,
          "horizontal_break_inches": 0.0,
          "induced_vertical_break_inches": 0.0,
          "vertical_break_with_gravity_inches": null,
          "release_pos_x": null,
          "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": 25,
            "pitch_usage": 0.0,
            "release_speed": 92.36444203647275,
            "release_spin_rate": 2035.6296659363304,
            "spin_axis": null,
            "horizontal_break_inches": 0.0,
            "induced_vertical_break_inches": 0.0,
            "vertical_break_with_gravity_inches": null,
            "release_pos_x": null,
            "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.3644,
          "release_spin_rate": 2035.6297,
          "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.0052,
          "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.0146,
      "sample_weight": 0.45,
      "run_prevention_factor": 0.9988,
      "strikeout_factor": 0.9571,
      "walk_factor": 1.0036,
      "homer_factor": 0.9739,
      "woba_minus_xwoba": 0.022,
      "regression_flag": "neutral",
      "espn_rank": {
        "available": false,
        "player_id": "671345",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 1.0,
        "factor": 0.9995,
        "adjusted": 1
      },
      "predicted_H": {
        "original": 1.0,
        "factor": 0.9995,
        "adjusted": 1
      },
      "predicted_BB": {
        "original": 1.0,
        "factor": 1.0016,
        "adjusted": 1
      },
      "predicted_HR": {
        "original": 0.0,
        "factor": 0.9883,
        "adjusted": 0
      },
      "predicted_SO": {
        "original": 2.0,
        "factor": 0.9807,
        "adjusted": 2
      }
    }
  }
}
Recent Form Pitching
{
  "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.1,
    "ER": 6,
    "H": 16,
    "BB": 5,
    "SO": 7,
    "HR": 0,
    "ERA": 4.764705882352941,
    "WHIP": 1.852941176470588,
    "K9": 5.5588235294117645,
    "HR9": 0.0,
    "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-18T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": true,
  "pitcher_id": "671345",
  "player_name": null,
  "source": "all_players_stats.csv embedded Savant pitcher movement features",
  "total_pitches": 25,
  "primary_pitch": {
    "pitch_type": null,
    "pitch_name": null,
    "pitches": 25,
    "pitch_usage": 0.0,
    "release_speed": 92.36444203647275,
    "release_spin_rate": 2035.6296659363304,
    "spin_axis": null,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": null,
    "release_pos_x": null,
    "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": 25,
      "pitch_usage": 0.0,
      "release_speed": 92.36444203647275,
      "release_spin_rate": 2035.6296659363304,
      "spin_axis": null,
      "horizontal_break_inches": 0.0,
      "induced_vertical_break_inches": 0.0,
      "vertical_break_with_gravity_inches": null,
      "release_pos_x": null,
      "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.3644,
    "release_spin_rate": 2035.6297,
    "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.0052,
    "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."
}
Player Form Blend
{
  "form_version": "player_form_v3_5_10_season",
  "method": "weighted_recent_form",
  "description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
  "weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "effective_weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 4.677,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.4833,
    "prior_weight": 0.5167
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "671345",
  "report_date": "20260921",
  "season_year": 2026,
  "rows_used": 21,
  "reference_playing_time": 0.667,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 6.2,
        "ER": 4.0,
        "R": 6.0,
        "H": 7.0,
        "BB": 4.0,
        "SO": 2.0,
        "HR": 0.0,
        "BF": 32.0,
        "Pitches": 144.0
      },
      "per_game": {
        "IP": 1.1,
        "ER": 0.8,
        "R": 1.2,
        "H": 1.4,
        "BB": 0.8,
        "SO": 0.4,
        "HR": 0.0,
        "BF": 6.4,
        "Pitches": 28.8
      },
      "rates": {
        "ERA": 5.4,
        "WHIP": 1.65,
        "ER_per_IP": 0.6,
        "H_per_IP": 1.05,
        "BB_per_IP": 0.6,
        "SO_per_IP": 0.3,
        "HR_per_IP": 0.0
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 11.1,
        "ER": 6.0,
        "R": 8.0,
        "H": 16.0,
        "BB": 5.0,
        "SO": 7.0,
        "HR": 0.0,
        "BF": 56.0,
        "Pitches": 225.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.6,
        "R": 0.8,
        "H": 1.6,
        "BB": 0.5,
        "SO": 0.7,
        "HR": 0.0,
        "BF": 5.6,
        "Pitches": 22.5
      },
      "rates": {
        "ERA": 4.7647,
        "WHIP": 1.8529,
        "ER_per_IP": 0.52941,
        "H_per_IP": 1.41176,
        "BB_per_IP": 0.44118,
        "SO_per_IP": 0.61765,
        "HR_per_IP": 0.0
      }
    },
    "season": {
      "games": 21,
      "totals": {
        "IP": 23.0,
        "ER": 11.0,
        "R": 14.0,
        "H": 26.0,
        "BB": 10.0,
        "SO": 14.0,
        "HR": 1.0,
        "BF": 105.0,
        "Pitches": 402.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.5238,
        "R": 0.6667,
        "H": 1.2381,
        "BB": 0.4762,
        "SO": 0.6667,
        "HR": 0.0476,
        "BF": 5.0,
        "Pitches": 19.1429
      },
      "rates": {
        "ERA": 4.3043,
        "WHIP": 1.5652,
        "ER_per_IP": 0.47826,
        "H_per_IP": 1.13043,
        "BB_per_IP": 0.43478,
        "SO_per_IP": 0.6087,
        "HR_per_IP": 0.04348
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 1.0,
    "predicted_ER": 0.477,
    "predicted_H": 0.975,
    "predicted_BB": 0.398,
    "predicted_SO": 0.642,
    "predicted_HR": 0.073,
    "predicted_ERA": 4.7661,
    "predicted_WHIP": 1.5245
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.5683,
  "form_weight": 0.4317,
  "form_reliability": 0.4833,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 4.677,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.4833,
    "prior_weight": 0.5167
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 0.2,
      "form": 1.0,
      "final": 0.2,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 1.0,
      "form": 0.477,
      "final": 0.7742,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 1.0,
      "form": 0.975,
      "final": 0.9892,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 0.0,
      "form": 0.398,
      "final": 0.1718,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 2.0,
      "form": 0.642,
      "final": 1.4138,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 0.0,
      "form": 0.073,
      "final": 0.0315,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 4.7661,
      "final": 4.7661,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 1.5245,
      "final": 1.5245,
      "source": "form_only"
    }
  }
}
Inning Pitch Details
{
  "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."
}
Marcelo Mayer (691785) · BATTER · DH · Team SF
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 0
All-history rows before 20260921: 0
System season_avg: 0.2200
Data season_avg (2026 season-to-date): -
Diff (system - data): -
System opponent_avg: 0.1180

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1471.0000.000Hitting_2B----
predicted_3B0.0000.0000.000Hitting_3B----
predicted_AB3.0155.0003.000Hitting_AB----
predicted_AVG0.2200.2000.333Hitting_AVG----
predicted_BB0.2350.0000.000Hitting_BB----
predicted_CS-0.0000.000BaseRunning_CS----
predicted_H0.6621.0001.000Hitting_H----
predicted_HR0.0440.0000.000Hitting_HR----
predicted_OBP0.2760.2000.333Hitting_OBP----
predicted_R0.2651.0000.000Hitting_R----
predicted_RBI0.3241.0001.000Hitting_RBI----
predicted_SLG0.3120.4000.333Hitting_SLG----
predicted_SO0.6470.0001.000Hitting_SO----

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics8
Boosted Metrics5
Deboosted Metrics3
Better Metrics6
Worse Metrics2
Biggest Boostpredicted_AB: 3.0150 -> 5.0000 (boost 1.9850, better)
Biggest Deboostpredicted_SO: 0.6470 -> 0.0000 (deboost -0.6470, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend22011predicted_SO: 0.6470 -> 0.7298 (boost 0.0828, 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.
3team_form_snapshot00000--Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling62415predicted_H: 0.6692 -> 1.0000 (boost 0.3308, better)predicted_RBI: 0.3307 -> 0.0000 (deboost -0.3307, worse)AB rounded to 3 (raw=3.08), rates preserved: AVG=0.219 HR/AB=0.013
6consistency_constraints10101-predicted_R: 0.2622 -> 0.0000 (deboost -0.2622, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine64251predicted_RBI: 0.0000 -> 0.4012 (boost 0.4012, better)predicted_SO: 1.0000 -> 0.7047 (deboost -0.2953, better)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation63324predicted_RBI: 0.4012 -> 1.0000 (boost 0.5988, better)predicted_BB: 0.2767 -> 0.0000 (deboost -0.2767, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context43131predicted_SLG: 0.3155 -> 0.3550 (boost 0.0395, 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
10simulation_box_score_reference54150predicted_AB: 3.0000 -> 5.0000 (boost 2.0000, better)predicted_SO: 1.0000 -> 0.0000 (deboost -1.0000, better)Attached simulation box score without overwriting model prediction
11current_json_final30303-predicted_SLG: 0.3550 -> 0.3155 (deboost -0.0395, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "691785",
  "player_name": "Marcelo Mayer",
  "position": "DH",
  "team": "SF",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "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.015,
        "predicted_AVG": 0.22,
        "predicted_BB": 0.235,
        "predicted_H": 0.662,
        "predicted_HR": 0.044,
        "predicted_OBP": 0.276,
        "predicted_R": 0.265,
        "predicted_RBI": 0.324,
        "predicted_SLG": 0.312,
        "predicted_SO": 0.647
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.1782,
        "predicted_3B": 0.0008,
        "predicted_AB": 3.0803,
        "predicted_AVG": 0.2188,
        "predicted_BB": 0.2242,
        "predicted_H": 0.6732,
        "predicted_HBP": 0.028,
        "predicted_HR": 0.0411,
        "predicted_OBP": 0.273,
        "predicted_R": 0.2654,
        "predicted_RBI": 0.3348,
        "predicted_SLG": 0.3168,
        "predicted_SO": 0.7298
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.147,
          "after": 0.1782,
          "delta": 0.0312,
          "percent_delta": 0.2122,
          "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.015,
          "after": 3.0803,
          "delta": 0.0653,
          "percent_delta": 0.0217,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.22,
          "after": 0.2188,
          "delta": -0.0012,
          "percent_delta": -0.0055,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.235,
          "after": 0.2242,
          "delta": -0.0108,
          "percent_delta": -0.046,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.662,
          "after": 0.6732,
          "delta": 0.0112,
          "percent_delta": 0.0169,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.044,
          "after": 0.0411,
          "delta": -0.0029,
          "percent_delta": -0.0659,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.276,
          "after": 0.273,
          "delta": -0.003,
          "percent_delta": -0.0109,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.265,
          "after": 0.2654,
          "delta": 0.0004,
          "percent_delta": 0.0015,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.324,
          "after": 0.3348,
          "delta": 0.0108,
          "percent_delta": 0.0333,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.312,
          "after": 0.3168,
          "delta": 0.0048,
          "percent_delta": 0.0154,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.647,
          "after": 0.7298,
          "delta": 0.0828,
          "percent_delta": 0.128,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 2,
        "boosted_metrics": 2,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 1,
        "biggest_boost": {
          "metric": "predicted_SO",
          "before": 0.647,
          "after": 0.7298,
          "delta": 0.0828,
          "percent_delta": 0.128,
          "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": 68
      }
    },
    {
      "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.1782,
        "predicted_3B": 0.0008,
        "predicted_AB": 3.0803,
        "predicted_AVG": 0.2172,
        "predicted_BB": 0.2229,
        "predicted_H": 0.6692,
        "predicted_HBP": 0.028,
        "predicted_HR": 0.041,
        "predicted_OBP": 0.2701,
        "predicted_R": 0.2622,
        "predicted_RBI": 0.3307,
        "predicted_SLG": 0.3155,
        "predicted_SO": 0.7339
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1782,
          "after": 0.1782,
          "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.0803,
          "after": 3.0803,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2188,
          "after": 0.2172,
          "delta": -0.0016,
          "percent_delta": -0.0073,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.2242,
          "after": 0.2229,
          "delta": -0.0013,
          "percent_delta": -0.0058,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.6732,
          "after": 0.6692,
          "delta": -0.004,
          "percent_delta": -0.0059,
          "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.0411,
          "after": 0.041,
          "delta": -0.0001,
          "percent_delta": -0.0024,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.273,
          "after": 0.2701,
          "delta": -0.0029,
          "percent_delta": -0.0106,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.2654,
          "after": 0.2622,
          "delta": -0.0032,
          "percent_delta": -0.0121,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3348,
          "after": 0.3307,
          "delta": -0.0041,
          "percent_delta": -0.0122,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3168,
          "after": 0.3155,
          "delta": -0.0013,
          "percent_delta": -0.0041,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.7298,
          "after": 0.7339,
          "delta": 0.0041,
          "percent_delta": 0.0056,
          "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.08), rates preserved: AVG=0.219 HR/AB=0.013",
      "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.1782,
          "after": 0.0,
          "delta": -0.1782,
          "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.0803,
          "after": 3.0,
          "delta": -0.0803,
          "percent_delta": -0.0261,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.2229,
          "after": 0.0,
          "delta": -0.2229,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.6692,
          "after": 1.0,
          "delta": 0.3308,
          "percent_delta": 0.4943,
          "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.041,
          "after": 0.0,
          "delta": -0.041,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3307,
          "after": 0.0,
          "delta": -0.3307,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.7339,
          "after": 1.0,
          "delta": 0.2661,
          "percent_delta": 0.3626,
          "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.6692,
          "after": 1.0,
          "delta": 0.3308,
          "percent_delta": 0.4943,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.3307,
          "after": 0.0,
          "delta": -0.3307,
          "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.2622,
          "after": 0.0,
          "delta": -0.2622,
          "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.2622,
          "after": 0.0,
          "delta": -0.2622,
          "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.1522,
        "predicted_3B": 0.0168,
        "predicted_BB": 0.2767,
        "predicted_H": 0.8185,
        "predicted_HR": 0.0746,
        "predicted_RBI": 0.4012,
        "predicted_SO": 0.7047
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1522,
          "delta": 0.1522,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0168,
          "delta": 0.0168,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.2767,
          "delta": 0.2767,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8185,
          "delta": -0.1815,
          "percent_delta": -0.1815,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.0746,
          "delta": 0.0746,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.4012,
          "delta": 0.4012,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.7047,
          "delta": -0.2953,
          "percent_delta": -0.2953,
          "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.4012,
          "delta": 0.4012,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.7047,
          "delta": -0.2953,
          "percent_delta": -0.2953,
          "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": 1.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1522,
          "after": 0.0,
          "delta": -0.1522,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0168,
          "after": 0.0,
          "delta": -0.0168,
          "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.2767,
          "after": 0.0,
          "delta": -0.2767,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8185,
          "after": 1.0,
          "delta": 0.1815,
          "percent_delta": 0.2217,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0746,
          "after": 0.0,
          "delta": -0.0746,
          "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.4012,
          "after": 1.0,
          "delta": 0.5988,
          "percent_delta": 1.4925,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.7047,
          "after": 1.0,
          "delta": 0.2953,
          "percent_delta": 0.419,
          "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.4012,
          "after": 1.0,
          "delta": 0.5988,
          "percent_delta": 1.4925,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.2767,
          "after": 0.0,
          "delta": -0.2767,
          "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.236,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.299,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.355,
        "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.2172,
          "after": 0.236,
          "delta": 0.0188,
          "percent_delta": 0.0866,
          "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.2701,
          "after": 0.299,
          "delta": 0.0289,
          "percent_delta": 0.107,
          "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.3155,
          "after": 0.355,
          "delta": 0.0395,
          "percent_delta": 0.1252,
          "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.3155,
          "after": 0.355,
          "delta": 0.0395,
          "percent_delta": 0.1252,
          "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": 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": 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": 5.0,
          "delta": 2.0,
          "percent_delta": 0.6667,
          "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": 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": 5,
        "boosted_metrics": 4,
        "deboosted_metrics": 1,
        "better_metrics": 5,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_AB",
          "before": 3.0,
          "after": 5.0,
          "delta": 2.0,
          "percent_delta": 0.6667,
          "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": 5.0,
        "predicted_AVG": 0.2172,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_DH": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.2701,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.3155,
        "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": 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.236,
          "after": 0.2172,
          "delta": -0.0188,
          "percent_delta": -0.0795,
          "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": 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.2701,
          "delta": -0.0289,
          "percent_delta": -0.0968,
          "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.355,
          "after": 0.3155,
          "delta": -0.0395,
          "percent_delta": -0.1113,
          "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.355,
          "after": 0.3155,
          "delta": -0.0395,
          "percent_delta": -0.1113,
          "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": 1.0,
        "delta": 0.853,
        "percent_delta": 5.8027,
        "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.015,
        "after": 5.0,
        "delta": 1.985,
        "percent_delta": 0.6584,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.22,
        "after": 0.2172,
        "delta": -0.0028,
        "percent_delta": -0.0127,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_BB",
        "before": 0.235,
        "after": 0.0,
        "delta": -0.235,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.662,
        "after": 1.0,
        "delta": 0.338,
        "percent_delta": 0.5106,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.044,
        "after": 0.0,
        "delta": -0.044,
        "percent_delta": -1.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_OBP",
        "before": 0.276,
        "after": 0.2701,
        "delta": -0.0059,
        "percent_delta": -0.0214,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.265,
        "after": 1.0,
        "delta": 0.735,
        "percent_delta": 2.7736,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.324,
        "after": 1.0,
        "delta": 0.676,
        "percent_delta": 2.0864,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.312,
        "after": 0.3155,
        "delta": 0.0035,
        "percent_delta": 0.0112,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_SO",
        "before": 0.647,
        "after": 0.0,
        "delta": -0.647,
        "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_AB",
        "before": 3.015,
        "after": 5.0,
        "delta": 1.985,
        "percent_delta": 0.6584,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_SO",
        "before": 0.647,
        "after": 0.0,
        "delta": -0.647,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "better"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.147-
predicted_3B0.000-
predicted_AB3.015-
predicted_AVG0.220-
predicted_BB0.235-
predicted_H0.662-
predicted_HR0.044-
predicted_OBP0.276-
predicted_R0.265-
predicted_RBI0.324-
predicted_SLG0.312-
predicted_SO0.647-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.1780.031
predicted_3B0.0010.001
predicted_AB3.0800.065
predicted_AVG0.219-0.001
predicted_BB0.224-0.011
predicted_H0.6730.011
predicted_HBP0.028-
predicted_HR0.041-0.003
predicted_OBP0.273-0.003
predicted_R0.2650.000
predicted_RBI0.3350.011
predicted_SLG0.3170.005
predicted_SO0.7300.083
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1780.000
predicted_3B0.0010.000
predicted_AB3.0800.000
predicted_AVG0.217-0.002
predicted_BB0.223-0.001
predicted_H0.669-0.004
predicted_HBP0.0280.000
predicted_HR0.041-0.000
predicted_OBP0.270-0.003
predicted_R0.262-0.003
predicted_RBI0.331-0.004
predicted_SLG0.316-0.001
predicted_SO0.7340.004
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 3 (raw=3.08), rates preserved: AVG=0.219 HR/AB=0.013

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB3.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1520.152
3B0.0170.017
BB0.2770.277
H0.819-0.181
HR0.0750.075
RBI0.4010.401
SO0.705-0.295
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.152
3B0.000-0.017
AB3.0000.000
BB0.000-0.277
H1.0000.181
HR0.000-0.075
R0.0000.000
RBI1.0000.599
SO1.0000.295
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.178
predicted_3B0.000-0.001
predicted_AB3.000-0.080
predicted_AVG0.2360.019
predicted_BB0.000-0.223
predicted_H1.0000.331
predicted_HR0.000-0.041
predicted_OBP0.2990.029
predicted_R0.000-0.262
predicted_RBI0.000-0.331
predicted_SLG0.3550.039
predicted_SO1.0000.266
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B1.0001.000
3B0.0000.000
AB5.0002.000
BB0.0000.000
CS0.0000.000
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA5.000-
R1.0001.000
RBI1.0000.000
SB0.0000.000
SF0.0000.000
SO0.000-1.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 68
Reference playing time: 3.803
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-16.0003.0002.0000.0000.0001.0001.0000.0006.0000.18750.18750.31250.18750.00000.06250.00000.3750
last_100.2010-32.0007.0003.0000.0000.0005.0002.0003.00011.0000.21880.28570.31250.21880.00000.15620.09380.3438
season0.6068-205.00045.00010.0000.0003.00022.00018.00016.00044.0000.21950.28190.31220.21950.01460.10730.07800.2146
Weighted Prediction From Real Data
MetricValue
predicted_2B0.2220
predicted_3B0.0020
predicted_AB3.1720
predicted_AVG0.2171
predicted_BB0.2090
predicted_H0.6890
predicted_HBP0.0280
predicted_HR0.0370
predicted_OBP0.2687
predicted_R0.2660
predicted_RBI0.3500
predicted_SLG0.3235
predicted_SO0.8460
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.14700.22200.1782model_form_blend
predicted_3B0.00000.00200.0008model_form_blend
predicted_AB3.01503.17203.0803model_form_blend
predicted_AVG0.22000.21710.2188model_form_blend
predicted_BB0.23500.20900.2242model_form_blend
predicted_H0.66200.68900.6732model_form_blend
predicted_HBP-0.02800.0280form_only
predicted_HR0.04400.03700.0411model_form_blend
predicted_OBP0.27600.26870.2730model_form_blend
predicted_R0.26500.26600.2654model_form_blend
predicted_RBI0.32400.35000.3348model_form_blend
predicted_SLG0.31200.32350.3168model_form_blend
predicted_SO0.64700.84600.7298model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date0
Season rows before report date0
Report year2026
Profile rows used68
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA5
AB5
H1
2B1
3B0
HR0
R1
RBI1
BB0
SO0
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

No historical data found for this player before report date.

Jonah Cox (813841) · BATTER · 2B · Team SF
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 141
All-history rows before 20260921: 141
System season_avg: 0.2830
Data season_avg (2026 season-to-date): 0.3128
Diff (system - data): -0.0298
System opponent_avg: 0.2830
System season_avg diverges from 2026 season-to-date by -0.0298. This usually means mixed-season window logic.

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.0440.0000.000Hitting_2B0.0500.000-0.0500.000
predicted_3B0.0440.0000.000Hitting_3B0.0430.000-0.0430.000
predicted_AB2.8225.0004.000Hitting_AB3.1063.0001.8942.000
predicted_AVG0.2830.0000.250Hitting_AVG0.3130.000-0.3130.000
predicted_BB0.1780.0000.000Hitting_BB0.2271.000-0.227-1.000
predicted_CS-0.0000.000BaseRunning_CS0.1210.000-0.1210.000
predicted_H0.8000.0001.000Hitting_H0.9720.000-0.9720.000
predicted_HR0.0890.0001.000Hitting_HR0.1130.000-0.1130.000
predicted_OBP0.3260.0000.250Hitting_OBP0.3600.250-0.360-0.250
predicted_R0.5110.0001.000Hitting_R0.5821.000-0.582-1.000
predicted_RBI0.3330.0001.000Hitting_RBI0.3830.000-0.3830.000
predicted_SB-0.0000.000BaseRunning_SB0.2771.000-0.277-1.000
predicted_SLG0.4250.0001.000Hitting_SLG0.4660.000-0.4660.000
predicted_SO1.2003.0001.000Hitting_SO1.1422.0001.8581.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics8
Boosted Metrics2
Deboosted Metrics6
Better Metrics1
Worse Metrics7
Biggest Boostpredicted_AB: 2.8220 -> 5.0000 (boost 2.1780, better)
Biggest Deboostpredicted_H: 0.8000 -> 0.0000 (deboost -0.8000, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend32112predicted_AB: 2.8220 -> 2.9938 (boost 0.1718, better)predicted_SLG: 0.4250 -> 0.4065 (deboost -0.0185, 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.
3team_form_snapshot00000--Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling63324predicted_AB: 2.9938 -> 4.0000 (boost 1.0062, better)predicted_RBI: 0.3662 -> 0.0000 (deboost -0.3662, worse)AB rounded to 4 (raw=2.99), rates preserved: AVG=0.282 HR/AB=0.027
6consistency_constraints11010predicted_R: 0.5361 -> 1.0000 (boost 0.4639, better)-Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine64251predicted_RBI: 0.0000 -> 0.4686 (boost 0.4686, better)predicted_SO: 2.0000 -> 1.3728 (deboost -0.6272, better)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation63342predicted_HR: 0.1090 -> 1.0000 (boost 0.8910, better)predicted_SO: 1.3728 -> 1.0000 (deboost -0.3728, better)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context61506predicted_SO: 1.0000 -> 2.0000 (boost 1.0000, worse)predicted_HR: 1.0000 -> 0.0000 (deboost -1.0000, worse)Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10simulation_box_score_reference42213predicted_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
11current_json_final33030predicted_AVG: 0.2500 -> 0.2802 (boost 0.0302, better)-Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "813841",
  "player_name": "Jonah Cox",
  "position": "2B",
  "team": "SF",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.044,
        "predicted_3B": 0.044,
        "predicted_AB": 2.822,
        "predicted_AVG": 0.283,
        "predicted_BB": 0.178,
        "predicted_H": 0.8,
        "predicted_HR": 0.089,
        "predicted_OBP": 0.326,
        "predicted_R": 0.511,
        "predicted_RBI": 0.333,
        "predicted_SLG": 0.425,
        "predicted_SO": 1.2
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.0476,
        "predicted_3B": 0.0377,
        "predicted_AB": 2.9938,
        "predicted_AVG": 0.2817,
        "predicted_BB": 0.205,
        "predicted_H": 0.844,
        "predicted_HBP": 0.005,
        "predicted_HR": 0.0819,
        "predicted_OBP": 0.3283,
        "predicted_R": 0.5427,
        "predicted_RBI": 0.3707,
        "predicted_SLG": 0.4065,
        "predicted_SO": 1.2647
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.044,
          "after": 0.0476,
          "delta": 0.0036,
          "percent_delta": 0.0818,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.044,
          "after": 0.0377,
          "delta": -0.0063,
          "percent_delta": -0.1432,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 2.822,
          "after": 2.9938,
          "delta": 0.1718,
          "percent_delta": 0.0609,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.283,
          "after": 0.2817,
          "delta": -0.0013,
          "percent_delta": -0.0046,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.178,
          "after": 0.205,
          "delta": 0.027,
          "percent_delta": 0.1517,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.8,
          "after": 0.844,
          "delta": 0.044,
          "percent_delta": 0.055,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.089,
          "after": 0.0819,
          "delta": -0.0071,
          "percent_delta": -0.0798,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.326,
          "after": 0.3283,
          "delta": 0.0023,
          "percent_delta": 0.0071,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.511,
          "after": 0.5427,
          "delta": 0.0317,
          "percent_delta": 0.062,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.333,
          "after": 0.3707,
          "delta": 0.0377,
          "percent_delta": 0.1132,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.425,
          "after": 0.4065,
          "delta": -0.0185,
          "percent_delta": -0.0435,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.2,
          "after": 1.2647,
          "delta": 0.0647,
          "percent_delta": 0.0539,
          "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": 2.822,
          "after": 2.9938,
          "delta": 0.1718,
          "percent_delta": 0.0609,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SLG",
          "before": 0.425,
          "after": 0.4065,
          "delta": -0.0185,
          "percent_delta": -0.0435,
          "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": 45
      }
    },
    {
      "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.0476,
        "predicted_3B": 0.0377,
        "predicted_AB": 2.9938,
        "predicted_AVG": 0.2802,
        "predicted_BB": 0.2039,
        "predicted_H": 0.8389,
        "predicted_HBP": 0.005,
        "predicted_HR": 0.0816,
        "predicted_OBP": 0.3261,
        "predicted_R": 0.5361,
        "predicted_RBI": 0.3662,
        "predicted_SLG": 0.4031,
        "predicted_SO": 1.2718
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0476,
          "after": 0.0476,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.0377,
          "after": 0.0377,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 2.9938,
          "after": 2.9938,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2817,
          "after": 0.2802,
          "delta": -0.0015,
          "percent_delta": -0.0053,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.205,
          "after": 0.2039,
          "delta": -0.0011,
          "percent_delta": -0.0054,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.844,
          "after": 0.8389,
          "delta": -0.0051,
          "percent_delta": -0.006,
          "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.0819,
          "after": 0.0816,
          "delta": -0.0003,
          "percent_delta": -0.0037,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3283,
          "after": 0.3261,
          "delta": -0.0022,
          "percent_delta": -0.0067,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.5427,
          "after": 0.5361,
          "delta": -0.0066,
          "percent_delta": -0.0122,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3707,
          "after": 0.3662,
          "delta": -0.0045,
          "percent_delta": -0.0121,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4065,
          "after": 0.4031,
          "delta": -0.0034,
          "percent_delta": -0.0084,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 1.2647,
          "after": 1.2718,
          "delta": 0.0071,
          "percent_delta": 0.0056,
          "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.99), rates preserved: AVG=0.282 HR/AB=0.027",
      "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": 2.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0476,
          "after": 0.0,
          "delta": -0.0476,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.0377,
          "after": 0.0,
          "delta": -0.0377,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 2.9938,
          "after": 4.0,
          "delta": 1.0062,
          "percent_delta": 0.3361,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.2039,
          "after": 0.0,
          "delta": -0.2039,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8389,
          "after": 1.0,
          "delta": 0.1611,
          "percent_delta": 0.192,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "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.0816,
          "after": 0.0,
          "delta": -0.0816,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3662,
          "after": 0.0,
          "delta": -0.3662,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.2718,
          "after": 2.0,
          "delta": 0.7282,
          "percent_delta": 0.5726,
          "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": 2.9938,
          "after": 4.0,
          "delta": 1.0062,
          "percent_delta": 0.3361,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.3662,
          "after": 0.0,
          "delta": -0.3662,
          "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": 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.5361,
          "after": 1.0,
          "delta": 0.4639,
          "percent_delta": 0.8653,
          "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": 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.5361,
          "after": 1.0,
          "delta": 0.4639,
          "percent_delta": 0.8653,
          "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.1451,
        "predicted_3B": 0.0301,
        "predicted_BB": 0.2736,
        "predicted_H": 0.9407,
        "predicted_HR": 0.109,
        "predicted_RBI": 0.4686,
        "predicted_SO": 1.3728
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1451,
          "delta": 0.1451,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0301,
          "delta": 0.0301,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.2736,
          "delta": 0.2736,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.9407,
          "delta": -0.0593,
          "percent_delta": -0.0593,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.109,
          "delta": 0.109,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.4686,
          "delta": 0.4686,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 2.0,
          "after": 1.3728,
          "delta": -0.6272,
          "percent_delta": -0.3136,
          "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.4686,
          "delta": 0.4686,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 2.0,
          "after": 1.3728,
          "delta": -0.6272,
          "percent_delta": -0.3136,
          "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": 1.0,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1451,
          "after": 0.0,
          "delta": -0.1451,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0301,
          "after": 0.0,
          "delta": -0.0301,
          "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.2736,
          "after": 0.0,
          "delta": -0.2736,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.9407,
          "after": 1.0,
          "delta": 0.0593,
          "percent_delta": 0.063,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.109,
          "after": 1.0,
          "delta": 0.891,
          "percent_delta": 8.1743,
          "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.4686,
          "after": 1.0,
          "delta": 0.5314,
          "percent_delta": 1.134,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.3728,
          "after": 1.0,
          "delta": -0.3728,
          "percent_delta": -0.2716,
          "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.109,
          "after": 1.0,
          "delta": 0.891,
          "percent_delta": 8.1743,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.3728,
          "after": 1.0,
          "delta": -0.3728,
          "percent_delta": -0.2716,
          "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.306,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.391,
        "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.2802,
          "after": 0.25,
          "delta": -0.0302,
          "percent_delta": -0.1078,
          "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.3261,
          "after": 0.306,
          "delta": -0.0201,
          "percent_delta": -0.0616,
          "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.4031,
          "after": 0.391,
          "delta": -0.0121,
          "percent_delta": -0.03,
          "direction": "deboost",
          "projection_effect": "worse",
          "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": 6,
        "boosted_metrics": 1,
        "deboosted_metrics": 5,
        "better_metrics": 0,
        "worse_metrics": 6,
        "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_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": 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": 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": 2.0,
          "after": 3.0,
          "delta": 1.0,
          "percent_delta": 0.5,
          "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_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.2802,
        "predicted_BB": 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.4031,
        "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": 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.25,
          "after": 0.2802,
          "delta": 0.0302,
          "percent_delta": 0.1209,
          "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.306,
          "after": 0.3261,
          "delta": 0.0201,
          "percent_delta": 0.0657,
          "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.391,
          "after": 0.4031,
          "delta": 0.0121,
          "percent_delta": 0.0309,
          "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_AVG",
          "before": 0.25,
          "after": 0.2802,
          "delta": 0.0302,
          "percent_delta": 0.1209,
          "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.044,
        "after": 0.0,
        "delta": -0.044,
        "percent_delta": -1.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_3B",
        "before": 0.044,
        "after": 0.0,
        "delta": -0.044,
        "percent_delta": -1.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_AB",
        "before": 2.822,
        "after": 5.0,
        "delta": 2.178,
        "percent_delta": 0.7718,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.283,
        "after": 0.2802,
        "delta": -0.0028,
        "percent_delta": -0.0099,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_BB",
        "before": 0.178,
        "after": 0.0,
        "delta": -0.178,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.8,
        "after": 0.0,
        "delta": -0.8,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.089,
        "after": 0.0,
        "delta": -0.089,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.326,
        "after": 0.3261,
        "delta": 0.0001,
        "percent_delta": 0.0003,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_R",
        "before": 0.511,
        "after": 0.0,
        "delta": -0.511,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.333,
        "after": 0.0,
        "delta": -0.333,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.425,
        "after": 0.4031,
        "delta": -0.0219,
        "percent_delta": -0.0515,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 1.2,
        "after": 3.0,
        "delta": 1.8,
        "percent_delta": 1.5,
        "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": 2.822,
        "after": 5.0,
        "delta": 2.178,
        "percent_delta": 0.7718,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_H",
        "before": 0.8,
        "after": 0.0,
        "delta": -0.8,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.044-
predicted_3B0.044-
predicted_AB2.822-
predicted_AVG0.283-
predicted_BB0.178-
predicted_H0.800-
predicted_HR0.089-
predicted_OBP0.326-
predicted_R0.511-
predicted_RBI0.333-
predicted_SLG0.425-
predicted_SO1.200-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.0480.004
predicted_3B0.038-0.006
predicted_AB2.9940.172
predicted_AVG0.282-0.001
predicted_BB0.2050.027
predicted_H0.8440.044
predicted_HBP0.005-
predicted_HR0.082-0.007
predicted_OBP0.3280.002
predicted_R0.5430.032
predicted_RBI0.3710.038
predicted_SLG0.406-0.019
predicted_SO1.2650.065
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.0480.000
predicted_3B0.0380.000
predicted_AB2.9940.000
predicted_AVG0.280-0.002
predicted_BB0.204-0.001
predicted_H0.839-0.005
predicted_HBP0.0050.000
predicted_HR0.082-0.000
predicted_OBP0.326-0.002
predicted_R0.536-0.007
predicted_RBI0.366-0.004
predicted_SLG0.403-0.003
predicted_SO1.2720.007
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 4 (raw=2.99), rates preserved: AVG=0.282 HR/AB=0.027

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB4.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO2.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R1.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO2.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1450.145
3B0.0300.030
BB0.2740.274
H0.941-0.059
HR0.1090.109
RBI0.4690.469
SO1.373-0.627
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.145
3B0.000-0.030
AB4.0000.000
BB0.000-0.274
H1.0000.059
HR1.0000.891
R1.0000.000
RBI1.0000.531
SO1.000-0.373
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.048
predicted_3B0.000-0.038
predicted_AB4.0001.006
predicted_AVG0.250-0.030
predicted_BB0.000-0.204
predicted_H1.0000.161
predicted_HR0.000-0.082
predicted_OBP0.306-0.020
predicted_R1.0000.464
predicted_RBI0.000-0.366
predicted_SLG0.391-0.012
predicted_SO2.0000.728
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB5.0001.000
BB0.0000.000
CS0.0000.000
H0.000-1.000
HBP0.0000.000
HR0.000-1.000
PA5.000-
R0.000-1.000
RBI0.000-1.000
SB0.0000.000
SF0.0000.000
SO3.0002.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 45
Reference playing time: 3.803
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-17.0005.0000.0000.0000.0003.0004.0002.00010.0000.29410.36840.29410.29410.00000.17650.11770.5882
last_100.2010-38.00011.0000.0000.0000.0005.0007.0003.00017.0000.28950.34150.28950.28950.00000.13160.07900.4474
season0.6045-127.00036.0002.0002.0004.00015.00023.0008.00054.0000.28350.32590.42520.28350.03150.11810.06300.4252
Weighted Prediction From Real Data
MetricValue
predicted_2B0.0530
predicted_3B0.0280
predicted_AB3.2550
predicted_AVG0.2798
predicted_BB0.2460
predicted_H0.9110
predicted_HBP0.0050
predicted_HR0.0710
predicted_OBP0.3317
predicted_R0.5910
predicted_RBI0.4280
predicted_SLG0.3784
predicted_SO1.3630
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.04400.05300.0476model_form_blend
predicted_3B0.04400.02800.0377model_form_blend
predicted_AB2.82203.25502.9938model_form_blend
predicted_AVG0.28300.27980.2817model_form_blend
predicted_BB0.17800.24600.2050model_form_blend
predicted_H0.80000.91100.8440model_form_blend
predicted_HBP-0.00500.0050form_only
predicted_HR0.08900.07100.0819model_form_blend
predicted_OBP0.32600.33170.3283model_form_blend
predicted_R0.51100.59100.5427model_form_blend
predicted_RBI0.33300.42800.3707model_form_blend
predicted_SLG0.42500.37840.4065model_form_blend
predicted_SO1.20001.36301.2647model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date141
Season rows before report date141
Report year2026
Profile rows used45
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA5
AB5
H0
2B0
3B0
HR0
R0
RBI0
BB0
SO3
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB1
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB3
Hitting_AVG0.0
Hitting_BB1
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R1
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO2
Hitting_TB0
Hitting_battingOrder1
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayed2B
gameID20260920_SF@LAD
game_typefull
mlbID813841
playerID813841
playerNameJonah Cox
posCF
startedTrue
startingPosition2B
teamSF
teamID24
game_date2026-09-20
sl_k_percent37.9
sl_bb_percent5.0
sl_woba0.331
sl_xwoba0.265
sl_xba0.217
sl_xslg0.344
sl_sweet_spot_percent34.2
sl_barrel_batted_rate6.3
sl_hard_hit_percent38.0
sl_exit_velocity_avg88.5
sl_launch_angle_avg11.1
sl_whiff_percent35.8
sl_swing_percent52.1
Player-815589 (815589) · BATTER · RF · Team SF
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 0
All-history rows before 20260921: 0
System season_avg: 0.2482
Data season_avg (2026 season-to-date): -
Diff (system - data): -
System opponent_avg: 0.2482

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1591.0000.000Hitting_2B----
predicted_3B0.0150.0000.000Hitting_3B----
predicted_AB3.2864.0004.000Hitting_AB----
predicted_AVG0.2450.5000.250Hitting_AVG----
predicted_BB0.3101.0001.000Hitting_BB----
predicted_CS-0.0000.000BaseRunning_CS----
predicted_H0.8062.0001.000Hitting_H----
predicted_HR0.1180.0000.000Hitting_HR----
predicted_OBP0.3100.6000.400Hitting_OBP----
predicted_R0.4320.0001.000Hitting_R----
predicted_RBI0.4170.0001.000Hitting_RBI----
predicted_SLG0.4110.7500.250Hitting_SLG----
predicted_SO0.8590.0001.000Hitting_SO----

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics8
Boosted Metrics4
Deboosted Metrics4
Better Metrics5
Worse Metrics3
Biggest Boostpredicted_H: 0.8060 -> 2.0000 (boost 1.1940, better)
Biggest Deboostpredicted_SO: 0.8590 -> 0.0000 (deboost -0.8590, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend11010predicted_AB: 3.2860 -> 3.3674 (boost 0.0814, 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.
3team_form_snapshot00000--Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling73425predicted_AB: 3.3674 -> 4.0000 (boost 0.6326, better)predicted_RBI: 0.4220 -> 0.0000 (deboost -0.4220, worse)AB rounded to 4 (raw=3.37), rates preserved: AVG=0.246 HR/AB=0.036
6consistency_constraints10101-predicted_R: 0.4373 -> 0.0000 (deboost -0.4373, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine64251predicted_RBI: 0.0000 -> 0.4472 (boost 0.4472, better)predicted_SO: 1.0000 -> 0.8132 (deboost -0.1868, better)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation75243predicted_R: 0.0000 -> 1.0000 (boost 1.0000, better)predicted_2B: 0.1552 -> 0.0000 (deboost -0.1552, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context40404-predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse)Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10simulation_box_score_reference43140predicted_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
11current_json_final11010predicted_SLG: 0.3860 -> 0.4084 (boost 0.0224, better)-Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "815589",
  "player_name": "Player-815589",
  "position": "RF",
  "team": "SF",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.159,
        "predicted_3B": 0.015,
        "predicted_AB": 3.286,
        "predicted_AVG": 0.245,
        "predicted_BB": 0.31,
        "predicted_H": 0.806,
        "predicted_HR": 0.118,
        "predicted_OBP": 0.31,
        "predicted_R": 0.432,
        "predicted_RBI": 0.417,
        "predicted_SLG": 0.411,
        "predicted_SO": 0.859
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.162,
        "predicted_3B": 0.0152,
        "predicted_AB": 3.3674,
        "predicted_AVG": 0.2455,
        "predicted_BB": 0.3028,
        "predicted_H": 0.8277,
        "predicted_HBP": 0.033,
        "predicted_HR": 0.1204,
        "predicted_OBP": 0.3093,
        "predicted_R": 0.4427,
        "predicted_RBI": 0.4272,
        "predicted_SLG": 0.4105,
        "predicted_SO": 0.8574
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.159,
          "after": 0.162,
          "delta": 0.003,
          "percent_delta": 0.0189,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.015,
          "after": 0.0152,
          "delta": 0.0002,
          "percent_delta": 0.0133,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 3.286,
          "after": 3.3674,
          "delta": 0.0814,
          "percent_delta": 0.0248,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.245,
          "after": 0.2455,
          "delta": 0.0005,
          "percent_delta": 0.002,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.31,
          "after": 0.3028,
          "delta": -0.0072,
          "percent_delta": -0.0232,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.806,
          "after": 0.8277,
          "delta": 0.0217,
          "percent_delta": 0.0269,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.118,
          "after": 0.1204,
          "delta": 0.0024,
          "percent_delta": 0.0203,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.31,
          "after": 0.3093,
          "delta": -0.0007,
          "percent_delta": -0.0023,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.432,
          "after": 0.4427,
          "delta": 0.0107,
          "percent_delta": 0.0248,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.417,
          "after": 0.4272,
          "delta": 0.0102,
          "percent_delta": 0.0245,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.411,
          "after": 0.4105,
          "delta": -0.0005,
          "percent_delta": -0.0012,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.859,
          "after": 0.8574,
          "delta": -0.0016,
          "percent_delta": -0.0019,
          "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.286,
          "after": 3.3674,
          "delta": 0.0814,
          "percent_delta": 0.0248,
          "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": 0,
        "last_10": 0,
        "season": 0
      }
    },
    {
      "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.162,
        "predicted_3B": 0.0152,
        "predicted_AB": 3.3674,
        "predicted_AVG": 0.2443,
        "predicted_BB": 0.3011,
        "predicted_H": 0.8227,
        "predicted_HBP": 0.033,
        "predicted_HR": 0.12,
        "predicted_OBP": 0.3063,
        "predicted_R": 0.4373,
        "predicted_RBI": 0.422,
        "predicted_SLG": 0.4084,
        "predicted_SO": 0.8622
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.162,
          "after": 0.162,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.0152,
          "after": 0.0152,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 3.3674,
          "after": 3.3674,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2455,
          "after": 0.2443,
          "delta": -0.0012,
          "percent_delta": -0.0049,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.3028,
          "after": 0.3011,
          "delta": -0.0017,
          "percent_delta": -0.0056,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.8277,
          "after": 0.8227,
          "delta": -0.005,
          "percent_delta": -0.006,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HBP",
          "before": 0.033,
          "after": 0.033,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.1204,
          "after": 0.12,
          "delta": -0.0004,
          "percent_delta": -0.0033,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3093,
          "after": 0.3063,
          "delta": -0.003,
          "percent_delta": -0.0097,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.4427,
          "after": 0.4373,
          "delta": -0.0054,
          "percent_delta": -0.0122,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4272,
          "after": 0.422,
          "delta": -0.0052,
          "percent_delta": -0.0122,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4105,
          "after": 0.4084,
          "delta": -0.0021,
          "percent_delta": -0.0051,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.8574,
          "after": 0.8622,
          "delta": 0.0048,
          "percent_delta": 0.0056,
          "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.37), rates preserved: AVG=0.246 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": 0.0,
        "predicted_SB": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.162,
          "after": 0.0,
          "delta": -0.162,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0152,
          "after": 0.0,
          "delta": -0.0152,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 3.3674,
          "after": 4.0,
          "delta": 0.6326,
          "percent_delta": 0.1879,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3011,
          "after": 0.0,
          "delta": -0.3011,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8227,
          "after": 1.0,
          "delta": 0.1773,
          "percent_delta": 0.2155,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HBP",
          "before": 0.033,
          "after": 0.0,
          "delta": -0.033,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "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.422,
          "after": 0.0,
          "delta": -0.422,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.8622,
          "after": 1.0,
          "delta": 0.1378,
          "percent_delta": 0.1598,
          "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.3674,
          "after": 4.0,
          "delta": 0.6326,
          "percent_delta": 0.1879,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.422,
          "after": 0.0,
          "delta": -0.422,
          "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.4373,
          "after": 0.0,
          "delta": -0.4373,
          "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.4373,
          "after": 0.0,
          "delta": -0.4373,
          "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.1552,
        "predicted_3B": 0.022,
        "predicted_BB": 0.3263,
        "predicted_H": 0.8677,
        "predicted_HR": 0.105,
        "predicted_RBI": 0.4472,
        "predicted_SO": 0.8132
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1552,
          "delta": 0.1552,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.022,
          "delta": 0.022,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.3263,
          "delta": 0.3263,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8677,
          "delta": -0.1323,
          "percent_delta": -0.1323,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.105,
          "delta": 0.105,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.4472,
          "delta": 0.4472,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.8132,
          "delta": -0.1868,
          "percent_delta": -0.1868,
          "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.4472,
          "delta": 0.4472,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.8132,
          "delta": -0.1868,
          "percent_delta": -0.1868,
          "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": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1552,
          "after": 0.0,
          "delta": -0.1552,
          "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": 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.3263,
          "after": 1.0,
          "delta": 0.6737,
          "percent_delta": 2.0647,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8677,
          "after": 1.0,
          "delta": 0.1323,
          "percent_delta": 0.1525,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.105,
          "after": 0.0,
          "delta": -0.105,
          "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.4472,
          "after": 1.0,
          "delta": 0.5528,
          "percent_delta": 1.2361,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.8132,
          "after": 1.0,
          "delta": 0.1868,
          "percent_delta": 0.2297,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 7,
        "boosted_metrics": 5,
        "deboosted_metrics": 2,
        "better_metrics": 4,
        "worse_metrics": 3,
        "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_2B",
          "before": 0.1552,
          "after": 0.0,
          "delta": -0.1552,
          "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.243,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.311,
        "predicted_R": 0.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.2443,
          "after": 0.243,
          "delta": -0.0013,
          "percent_delta": -0.0053,
          "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.3063,
          "after": 0.311,
          "delta": 0.0047,
          "percent_delta": 0.0153,
          "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_SLG",
          "before": 0.4084,
          "after": 0.386,
          "delta": -0.0224,
          "percent_delta": -0.0548,
          "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": 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": 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": 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": 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": 4,
        "boosted_metrics": 3,
        "deboosted_metrics": 1,
        "better_metrics": 4,
        "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.2443,
        "predicted_BB": 1.0,
        "predicted_CS": 0.0,
        "predicted_H": 2.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.3063,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_RF": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.4084,
        "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.243,
          "after": 0.2443,
          "delta": 0.0013,
          "percent_delta": 0.0054,
          "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": 0.0,
          "after": 0.0,
          "delta": 0.0,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.311,
          "after": 0.3063,
          "delta": -0.0047,
          "percent_delta": -0.015,
          "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.386,
          "after": 0.4084,
          "delta": 0.0224,
          "percent_delta": 0.0579,
          "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": 1,
        "boosted_metrics": 1,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_SLG",
          "before": 0.386,
          "after": 0.4084,
          "delta": 0.0224,
          "percent_delta": 0.0579,
          "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.159,
        "after": 1.0,
        "delta": 0.841,
        "percent_delta": 5.2893,
        "direction": "boost",
        "projection_effect": "better",
        "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.286,
        "after": 4.0,
        "delta": 0.714,
        "percent_delta": 0.2173,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.245,
        "after": 0.2443,
        "delta": -0.0007,
        "percent_delta": -0.0029,
        "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.806,
        "after": 2.0,
        "delta": 1.194,
        "percent_delta": 1.4814,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.118,
        "after": 0.0,
        "delta": -0.118,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.31,
        "after": 0.3063,
        "delta": -0.0037,
        "percent_delta": -0.0119,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_R",
        "before": 0.432,
        "after": 0.0,
        "delta": -0.432,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.417,
        "after": 0.0,
        "delta": -0.417,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.411,
        "after": 0.4084,
        "delta": -0.0026,
        "percent_delta": -0.0063,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_SO",
        "before": 0.859,
        "after": 0.0,
        "delta": -0.859,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 8,
      "boosted_metrics": 4,
      "deboosted_metrics": 4,
      "better_metrics": 5,
      "worse_metrics": 3,
      "biggest_boost": {
        "metric": "predicted_H",
        "before": 0.806,
        "after": 2.0,
        "delta": 1.194,
        "percent_delta": 1.4814,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_SO",
        "before": 0.859,
        "after": 0.0,
        "delta": -0.859,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "better"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.159-
predicted_3B0.015-
predicted_AB3.286-
predicted_AVG0.245-
predicted_BB0.310-
predicted_H0.806-
predicted_HR0.118-
predicted_OBP0.310-
predicted_R0.432-
predicted_RBI0.417-
predicted_SLG0.411-
predicted_SO0.859-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.1620.003
predicted_3B0.0150.000
predicted_AB3.3670.081
predicted_AVG0.2450.001
predicted_BB0.303-0.007
predicted_H0.8280.022
predicted_HBP0.033-
predicted_HR0.1200.002
predicted_OBP0.309-0.001
predicted_R0.4430.011
predicted_RBI0.4270.010
predicted_SLG0.410-0.001
predicted_SO0.857-0.002
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1620.000
predicted_3B0.0150.000
predicted_AB3.3670.000
predicted_AVG0.244-0.001
predicted_BB0.301-0.002
predicted_H0.823-0.005
predicted_HBP0.0330.000
predicted_HR0.120-0.000
predicted_OBP0.306-0.003
predicted_R0.437-0.005
predicted_RBI0.422-0.005
predicted_SLG0.408-0.002
predicted_SO0.8620.005
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 4 (raw=3.37), rates preserved: AVG=0.246 HR/AB=0.036

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB4.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1550.155
3B0.0220.022
BB0.3260.326
H0.868-0.132
HR0.1050.105
RBI0.4470.447
SO0.813-0.187
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.155
3B0.000-0.022
AB4.0000.000
BB1.0000.674
H1.0000.132
HR0.000-0.105
R1.0001.000
RBI1.0000.553
SO1.0000.187
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.162
predicted_3B0.000-0.015
predicted_AB4.0000.633
predicted_AVG0.243-0.001
predicted_BB0.000-0.301
predicted_H1.0000.177
predicted_HR0.000-0.120
predicted_OBP0.3110.005
predicted_R0.000-0.437
predicted_RBI0.000-0.422
predicted_SLG0.386-0.022
predicted_SO1.0000.138
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B1.0001.000
3B0.0000.000
AB4.0000.000
BB1.0000.000
CS0.0000.000
H2.0001.000
HBP0.0000.000
HR0.0000.000
PA5.000-
R0.000-1.000
RBI0.000-1.000
SB0.0000.000
SF0.0000.000
SO0.000-1.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 0
Reference playing time: 3.803
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.200-0.0000.0000.0000.0000.0000.0000.0000.0000.000--------
last_100.200-0.0000.0000.0000.0000.0000.0000.0000.0000.000--------
season0.600-0.0000.0000.0000.0000.0000.0000.0000.0000.000--------
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1780
predicted_3B0.0160
predicted_AB3.8030
predicted_AVG0.2482
predicted_BB0.2640
predicted_H0.9440
predicted_HBP0.0330
predicted_HR0.1330
predicted_OBP0.3055
predicted_R0.5000
predicted_RBI0.4820
predicted_SLG0.4077
predicted_SO0.8490
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.15900.17800.1620model_form_blend
predicted_3B0.01500.01600.0152model_form_blend
predicted_AB3.28603.80303.3674model_form_blend
predicted_AVG0.24500.24820.2455model_form_blend
predicted_BB0.31000.26400.3028model_form_blend
predicted_H0.80600.94400.8277model_form_blend
predicted_HBP-0.03300.0330form_only
predicted_HR0.11800.13300.1204model_form_blend
predicted_OBP0.31000.30550.3093model_form_blend
predicted_R0.43200.50000.4427model_form_blend
predicted_RBI0.41700.48200.4272model_form_blend
predicted_SLG0.41100.40770.4105model_form_blend
predicted_SO0.85900.84900.8574model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date0
Season rows before report date0
Report year2026
Profile rows used0
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA5
AB4
H2
2B1
3B0
HR0
R0
RBI0
BB1
SO0
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

No historical data found for this player before report date.

Brett Harris (695391) · BATTER · 1B · Team SF
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 16
All-history rows before 20260921: 16
System season_avg: 0.1480
Data season_avg (2026 season-to-date): 0.1750
Diff (system - data): -0.0270
System opponent_avg: 0.1480
System season_avg diverges from 2026 season-to-date by -0.0270. This usually means mixed-season window logic.

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1851.0000.000Hitting_2B0.1250.0000.8751.000
predicted_3B0.0000.0000.000Hitting_3B0.0000.0000.0000.000
predicted_AB2.5004.0003.000Hitting_AB2.5003.0001.5001.000
predicted_AVG0.1480.5000.000Hitting_AVG0.1750.0000.3250.500
predicted_BB0.1850.0000.000Hitting_BB0.0621.000-0.062-1.000
predicted_CS-0.0000.000BaseRunning_CS0.0000.0000.0000.000
predicted_H0.3702.0000.000Hitting_H0.4380.0001.5622.000
predicted_HR0.0000.0000.000Hitting_HR0.0000.0000.0000.000
predicted_OBP0.2070.5000.000Hitting_OBP0.2330.2500.2670.250
predicted_R0.1851.0000.000Hitting_R0.1880.0000.8121.000
predicted_RBI0.0001.0000.000Hitting_RBI0.0000.0001.0001.000
predicted_SLG0.2220.7500.000Hitting_SLG0.2250.0000.5250.750
predicted_SO0.9260.0001.000Hitting_SO0.7502.000-0.750-2.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics10
Boosted Metrics8
Deboosted Metrics2
Better Metrics9
Worse Metrics1
Biggest Boostpredicted_H: 0.3700 -> 2.0000 (boost 1.6300, better)
Biggest Deboostpredicted_SO: 0.9260 -> 0.0000 (deboost -0.9260, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend66060predicted_AB: 2.5000 -> 2.6897 (boost 0.1897, 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.
3team_form_snapshot10101-predicted_OBP: 0.2332 -> 0.2241 (deboost -0.0091, worse)Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling73425predicted_H: 0.4540 -> 1.0000 (boost 0.5460, better)predicted_2B: 0.1924 -> 0.0000 (deboost -0.1924, worse)AB rounded to 3 (raw=2.69), rates preserved: AVG=0.170 HR/AB=0.006
6consistency_constraints10101-predicted_R: 0.2229 -> 0.0000 (deboost -0.2229, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine64251predicted_RBI: 0.0000 -> 0.3528 (boost 0.3528, better)predicted_H: 1.0000 -> 0.7509 (deboost -0.2491, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation61506predicted_SO: 0.8532 -> 1.0000 (boost 0.1468, worse)predicted_H: 0.7509 -> 0.0000 (deboost -0.7509, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context44040predicted_H: 0.0000 -> 1.0000 (boost 1.0000, better)-Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10simulation_box_score_reference65160predicted_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
11current_json_final30303-predicted_SLG: 0.3670 -> 0.2598 (deboost -0.1072, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "695391",
  "player_name": "Brett Harris",
  "position": "1B",
  "team": "SF",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.185,
        "predicted_3B": 0.0,
        "predicted_AB": 2.5,
        "predicted_AVG": 0.148,
        "predicted_BB": 0.185,
        "predicted_H": 0.37,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.207,
        "predicted_R": 0.185,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.222,
        "predicted_SO": 0.926
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.1924,
        "predicted_3B": 0.0019,
        "predicted_AB": 2.6897,
        "predicted_AVG": 0.1668,
        "predicted_BB": 0.1927,
        "predicted_H": 0.4567,
        "predicted_HBP": 0.147,
        "predicted_HR": 0.0163,
        "predicted_OBP": 0.2332,
        "predicted_R": 0.2257,
        "predicted_RBI": 0.0589,
        "predicted_SLG": 0.2555,
        "predicted_SO": 0.9306
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.185,
          "after": 0.1924,
          "delta": 0.0074,
          "percent_delta": 0.04,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0019,
          "delta": 0.0019,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 2.5,
          "after": 2.6897,
          "delta": 0.1897,
          "percent_delta": 0.0759,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.148,
          "after": 0.1668,
          "delta": 0.0188,
          "percent_delta": 0.127,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.185,
          "after": 0.1927,
          "delta": 0.0077,
          "percent_delta": 0.0416,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.37,
          "after": 0.4567,
          "delta": 0.0867,
          "percent_delta": 0.2343,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.0163,
          "delta": 0.0163,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.207,
          "after": 0.2332,
          "delta": 0.0262,
          "percent_delta": 0.1266,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.185,
          "after": 0.2257,
          "delta": 0.0407,
          "percent_delta": 0.22,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.0589,
          "delta": 0.0589,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.222,
          "after": 0.2555,
          "delta": 0.0335,
          "percent_delta": 0.1509,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.926,
          "after": 0.9306,
          "delta": 0.0046,
          "percent_delta": 0.005,
          "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.6897,
          "delta": 0.1897,
          "percent_delta": 0.0759,
          "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": 12
      }
    },
    {
      "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.1924,
        "predicted_3B": 0.0019,
        "predicted_AB": 2.6897,
        "predicted_AVG": 0.1688,
        "predicted_BB": 0.1916,
        "predicted_H": 0.454,
        "predicted_HBP": 0.147,
        "predicted_HR": 0.0162,
        "predicted_OBP": 0.2241,
        "predicted_R": 0.2229,
        "predicted_RBI": 0.0582,
        "predicted_SLG": 0.2598,
        "predicted_SO": 0.9358
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1924,
          "after": 0.1924,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.0019,
          "after": 0.0019,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 2.6897,
          "after": 2.6897,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.1668,
          "after": 0.1688,
          "delta": 0.002,
          "percent_delta": 0.012,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.1927,
          "after": 0.1916,
          "delta": -0.0011,
          "percent_delta": -0.0057,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.4567,
          "after": 0.454,
          "delta": -0.0027,
          "percent_delta": -0.0059,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HBP",
          "before": 0.147,
          "after": 0.147,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.0163,
          "after": 0.0162,
          "delta": -0.0001,
          "percent_delta": -0.0061,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2332,
          "after": 0.2241,
          "delta": -0.0091,
          "percent_delta": -0.039,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.2257,
          "after": 0.2229,
          "delta": -0.0028,
          "percent_delta": -0.0124,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0589,
          "after": 0.0582,
          "delta": -0.0007,
          "percent_delta": -0.0119,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.2555,
          "after": 0.2598,
          "delta": 0.0043,
          "percent_delta": 0.0168,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.9306,
          "after": 0.9358,
          "delta": 0.0052,
          "percent_delta": 0.0056,
          "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.2332,
          "after": 0.2241,
          "delta": -0.0091,
          "percent_delta": -0.039,
          "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.69), rates preserved: AVG=0.170 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.1924,
          "after": 0.0,
          "delta": -0.1924,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0019,
          "after": 0.0,
          "delta": -0.0019,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 2.6897,
          "after": 3.0,
          "delta": 0.3103,
          "percent_delta": 0.1154,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.1916,
          "after": 0.0,
          "delta": -0.1916,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.454,
          "after": 1.0,
          "delta": 0.546,
          "percent_delta": 1.2026,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HBP",
          "before": 0.147,
          "after": 0.0,
          "delta": -0.147,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0162,
          "after": 0.0,
          "delta": -0.0162,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0582,
          "after": 0.0,
          "delta": -0.0582,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.9358,
          "after": 1.0,
          "delta": 0.0642,
          "percent_delta": 0.0686,
          "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_H",
          "before": 0.454,
          "after": 1.0,
          "delta": 0.546,
          "percent_delta": 1.2026,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_2B",
          "before": 0.1924,
          "after": 0.0,
          "delta": -0.1924,
          "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.2229,
          "after": 0.0,
          "delta": -0.2229,
          "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.2229,
          "after": 0.0,
          "delta": -0.2229,
          "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.136,
        "predicted_3B": 0.0173,
        "predicted_BB": 0.2625,
        "predicted_H": 0.7509,
        "predicted_HR": 0.0831,
        "predicted_RBI": 0.3528,
        "predicted_SO": 0.8532
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.136,
          "delta": 0.136,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0173,
          "delta": 0.0173,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.2625,
          "delta": 0.2625,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7509,
          "delta": -0.2491,
          "percent_delta": -0.2491,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.0831,
          "delta": 0.0831,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.3528,
          "delta": 0.3528,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.8532,
          "delta": -0.1468,
          "percent_delta": -0.1468,
          "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.3528,
          "delta": 0.3528,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7509,
          "delta": -0.2491,
          "percent_delta": -0.2491,
          "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.136,
          "after": 0.0,
          "delta": -0.136,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0173,
          "after": 0.0,
          "delta": -0.0173,
          "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.2625,
          "after": 0.0,
          "delta": -0.2625,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.7509,
          "after": 0.0,
          "delta": -0.7509,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0831,
          "after": 0.0,
          "delta": -0.0831,
          "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.3528,
          "after": 0.0,
          "delta": -0.3528,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.8532,
          "after": 1.0,
          "delta": 0.1468,
          "percent_delta": 0.1721,
          "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.8532,
          "after": 1.0,
          "delta": 0.1468,
          "percent_delta": 0.1721,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 0.7509,
          "after": 0.0,
          "delta": -0.7509,
          "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.235,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.299,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.367,
        "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.1688,
          "after": 0.235,
          "delta": 0.0662,
          "percent_delta": 0.3922,
          "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.2241,
          "after": 0.299,
          "delta": 0.0749,
          "percent_delta": 0.3342,
          "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.2598,
          "after": 0.367,
          "delta": 0.1072,
          "percent_delta": 0.4126,
          "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": 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": 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": 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_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.1688,
        "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.2241,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.2598,
        "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.235,
          "after": 0.1688,
          "delta": -0.0662,
          "percent_delta": -0.2818,
          "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.299,
          "after": 0.2241,
          "delta": -0.0749,
          "percent_delta": -0.2506,
          "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.367,
          "after": 0.2598,
          "delta": -0.1072,
          "percent_delta": -0.292,
          "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.367,
          "after": 0.2598,
          "delta": -0.1072,
          "percent_delta": -0.292,
          "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.185,
        "after": 1.0,
        "delta": 0.815,
        "percent_delta": 4.4054,
        "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": 4.0,
        "delta": 1.5,
        "percent_delta": 0.6,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.148,
        "after": 0.1688,
        "delta": 0.0208,
        "percent_delta": 0.1405,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.185,
        "after": 0.0,
        "delta": -0.185,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.37,
        "after": 2.0,
        "delta": 1.63,
        "percent_delta": 4.4054,
        "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.207,
        "after": 0.2241,
        "delta": 0.0171,
        "percent_delta": 0.0826,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.185,
        "after": 1.0,
        "delta": 0.815,
        "percent_delta": 4.4054,
        "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.222,
        "after": 0.2598,
        "delta": 0.0378,
        "percent_delta": 0.1703,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.926,
        "after": 0.0,
        "delta": -0.926,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 10,
      "boosted_metrics": 8,
      "deboosted_metrics": 2,
      "better_metrics": 9,
      "worse_metrics": 1,
      "biggest_boost": {
        "metric": "predicted_H",
        "before": 0.37,
        "after": 2.0,
        "delta": 1.63,
        "percent_delta": 4.4054,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_SO",
        "before": 0.926,
        "after": 0.0,
        "delta": -0.926,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "better"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.185-
predicted_3B0.000-
predicted_AB2.500-
predicted_AVG0.148-
predicted_BB0.185-
predicted_H0.370-
predicted_HR0.000-
predicted_OBP0.207-
predicted_R0.185-
predicted_RBI0.000-
predicted_SLG0.222-
predicted_SO0.926-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.1920.007
predicted_3B0.0020.002
predicted_AB2.6900.190
predicted_AVG0.1670.019
predicted_BB0.1930.008
predicted_H0.4570.087
predicted_HBP0.147-
predicted_HR0.0160.016
predicted_OBP0.2330.026
predicted_R0.2260.041
predicted_RBI0.0590.059
predicted_SLG0.2560.034
predicted_SO0.9310.005
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1920.000
predicted_3B0.0020.000
predicted_AB2.6900.000
predicted_AVG0.1690.002
predicted_BB0.192-0.001
predicted_H0.454-0.003
predicted_HBP0.1470.000
predicted_HR0.016-0.000
predicted_OBP0.224-0.009
predicted_R0.223-0.003
predicted_RBI0.058-0.001
predicted_SLG0.2600.004
predicted_SO0.9360.005
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 3 (raw=2.69), rates preserved: AVG=0.170 HR/AB=0.006

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB3.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1360.136
3B0.0170.017
BB0.2630.263
H0.751-0.249
HR0.0830.083
RBI0.3530.353
SO0.853-0.147
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.136
3B0.000-0.017
AB3.0000.000
BB0.000-0.263
H0.000-0.751
HR0.000-0.083
R0.0000.000
RBI0.000-0.353
SO1.0000.147
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.192
predicted_3B0.000-0.002
predicted_AB3.0000.310
predicted_AVG0.2350.066
predicted_BB0.000-0.192
predicted_H1.0000.546
predicted_HR0.000-0.016
predicted_OBP0.2990.075
predicted_R0.000-0.223
predicted_RBI0.000-0.058
predicted_SLG0.3670.107
predicted_SO1.0000.064
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B1.0001.000
3B0.0000.000
AB4.0001.000
BB0.0000.000
CS0.0000.000
H2.0002.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R1.0001.000
RBI1.0001.000
SB0.0000.000
SF0.0000.000
SO0.000-1.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 12
Reference playing time: 3.803
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-16.0004.0002.0000.0000.0000.0001.0001.0007.0000.25000.29410.37500.25000.00000.00000.06250.4375
last_100.2010-24.0004.0002.0000.0000.0000.0002.0001.0008.0000.16670.25930.25000.16670.00000.00000.04170.3333
season0.6012-27.0004.0002.0000.0000.0000.0002.0002.00010.0000.14810.28120.22220.14820.00000.00000.07410.3704
Weighted Prediction From Real Data
MetricValue
predicted_2B0.2090
predicted_3B0.0060
predicted_AB3.1150
predicted_AVG0.2090
predicted_BB0.2100
predicted_H0.6510
predicted_HBP0.1470
predicted_HR0.0530
predicted_OBP0.2920
predicted_R0.3170
predicted_RBI0.1910
predicted_SLG0.3306
predicted_SO0.9410
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.18500.20900.1924model_form_blend
predicted_3B0.00000.00600.0019model_form_blend
predicted_AB2.50003.11502.6897model_form_blend
predicted_AVG0.14800.20900.1668model_form_blend
predicted_BB0.18500.21000.1927model_form_blend
predicted_H0.37000.65100.4567model_form_blend
predicted_HBP-0.14700.1470form_only
predicted_HR0.00000.05300.0163model_form_blend
predicted_OBP0.20700.29200.2332model_form_blend
predicted_R0.18500.31700.2257model_form_blend
predicted_RBI0.00000.19100.0589model_form_blend
predicted_SLG0.22200.33060.2555model_form_blend
predicted_SO0.92600.94100.9306model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date16
Season rows before report date16
Report year2026
Profile rows used12
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA4
AB4
H2
2B1
3B0
HR0
R1
RBI1
BB0
SO0
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB3
Hitting_AVG0.0
Hitting_BB1
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO2
Hitting_TB0
Hitting_battingOrder5
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayed1B
gameID20260920_SF@LAD
game_typefull
mlbID695391
playerID695391
playerNameBrett Harris
pos3B
startedTrue
startingPosition1B
teamSF
teamID24
game_date2026-09-20
sl_k_percent27.6
sl_bb_percent3.4
sl_woba0.257
sl_xwoba0.236
sl_xba0.138
sl_xslg0.219
sl_sweet_spot_percent29.4
sl_barrel_batted_rate5.9
sl_hard_hit_percent35.3
sl_exit_velocity_avg88.0
sl_launch_angle_avg4.8
sl_whiff_percent23.8
sl_swing_percent43.3
Osleivis Basabe (678545) · BATTER · 3B · Team SF
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 134
All-history rows before 20260921: 134
System season_avg: 0.2020
Data season_avg (2026 season-to-date): 0.2004
Diff (system - data): 0.0016
System opponent_avg: 0.2020

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.0770.0000.000Hitting_2B0.0670.000-0.0670.000
predicted_3B0.0000.0000.000Hitting_3B0.0000.0000.0000.000
predicted_AB3.1793.0003.000Hitting_AB3.3511.000-0.3512.000
predicted_AVG0.2020.3330.333Hitting_AVG0.2000.0000.1330.333
predicted_BB0.2051.0000.000Hitting_BB0.2010.0000.7991.000
predicted_CS-0.0000.000BaseRunning_CS0.0520.000-0.0520.000
predicted_H0.6411.0001.000Hitting_H0.6720.0000.3281.000
predicted_HR0.1281.0000.000Hitting_HR0.1570.0000.8431.000
predicted_OBP0.2500.5000.333Hitting_OBP0.2620.0000.2380.500
predicted_R0.3081.0000.000Hitting_R0.3730.0000.6271.000
predicted_RBI0.3331.0000.000Hitting_RBI0.3880.0000.6121.000
predicted_SLG0.3471.3330.333Hitting_SLG0.3610.0000.9731.333
predicted_SO0.7182.0001.000Hitting_SO0.7391.0001.2611.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics9
Boosted Metrics7
Deboosted Metrics2
Better Metrics6
Worse Metrics3
Biggest Boostpredicted_SO: 0.7180 -> 2.0000 (boost 1.2820, worse)
Biggest Deboostpredicted_AB: 3.1790 -> 3.0000 (deboost -0.1790, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend21111predicted_OBP: 0.2500 -> 0.2633 (boost 0.0133, better)predicted_AB: 3.1790 -> 3.1095 (deboost -0.0695, 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.
3team_form_snapshot00000--Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling72516predicted_H: 0.6237 -> 1.0000 (boost 0.3763, better)predicted_RBI: 0.3278 -> 0.0000 (deboost -0.3278, worse)AB rounded to 3 (raw=3.18), rates preserved: AVG=0.198 HR/AB=0.036
6consistency_constraints10101-predicted_R: 0.2748 -> 0.0000 (deboost -0.2748, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine64251predicted_RBI: 0.0000 -> 0.3997 (boost 0.3997, better)predicted_SO: 1.0000 -> 0.7415 (deboost -0.2585, better)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation62415predicted_SO: 0.7415 -> 1.0000 (boost 0.2585, worse)predicted_RBI: 0.3997 -> 0.0000 (deboost -0.3997, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context33030predicted_SLG: 0.3438 -> 0.3770 (boost 0.0332, better)-Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10simulation_box_score_reference55041predicted_BB: 0.0000 -> 1.0000 (boost 1.0000, better)-Attached simulation box score without overwriting model prediction
11current_json_final30303-predicted_SLG: 0.3770 -> 0.3438 (deboost -0.0332, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "678545",
  "player_name": "Osleivis Basabe",
  "position": "3B",
  "team": "SF",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.077,
        "predicted_3B": 0.0,
        "predicted_AB": 3.179,
        "predicted_AVG": 0.202,
        "predicted_BB": 0.205,
        "predicted_H": 0.641,
        "predicted_HR": 0.128,
        "predicted_OBP": 0.25,
        "predicted_R": 0.308,
        "predicted_RBI": 0.333,
        "predicted_SLG": 0.347,
        "predicted_SO": 0.718
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.0977,
        "predicted_3B": 0.0008,
        "predicted_AB": 3.1095,
        "predicted_AVG": 0.202,
        "predicted_BB": 0.2455,
        "predicted_H": 0.6275,
        "predicted_HBP": 0.04,
        "predicted_HR": 0.1157,
        "predicted_OBP": 0.2633,
        "predicted_R": 0.2782,
        "predicted_RBI": 0.3318,
        "predicted_SLG": 0.3457,
        "predicted_SO": 0.7474
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.077,
          "after": 0.0977,
          "delta": 0.0207,
          "percent_delta": 0.2688,
          "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.179,
          "after": 3.1095,
          "delta": -0.0695,
          "percent_delta": -0.0219,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.202,
          "after": 0.202,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.205,
          "after": 0.2455,
          "delta": 0.0405,
          "percent_delta": 0.1976,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.641,
          "after": 0.6275,
          "delta": -0.0135,
          "percent_delta": -0.0211,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.128,
          "after": 0.1157,
          "delta": -0.0123,
          "percent_delta": -0.0961,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.25,
          "after": 0.2633,
          "delta": 0.0133,
          "percent_delta": 0.0532,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.308,
          "after": 0.2782,
          "delta": -0.0298,
          "percent_delta": -0.0968,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.333,
          "after": 0.3318,
          "delta": -0.0012,
          "percent_delta": -0.0036,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.347,
          "after": 0.3457,
          "delta": -0.0013,
          "percent_delta": -0.0037,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.718,
          "after": 0.7474,
          "delta": 0.0294,
          "percent_delta": 0.0409,
          "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.25,
          "after": 0.2633,
          "delta": 0.0133,
          "percent_delta": 0.0532,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 3.179,
          "after": 3.1095,
          "delta": -0.0695,
          "percent_delta": -0.0219,
          "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": 39
      }
    },
    {
      "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.0977,
        "predicted_3B": 0.0008,
        "predicted_AB": 3.1095,
        "predicted_AVG": 0.2006,
        "predicted_BB": 0.2441,
        "predicted_H": 0.6237,
        "predicted_HBP": 0.04,
        "predicted_HR": 0.1153,
        "predicted_OBP": 0.2588,
        "predicted_R": 0.2748,
        "predicted_RBI": 0.3278,
        "predicted_SLG": 0.3438,
        "predicted_SO": 0.7516
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0977,
          "after": 0.0977,
          "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.1095,
          "after": 3.1095,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.202,
          "after": 0.2006,
          "delta": -0.0014,
          "percent_delta": -0.0069,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.2455,
          "after": 0.2441,
          "delta": -0.0014,
          "percent_delta": -0.0057,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.6275,
          "after": 0.6237,
          "delta": -0.0038,
          "percent_delta": -0.0061,
          "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.1157,
          "after": 0.1153,
          "delta": -0.0004,
          "percent_delta": -0.0035,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2633,
          "after": 0.2588,
          "delta": -0.0045,
          "percent_delta": -0.0171,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.2782,
          "after": 0.2748,
          "delta": -0.0034,
          "percent_delta": -0.0122,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3318,
          "after": 0.3278,
          "delta": -0.004,
          "percent_delta": -0.0121,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3457,
          "after": 0.3438,
          "delta": -0.0019,
          "percent_delta": -0.0055,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.7474,
          "after": 0.7516,
          "delta": 0.0042,
          "percent_delta": 0.0056,
          "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.18), rates preserved: AVG=0.198 HR/AB=0.036",
      "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.0977,
          "after": 0.0,
          "delta": -0.0977,
          "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.1095,
          "after": 3.0,
          "delta": -0.1095,
          "percent_delta": -0.0352,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.2441,
          "after": 0.0,
          "delta": -0.2441,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.6237,
          "after": 1.0,
          "delta": 0.3763,
          "percent_delta": 0.6033,
          "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.1153,
          "after": 0.0,
          "delta": -0.1153,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3278,
          "after": 0.0,
          "delta": -0.3278,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.7516,
          "after": 1.0,
          "delta": 0.2484,
          "percent_delta": 0.3305,
          "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.6237,
          "after": 1.0,
          "delta": 0.3763,
          "percent_delta": 0.6033,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.3278,
          "after": 0.0,
          "delta": -0.3278,
          "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.2748,
          "after": 0.0,
          "delta": -0.2748,
          "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.2748,
          "after": 0.0,
          "delta": -0.2748,
          "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.1334,
        "predicted_3B": 0.0164,
        "predicted_BB": 0.2449,
        "predicted_H": 0.789,
        "predicted_HR": 0.1059,
        "predicted_RBI": 0.3997,
        "predicted_SO": 0.7415
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1334,
          "delta": 0.1334,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0164,
          "delta": 0.0164,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.2449,
          "delta": 0.2449,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.789,
          "delta": -0.211,
          "percent_delta": -0.211,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1059,
          "delta": 0.1059,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.3997,
          "delta": 0.3997,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.7415,
          "delta": -0.2585,
          "percent_delta": -0.2585,
          "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.3997,
          "delta": 0.3997,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.7415,
          "delta": -0.2585,
          "percent_delta": -0.2585,
          "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.1334,
          "after": 0.0,
          "delta": -0.1334,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0164,
          "after": 0.0,
          "delta": -0.0164,
          "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.2449,
          "after": 0.0,
          "delta": -0.2449,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.789,
          "after": 1.0,
          "delta": 0.211,
          "percent_delta": 0.2674,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1059,
          "after": 0.0,
          "delta": -0.1059,
          "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.3997,
          "after": 0.0,
          "delta": -0.3997,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.7415,
          "after": 1.0,
          "delta": 0.2585,
          "percent_delta": 0.3486,
          "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.7415,
          "after": 1.0,
          "delta": 0.2585,
          "percent_delta": 0.3486,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.3997,
          "after": 0.0,
          "delta": -0.3997,
          "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.233,
        "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.377,
        "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.233,
          "delta": 0.0324,
          "percent_delta": 0.1615,
          "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.2588,
          "after": 0.291,
          "delta": 0.0322,
          "percent_delta": 0.1244,
          "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.3438,
          "after": 0.377,
          "delta": 0.0332,
          "percent_delta": 0.0966,
          "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.3438,
          "after": 0.377,
          "delta": 0.0332,
          "percent_delta": 0.0966,
          "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": 1.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": 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": 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": 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": 5,
        "boosted_metrics": 5,
        "deboosted_metrics": 0,
        "better_metrics": 4,
        "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": 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": 3.0,
        "predicted_AVG": 0.2006,
        "predicted_BB": 1.0,
        "predicted_CS": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 1.0,
        "predicted_OBP": 0.2588,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.3438,
        "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": 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.233,
          "after": 0.2006,
          "delta": -0.0324,
          "percent_delta": -0.1391,
          "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": 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.291,
          "after": 0.2588,
          "delta": -0.0322,
          "percent_delta": -0.1107,
          "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.377,
          "after": 0.3438,
          "delta": -0.0332,
          "percent_delta": -0.0881,
          "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.377,
          "after": 0.3438,
          "delta": -0.0332,
          "percent_delta": -0.0881,
          "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.077,
        "after": 0.0,
        "delta": -0.077,
        "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.179,
        "after": 3.0,
        "delta": -0.179,
        "percent_delta": -0.0563,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.202,
        "after": 0.2006,
        "delta": -0.0014,
        "percent_delta": -0.0069,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_BB",
        "before": 0.205,
        "after": 1.0,
        "delta": 0.795,
        "percent_delta": 3.878,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.641,
        "after": 1.0,
        "delta": 0.359,
        "percent_delta": 0.5601,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.128,
        "after": 1.0,
        "delta": 0.872,
        "percent_delta": 6.8125,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.25,
        "after": 0.2588,
        "delta": 0.0088,
        "percent_delta": 0.0352,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.308,
        "after": 1.0,
        "delta": 0.692,
        "percent_delta": 2.2468,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.333,
        "after": 1.0,
        "delta": 0.667,
        "percent_delta": 2.003,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.347,
        "after": 0.3438,
        "delta": -0.0032,
        "percent_delta": -0.0092,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_SO",
        "before": 0.718,
        "after": 2.0,
        "delta": 1.282,
        "percent_delta": 1.7855,
        "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_SO",
        "before": 0.718,
        "after": 2.0,
        "delta": 1.282,
        "percent_delta": 1.7855,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_AB",
        "before": 3.179,
        "after": 3.0,
        "delta": -0.179,
        "percent_delta": -0.0563,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "better"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.077-
predicted_3B0.000-
predicted_AB3.179-
predicted_AVG0.202-
predicted_BB0.205-
predicted_H0.641-
predicted_HR0.128-
predicted_OBP0.250-
predicted_R0.308-
predicted_RBI0.333-
predicted_SLG0.347-
predicted_SO0.718-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.0980.021
predicted_3B0.0010.001
predicted_AB3.110-0.069
predicted_AVG0.2020.000
predicted_BB0.2450.041
predicted_H0.627-0.014
predicted_HBP0.040-
predicted_HR0.116-0.012
predicted_OBP0.2630.013
predicted_R0.278-0.030
predicted_RBI0.332-0.001
predicted_SLG0.346-0.001
predicted_SO0.7470.029
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.0980.000
predicted_3B0.0010.000
predicted_AB3.1100.000
predicted_AVG0.201-0.001
predicted_BB0.244-0.001
predicted_H0.624-0.004
predicted_HBP0.0400.000
predicted_HR0.115-0.000
predicted_OBP0.259-0.005
predicted_R0.275-0.003
predicted_RBI0.328-0.004
predicted_SLG0.344-0.002
predicted_SO0.7520.004
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 3 (raw=3.18), rates preserved: AVG=0.198 HR/AB=0.036

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB3.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1330.133
3B0.0160.016
BB0.2450.245
H0.789-0.211
HR0.1060.106
RBI0.4000.400
SO0.742-0.258
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.133
3B0.000-0.016
AB3.0000.000
BB0.000-0.245
H1.0000.211
HR0.000-0.106
R0.0000.000
RBI0.000-0.400
SO1.0000.258
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.098
predicted_3B0.000-0.001
predicted_AB3.000-0.110
predicted_AVG0.2330.032
predicted_BB0.000-0.244
predicted_H1.0000.376
predicted_HR0.000-0.115
predicted_OBP0.2910.032
predicted_R0.000-0.275
predicted_RBI0.000-0.328
predicted_SLG0.3770.033
predicted_SO1.0000.248
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB1.0001.000
CS0.0000.000
H1.0000.000
HBP0.0000.000
HR1.0001.000
PA4.000-
R1.0001.000
RBI1.0001.000
SB0.0000.000
SF0.0000.000
SO2.0001.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 39
Reference playing time: 3.803
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-10.0002.0001.0000.0000.0001.0000.0002.0003.0000.20000.33330.30000.20000.00000.10000.20000.3000
last_100.2010-26.0004.0001.0000.0001.0003.0001.0004.00010.0000.15380.26670.30770.15380.03850.11540.15380.3846
season0.6039-124.00025.0003.0000.0005.00013.00012.0008.00028.0000.20160.26470.34680.20160.04030.10480.06450.2258
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1290
predicted_3B0.0020
predicted_AB3.0040
predicted_AVG0.2019
predicted_BB0.3070
predicted_H0.6070
predicted_HBP0.0400
predicted_HR0.0970
predicted_OBP0.2836
predicted_R0.2330
predicted_RBI0.3300
predicted_SLG0.3437
predicted_SO0.7920
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.07700.12900.0977model_form_blend
predicted_3B0.00000.00200.0008model_form_blend
predicted_AB3.17903.00403.1095model_form_blend
predicted_AVG0.20200.20190.2020model_form_blend
predicted_BB0.20500.30700.2455model_form_blend
predicted_H0.64100.60700.6275model_form_blend
predicted_HBP-0.04000.0400form_only
predicted_HR0.12800.09700.1157model_form_blend
predicted_OBP0.25000.28360.2633model_form_blend
predicted_R0.30800.23300.2782model_form_blend
predicted_RBI0.33300.33000.3318model_form_blend
predicted_SLG0.34700.34370.3457model_form_blend
predicted_SO0.71800.79200.7474model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date134
Season rows before report date134
Report year2026
Profile rows used39
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA4
AB3
H1
2B0
3B0
HR1
R1
RBI1
BB1
SO2
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB1
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO1
Hitting_TB0
Hitting_battingOrder6
Hitting_substitutionOrder1
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedPH
gameID20260920_SF@LAD
game_typeph
mlbID678545
noteStruck out for Bandura in the 9th.
playerID678545
playerNameOsleivis Basabe
posSS
startedFalse
startingPositionPH
teamSF
teamID24
game_date2026-09-20
sl_k_percent19.9
sl_bb_percent5.9
sl_woba0.274
sl_xwoba0.282
sl_xba0.229
sl_xslg0.344
sl_sweet_spot_percent33.7
sl_barrel_batted_rate7.2
sl_hard_hit_percent32.7
sl_exit_velocity_avg87.3
sl_launch_angle_avg9.2
sl_whiff_percent24.7
sl_swing_percent45.9
Christian Koss (683766) · BATTER · SS · Team SF
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 193
All-history rows before 20260921: 193
System season_avg: 0.2320
Data season_avg (2026 season-to-date): 0.2379
Diff (system - data): -0.0059
System opponent_avg: 0.2320

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.0850.0000.000Hitting_2B0.0780.000-0.0780.000
predicted_3B0.0000.0000.000Hitting_3B0.0000.0000.0000.000
predicted_AB3.0684.0003.000Hitting_AB3.2233.0000.7771.000
predicted_AVG0.2390.0000.333Hitting_AVG0.2380.000-0.2380.000
predicted_BB0.1530.0000.000Hitting_BB0.1660.000-0.1660.000
predicted_CS-0.0000.000BaseRunning_CS0.0000.0000.0000.000
predicted_H0.6800.0001.000Hitting_H0.7670.000-0.7670.000
predicted_HR0.0500.0000.000Hitting_HR0.0730.000-0.0730.000
predicted_OBP0.2680.0000.333Hitting_OBP0.2800.000-0.2800.000
predicted_R0.4410.0001.000Hitting_R0.5180.000-0.5180.000
predicted_RBI0.2400.0000.000Hitting_RBI0.2120.000-0.2120.000
predicted_SLG0.3010.0000.333Hitting_SLG0.3300.000-0.3300.000
predicted_SO0.7633.0001.000Hitting_SO0.7932.0002.2071.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics9
Boosted Metrics2
Deboosted Metrics7
Better Metrics1
Worse Metrics8
Biggest Boostpredicted_SO: 0.7630 -> 3.0000 (boost 2.2370, worse)
Biggest Deboostpredicted_H: 0.6800 -> 0.0000 (deboost -0.6800, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend11010predicted_AB: 3.0680 -> 3.1632 (boost 0.0952, 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.
3team_form_snapshot20202-predicted_AVG: 0.2392 -> 0.2279 (deboost -0.0113, worse)Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling72516predicted_H: 0.7207 -> 1.0000 (boost 0.2793, better)predicted_RBI: 0.2553 -> 0.0000 (deboost -0.2553, worse)AB rounded to 3 (raw=3.16), rates preserved: AVG=0.229 HR/AB=0.016
6consistency_constraints10101-predicted_R: 0.4214 -> 0.0000 (deboost -0.4214, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine64251predicted_RBI: 0.0000 -> 0.3227 (boost 0.3227, better)predicted_H: 1.0000 -> 0.7741 (deboost -0.2259, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation73425predicted_R: 0.0000 -> 1.0000 (boost 1.0000, better)predicted_RBI: 0.3227 -> 0.0000 (deboost -0.3227, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context43131predicted_SLG: 0.3014 -> 0.3650 (boost 0.0636, better)predicted_R: 1.0000 -> 0.0000 (deboost -1.0000, worse)Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10simulation_box_score_reference32112predicted_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
11current_json_final30303-predicted_SLG: 0.3650 -> 0.3014 (deboost -0.0636, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "683766",
  "player_name": "Christian Koss",
  "position": "SS",
  "team": "SF",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.085,
        "predicted_3B": 0.0,
        "predicted_AB": 3.068,
        "predicted_AVG": 0.239,
        "predicted_BB": 0.153,
        "predicted_H": 0.68,
        "predicted_HR": 0.05,
        "predicted_OBP": 0.268,
        "predicted_R": 0.441,
        "predicted_RBI": 0.24,
        "predicted_SLG": 0.301,
        "predicted_SO": 0.763
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.078,
        "predicted_3B": 0.0008,
        "predicted_AB": 3.1632,
        "predicted_AVG": 0.2392,
        "predicted_BB": 0.1522,
        "predicted_H": 0.7251,
        "predicted_HBP": 0.013,
        "predicted_HR": 0.0512,
        "predicted_OBP": 0.271,
        "predicted_R": 0.4266,
        "predicted_RBI": 0.2585,
        "predicted_SLG": 0.3047,
        "predicted_SO": 0.7872
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.085,
          "after": 0.078,
          "delta": -0.007,
          "percent_delta": -0.0824,
          "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.068,
          "after": 3.1632,
          "delta": 0.0952,
          "percent_delta": 0.031,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.239,
          "after": 0.2392,
          "delta": 0.0002,
          "percent_delta": 0.0008,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.153,
          "after": 0.1522,
          "delta": -0.0008,
          "percent_delta": -0.0052,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.68,
          "after": 0.7251,
          "delta": 0.0451,
          "percent_delta": 0.0663,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.05,
          "after": 0.0512,
          "delta": 0.0012,
          "percent_delta": 0.024,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.268,
          "after": 0.271,
          "delta": 0.003,
          "percent_delta": 0.0112,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.441,
          "after": 0.4266,
          "delta": -0.0144,
          "percent_delta": -0.0327,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.24,
          "after": 0.2585,
          "delta": 0.0185,
          "percent_delta": 0.0771,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.301,
          "after": 0.3047,
          "delta": 0.0037,
          "percent_delta": 0.0123,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.763,
          "after": 0.7872,
          "delta": 0.0242,
          "percent_delta": 0.0317,
          "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.068,
          "after": 3.1632,
          "delta": 0.0952,
          "percent_delta": 0.031,
          "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": 59
      }
    },
    {
      "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.078,
        "predicted_3B": 0.0008,
        "predicted_AB": 3.1632,
        "predicted_AVG": 0.2279,
        "predicted_BB": 0.1513,
        "predicted_H": 0.7207,
        "predicted_HBP": 0.013,
        "predicted_HR": 0.051,
        "predicted_OBP": 0.2631,
        "predicted_R": 0.4214,
        "predicted_RBI": 0.2553,
        "predicted_SLG": 0.3014,
        "predicted_SO": 0.7916
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.078,
          "after": 0.078,
          "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.1632,
          "after": 3.1632,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2392,
          "after": 0.2279,
          "delta": -0.0113,
          "percent_delta": -0.0472,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.1522,
          "after": 0.1513,
          "delta": -0.0009,
          "percent_delta": -0.0059,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.7251,
          "after": 0.7207,
          "delta": -0.0044,
          "percent_delta": -0.0061,
          "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.0512,
          "after": 0.051,
          "delta": -0.0002,
          "percent_delta": -0.0039,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.271,
          "after": 0.2631,
          "delta": -0.0079,
          "percent_delta": -0.0292,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.4266,
          "after": 0.4214,
          "delta": -0.0052,
          "percent_delta": -0.0122,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.2585,
          "after": 0.2553,
          "delta": -0.0032,
          "percent_delta": -0.0124,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3047,
          "after": 0.3014,
          "delta": -0.0033,
          "percent_delta": -0.0108,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.7872,
          "after": 0.7916,
          "delta": 0.0044,
          "percent_delta": 0.0056,
          "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.2392,
          "after": 0.2279,
          "delta": -0.0113,
          "percent_delta": -0.0472,
          "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.16), rates preserved: AVG=0.229 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.078,
          "after": 0.0,
          "delta": -0.078,
          "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.1632,
          "after": 3.0,
          "delta": -0.1632,
          "percent_delta": -0.0516,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.1513,
          "after": 0.0,
          "delta": -0.1513,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.7207,
          "after": 1.0,
          "delta": 0.2793,
          "percent_delta": 0.3875,
          "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.051,
          "after": 0.0,
          "delta": -0.051,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.2553,
          "after": 0.0,
          "delta": -0.2553,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.7916,
          "after": 1.0,
          "delta": 0.2084,
          "percent_delta": 0.2633,
          "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.7207,
          "after": 1.0,
          "delta": 0.2793,
          "percent_delta": 0.3875,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.2553,
          "after": 0.0,
          "delta": -0.2553,
          "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.4214,
          "after": 0.0,
          "delta": -0.4214,
          "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.4214,
          "after": 0.0,
          "delta": -0.4214,
          "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.1265,
        "predicted_3B": 0.0147,
        "predicted_BB": 0.2024,
        "predicted_H": 0.7741,
        "predicted_HR": 0.0815,
        "predicted_RBI": 0.3227,
        "predicted_SO": 0.7798
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1265,
          "delta": 0.1265,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0147,
          "delta": 0.0147,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.2024,
          "delta": 0.2024,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7741,
          "delta": -0.2259,
          "percent_delta": -0.2259,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.0815,
          "delta": 0.0815,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.3227,
          "delta": 0.3227,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.7798,
          "delta": -0.2202,
          "percent_delta": -0.2202,
          "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.3227,
          "delta": 0.3227,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7741,
          "delta": -0.2259,
          "percent_delta": -0.2259,
          "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": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1265,
          "after": 0.0,
          "delta": -0.1265,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0147,
          "after": 0.0,
          "delta": -0.0147,
          "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.2024,
          "after": 0.0,
          "delta": -0.2024,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.7741,
          "after": 1.0,
          "delta": 0.2259,
          "percent_delta": 0.2918,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0815,
          "after": 0.0,
          "delta": -0.0815,
          "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.3227,
          "after": 0.0,
          "delta": -0.3227,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.7798,
          "after": 1.0,
          "delta": 0.2202,
          "percent_delta": 0.2824,
          "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.3227,
          "after": 0.0,
          "delta": -0.3227,
          "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.291,
        "predicted_R": 0.0,
        "predicted_RBI": 0.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.2279,
          "after": 0.241,
          "delta": 0.0131,
          "percent_delta": 0.0575,
          "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.2631,
          "after": 0.291,
          "delta": 0.0279,
          "percent_delta": 0.106,
          "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": 0.0,
          "after": 0.0,
          "delta": 0.0,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3014,
          "after": 0.365,
          "delta": 0.0636,
          "percent_delta": 0.211,
          "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.3014,
          "after": 0.365,
          "delta": 0.0636,
          "percent_delta": 0.211,
          "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": "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": 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": 3.0,
          "delta": 2.0,
          "percent_delta": 2.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_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": 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.2279,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 0.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.2631,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.3014,
        "predicted_SO": 3.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.241,
          "after": 0.2279,
          "delta": -0.0131,
          "percent_delta": -0.0545,
          "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.291,
          "after": 0.2631,
          "delta": -0.0279,
          "percent_delta": -0.0958,
          "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.365,
          "after": 0.3014,
          "delta": -0.0636,
          "percent_delta": -0.1742,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 3.0,
          "after": 3.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        }
      ],
      "summary": {
        "changed_metrics": 3,
        "boosted_metrics": 0,
        "deboosted_metrics": 3,
        "better_metrics": 0,
        "worse_metrics": 3,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_SLG",
          "before": 0.365,
          "after": 0.3014,
          "delta": -0.0636,
          "percent_delta": -0.1742,
          "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.085,
        "after": 0.0,
        "delta": -0.085,
        "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.068,
        "after": 4.0,
        "delta": 0.932,
        "percent_delta": 0.3038,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.239,
        "after": 0.2279,
        "delta": -0.0111,
        "percent_delta": -0.0464,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.153,
        "after": 0.0,
        "delta": -0.153,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.68,
        "after": 0.0,
        "delta": -0.68,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.05,
        "after": 0.0,
        "delta": -0.05,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.268,
        "after": 0.2631,
        "delta": -0.0049,
        "percent_delta": -0.0183,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_R",
        "before": 0.441,
        "after": 0.0,
        "delta": -0.441,
        "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.301,
        "after": 0.3014,
        "delta": 0.0004,
        "percent_delta": 0.0013,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_SO",
        "before": 0.763,
        "after": 3.0,
        "delta": 2.237,
        "percent_delta": 2.9318,
        "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.763,
        "after": 3.0,
        "delta": 2.237,
        "percent_delta": 2.9318,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_H",
        "before": 0.68,
        "after": 0.0,
        "delta": -0.68,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.085-
predicted_3B0.000-
predicted_AB3.068-
predicted_AVG0.239-
predicted_BB0.153-
predicted_H0.680-
predicted_HR0.050-
predicted_OBP0.268-
predicted_R0.441-
predicted_RBI0.240-
predicted_SLG0.301-
predicted_SO0.763-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.078-0.007
predicted_3B0.0010.001
predicted_AB3.1630.095
predicted_AVG0.2390.000
predicted_BB0.152-0.001
predicted_H0.7250.045
predicted_HBP0.013-
predicted_HR0.0510.001
predicted_OBP0.2710.003
predicted_R0.427-0.014
predicted_RBI0.2590.019
predicted_SLG0.3050.004
predicted_SO0.7870.024
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.0780.000
predicted_3B0.0010.000
predicted_AB3.1630.000
predicted_AVG0.228-0.011
predicted_BB0.151-0.001
predicted_H0.721-0.004
predicted_HBP0.0130.000
predicted_HR0.051-0.000
predicted_OBP0.263-0.008
predicted_R0.421-0.005
predicted_RBI0.255-0.003
predicted_SLG0.301-0.003
predicted_SO0.7920.004
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 3 (raw=3.16), rates preserved: AVG=0.229 HR/AB=0.016

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB3.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1270.127
3B0.0150.015
BB0.2020.202
H0.774-0.226
HR0.0820.082
RBI0.3230.323
SO0.780-0.220
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.127
3B0.000-0.015
AB3.0000.000
BB0.000-0.202
H1.0000.226
HR0.000-0.082
R1.0001.000
RBI0.000-0.323
SO1.0000.220
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.078
predicted_3B0.000-0.001
predicted_AB3.000-0.163
predicted_AVG0.2410.013
predicted_BB0.000-0.151
predicted_H1.0000.279
predicted_HR0.000-0.051
predicted_OBP0.2910.028
predicted_R0.000-0.421
predicted_RBI0.000-0.255
predicted_SLG0.3650.064
predicted_SO1.0000.208
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0001.000
BB0.0000.000
CS0.0000.000
H0.000-1.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R0.000-1.000
RBI0.0000.000
SB0.0000.000
SF0.0000.000
SO3.0002.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 59
Reference playing time: 3.803
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-18.0004.0000.0000.0000.0002.0001.0000.0005.0000.22220.22220.22220.22220.00000.11110.00000.2778
last_100.2010-33.0009.0000.0000.0000.0003.0004.0002.0008.0000.27270.31430.27270.27270.00000.09090.06060.2424
season0.6059-181.00042.0005.0000.0004.00012.00026.0009.00045.0000.23200.27230.32600.23200.02210.06630.04970.2486
Weighted Prediction From Real Data
MetricValue
predicted_2B0.0680
predicted_3B0.0020
predicted_AB3.3000
predicted_AVG0.2395
predicted_BB0.1510
predicted_H0.7900
predicted_HBP0.0130
predicted_HR0.0530
predicted_OBP0.2754
predicted_R0.4060
predicted_RBI0.2850
predicted_SLG0.3099
predicted_SO0.8220
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.08500.06800.0780model_form_blend
predicted_3B0.00000.00200.0008model_form_blend
predicted_AB3.06803.30003.1632model_form_blend
predicted_AVG0.23900.23950.2392model_form_blend
predicted_BB0.15300.15100.1522model_form_blend
predicted_H0.68000.79000.7251model_form_blend
predicted_HBP-0.01300.0130form_only
predicted_HR0.05000.05300.0512model_form_blend
predicted_OBP0.26800.27540.2710model_form_blend
predicted_R0.44100.40600.4266model_form_blend
predicted_RBI0.24000.28500.2585model_form_blend
predicted_SLG0.30100.30990.3047model_form_blend
predicted_SO0.76300.82200.7872model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date193
Season rows before report date193
Report year2026
Profile rows used59
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA4
AB4
H0
2B0
3B0
HR0
R0
RBI0
BB0
SO3
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB3
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO2
Hitting_TB0
Hitting_battingOrder9
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedSS
gameID20260920_SF@LAD
game_typefull
mlbID683766
playerID683766
playerNameChristian Koss
posSS
startedTrue
startingPositionSS
teamSF
teamID24
game_date2026-09-20
sl_k_percent23.4
sl_bb_percent4.6
sl_woba0.269
sl_xwoba0.252
sl_xba0.22
sl_xslg0.3
sl_sweet_spot_percent30.0
sl_barrel_batted_rate4.3
sl_hard_hit_percent27.9
sl_exit_velocity_avg84.1
sl_launch_angle_avg10.6
sl_whiff_percent27.5
sl_swing_percent53.1
Drew Gilbert (687551) · BATTER · CF · Team SF
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 377
All-history rows before 20260921: 377
System season_avg: 0.2370
Data season_avg (2026 season-to-date): 0.2467
Diff (system - data): -0.0097
System opponent_avg: 0.2370

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1210.0001.000Hitting_2B0.1300.000-0.1300.000
predicted_3B0.0260.0000.000Hitting_3B0.0400.000-0.0400.000
predicted_AB2.7674.0004.000Hitting_AB3.0111.0000.9893.000
predicted_AVG0.2030.0000.250Hitting_AVG0.2470.000-0.2470.000
predicted_BB0.2331.0001.000Hitting_BB0.3500.0000.6501.000
predicted_CS-0.0000.000BaseRunning_CS0.0450.000-0.0450.000
predicted_H0.2100.0001.000Hitting_H0.7430.000-0.7430.000
predicted_HR0.0500.0000.000Hitting_HR0.0950.000-0.0950.000
predicted_OBP0.2730.2000.400Hitting_OBP0.3400.000-0.1400.200
predicted_R0.3881.0000.000Hitting_R0.4960.0000.5041.000
predicted_RBI0.2101.0001.000Hitting_RBI0.3690.0000.6311.000
predicted_SLG0.3980.0000.500Hitting_SLG0.4110.000-0.4110.000
predicted_SO0.5691.0000.000Hitting_SO0.6180.0000.3821.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics11
Boosted Metrics5
Deboosted Metrics6
Better Metrics4
Worse Metrics7
Biggest Boostpredicted_AB: 2.7670 -> 4.0000 (boost 1.2330, better)
Biggest Deboostpredicted_H: 0.2100 -> 0.0000 (deboost -0.2100, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend43131predicted_H: 0.2100 -> 0.3451 (boost 0.1351, better)predicted_AB: 2.7670 -> 2.7037 (deboost -0.0633, 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.
3team_form_snapshot30303-predicted_SLG: 0.4035 -> 0.2820 (deboost -0.1215, worse)Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling72516predicted_AB: 2.7037 -> 4.0000 (boost 1.2963, better)predicted_H: 0.3430 -> 0.0000 (deboost -0.3430, worse)AB rounded to 4 (raw=2.77), rates preserved: AVG=0.125 HR/AB=0.032
6consistency_constraints21111predicted_H: 0.0000 -> 1.0000 (boost 1.0000, better)predicted_R: 0.4018 -> 0.0000 (deboost -0.4018, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine64251predicted_RBI: 0.0000 -> 0.4473 (boost 0.4473, better)predicted_SO: 1.0000 -> 0.7002 (deboost -0.2998, better)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation64251predicted_2B: 0.1580 -> 1.0000 (boost 0.8420, better)predicted_SO: 0.7002 -> 0.0000 (deboost -0.7002, better)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context74334predicted_SO: 0.0000 -> 1.0000 (boost 1.0000, worse)predicted_2B: 1.0000 -> 0.0000 (deboost -1.0000, worse)Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10simulation_box_score_reference43131predicted_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
11current_json_final30303-predicted_AVG: 0.2380 -> 0.1269 (deboost -0.1111, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "687551",
  "player_name": "Drew Gilbert",
  "position": "CF",
  "team": "SF",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.121,
        "predicted_3B": 0.026,
        "predicted_AB": 2.767,
        "predicted_AVG": 0.203,
        "predicted_BB": 0.233,
        "predicted_H": 0.21,
        "predicted_HR": 0.05,
        "predicted_OBP": 0.273,
        "predicted_R": 0.388,
        "predicted_RBI": 0.21,
        "predicted_SLG": 0.398,
        "predicted_SO": 0.569
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.1095,
        "predicted_3B": 0.0209,
        "predicted_AB": 2.7037,
        "predicted_AVG": 0.2021,
        "predicted_BB": 0.251,
        "predicted_H": 0.3451,
        "predicted_HBP": 0.033,
        "predicted_HR": 0.0897,
        "predicted_OBP": 0.2778,
        "predicted_R": 0.4068,
        "predicted_RBI": 0.2856,
        "predicted_SLG": 0.4035,
        "predicted_SO": 0.5472
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.121,
          "after": 0.1095,
          "delta": -0.0115,
          "percent_delta": -0.095,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.026,
          "after": 0.0209,
          "delta": -0.0051,
          "percent_delta": -0.1962,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 2.767,
          "after": 2.7037,
          "delta": -0.0633,
          "percent_delta": -0.0229,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.203,
          "after": 0.2021,
          "delta": -0.0009,
          "percent_delta": -0.0044,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.233,
          "after": 0.251,
          "delta": 0.018,
          "percent_delta": 0.0773,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.21,
          "after": 0.3451,
          "delta": 0.1351,
          "percent_delta": 0.6433,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.05,
          "after": 0.0897,
          "delta": 0.0397,
          "percent_delta": 0.794,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.273,
          "after": 0.2778,
          "delta": 0.0048,
          "percent_delta": 0.0176,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.388,
          "after": 0.4068,
          "delta": 0.0188,
          "percent_delta": 0.0485,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.21,
          "after": 0.2856,
          "delta": 0.0756,
          "percent_delta": 0.36,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.398,
          "after": 0.4035,
          "delta": 0.0055,
          "percent_delta": 0.0138,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.569,
          "after": 0.5472,
          "delta": -0.0218,
          "percent_delta": -0.0383,
          "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_H",
          "before": 0.21,
          "after": 0.3451,
          "delta": 0.1351,
          "percent_delta": 0.6433,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 2.767,
          "after": 2.7037,
          "delta": -0.0633,
          "percent_delta": -0.0229,
          "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.1095,
        "predicted_3B": 0.0209,
        "predicted_AB": 2.7037,
        "predicted_AVG": 0.1269,
        "predicted_BB": 0.2496,
        "predicted_H": 0.343,
        "predicted_HBP": 0.033,
        "predicted_HR": 0.0894,
        "predicted_OBP": 0.2007,
        "predicted_R": 0.4018,
        "predicted_RBI": 0.2821,
        "predicted_SLG": 0.282,
        "predicted_SO": 0.5503
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1095,
          "after": 0.1095,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.0209,
          "after": 0.0209,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 2.7037,
          "after": 2.7037,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2021,
          "after": 0.1269,
          "delta": -0.0752,
          "percent_delta": -0.3721,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.251,
          "after": 0.2496,
          "delta": -0.0014,
          "percent_delta": -0.0056,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.3451,
          "after": 0.343,
          "delta": -0.0021,
          "percent_delta": -0.0061,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HBP",
          "before": 0.033,
          "after": 0.033,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.0897,
          "after": 0.0894,
          "delta": -0.0003,
          "percent_delta": -0.0033,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2778,
          "after": 0.2007,
          "delta": -0.0771,
          "percent_delta": -0.2775,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.4068,
          "after": 0.4018,
          "delta": -0.005,
          "percent_delta": -0.0123,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.2856,
          "after": 0.2821,
          "delta": -0.0035,
          "percent_delta": -0.0123,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4035,
          "after": 0.282,
          "delta": -0.1215,
          "percent_delta": -0.3011,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.5472,
          "after": 0.5503,
          "delta": 0.0031,
          "percent_delta": 0.0057,
          "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.4035,
          "after": 0.282,
          "delta": -0.1215,
          "percent_delta": -0.3011,
          "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.77), rates preserved: AVG=0.125 HR/AB=0.032",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.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.1095,
          "after": 0.0,
          "delta": -0.1095,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0209,
          "after": 0.0,
          "delta": -0.0209,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 2.7037,
          "after": 4.0,
          "delta": 1.2963,
          "percent_delta": 0.4795,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.2496,
          "after": 0.0,
          "delta": -0.2496,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.343,
          "after": 0.0,
          "delta": -0.343,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HBP",
          "before": 0.033,
          "after": 0.0,
          "delta": -0.033,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.0894,
          "after": 0.0,
          "delta": -0.0894,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.2821,
          "after": 0.0,
          "delta": -0.2821,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.5503,
          "after": 1.0,
          "delta": 0.4497,
          "percent_delta": 0.8172,
          "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_AB",
          "before": 2.7037,
          "after": 4.0,
          "delta": 1.2963,
          "percent_delta": 0.4795,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 0.343,
          "after": 0.0,
          "delta": -0.343,
          "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": 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.4018,
          "after": 0.0,
          "delta": -0.4018,
          "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.4018,
          "after": 0.0,
          "delta": -0.4018,
          "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.158,
        "predicted_3B": 0.0286,
        "predicted_BB": 0.3075,
        "predicted_H": 0.8717,
        "predicted_HR": 0.1039,
        "predicted_RBI": 0.4473,
        "predicted_SO": 0.7002
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.158,
          "delta": 0.158,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0286,
          "delta": 0.0286,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.3075,
          "delta": 0.3075,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8717,
          "delta": -0.1283,
          "percent_delta": -0.1283,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1039,
          "delta": 0.1039,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.4473,
          "delta": 0.4473,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.7002,
          "delta": -0.2998,
          "percent_delta": -0.2998,
          "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.4473,
          "delta": 0.4473,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.7002,
          "delta": -0.2998,
          "percent_delta": -0.2998,
          "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": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SO": 0.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.158,
          "after": 1.0,
          "delta": 0.842,
          "percent_delta": 5.3291,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0286,
          "after": 0.0,
          "delta": -0.0286,
          "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.3075,
          "after": 1.0,
          "delta": 0.6925,
          "percent_delta": 2.252,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8717,
          "after": 1.0,
          "delta": 0.1283,
          "percent_delta": 0.1472,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1039,
          "after": 0.0,
          "delta": -0.1039,
          "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.4473,
          "after": 1.0,
          "delta": 0.5527,
          "percent_delta": 1.2356,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.7002,
          "after": 0.0,
          "delta": -0.7002,
          "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_2B",
          "before": 0.158,
          "after": 1.0,
          "delta": 0.842,
          "percent_delta": 5.3291,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 0.7002,
          "after": 0.0,
          "delta": -0.7002,
          "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.238,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.303,
        "predicted_R": 0.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.1269,
          "after": 0.238,
          "delta": 0.1111,
          "percent_delta": 0.8755,
          "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.2007,
          "after": 0.303,
          "delta": 0.1023,
          "percent_delta": 0.5097,
          "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.282,
          "after": 0.382,
          "delta": 0.1,
          "percent_delta": 0.3546,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "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": 7,
        "boosted_metrics": 4,
        "deboosted_metrics": 3,
        "better_metrics": 3,
        "worse_metrics": 4,
        "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": {
          "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": 0.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": 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": 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": 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_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.1269,
        "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.2007,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.282,
        "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.1269,
          "delta": -0.1111,
          "percent_delta": -0.4669,
          "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.303,
          "after": 0.2007,
          "delta": -0.1023,
          "percent_delta": -0.3377,
          "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.382,
          "after": 0.282,
          "delta": -0.1,
          "percent_delta": -0.2617,
          "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.238,
          "after": 0.1269,
          "delta": -0.1111,
          "percent_delta": -0.4669,
          "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.121,
        "after": 0.0,
        "delta": -0.121,
        "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": 2.767,
        "after": 4.0,
        "delta": 1.233,
        "percent_delta": 0.4456,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.203,
        "after": 0.1269,
        "delta": -0.0761,
        "percent_delta": -0.3749,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "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": 0.21,
        "after": 0.0,
        "delta": -0.21,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.05,
        "after": 0.0,
        "delta": -0.05,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.273,
        "after": 0.2007,
        "delta": -0.0723,
        "percent_delta": -0.2648,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.388,
        "after": 1.0,
        "delta": 0.612,
        "percent_delta": 1.5773,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.21,
        "after": 1.0,
        "delta": 0.79,
        "percent_delta": 3.7619,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.398,
        "after": 0.282,
        "delta": -0.116,
        "percent_delta": -0.2915,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.569,
        "after": 1.0,
        "delta": 0.431,
        "percent_delta": 0.7575,
        "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": 2.767,
        "after": 4.0,
        "delta": 1.233,
        "percent_delta": 0.4456,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_H",
        "before": 0.21,
        "after": 0.0,
        "delta": -0.21,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.121-
predicted_3B0.026-
predicted_AB2.767-
predicted_AVG0.203-
predicted_BB0.233-
predicted_H0.210-
predicted_HR0.050-
predicted_OBP0.273-
predicted_R0.388-
predicted_RBI0.210-
predicted_SLG0.398-
predicted_SO0.569-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.110-0.011
predicted_3B0.021-0.005
predicted_AB2.704-0.063
predicted_AVG0.202-0.001
predicted_BB0.2510.018
predicted_H0.3450.135
predicted_HBP0.033-
predicted_HR0.0900.040
predicted_OBP0.2780.005
predicted_R0.4070.019
predicted_RBI0.2860.076
predicted_SLG0.4040.006
predicted_SO0.547-0.022
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1100.000
predicted_3B0.0210.000
predicted_AB2.7040.000
predicted_AVG0.127-0.075
predicted_BB0.250-0.001
predicted_H0.343-0.002
predicted_HBP0.0330.000
predicted_HR0.089-0.000
predicted_OBP0.201-0.077
predicted_R0.402-0.005
predicted_RBI0.282-0.004
predicted_SLG0.282-0.122
predicted_SO0.5500.003
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 4 (raw=2.77), rates preserved: AVG=0.125 HR/AB=0.032

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB4.000-
BB0.000-
H0.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.000-
H1.0001.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1580.158
3B0.0290.029
BB0.3070.307
H0.872-0.128
HR0.1040.104
RBI0.4470.447
SO0.700-0.300
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B1.0000.842
3B0.000-0.029
AB4.0000.000
BB1.0000.693
H1.0000.128
HR0.000-0.104
R0.0000.000
RBI1.0000.553
SO0.000-0.700
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.110
predicted_3B0.000-0.021
predicted_AB4.0001.296
predicted_AVG0.2380.111
predicted_BB0.000-0.250
predicted_H1.0000.657
predicted_HR0.000-0.089
predicted_OBP0.3030.102
predicted_R0.000-0.402
predicted_RBI0.000-0.282
predicted_SLG0.3820.100
predicted_SO1.0000.450
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.000-1.000
3B0.0000.000
AB4.0000.000
BB1.0000.000
CS0.0000.000
H0.000-1.000
HBP0.0000.000
HR0.0000.000
PA5.000-
R1.0001.000
RBI1.0000.000
SB0.0000.000
SF0.0000.000
SO1.0001.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 116
Reference playing time: 3.803
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-10.0001.0000.0000.0001.0002.0002.0002.0001.0000.10000.25000.40000.10000.10000.20000.20000.1000
last_100.2010-23.0004.0001.0000.0002.0004.0005.0002.0006.0000.17390.24000.47830.17390.08700.17390.08700.2609
season0.60116-321.00076.00014.0003.00010.00040.00045.00027.00066.0000.23680.30730.39250.23680.03120.12460.08410.2056
Weighted Prediction From Real Data
MetricValue
predicted_2B0.0940
predicted_3B0.0140
predicted_AB2.6190
predicted_AVG0.2008
predicted_BB0.2750
predicted_H0.5260
predicted_HBP0.0330
predicted_HR0.1430
predicted_OBP0.2842
predicted_R0.4320
predicted_RBI0.3870
predicted_SLG0.4109
predicted_SO0.5180
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.12100.09400.1095model_form_blend
predicted_3B0.02600.01400.0209model_form_blend
predicted_AB2.76702.61902.7037model_form_blend
predicted_AVG0.20300.20080.2021model_form_blend
predicted_BB0.23300.27500.2510model_form_blend
predicted_H0.21000.52600.3451model_form_blend
predicted_HBP-0.03300.0330form_only
predicted_HR0.05000.14300.0897model_form_blend
predicted_OBP0.27300.28420.2778model_form_blend
predicted_R0.38800.43200.4068model_form_blend
predicted_RBI0.21000.38700.2856model_form_blend
predicted_SLG0.39800.41090.4035model_form_blend
predicted_SO0.56900.51800.5472model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date377
Season rows before report date377
Report year2026
Profile rows used116
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA5
AB4
H0
2B0
3B0
HR0
R1
RBI1
BB1
SO1
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB1
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB0
Hitting_battingOrder2
Hitting_substitutionOrder1
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedCF
gameID20260920_SF@LAD
game_typeshort
mlbID687551
playerID687551
playerNameDrew Gilbert
posCF
startedFalse
startingPositionCF
teamSF
teamID24
game_date2026-09-20
sl_k_percent17.9
sl_bb_percent9.8
sl_woba0.314
sl_xwoba0.331
sl_xba0.257
sl_xslg0.396
sl_sweet_spot_percent36.2
sl_barrel_batted_rate5.7
sl_hard_hit_percent36.2
sl_exit_velocity_avg86.6
sl_launch_angle_avg14.1
sl_whiff_percent22.5
sl_swing_percent42.2
Scott Bandura (814154) · BATTER · LF · Team SF
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 14
All-history rows before 20260921: 14
System season_avg: 0.1880
Data season_avg (2026 season-to-date): 0.2308
Diff (system - data): -0.0428
System opponent_avg: 0.1880
System season_avg diverges from 2026 season-to-date by -0.0428. This usually means mixed-season window logic.

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1560.0000.000Hitting_2B0.2860.000-0.2860.000
predicted_3B0.0000.0000.000Hitting_3B0.0000.0000.0000.000
predicted_AB2.5003.0003.000Hitting_AB2.7863.0000.2140.000
predicted_AVG0.2230.0000.000Hitting_AVG0.2310.000-0.2310.000
predicted_BB0.1561.0000.000Hitting_BB0.2860.0000.7141.000
predicted_CS-0.0000.000BaseRunning_CS0.0000.0000.0000.000
predicted_H0.4000.0000.000Hitting_H0.6430.000-0.6430.000
predicted_HR0.0400.0000.000Hitting_HR0.0000.0000.0000.000
predicted_OBP0.2350.2500.000Hitting_OBP0.3020.000-0.0520.250
predicted_R0.3120.0000.000Hitting_R0.3570.000-0.3570.000
predicted_RBI0.1600.0000.000Hitting_RBI0.0000.0000.0000.000
predicted_SLG0.3270.0000.000Hitting_SLG0.3330.000-0.3330.000
predicted_SO1.4060.0001.000Hitting_SO1.2142.000-1.214-2.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics10
Boosted Metrics2
Deboosted Metrics8
Better Metrics3
Worse Metrics7
Biggest Boostpredicted_BB: 0.1560 -> 1.0000 (boost 0.8440, better)
Biggest Deboostpredicted_SO: 1.4060 -> 0.0000 (deboost -1.4060, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend54150predicted_AB: 2.5000 -> 2.6927 (boost 0.1927, better)predicted_SO: 1.4060 -> 1.3065 (deboost -0.0995, 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.
3team_form_snapshot30303-predicted_AVG: 0.2235 -> 0.1793 (deboost -0.0442, worse)Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling62433predicted_H: 0.4829 -> 1.0000 (boost 0.5171, better)predicted_SO: 1.3138 -> 1.0000 (deboost -0.3138, better)AB rounded to 3 (raw=2.69), rates preserved: AVG=0.181 HR/AB=0.018
6consistency_constraints10101-predicted_R: 0.3282 -> 0.0000 (deboost -0.3282, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine64251predicted_RBI: 0.0000 -> 0.3464 (boost 0.3464, better)predicted_H: 1.0000 -> 0.7202 (deboost -0.2798, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation61506predicted_SO: 0.9043 -> 1.0000 (boost 0.0957, worse)predicted_H: 0.7202 -> 0.0000 (deboost -0.7202, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context44040predicted_H: 0.0000 -> 1.0000 (boost 1.0000, better)-Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10simulation_box_score_reference31221predicted_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
11current_json_final30303-predicted_OBP: 0.3080 -> 0.2246 (deboost -0.0834, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "814154",
  "player_name": "Scott Bandura",
  "position": "LF",
  "team": "SF",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.156,
        "predicted_3B": 0.0,
        "predicted_AB": 2.5,
        "predicted_AVG": 0.223,
        "predicted_BB": 0.156,
        "predicted_H": 0.4,
        "predicted_HR": 0.04,
        "predicted_OBP": 0.235,
        "predicted_R": 0.312,
        "predicted_RBI": 0.16,
        "predicted_SLG": 0.327,
        "predicted_SO": 1.406
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.0021,
        "predicted_AB": 2.6927,
        "predicted_AVG": 0.2235,
        "predicted_BB": 0.1581,
        "predicted_H": 0.4858,
        "predicted_HBP": 0.018,
        "predicted_HR": 0.0484,
        "predicted_OBP": 0.2432,
        "predicted_R": 0.3323,
        "predicted_RBI": 0.1869,
        "predicted_SLG": 0.3348,
        "predicted_SO": 1.3065
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.156,
          "after": 0.1657,
          "delta": 0.0097,
          "percent_delta": 0.0622,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0021,
          "delta": 0.0021,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 2.5,
          "after": 2.6927,
          "delta": 0.1927,
          "percent_delta": 0.0771,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.223,
          "after": 0.2235,
          "delta": 0.0005,
          "percent_delta": 0.0022,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.156,
          "after": 0.1581,
          "delta": 0.0021,
          "percent_delta": 0.0135,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.4,
          "after": 0.4858,
          "delta": 0.0858,
          "percent_delta": 0.2145,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.04,
          "after": 0.0484,
          "delta": 0.0084,
          "percent_delta": 0.21,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.235,
          "after": 0.2432,
          "delta": 0.0082,
          "percent_delta": 0.0349,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.312,
          "after": 0.3323,
          "delta": 0.0203,
          "percent_delta": 0.0651,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.16,
          "after": 0.1869,
          "delta": 0.0269,
          "percent_delta": 0.1681,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.327,
          "after": 0.3348,
          "delta": 0.0078,
          "percent_delta": 0.0239,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.406,
          "after": 1.3065,
          "delta": -0.0995,
          "percent_delta": -0.0708,
          "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": 2.5,
          "after": 2.6927,
          "delta": 0.1927,
          "percent_delta": 0.0771,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.406,
          "after": 1.3065,
          "delta": -0.0995,
          "percent_delta": -0.0708,
          "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": 7,
        "season": 7
      }
    },
    {
      "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.0021,
        "predicted_AB": 2.6927,
        "predicted_AVG": 0.1793,
        "predicted_BB": 0.1572,
        "predicted_H": 0.4829,
        "predicted_HBP": 0.018,
        "predicted_HR": 0.0482,
        "predicted_OBP": 0.2246,
        "predicted_R": 0.3282,
        "predicted_RBI": 0.1846,
        "predicted_SLG": 0.2962,
        "predicted_SO": 1.3138
      },
      "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.0021,
          "after": 0.0021,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 2.6927,
          "after": 2.6927,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2235,
          "after": 0.1793,
          "delta": -0.0442,
          "percent_delta": -0.1978,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.1581,
          "after": 0.1572,
          "delta": -0.0009,
          "percent_delta": -0.0057,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.4858,
          "after": 0.4829,
          "delta": -0.0029,
          "percent_delta": -0.006,
          "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.0484,
          "after": 0.0482,
          "delta": -0.0002,
          "percent_delta": -0.0041,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2432,
          "after": 0.2246,
          "delta": -0.0186,
          "percent_delta": -0.0765,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.3323,
          "after": 0.3282,
          "delta": -0.0041,
          "percent_delta": -0.0123,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.1869,
          "after": 0.1846,
          "delta": -0.0023,
          "percent_delta": -0.0123,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3348,
          "after": 0.2962,
          "delta": -0.0386,
          "percent_delta": -0.1153,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.3065,
          "after": 1.3138,
          "delta": 0.0073,
          "percent_delta": 0.0056,
          "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.2235,
          "after": 0.1793,
          "delta": -0.0442,
          "percent_delta": -0.1978,
          "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.69), rates preserved: AVG=0.181 HR/AB=0.018",
      "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.0021,
          "after": 0.0,
          "delta": -0.0021,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 2.6927,
          "after": 3.0,
          "delta": 0.3073,
          "percent_delta": 0.1141,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.1572,
          "after": 0.0,
          "delta": -0.1572,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.4829,
          "after": 1.0,
          "delta": 0.5171,
          "percent_delta": 1.0708,
          "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.0482,
          "after": 0.0,
          "delta": -0.0482,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.1846,
          "after": 0.0,
          "delta": -0.1846,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.3138,
          "after": 1.0,
          "delta": -0.3138,
          "percent_delta": -0.2388,
          "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_H",
          "before": 0.4829,
          "after": 1.0,
          "delta": 0.5171,
          "percent_delta": 1.0708,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.3138,
          "after": 1.0,
          "delta": -0.3138,
          "percent_delta": -0.2388,
          "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": 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.3282,
          "after": 0.0,
          "delta": -0.3282,
          "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.3282,
          "after": 0.0,
          "delta": -0.3282,
          "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.1326,
        "predicted_3B": 0.0166,
        "predicted_BB": 0.2696,
        "predicted_H": 0.7202,
        "predicted_HR": 0.0843,
        "predicted_RBI": 0.3464,
        "predicted_SO": 0.9043
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1326,
          "delta": 0.1326,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0166,
          "delta": 0.0166,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.2696,
          "delta": 0.2696,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7202,
          "delta": -0.2798,
          "percent_delta": -0.2798,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.0843,
          "delta": 0.0843,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.3464,
          "delta": 0.3464,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.9043,
          "delta": -0.0957,
          "percent_delta": -0.0957,
          "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.3464,
          "delta": 0.3464,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7202,
          "delta": -0.2798,
          "percent_delta": -0.2798,
          "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.1326,
          "after": 0.0,
          "delta": -0.1326,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0166,
          "after": 0.0,
          "delta": -0.0166,
          "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.2696,
          "after": 0.0,
          "delta": -0.2696,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.7202,
          "after": 0.0,
          "delta": -0.7202,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0843,
          "after": 0.0,
          "delta": -0.0843,
          "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.3464,
          "after": 0.0,
          "delta": -0.3464,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.9043,
          "after": 1.0,
          "delta": 0.0957,
          "percent_delta": 0.1058,
          "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.9043,
          "after": 1.0,
          "delta": 0.0957,
          "percent_delta": 0.1058,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 0.7202,
          "after": 0.0,
          "delta": -0.7202,
          "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.24,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.308,
        "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": 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.1793,
          "after": 0.24,
          "delta": 0.0607,
          "percent_delta": 0.3385,
          "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.2246,
          "after": 0.308,
          "delta": 0.0834,
          "percent_delta": 0.3713,
          "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.2962,
          "after": 0.379,
          "delta": 0.0828,
          "percent_delta": 0.2795,
          "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": 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": 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": 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_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.1793,
        "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.2246,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.2962,
        "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.24,
          "after": 0.1793,
          "delta": -0.0607,
          "percent_delta": -0.2528,
          "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.308,
          "after": 0.2246,
          "delta": -0.0834,
          "percent_delta": -0.2708,
          "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.379,
          "after": 0.2962,
          "delta": -0.0828,
          "percent_delta": -0.2186,
          "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_OBP",
          "before": 0.308,
          "after": 0.2246,
          "delta": -0.0834,
          "percent_delta": -0.2708,
          "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.156,
        "after": 0.0,
        "delta": -0.156,
        "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.223,
        "after": 0.1793,
        "delta": -0.0437,
        "percent_delta": -0.196,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.156,
        "after": 1.0,
        "delta": 0.844,
        "percent_delta": 5.4103,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.4,
        "after": 0.0,
        "delta": -0.4,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.04,
        "after": 0.0,
        "delta": -0.04,
        "percent_delta": -1.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_OBP",
        "before": 0.235,
        "after": 0.2246,
        "delta": -0.0104,
        "percent_delta": -0.0443,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.312,
        "after": 0.0,
        "delta": -0.312,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.16,
        "after": 0.0,
        "delta": -0.16,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.327,
        "after": 0.2962,
        "delta": -0.0308,
        "percent_delta": -0.0942,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 1.406,
        "after": 0.0,
        "delta": -1.406,
        "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.156,
        "after": 1.0,
        "delta": 0.844,
        "percent_delta": 5.4103,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_SO",
        "before": 1.406,
        "after": 0.0,
        "delta": -1.406,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.156-
predicted_3B0.000-
predicted_AB2.500-
predicted_AVG0.223-
predicted_BB0.156-
predicted_H0.400-
predicted_HR0.040-
predicted_OBP0.235-
predicted_R0.312-
predicted_RBI0.160-
predicted_SLG0.327-
predicted_SO1.406-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.1660.010
predicted_3B0.0020.002
predicted_AB2.6930.193
predicted_AVG0.2240.001
predicted_BB0.1580.002
predicted_H0.4860.086
predicted_HBP0.018-
predicted_HR0.0480.008
predicted_OBP0.2430.008
predicted_R0.3320.020
predicted_RBI0.1870.027
predicted_SLG0.3350.008
predicted_SO1.306-0.099
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1660.000
predicted_3B0.0020.000
predicted_AB2.6930.000
predicted_AVG0.179-0.044
predicted_BB0.157-0.001
predicted_H0.483-0.003
predicted_HBP0.0180.000
predicted_HR0.048-0.000
predicted_OBP0.225-0.019
predicted_R0.328-0.004
predicted_RBI0.185-0.002
predicted_SLG0.296-0.039
predicted_SO1.3140.007
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 3 (raw=2.69), rates preserved: AVG=0.181 HR/AB=0.018

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB3.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1330.133
3B0.0170.017
BB0.2700.270
H0.720-0.280
HR0.0840.084
RBI0.3460.346
SO0.904-0.096
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.133
3B0.000-0.017
AB3.0000.000
BB0.000-0.270
H0.000-0.720
HR0.000-0.084
R0.0000.000
RBI0.000-0.346
SO1.0000.096
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.166
predicted_3B0.000-0.002
predicted_AB3.0000.307
predicted_AVG0.2400.061
predicted_BB0.000-0.157
predicted_H1.0000.517
predicted_HR0.000-0.048
predicted_OBP0.3080.083
predicted_R0.000-0.328
predicted_RBI0.000-0.185
predicted_SLG0.3790.083
predicted_SO1.000-0.314
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB1.0001.000
CS0.0000.000
H0.0000.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R0.0000.000
RBI0.0000.000
SB0.0000.000
SF0.0000.000
SO0.000-1.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 7
Reference playing time: 3.803
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-11.0002.0001.0000.0000.0000.0001.0000.0005.0000.18180.18180.27270.18180.00000.00000.00000.4546
last_100.207-16.0003.0001.0000.0000.0000.0002.0001.0009.0000.18750.23530.25000.18750.00000.00000.06250.5625
season0.607-16.0003.0001.0000.0000.0000.0002.0001.0009.0000.18750.23530.25000.18750.00000.00000.06250.5625
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1930
predicted_3B0.0080
predicted_AB3.2320
predicted_AVG0.2248
predicted_BB0.1640
predicted_H0.7260
predicted_HBP0.0180
predicted_HR0.0720
predicted_OBP0.2663
predicted_R0.3890
predicted_RBI0.2620
predicted_SLG0.3566
predicted_SO1.0280
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.15600.19300.1657model_form_blend
predicted_3B0.00000.00800.0021model_form_blend
predicted_AB2.50003.23202.6927model_form_blend
predicted_AVG0.22300.22480.2235model_form_blend
predicted_BB0.15600.16400.1581model_form_blend
predicted_H0.40000.72600.4858model_form_blend
predicted_HBP-0.01800.0180form_only
predicted_HR0.04000.07200.0484model_form_blend
predicted_OBP0.23500.26630.2432model_form_blend
predicted_R0.31200.38900.3323model_form_blend
predicted_RBI0.16000.26200.1869model_form_blend
predicted_SLG0.32700.35660.3348model_form_blend
predicted_SO1.40601.02801.3065model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date14
Season rows before report date14
Report year2026
Profile rows used7
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA4
AB3
H0
2B0
3B0
HR0
R0
RBI0
BB1
SO0
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB3
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO2
Hitting_TB0
Hitting_battingOrder6
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedLF
gameID20260920_SF@LAD
game_typefull
mlbID814154
playerID814154
playerNameScott Bandura
posLF
startedTrue
startingPositionLF
teamSF
teamID24
game_date2026-09-20
sl_k_percent50.0
sl_bb_percent7.1
sl_woba0.267
sl_xwoba0.153
sl_xba0.111
sl_xslg0.145
sl_sweet_spot_percent50.0
sl_barrel_batted_rate0.0
sl_hard_hit_percent16.7
sl_exit_velocity_avg75.7
sl_launch_angle_avg24.9
sl_whiff_percent46.2
sl_swing_percent47.3
Drew Cavanaugh (701852) · BATTER · C · Team SF
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 152
All-history rows before 20260921: 152
System season_avg: 0.2370
Data season_avg (2026 season-to-date): 0.2686
Diff (system - data): -0.0316
System opponent_avg: 0.2370
System season_avg diverges from 2026 season-to-date by -0.0316. This usually means mixed-season window logic.

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.0600.0000.000Hitting_2B0.0920.000-0.0920.000
predicted_3B0.0000.0000.000Hitting_3B0.0000.0000.0000.000
predicted_AB2.6204.0003.000Hitting_AB2.9142.0001.0862.000
predicted_AVG0.2090.0000.333Hitting_AVG0.2690.000-0.2690.000
predicted_BB0.3200.0001.000Hitting_BB0.3820.000-0.3820.000
predicted_CS-0.0000.000BaseRunning_CS0.0000.0000.0000.000
predicted_H0.5200.0001.000Hitting_H0.7830.000-0.7830.000
predicted_HR0.0600.0000.000Hitting_HR0.0200.000-0.0200.000
predicted_OBP0.2790.0000.500Hitting_OBP0.3530.000-0.3530.000
predicted_R0.1800.0000.000Hitting_R0.2170.000-0.2170.000
predicted_RBI0.2000.0000.000Hitting_RBI0.2240.000-0.2240.000
predicted_SLG0.2910.0000.333Hitting_SLG0.3210.000-0.3210.000
predicted_SO0.9001.0001.000Hitting_SO0.8552.0000.145-1.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics11
Boosted Metrics4
Deboosted Metrics7
Better Metrics3
Worse Metrics8
Biggest Boostpredicted_AB: 2.6200 -> 4.0000 (boost 1.3800, better)
Biggest Deboostpredicted_H: 0.5200 -> 0.0000 (deboost -0.5200, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend22011predicted_SO: 0.9000 -> 0.9653 (boost 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.
3team_form_snapshot10101-predicted_AVG: 0.2070 -> 0.1995 (deboost -0.0075, worse)Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling62424predicted_H: 0.5288 -> 1.0000 (boost 0.4712, better)predicted_BB: 0.3166 -> 0.0000 (deboost -0.3166, worse)AB rounded to 3 (raw=2.65), rates preserved: AVG=0.201 HR/AB=0.026
6consistency_constraints10101-predicted_R: 0.2221 -> 0.0000 (deboost -0.2221, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine54141predicted_BB: 0.0000 -> 0.3579 (boost 0.3579, better)predicted_H: 1.0000 -> 0.8073 (deboost -0.1927, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation52323predicted_BB: 0.3579 -> 1.0000 (boost 0.6421, better)predicted_RBI: 0.3525 -> 0.0000 (deboost -0.3525, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context43131predicted_SLG: 0.3009 -> 0.3540 (boost 0.0531, 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
10simulation_box_score_reference21111predicted_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
11current_json_final30303-predicted_SLG: 0.3540 -> 0.3009 (deboost -0.0531, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "701852",
  "player_name": "Drew Cavanaugh",
  "position": "C",
  "team": "SF",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.06,
        "predicted_3B": 0.0,
        "predicted_AB": 2.62,
        "predicted_AVG": 0.209,
        "predicted_BB": 0.32,
        "predicted_H": 0.52,
        "predicted_HR": 0.06,
        "predicted_OBP": 0.279,
        "predicted_R": 0.18,
        "predicted_RBI": 0.2,
        "predicted_SLG": 0.291,
        "predicted_SO": 0.9
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.0568,
        "predicted_3B": 0.0008,
        "predicted_AB": 2.6512,
        "predicted_AVG": 0.207,
        "predicted_BB": 0.3184,
        "predicted_H": 0.532,
        "predicted_HBP": 0.004,
        "predicted_HR": 0.0704,
        "predicted_OBP": 0.2831,
        "predicted_R": 0.2248,
        "predicted_RBI": 0.2084,
        "predicted_SLG": 0.3029,
        "predicted_SO": 0.9653
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.06,
          "after": 0.0568,
          "delta": -0.0032,
          "percent_delta": -0.0533,
          "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": 2.62,
          "after": 2.6512,
          "delta": 0.0312,
          "percent_delta": 0.0119,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.209,
          "after": 0.207,
          "delta": -0.002,
          "percent_delta": -0.0096,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.32,
          "after": 0.3184,
          "delta": -0.0016,
          "percent_delta": -0.005,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.52,
          "after": 0.532,
          "delta": 0.012,
          "percent_delta": 0.0231,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.06,
          "after": 0.0704,
          "delta": 0.0104,
          "percent_delta": 0.1733,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.279,
          "after": 0.2831,
          "delta": 0.0041,
          "percent_delta": 0.0147,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.18,
          "after": 0.2248,
          "delta": 0.0448,
          "percent_delta": 0.2489,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.2,
          "after": 0.2084,
          "delta": 0.0084,
          "percent_delta": 0.042,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.291,
          "after": 0.3029,
          "delta": 0.0119,
          "percent_delta": 0.0409,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.9,
          "after": 0.9653,
          "delta": 0.0653,
          "percent_delta": 0.0726,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 2,
        "boosted_metrics": 2,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 1,
        "biggest_boost": {
          "metric": "predicted_SO",
          "before": 0.9,
          "after": 0.9653,
          "delta": 0.0653,
          "percent_delta": 0.0726,
          "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": 50
      }
    },
    {
      "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.0568,
        "predicted_3B": 0.0008,
        "predicted_AB": 2.6512,
        "predicted_AVG": 0.1995,
        "predicted_BB": 0.3166,
        "predicted_H": 0.5288,
        "predicted_HBP": 0.004,
        "predicted_HR": 0.0702,
        "predicted_OBP": 0.2849,
        "predicted_R": 0.2221,
        "predicted_RBI": 0.2059,
        "predicted_SLG": 0.3009,
        "predicted_SO": 0.9707
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0568,
          "after": 0.0568,
          "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": 2.6512,
          "after": 2.6512,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.207,
          "after": 0.1995,
          "delta": -0.0075,
          "percent_delta": -0.0362,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3184,
          "after": 0.3166,
          "delta": -0.0018,
          "percent_delta": -0.0057,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.532,
          "after": 0.5288,
          "delta": -0.0032,
          "percent_delta": -0.006,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HBP",
          "before": 0.004,
          "after": 0.004,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.0704,
          "after": 0.0702,
          "delta": -0.0002,
          "percent_delta": -0.0028,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2831,
          "after": 0.2849,
          "delta": 0.0018,
          "percent_delta": 0.0064,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.2248,
          "after": 0.2221,
          "delta": -0.0027,
          "percent_delta": -0.012,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.2084,
          "after": 0.2059,
          "delta": -0.0025,
          "percent_delta": -0.012,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3029,
          "after": 0.3009,
          "delta": -0.002,
          "percent_delta": -0.0066,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.9653,
          "after": 0.9707,
          "delta": 0.0054,
          "percent_delta": 0.0056,
          "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.207,
          "after": 0.1995,
          "delta": -0.0075,
          "percent_delta": -0.0362,
          "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.201 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.0568,
          "after": 0.0,
          "delta": -0.0568,
          "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": 2.6512,
          "after": 3.0,
          "delta": 0.3488,
          "percent_delta": 0.1316,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3166,
          "after": 0.0,
          "delta": -0.3166,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.5288,
          "after": 1.0,
          "delta": 0.4712,
          "percent_delta": 0.8911,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HBP",
          "before": 0.004,
          "after": 0.0,
          "delta": -0.004,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.0702,
          "after": 0.0,
          "delta": -0.0702,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.2059,
          "after": 0.0,
          "delta": -0.2059,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.9707,
          "after": 1.0,
          "delta": 0.0293,
          "percent_delta": 0.0302,
          "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.5288,
          "after": 1.0,
          "delta": 0.4712,
          "percent_delta": 0.8911,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.3166,
          "after": 0.0,
          "delta": -0.3166,
          "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.2221,
          "after": 0.0,
          "delta": -0.2221,
          "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.2221,
          "after": 0.0,
          "delta": -0.2221,
          "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.1378,
        "predicted_3B": 0.0162,
        "predicted_BB": 0.3579,
        "predicted_H": 0.8073,
        "predicted_HR": 0.0724,
        "predicted_RBI": 0.3525,
        "predicted_SO": 0.9697
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1378,
          "delta": 0.1378,
          "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.3579,
          "delta": 0.3579,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8073,
          "delta": -0.1927,
          "percent_delta": -0.1927,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.0724,
          "delta": 0.0724,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.3525,
          "delta": 0.3525,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.9697,
          "delta": -0.0303,
          "percent_delta": -0.0303,
          "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.3579,
          "delta": 0.3579,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8073,
          "delta": -0.1927,
          "percent_delta": -0.1927,
          "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": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1378,
          "after": 0.0,
          "delta": -0.1378,
          "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.3579,
          "after": 1.0,
          "delta": 0.6421,
          "percent_delta": 1.7941,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8073,
          "after": 1.0,
          "delta": 0.1927,
          "percent_delta": 0.2387,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0724,
          "after": 0.0,
          "delta": -0.0724,
          "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.3525,
          "after": 0.0,
          "delta": -0.3525,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.9697,
          "after": 1.0,
          "delta": 0.0303,
          "percent_delta": 0.0312,
          "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.3579,
          "after": 1.0,
          "delta": 0.6421,
          "percent_delta": 1.7941,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.3525,
          "after": 0.0,
          "delta": -0.3525,
          "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.239,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.318,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.354,
        "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.1995,
          "after": 0.239,
          "delta": 0.0395,
          "percent_delta": 0.198,
          "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.2849,
          "after": 0.318,
          "delta": 0.0331,
          "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_SLG",
          "before": 0.3009,
          "after": 0.354,
          "delta": 0.0531,
          "percent_delta": 0.1765,
          "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.3009,
          "after": 0.354,
          "delta": 0.0531,
          "percent_delta": 0.1765,
          "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": 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.1995,
        "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.2849,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.3009,
        "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.239,
          "after": 0.1995,
          "delta": -0.0395,
          "percent_delta": -0.1654,
          "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.318,
          "after": 0.2849,
          "delta": -0.0331,
          "percent_delta": -0.1042,
          "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.354,
          "after": 0.3009,
          "delta": -0.0531,
          "percent_delta": -0.1501,
          "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.354,
          "after": 0.3009,
          "delta": -0.0531,
          "percent_delta": -0.1501,
          "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.06,
        "after": 0.0,
        "delta": -0.06,
        "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.62,
        "after": 4.0,
        "delta": 1.38,
        "percent_delta": 0.5267,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.209,
        "after": 0.1995,
        "delta": -0.0095,
        "percent_delta": -0.0455,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.32,
        "after": 0.0,
        "delta": -0.32,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.52,
        "after": 0.0,
        "delta": -0.52,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "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.279,
        "after": 0.2849,
        "delta": 0.0059,
        "percent_delta": 0.0211,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.18,
        "after": 0.0,
        "delta": -0.18,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.2,
        "after": 0.0,
        "delta": -0.2,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.291,
        "after": 0.3009,
        "delta": 0.0099,
        "percent_delta": 0.034,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.9,
        "after": 1.0,
        "delta": 0.1,
        "percent_delta": 0.1111,
        "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_AB",
        "before": 2.62,
        "after": 4.0,
        "delta": 1.38,
        "percent_delta": 0.5267,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_H",
        "before": 0.52,
        "after": 0.0,
        "delta": -0.52,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.060-
predicted_3B0.000-
predicted_AB2.620-
predicted_AVG0.209-
predicted_BB0.320-
predicted_H0.520-
predicted_HR0.060-
predicted_OBP0.279-
predicted_R0.180-
predicted_RBI0.200-
predicted_SLG0.291-
predicted_SO0.900-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.057-0.003
predicted_3B0.0010.001
predicted_AB2.6510.031
predicted_AVG0.207-0.002
predicted_BB0.318-0.002
predicted_H0.5320.012
predicted_HBP0.004-
predicted_HR0.0700.010
predicted_OBP0.2830.004
predicted_R0.2250.045
predicted_RBI0.2080.008
predicted_SLG0.3030.012
predicted_SO0.9650.065
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.0570.000
predicted_3B0.0010.000
predicted_AB2.6510.000
predicted_AVG0.200-0.007
predicted_BB0.317-0.002
predicted_H0.529-0.003
predicted_HBP0.0040.000
predicted_HR0.070-0.000
predicted_OBP0.2850.002
predicted_R0.222-0.003
predicted_RBI0.206-0.003
predicted_SLG0.301-0.002
predicted_SO0.9710.005
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 3 (raw=2.65), rates preserved: AVG=0.201 HR/AB=0.026

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB3.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1380.138
3B0.0160.016
BB0.3580.358
H0.807-0.193
HR0.0720.072
RBI0.3520.352
SO0.970-0.030
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.138
3B0.000-0.016
AB3.0000.000
BB1.0000.642
H1.0000.193
HR0.000-0.072
R0.0000.000
RBI0.000-0.352
SO1.0000.030
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.057
predicted_3B0.000-0.001
predicted_AB3.0000.349
predicted_AVG0.2390.039
predicted_BB0.000-0.317
predicted_H1.0000.471
predicted_HR0.000-0.070
predicted_OBP0.3180.033
predicted_R0.000-0.222
predicted_RBI0.000-0.206
predicted_SLG0.3540.053
predicted_SO1.0000.029
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0001.000
BB0.000-1.000
CS0.0000.000
H0.000-1.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R0.0000.000
RBI0.0000.000
SB0.0000.000
SF0.0000.000
SO1.0000.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 50
Reference playing time: 3.803
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-11.0001.0000.0000.0001.0001.0002.0002.0007.0000.09090.23080.36360.09090.09090.09090.18180.6364
last_100.2010-23.0004.0000.0000.0001.0001.0003.0002.00011.0000.17390.24000.30430.17390.04350.04350.08700.4783
season0.6050-131.00031.0003.0000.0001.00010.0009.00016.00045.0000.23660.31970.28240.23660.00760.07630.12210.3435
Weighted Prediction From Real Data
MetricValue
predicted_2B0.0520
predicted_3B0.0020
predicted_AB2.6980
predicted_AVG0.2039
predicted_BB0.3160
predicted_H0.5500
predicted_HBP0.0040
predicted_HR0.0860
predicted_OBP0.2893
predicted_R0.2920
predicted_RBI0.2210
predicted_SLG0.3208
predicted_SO1.0630
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.06000.05200.0568model_form_blend
predicted_3B0.00000.00200.0008model_form_blend
predicted_AB2.62002.69802.6512model_form_blend
predicted_AVG0.20900.20390.2070model_form_blend
predicted_BB0.32000.31600.3184model_form_blend
predicted_H0.52000.55000.5320model_form_blend
predicted_HBP-0.00400.0040form_only
predicted_HR0.06000.08600.0704model_form_blend
predicted_OBP0.27900.28930.2831model_form_blend
predicted_R0.18000.29200.2248model_form_blend
predicted_RBI0.20000.22100.2084model_form_blend
predicted_SLG0.29100.32080.3029model_form_blend
predicted_SO0.90001.06300.9653model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date152
Season rows before report date152
Report year2026
Profile rows used50
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA4
AB4
H0
2B0
3B0
HR0
R0
RBI0
BB0
SO1
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB2
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO2
Hitting_TB0
Hitting_battingOrder6
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedC
gameID20260918_SF@LAD
game_typefull
mlbID701852
playerID701852
playerNameDrew Cavanaugh
posC
startedTrue
startingPositionC
teamSF
teamID24
game_date2026-09-18
sl_k_percent29.7
sl_bb_percent11.6
sl_woba0.279
sl_xwoba0.307
sl_xba0.241
sl_xslg0.346
sl_sweet_spot_percent41.8
sl_barrel_batted_rate4.5
sl_hard_hit_percent28.6
sl_exit_velocity_avg85.0
sl_launch_angle_avg12.6
sl_whiff_percent29.2
sl_swing_percent46.8
Blade Tidwell (694918) · PITCHER · Starter · Team SF
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 16
All-history rows before 20260921: 16

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB2.0002.0002.000Pitching_BB1.3121.0000.6881.000
predicted_ER3.0003.0003.000Pitching_ER1.6882.0001.3121.000
predicted_H6.0006.0006.000Pitching_H2.6883.0003.3123.000
predicted_IP5.1005.1005.100Pitching_InningsPitched3.2316.2001.869-1.100
predicted_SO5.0005.0005.000Pitching_SO2.6254.0002.3751.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_form_blend
Tocurrent_json_final
Dominant Effectworse
Changed Metrics1
Boosted Metrics0
Deboosted Metrics1
Better Metrics0
Worse Metrics1
Biggest Boost-
Biggest Deboostpredicted_IP: 5.3333 -> 5.1000 (deboost -0.2333, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
2current_json_final10101-predicted_IP: 5.3333 -> 5.1000 (deboost -0.2333, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "pitcher",
  "player_id": "694918",
  "player_name": "Blade Tidwell",
  "position": "Starter",
  "team": "SF",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 2.0,
        "predicted_ER": 3.0,
        "predicted_H": 6.0,
        "predicted_HR": 2.0,
        "predicted_IP": 5.3333,
        "predicted_SO": 5.0
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      },
      "weights": {},
      "window_games": {}
    },
    {
      "index": 2,
      "step": "current_json_final",
      "description": "Final player values currently stored in the game JSON",
      "stats": {
        "predicted_BB": 2.0,
        "predicted_ER": 3.0,
        "predicted_H": 6.0,
        "predicted_HR": 2.0,
        "predicted_IP": 5.1,
        "predicted_R": 3.0,
        "predicted_SO": 5.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_BB",
          "before": 2.0,
          "after": 2.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_ER",
          "before": 3.0,
          "after": 3.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 6.0,
          "after": 6.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 2.0,
          "after": 2.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_IP",
          "before": 5.3333,
          "after": 5.1,
          "delta": -0.2333,
          "percent_delta": -0.0438,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 5.0,
          "after": 5.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 0,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 1,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_IP",
          "before": 5.3333,
          "after": 5.1,
          "delta": -0.2333,
          "percent_delta": -0.0438,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      },
      "weights": {},
      "window_games": {}
    }
  ],
  "total_change": {
    "from_step": "pitcher_form_blend",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_BB",
        "before": 2.0,
        "after": 2.0,
        "delta": 0.0,
        "percent_delta": 0.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_ER",
        "before": 3.0,
        "after": 3.0,
        "delta": 0.0,
        "percent_delta": 0.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_H",
        "before": 6.0,
        "after": 6.0,
        "delta": 0.0,
        "percent_delta": 0.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_HR",
        "before": 2.0,
        "after": 2.0,
        "delta": 0.0,
        "percent_delta": 0.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_IP",
        "before": 5.3333,
        "after": 5.1,
        "delta": -0.2333,
        "percent_delta": -0.0437,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 5.0,
        "after": 5.0,
        "delta": 0.0,
        "percent_delta": 0.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      }
    ],
    "summary": {
      "changed_metrics": 1,
      "boosted_metrics": 0,
      "deboosted_metrics": 1,
      "better_metrics": 0,
      "worse_metrics": 1,
      "biggest_boost": null,
      "biggest_deboost": {
        "metric": "predicted_IP",
        "before": 5.3333,
        "after": 5.1,
        "delta": -0.2333,
        "percent_delta": -0.0437,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_form_blend

Pitcher model/profile expectation with Bayesian recent-form shrinkage

MetricValueDelta vs Prev Step
predicted_BB2.000-
predicted_ER3.000-
predicted_H6.000-
predicted_HR2.000-
predicted_IP5.333-
predicted_SO5.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 16
Reference playing time: 5.333
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.45526.10014.00020.00011.00022.0005.0004.78481.17720.53160.75950.41770.83540.1899
last_100.351045.10025.00038.00020.00036.0006.0004.96321.27940.55150.83820.44120.79410.1323
season0.201653.10027.00043.00021.00042.0007.0004.55621.20000.50620.80630.39370.78750.1313
Weighted Prediction From Real Data
MetricValue
predicted_BB1.9910
predicted_ER2.5600
predicted_ERA4.7502
predicted_H4.0750
predicted_HR0.7560
predicted_IP5.0000
predicted_SO4.0810
predicted_WHIP1.2506
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB2.00001.99101.9951model_form_blend
predicted_ER3.00002.56002.7583model_form_blend
predicted_ERA-4.75024.7502form_only
predicted_H6.00004.07504.9424model_form_blend
predicted_HR2.00000.75601.3165model_form_blend
predicted_IP5.10005.00005.2000model_form_blend
predicted_SO5.00004.08104.4951model_form_blend
predicted_WHIP-1.25061.2506form_only

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula45% last 5 + 35% last 10 + 20% season
Active form weightslast_5=45%, last_10=35%, season=20%
Model calibration35% raw model + 65% weighted form
Rows before report date16
Season rows before report date16
Report year2026
Profile rows used16
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP5.1
H6
R3
ER3
BB2
SO5
HR2
BF24
Pitches105

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB0
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB0
Hitting_battingOrder0
Hitting_substitutionOrder0
Pitching_BB1
Pitching_Balk0
Pitching_Batters Faced25
Pitching_ER2
Pitching_ERA4.56
Pitching_Flyouts4
Pitching_Groundouts5
Pitching_H3
Pitching_HBP1
Pitching_HR1
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched6.2
Pitching_Pitches95
Pitching_R2
Pitching_SO4
Pitching_Strikes62
Pitching_Wild Pitch0
Pitching_decisionW
Pitching_pitchingOrder1
allPositionsPlayedP
gameID20260915_SF@STL
game_typefull
mlbID694918
playerID694918
playerNameBlade Tidwell
posP
startedTrue
startingPositionP
teamSF
teamID24
game_date2026-09-15
sl_k_percent18.9
sl_bb_percent9.5
sl_woba0.305
sl_xwoba0.325
sl_sweet_spot_percent30.1
sl_barrel_batted_rate10.5
sl_hard_hit_percent38.6
sl_whiff_percent23.1
sl_swing_percent44.2
sl_avg_best_speed77.277211688
sl_avg_hyper_speed94.098276275
Carson Seymour (693313) · PITCHER · Middle Reliever (High Leverage) · Team SF
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 22
All-history rows before 20260921: 22

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB1.0001.0001.000Pitching_BB0.7270.0000.2731.000
predicted_ER0.0000.0000.000Pitching_ER0.7271.000-0.727-1.000
predicted_H1.0001.0001.000Pitching_H1.4092.000-0.409-1.000
predicted_IP1.2001.2001.200Pitching_InningsPitched1.1551.0000.0450.200
predicted_SO1.0001.0001.000Pitching_SO0.9550.0000.0451.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_form_blend
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics1
Boosted Metrics1
Deboosted Metrics0
Better Metrics1
Worse Metrics0
Biggest Boostpredicted_IP: 1.0000 -> 1.2000 (boost 0.2000, better)
Biggest Deboost-
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
2current_json_final11010predicted_IP: 1.0000 -> 1.2000 (boost 0.2000, better)-Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "pitcher",
  "player_id": "693313",
  "player_name": "Carson Seymour",
  "position": "Middle Reliever (High Leverage)",
  "team": "SF",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 1.0,
        "predicted_ER": 0.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": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_IP": 1.2,
        "predicted_R": 0.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": 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.2,
          "delta": 0.2,
          "percent_delta": 0.2,
          "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": 1.0,
          "after": 1.2,
          "delta": 0.2,
          "percent_delta": 0.2,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      },
      "weights": {},
      "window_games": {}
    }
  ],
  "total_change": {
    "from_step": "pitcher_form_blend",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_BB",
        "before": 1.0,
        "after": 1.0,
        "delta": 0.0,
        "percent_delta": 0.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_ER",
        "before": 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.2,
        "delta": 0.2,
        "percent_delta": 0.2,
        "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": 1.0,
        "after": 1.2,
        "delta": 0.2,
        "percent_delta": 0.2,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": null,
      "has_material_change": true,
      "dominant_effect": "better"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_form_blend

Pitcher model/profile expectation with Bayesian recent-form shrinkage

MetricValueDelta vs Prev Step
predicted_BB1.000-
predicted_ER0.000-
predicted_H1.000-
predicted_HR0.000-
predicted_IP1.000-
predicted_SO1.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 22
Reference playing time: 1.000
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.4554.2001.0004.0003.0003.0001.0001.92861.50000.21430.85710.64290.64290.2143
last_100.35109.0006.00011.0007.0005.0003.0006.00002.00000.66671.22220.77780.55560.3333
season0.202228.20016.00031.00016.00021.0006.0005.02331.63950.55811.08140.55810.73260.2093
Weighted Prediction From Real Data
MetricValue
predicted_BB0.5550
predicted_ER0.4900
predicted_ERA4.2558
predicted_H1.0430
predicted_HR0.2130
predicted_IP1.0000
predicted_SO0.8000
predicted_WHIP1.5430
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB1.00000.55500.7976model_form_blend
predicted_ER0.00000.49000.2229model_form_blend
predicted_ERA-4.25584.2558form_only
predicted_H1.00001.04301.0196model_form_blend
predicted_HR0.00000.21300.0969model_form_blend
predicted_IP1.00001.00001.0000model_form_blend
predicted_SO1.00000.80000.9090model_form_blend
predicted_WHIP-1.54301.5430form_only

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula45% last 5 + 35% last 10 + 20% season
Active form weightslast_5=45%, last_10=35%, season=20%
Model calibration35% raw model + 65% weighted form
Rows before report date22
Season rows before report date22
Report year2026
Profile rows used22
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP1.2
H1
R0
ER0
BB1
SO1
HR0
BF7
Pitches37

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB0
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB0
Hitting_battingOrder0
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced4
Pitching_ER1
Pitching_ERA5.02
Pitching_Flyouts0
Pitching_Groundouts2
Pitching_H2
Pitching_HBP0
Pitching_HR1
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched1.0
Pitching_Pitches18
Pitching_R1
Pitching_SO0
Pitching_Strikes12
Pitching_Wild Pitch0
Pitching_decisionBS
Pitching_pitchingOrder2
allPositionsPlayedP
gameID20260920_SF@LAD
game_typefull
mlbID693313
playerID693313
playerNameCarson Seymour
posP
startedFalse
startingPositionP
teamSF
teamID24
game_date2026-09-20
sl_k_percent16.4
sl_bb_percent12.5
sl_woba0.358
sl_xwoba0.38
sl_sweet_spot_percent37.8
sl_barrel_batted_rate8.9
sl_hard_hit_percent37.8
sl_whiff_percent23.7
sl_swing_percent46.8
sl_avg_best_speed77.147661364
sl_avg_hyper_speed93.765192841
Dylan Smith (681916) · PITCHER · Closer · Team SF
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 39
All-history rows before 20260921: 39

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB1.0001.0001.000Pitching_BB0.5130.0000.4871.000
predicted_ER0.0000.0000.000Pitching_ER0.3851.000-0.385-1.000
predicted_H1.0001.0001.000Pitching_H0.8721.0000.1280.000
predicted_IP1.1001.1001.100Pitching_InningsPitched0.8411.0000.2590.100
predicted_SO1.0001.0001.000Pitching_SO1.0770.000-0.0771.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_form_blend
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics1
Boosted Metrics1
Deboosted Metrics0
Better Metrics1
Worse Metrics0
Biggest Boostpredicted_IP: 1.0000 -> 1.1000 (boost 0.1000, better)
Biggest Deboost-
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
2current_json_final11010predicted_IP: 1.0000 -> 1.1000 (boost 0.1000, better)-Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "pitcher",
  "player_id": "681916",
  "player_name": "Dylan Smith",
  "position": "Closer",
  "team": "SF",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 1.0,
        "predicted_ER": 0.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": 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": 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.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": 1,
        "boosted_metrics": 1,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_IP",
          "before": 1.0,
          "after": 1.1,
          "delta": 0.1,
          "percent_delta": 0.1,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      },
      "weights": {},
      "window_games": {}
    }
  ],
  "total_change": {
    "from_step": "pitcher_form_blend",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_BB",
        "before": 1.0,
        "after": 1.0,
        "delta": 0.0,
        "percent_delta": 0.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_ER",
        "before": 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.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": 1,
      "boosted_metrics": 1,
      "deboosted_metrics": 0,
      "better_metrics": 1,
      "worse_metrics": 0,
      "biggest_boost": {
        "metric": "predicted_IP",
        "before": 1.0,
        "after": 1.1,
        "delta": 0.1,
        "percent_delta": 0.1,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": null,
      "has_material_change": true,
      "dominant_effect": "better"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_form_blend

Pitcher model/profile expectation with Bayesian recent-form shrinkage

MetricValueDelta vs Prev Step
predicted_BB1.000-
predicted_ER0.000-
predicted_H1.000-
predicted_HR0.000-
predicted_IP1.000-
predicted_SO1.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 39
Reference playing time: 1.000
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.4555.1004.0007.0005.0001.0000.0006.75002.25000.75001.31250.93750.18750.0000
last_100.35109.2006.00014.0007.0007.0001.0005.58622.17240.62071.44830.72410.72410.1035
season0.203937.00015.00034.00020.00042.0003.0003.64861.45950.40540.91890.54051.13510.0811
Weighted Prediction From Real Data
MetricValue
predicted_BB0.6210
predicted_ER0.5850
predicted_ERA5.2688
predicted_H1.1610
predicted_HR0.0910
predicted_IP1.0000
predicted_SO0.7130
predicted_WHIP1.7820
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB1.00000.62100.8176model_form_blend
predicted_ER0.00000.58500.2816model_form_blend
predicted_ERA-5.26885.2688form_only
predicted_H1.00001.16101.0775model_form_blend
predicted_HR0.00000.09100.0438model_form_blend
predicted_IP1.00001.00001.0000model_form_blend
predicted_SO1.00000.71300.8619model_form_blend
predicted_WHIP-1.78201.7820form_only

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula45% last 5 + 35% last 10 + 20% season
Active form weightslast_5=45%, last_10=35%, season=20%
Model calibration35% raw model + 65% weighted form
Rows before report date39
Season rows before report date39
Report year2026
Profile rows used39
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP1.1
H1
R0
ER0
BB1
SO1
HR0
BF6
Pitches24

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB0
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB0
Hitting_battingOrder0
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced4
Pitching_ER1
Pitching_ERA3.65
Pitching_Flyouts2
Pitching_Groundouts1
Pitching_H1
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners2
Pitching_Inherited Runners Scored0
Pitching_InningsPitched1.0
Pitching_Pitches12
Pitching_R1
Pitching_SO0
Pitching_Strikes8
Pitching_Wild Pitch0
Pitching_pitchingOrder4
allPositionsPlayedP
gameID20260920_SF@LAD
game_typefull
mlbID681916
playerID681916
playerNameDylan Smith
posP
startedFalse
startingPositionP
teamSF
teamID24
game_date2026-09-20
sl_k_percent25.9
sl_bb_percent12.3
sl_woba0.306
sl_xwoba0.308
sl_sweet_spot_percent37.8
sl_barrel_batted_rate6.1
sl_hard_hit_percent49.0
sl_whiff_percent25.7
sl_swing_percent48.6
sl_avg_best_speed78.876944255
sl_avg_hyper_speed94.871233404
Trent Harris (805345) · PITCHER · Setup Man · Team SF
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 18
All-history rows before 20260921: 18

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB0.0000.0000.000Pitching_BB0.3890.000-0.3890.000
predicted_ER1.0001.0001.000Pitching_ER0.2780.0000.7221.000
predicted_H2.0002.0002.000Pitching_H0.8892.0001.1110.000
predicted_IP0.2001.0000.200Pitching_InningsPitched1.0330.200-0.0330.800
predicted_SO2.0002.0002.000Pitching_SO1.4441.0000.5561.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_form_blend
Tocurrent_json_final
Dominant Effectneutral
Changed Metrics0
Boosted Metrics0
Deboosted Metrics0
Better Metrics0
Worse Metrics0
Biggest Boost-
Biggest Deboost-
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
2current_json_final00000--Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "pitcher",
  "player_id": "805345",
  "player_name": "Trent Harris",
  "position": "Setup Man",
  "team": "SF",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 0.0,
        "predicted_ER": 1.0,
        "predicted_H": 2.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": 0.0,
        "predicted_ER": 1.0,
        "predicted_H": 2.0,
        "predicted_HR": 1.0,
        "predicted_IP": 1.0,
        "predicted_R": 1.0,
        "predicted_SO": 2.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.0,
          "delta": 0.0,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_ER",
          "before": 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": 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": 2.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        }
      ],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      },
      "weights": {},
      "window_games": {}
    }
  ],
  "total_change": {
    "from_step": "pitcher_form_blend",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_BB",
        "before": 0.0,
        "after": 0.0,
        "delta": 0.0,
        "percent_delta": null,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_ER",
        "before": 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": 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": 2.0,
        "delta": 0.0,
        "percent_delta": 0.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      }
    ],
    "summary": {
      "changed_metrics": 0,
      "boosted_metrics": 0,
      "deboosted_metrics": 0,
      "better_metrics": 0,
      "worse_metrics": 0,
      "biggest_boost": null,
      "biggest_deboost": null,
      "has_material_change": false,
      "dominant_effect": "neutral"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_form_blend

Pitcher model/profile expectation with Bayesian recent-form shrinkage

MetricValueDelta vs Prev Step
predicted_BB0.000-
predicted_ER1.000-
predicted_H2.000-
predicted_HR1.000-
predicted_IP1.000-
predicted_SO2.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 18
Reference playing time: 1.000
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.4555.0000.0004.0000.0005.0000.0000.00000.80000.00000.80000.00001.00000.0000
last_100.351010.0000.0007.0002.00011.0000.0000.00000.90000.00000.70000.20001.10000.0000
season0.201820.0005.00016.0007.00026.0000.0002.25001.15000.25000.80000.35001.30000.0000
Weighted Prediction From Real Data
MetricValue
predicted_BB0.2700
predicted_ER0.3030
predicted_ERA2.7306
predicted_H0.8840
predicted_HR0.0820
predicted_IP1.0000
predicted_SO1.0080
predicted_WHIP1.1540
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB0.00000.27000.1126model_form_blend
predicted_ER1.00000.30300.7093model_form_blend
predicted_ERA-2.73062.7306form_only
predicted_H2.00000.88401.5346model_form_blend
predicted_HR1.00000.08200.6172model_form_blend
predicted_IP1.00001.00001.0000model_form_blend
predicted_SO2.00001.00801.5863model_form_blend
predicted_WHIP-1.15401.1540form_only

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula45% last 5 + 35% last 10 + 20% season
Active form weightslast_5=45%, last_10=35%, season=20%
Model calibration35% raw model + 65% weighted form
Rows before report date18
Season rows before report date18
Report year2026
Profile rows used18
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP1.0
H2
R1
ER1
BB0
SO2
HR1
BF5
Pitches19

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB0
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB0
Hitting_battingOrder0
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced4
Pitching_ER0
Pitching_ERA2.25
Pitching_Flyouts1
Pitching_Groundouts0
Pitching_H2
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners1
Pitching_Inherited Runners Scored1
Pitching_InningsPitched0.2
Pitching_Pitches12
Pitching_R0
Pitching_SO1
Pitching_Strikes9
Pitching_Wild Pitch0
Pitching_pitchingOrder5
allPositionsPlayedP
gameID20260920_SF@LAD
game_typefull
mlbID805345
playerID805345
playerNameTrent Harris
posP
startedFalse
startingPositionP
teamSF
teamID24
game_date2026-09-20
sl_k_percent32.5
sl_bb_percent9.1
sl_woba0.259
sl_xwoba0.22
sl_sweet_spot_percent28.9
sl_barrel_batted_rate0.0
sl_hard_hit_percent22.2
sl_whiff_percent26.0
sl_swing_percent41.8
sl_avg_best_speed72.401865217
sl_avg_hyper_speed91.588014
Jason Foley (671345) · PITCHER · Middle Reliever (High Leverage) · Team SF
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 21
All-history rows before 20260921: 21

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB0.0000.0000.000Pitching_BB0.4761.000-0.476-1.000
predicted_ER1.0001.0001.000Pitching_ER0.5241.0000.4760.000
predicted_H1.0001.0001.000Pitching_H1.2381.000-0.2380.000
predicted_IP0.0000.2000.000Pitching_InningsPitched0.9621.100-0.762-0.900
predicted_SO2.0002.0002.000Pitching_SO0.6671.0001.3331.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_form_blend
Tocurrent_json_final
Dominant Effectworse
Changed Metrics1
Boosted Metrics0
Deboosted Metrics1
Better Metrics0
Worse Metrics1
Biggest Boost-
Biggest Deboostpredicted_IP: 0.6667 -> 0.2000 (deboost -0.4667, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
2current_json_final10101-predicted_IP: 0.6667 -> 0.2000 (deboost -0.4667, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "pitcher",
  "player_id": "671345",
  "player_name": "Jason Foley",
  "position": "Middle Reliever (High Leverage)",
  "team": "SF",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 0.0,
        "predicted_ER": 1.0,
        "predicted_H": 1.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": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_IP": 0.2,
        "predicted_R": 1.0,
        "predicted_SO": 2.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.0,
          "delta": 0.0,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_ER",
          "before": 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.6667,
          "after": 0.2,
          "delta": -0.4667,
          "percent_delta": -0.7,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 2.0,
          "after": 2.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 0,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 1,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_IP",
          "before": 0.6667,
          "after": 0.2,
          "delta": -0.4667,
          "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": 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.6667,
        "after": 0.2,
        "delta": -0.4667,
        "percent_delta": -0.7,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 2.0,
        "after": 2.0,
        "delta": 0.0,
        "percent_delta": 0.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      }
    ],
    "summary": {
      "changed_metrics": 1,
      "boosted_metrics": 0,
      "deboosted_metrics": 1,
      "better_metrics": 0,
      "worse_metrics": 1,
      "biggest_boost": null,
      "biggest_deboost": {
        "metric": "predicted_IP",
        "before": 0.6667,
        "after": 0.2,
        "delta": -0.4667,
        "percent_delta": -0.7,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_form_blend

Pitcher model/profile expectation with Bayesian recent-form shrinkage

MetricValueDelta vs Prev Step
predicted_BB0.000-
predicted_ER1.000-
predicted_H1.000-
predicted_HR0.000-
predicted_IP0.667-
predicted_SO2.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 21
Reference playing time: 0.667
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.4556.2004.0007.0004.0002.0000.0005.40001.65000.60001.05000.60000.30000.0000
last_100.351011.1006.00016.0005.0007.0000.0004.76471.85290.52941.41180.44120.61770.0000
season0.202123.00011.00026.00010.00014.0001.0004.30431.56520.47831.13040.43480.60870.0435
Weighted Prediction From Real Data
MetricValue
predicted_BB0.3980
predicted_ER0.4770
predicted_ERA4.7661
predicted_H0.9750
predicted_HR0.0730
predicted_IP1.0000
predicted_SO0.6420
predicted_WHIP1.5245
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB0.00000.39800.1718model_form_blend
predicted_ER1.00000.47700.7742model_form_blend
predicted_ERA-4.76614.7661form_only
predicted_H1.00000.97500.9892model_form_blend
predicted_HR0.00000.07300.0315model_form_blend
predicted_IP0.20001.00000.2000model_form_blend
predicted_SO2.00000.64201.4138model_form_blend
predicted_WHIP-1.52451.5245form_only

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula45% last 5 + 35% last 10 + 20% season
Active form weightslast_5=45%, last_10=35%, season=20%
Model calibration35% raw model + 65% weighted form
Rows before report date21
Season rows before report date21
Report year2026
Profile rows used21
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP0.2
H1
R1
ER1
BB0
SO2
HR0
BF3
Pitches11

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB0
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB0
Hitting_battingOrder0
Hitting_substitutionOrder0
Pitching_BB1
Pitching_Balk0
Pitching_Batters Faced6
Pitching_ER1
Pitching_ERA4.30
Pitching_Flyouts0
Pitching_Groundouts1
Pitching_H1
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners2
Pitching_Inherited Runners Scored0
Pitching_InningsPitched1.1
Pitching_Pitches27
Pitching_R1
Pitching_SO1
Pitching_Strikes14
Pitching_Wild Pitch0
Pitching_decisionL
Pitching_pitchingOrder2
allPositionsPlayedP
gameID20260918_SF@LAD
game_typefull
mlbID671345
playerID671345
playerNameJason Foley
posP
startedFalse
startingPositionP
teamSF
teamID24
game_date2026-09-18
sl_k_percent13.3
sl_bb_percent9.5
sl_woba0.319
sl_xwoba0.297
sl_sweet_spot_percent28.4
sl_barrel_batted_rate4.9
sl_hard_hit_percent37.0
sl_whiff_percent17.0
sl_swing_percent42.5
sl_avg_best_speed74.358889024
sl_avg_hyper_speed93.90672963

20260921_TOR@BAL

Prediction Method: enhanced_ml_savant_pitcher_quality_pitcher_opponent_strength
Team Recent Window (Home): 10 games
Team Recent Window (Away): 10 games
Team Recent Period: Latest 10 games from dataset
Enhanced Prediction Target: {"away_runs": 5, "home_runs": 4, "confidence": 0.50525691, "home_win_probability": 0.49474309000000005, "away_win_probability": 0.50525691, "predicted_score_text": "TOR 5 - 4 BAL", "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": "TOR", "original_runs": 5, "run_delta": -0.2485, "adjusted_runs": 5, "lineup": {"players_used": 9, "total_weight": 32.0, "quality": -0.31087021472130033, "contact": -0.38936134064303896, "power": -0.45182795301747947, "discipline": 0.014995988694559977, "xwoba": 0.28990625, "recent_xwoba": 0.28990625, "barrel": 5.3343750000000005, "ab_hard_contact": -0.4468983460638718, "ab_bat_speed": 68.33875917895034, "ab_strikeout_rate": 0.20209177431762168, "available_players": 9, "top_players": [{"player_id": "676391", "player_name": "Ernie Clement", "position": "2B", "weight": 3.0, "quality": -0.8548113342913504, "contact": -0.834863431593825, "power": -1.2069205115262598, "discipline": 0.1691117356149214, "xwoba": 0.26, "recent_xwoba": 0.26, "barrel": 2.1, "ab_hard_contact": -0.7658388019537612, "ab_bat_speed": 65.50053496168582, "ab_strikeout_rate": 0.08972602739726027, "available": 1.0}, {"player_id": "665926", "player_name": "Andrés Giménez", "position": "SS", "weight": 3.0, "quality": -0.8491562818941593, "contact": -0.8690244935786436, "power": -0.9874479527398556, "discipline": -0.5321773885029701, "xwoba": 0.273, "recent_xwoba": 0.273, "barrel": 3.2999999999999994, "ab_hard_contact": -0.9786733405113945, "ab_bat_speed": 65.57114345839345, "ab_strikeout_rate": 0.1890151515151515, "available": 1.0}, {"player_id": "703520", "player_name": "Brett Bateman", "position": "CF", "weight": 4.0, "quality": -0.47735174955118437, "contact": -0.4697724982683986, "power": -1.1732595978294857, "discipline": 0.3917151078895267, "xwoba": 0.3, "recent_xwoba": 0.3, "barrel": 1.7, "ab_hard_contact": -0.7992871946849451, "ab_bat_speed": 65.20618494468494, "ab_strikeout_rate": 0.19797979797979798, "available": 1.0}, {"player_id": "669701", "player_name": "Josh Smith", "position": "LF", "weight": 3.0, "quality": -0.6036646283235075, "contact": -0.882430914735844, "power": -0.6496957686241404, "discipline": 0.2995431645757919, "xwoba": 0.282, "recent_xwoba": 0.282, "barrel": 6.8, "ab_hard_contact": -0.8742963248637763, "ab_bat_speed": 66.10689735844588, "ab_strikeout_rate": 0.21965174129353235, "available": 1.0}, {"player_id": "664770", "player_name": "Nathan Lukes", "position": "RF", "weight": 4.0, "quality": -0.4967227222790801, "contact": -0.34769155209750635, "power": -0.8214955705127005, "discipline": 0.13282585825027685, "xwoba": 0.286, "recent_xwoba": 0.286, "barrel": 2.7, "ab_hard_contact": -0.5773399816825755, "ab_bat_speed": 65.38670924170924, "ab_strikeout_rate": 0.13779761904761906, "available": 1.0}]}, "opposing_starter": {"available": true, "player_id": "669358", "player_name": "Shane Baz", "quality": -0.123547547442005, "contact": -0.05421694652360266, "command": -0.3530900434690757, "movement": 0.10908293266630636, "xwoba": 0.315, "whiff": 21.9, "faced_est_woba": 0.2648585351179453, "faced_launch_speed": 83.79207589285714, "faced_strikeout_rate": 0.23575569358178053, "faced_run_exp": 0.006506401041666653}}, "home": {"team": "BAL", "original_runs": 4, "run_delta": 0.0277, "adjusted_runs": 4, "lineup": {"players_used": 8, "total_weight": 30.0, "quality": 0.2877842002657866, "contact": 0.036703219957989794, "power": 0.5448352960650561, "discipline": -0.36529731428688916, "xwoba": 0.31816666666666665, "recent_xwoba": 0.31816666666666665, "barrel": 10.206666666666665, "ab_hard_contact": -0.05271630092110082, "ab_bat_speed": 72.36967407692929, "ab_strikeout_rate": 0.3029922784414617, "available_players": 8, "top_players": [{"player_id": "624413", "player_name": "Pete Alonso", "position": "1B", "weight": 4.0, "quality": 1.482889938053645, "contact": 1.6054855724658328, "power": 1.895264081010068, "discipline": 0.2258456995201181, "xwoba": 0.396, "recent_xwoba": 0.396, "barrel": 14.5, "ab_hard_contact": 0.8999482868680363, "ab_bat_speed": 73.23232054375805, "ab_strikeout_rate": 0.24563492063492065, "available": 1.0}, {"player_id": "691723", "player_name": "Coby Mayo", "position": "DH", "weight": 4.0, "quality": 0.48934999475242, "contact": 0.26647968215654133, "power": 1.1670745115466863, "discipline": -0.6198231565280482, "xwoba": 0.335, "recent_xwoba": 0.335, "barrel": 13.4, "ab_hard_contact": 0.0868235642670653, "ab_bat_speed": 73.89939347290641, "ab_strikeout_rate": 0.34066091954022987, "available": 1.0}, {"player_id": "677956", "player_name": "Rece Hinds", "position": "RF", "weight": 3.0, "quality": -0.3625859807446731, "contact": -1.7883260651629072, "power": -1.4258403271604936, "discipline": -1.3374999999999997, "xwoba": 0.19600000000000004, "recent_xwoba": 0.196, "barrel": 0.0, "ab_hard_contact": -1.3533779717813055, "ab_bat_speed": 70.53128858024691, "ab_strikeout_rate": 0.5210526315789474, "available": 1.0}, {"player_id": "687952", "player_name": "Christian Encarnacion-Strand", "position": "3B", "weight": 4.0, "quality": 0.31541075245585426, "contact": 0.16509266835317482, "power": 1.1480802062163422, "discipline": -0.7977773163528977, "xwoba": 0.334, "recent_xwoba": 0.334, "barrel": 14.7, "ab_hard_contact": -0.02639587567315395, "ab_bat_speed": 72.3939779265873, "ab_strikeout_rate": 0.27847222222222223, "available": 1.0}, {"player_id": "694212", "player_name": "Samuel Basallo", "position": "C", "weight": 4.0, "quality": 0.2851414945612205, "contact": 0.06189846036324767, "power": 0.7880492092161325, "discipline": -0.46439117471675606, "xwoba": 0.321, "recent_xwoba": 0.321, "barrel": 12.2, "ab_hard_contact": -0.20053962520115445, "ab_bat_speed": 72.83740565857752, "ab_strikeout_rate": 0.25737179487179485, "available": 1.0}]}, "opposing_starter": {"available": true, "player_id": "702056", "player_name": "Trey Yesavage", "quality": 0.32140805132698635, "contact": 0.623899576873699, "command": 0.026338527959495844, "movement": -0.04490905746581948, "xwoba": 0.285, "whiff": 30.0, "faced_est_woba": 0.26622999261811936, "faced_launch_speed": 83.8425925925926, "faced_strikeout_rate": 0.2342687074829932, "faced_run_exp": 0.006624893707482986}}}, "fundamental_edge_target_review": {"applied": false, "method": "post_score_adjustment_fundamental_edge_review_v1", "previous_score": {"away_runs": 5, "home_runs": 4, "winner_side": "away"}, "adjusted_score": {"away_runs": 5, "home_runs": 4, "winner_side": "away"}, "signals": {"season_quality_edge_home_minus_away": 0.0907, "recent_form_edge_home_minus_away": -0.046, "pitcher_matchup_edge_home_minus_away": -0.0531, "composite_home_edge": -0.2584, "existing_home_win_probability": 0.4927, "refreshed_home_win_probability": 0.3736, "winner_support_before_review": 0.2584}, "reasons": ["target direction already matched refreshed fundamentals or margin was not fragile"]}, "uncapped_home_win_probability": 0.492724, "uncapped_away_win_probability": 0.507276, "confidence_shrinkage": {"policy": "starter_quality_shrinkage_v3", "staged_confidence": 0.507276, "discount_factor": 0.7225, "published_confidence": 0.505257, "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.373584, "incoming_favoured_side": "away", "score_winner_side": "away", "published_home_win_probability": 0.494743, "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": 5, "home_runs": 4, "predicted_score_text": "TOR 5 - 4 BAL", "confidence": 0.50525691, "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": 5, "home_runs": 4, "score_text": "TOR 5 - 4 BAL", "winner": "TOR"}, "final_simulation_score": {"away_runs": 5, "home_runs": 4, "score_text": "TOR 5 - 4 BAL", "winner": "TOR"}, "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.0531, "recent_form_edge_home_minus_away": -0.046, "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": 5, "home_runs": 4, "winner": "TOR", "model_winner": "TOR", "simulation_winner": "TOR", "simulation_winner_agrees": true, "simulation_agreement_scope": "selected_draw_only", "simulation_distribution_agreement": {"available": true, "draw_count": 5, "published_winner": "TOR", "published_winner_draw_share": 0.4, "draw_majority_team": "BAL", "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": 5, "home_runs": 4}, "simulation_score": {"away_runs": 5, "home_runs": 4}}, "final_margin_quality_review": {"review_required": false, "pre_margin": 1, "final_margin": 1, "winner_quality_edge": -0.0907, "winner": "TOR", "score_reviewed": {"away_runs": 5, "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": "TOR", "display_confidence": 0.5053, "internal_signal_score": 0.5328, "internal_signal_status": "ranking_signal_not_a_calibrated_fair_probability", "model_pick_probability": 0.5053, "confidence_compression_detected": false, "moneyline_fit": "unavailable_without_market_price", "betting_status": "price_required_before_betting_analysis", "market_context": null, "margin_fit": "volatile_margin_profile", "totals_fit": "high_volatility_totals", "winner_accuracy_and_margin_accuracy_decoupled": true, "signals": {"final_margin": 1, "winner_quality_edge": -0.0907, "winner_recent_form_edge": -0.164, "winner_pitcher_matchup_edge": 0.0531, "winner_simulation_draw_rate": 0.4, "blowout_draw_rate_margin_4_plus": 0.4, "high_total_draw_rate_11_plus": 0.0, "low_total_draw_rate_6_or_less": 0.2, "total_runs_spread": {"min": 6, "median": 8, "max": 9, "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."}}
Factors Considered: Historical team performance, Season-to-date run differential, Recent form (latest 10 games), Head-to-head matchup history, Player-level statistics, Baseball Savant hitter xwOBA/xBA/xSLG/contact quality, Baseball Savant pitcher xwOBA/contact/whiff quality, Pitcher splits versus opponent batting strength, Recent-form versus season-quality arbitration, Recent 10-game performance trends, Pitcher recent form analysis, Team hitting/pitching streaks, Low-score probability modeling, Environmental factors, Home field advantage, Game timing factors, Seasonal adjustments, Machine learning models

Game-Level Prediction Audit

LayerScoreWinnerConfidenceSource or usageSynced or matches
Shipped predictionTOR 5 - 4 BALTOR0.505enhanced_prediction.pre_simulation_targetTrue
Simulation drawTOR 5 - 4 BALTOR-organic_simulation_realized_targetTrue

The shipped score is reconciled to the final simulation score. The original model target remains visible as the pre-simulation audit layer.

Full Prediction Process

Optimization Roadmap Runtime Status

This table distinguishes newly generated artifacts from older files. Missing trace data is shown as legacy/unavailable, never inferred.

PriorityChangeRuntime statusEvidence
P1Empirical confidence blendappliedraw=0.4601; empirical=0.5425; weight=0.5000; final=0.5013
P1H2H margin as base featureavailablehome net=-12; abs=12; home delta=-0.0692; away delta=0.0692
P2Wider score distributionimplemented_above_requested_1.4xvariance multiplier=2.1500; floor=2.7500
P2Simulation flip controldiagnostic_only_unless_independently_supportedcandidate=False; trusted=False; published flip=False
P3Season edge + recent formimplementedwindow=10; season edge=0.0513; recent edge=0.1640; blended=-
P3Continuous calibration audittrace emittedChecked by CONFIDENCE_CALIBRATION_APPLIED and bucket_calibration_error in learning reports.
Process LayerWhat It DoesStored FieldObserved Value
1. Historical modelStarts from trained game model output.score_evolution.steps[historical_ml]-
2. Variance layerApplies bounded game variance before enhanced corrections.score_evolution.steps[variance_applied]-
3. Recent/team formUses latest team form, recent scoring, prevention, and streak state.enhanced_prediction_analysis.recent_formTrue
4. Season qualityUses season run differential and record quality guardrails.season_run_differential_adjustment, season_quality_guardrailTrue
5. Savant hittersApplies lineup-level Statcast xwOBA, xBA, xSLG, barrel, hard-hit, sweet-spot, EV, launch-angle, whiff, K and BB quality.savant_batter_quality_adjustmentTrue
6. Savant pitchersApplies starter run prevention, strikeout, walk, HR and regression factors from xwOBA, wOBA, contact quality and whiff/command.savant_pitcher_quality_adjustmentTrue
7. Low-score analysisControls unrealistic totals and preserves the pre-sync low-score expected total.low_score_analysis6.9000
8. Probability/governorsApplies win probability calibration, matchup guardrails, margin governor and confidence governor.win_probability_calibration, margin_governor, confidence_governor0.5053
9. Simulation reconciliationReconciles final shipped score with the simulation box score while retaining the pre-simulation target.simulation_reconciliationorganic_simulation_realized_target
10. Score evolution rendered7 stored score steps are rendered below.game.score_evolution.stepstrue

Score Evolution Steps

StepLayerAway RunsHome RunsConfidenceDescription
1historical_ml4.2974.059-Base ML historical model prediction
2variance_applied44-Deterministic baseline target (variance factor 1.0)
3enhanced_prediction540.5053Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail)
4embedded_savant_run_environment54-Target score adjusted by temporal Savant lineup quality versus opposing starter quality
5fundamental_edge_target_review54-Refreshed score target and win probability after Savant/pitcher/team-strength adjustments
6capped_target54-Capped at max 12 realistic runs
7simulation_result54-Final inning-by-inning simulation result

Governors, Guardrails, and Reconciliation

Low Score Analysis
{
  "low_score_probability": 0.5206448170631667,
  "base_low_score_probability": 0.4249384741591468,
  "low_score_signal_threshold": 0.5049384741591468,
  "low_score_signal_strength": 0.09570634290401986,
  "confidence": 0.7126120000000002,
  "factors": {
    "environmental": 1.0710000000000002,
    "pitcher_form": 1.1,
    "team_form": 1.0,
    "situational": 1.04,
    "combined": 1.2252240000000005
  },
  "prediction": "low_scoring",
  "expected_total_runs": 9,
  "score_scale_mode": "control",
  "pre_simulation_expected_total_runs": 6.9,
  "low_score_model_expected_total_runs": 6.9,
  "final_simulation_total_runs": 9,
  "score_source": "enhanced_prediction.pre_simulation_target"
}
Win Probability Calibration
{
  "method": "monotone_reliability_shrinkage",
  "policy": "shrink_toward_even_score_floor_v3",
  "sample_size": 494,
  "near_bucket_sample_size": 494,
  "medium_bucket_sample_size": 691,
  "wide_bucket_sample_size": 787,
  "global_sample_size": 1026,
  "bucket_scope": "near_0.05",
  "sparse_bucket": false,
  "empirical_hit_rate": 0.5425,
  "bayesian_hit_rate": 0.541,
  "prior_strength": 18.0,
  "raw_pick_probability": 0.5,
  "raw_pick_probability_unclamped": 0.4932,
  "score_probability_conflict": true,
  "margin_implied_home_probability": 0.4926,
  "margin_implied_pick_probability": 0.5074,
  "score_blend_weight": 0.45,
  "blended_raw_pick_probability": 0.5034,
  "score_implied_floor_pick_probability": 0.5073,
  "max_published_pick_probability": 0.9,
  "uncapped_home_win_probability": 0.506795,
  "uncapped_away_win_probability": 0.493205,
  "calibrated_pick_probability": 0.5073,
  "predicted_side": "away",
  "reliability": 0.964844,
  "shrink_floor": 0.35,
  "empirical_penalty": 1.0,
  "shrinkage_weight": 0.977148
}
Empirical Confidence Calibration
{
  "method": "empirical_hit_rate_weighted_v1",
  "applied": true,
  "reason": "raw confidence blended with verified historical bucket hit rate",
  "raw_confidence": 0.4601,
  "sample_size": 494,
  "empirical_hit_rate": 0.5425,
  "empirical_weight": 0.5,
  "blended_confidence": 0.5013,
  "published_confidence": 0.505257,
  "published_after_governors": true,
  "governor_mode": "shrinkage_not_clamp"
}
H2H Base Feature
{
  "method": "h2h_net_margin_monotonic_v1",
  "available": true,
  "sample_size": 5,
  "sample_weight": 0.0577,
  "home_net_margin": -12.0,
  "absolute_net_margin": 12.0,
  "home_average_margin": -2.4,
  "home_run_delta": -0.0692,
  "away_run_delta": 0.0692,
  "evidence": [
    {
      "game_id": null,
      "home_margin": -7.0
    },
    {
      "game_id": null,
      "home_margin": -4.0
    },
    {
      "game_id": null,
      "home_margin": 3.0
    },
    {
      "game_id": null,
      "home_margin": -2.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
  }
}
Season Run Differential Adjustment
{
  "applied": false,
  "home": {
    "team": "BAL",
    "games": 156,
    "wins": 75,
    "losses": 81,
    "win_pct": 0.4807692307692308,
    "runs_scored": 693,
    "runs_allowed": 724,
    "run_differential": -31,
    "run_differential_per_game": -0.1987179487179487,
    "available": true
  },
  "away": {
    "team": "TOR",
    "games": 156,
    "wins": 77,
    "losses": 79,
    "win_pct": 0.4935897435897436,
    "runs_scored": 629,
    "runs_allowed": 671,
    "run_differential": -42,
    "run_differential_per_game": -0.2692307692307692,
    "available": true
  },
  "run_differential_edge_per_game": 0.0705,
  "win_pct_edge": -0.0128,
  "quality_edge": 0.0907,
  "season_quality_edge": 0.0513,
  "recent_quality_blend": {
    "method": "season_recent_quality_blend_v2_adaptive",
    "recent_window": 10,
    "season_quality_edge": 0.0513,
    "recent_quality_edge": 0.164,
    "season_weight": 0.65,
    "recent_weight": 0.35,
    "recent_reliability": 1.0,
    "alignment": "aligned",
    "blended_quality_edge": 0.0907
  },
  "margin_adjustment": 0.0,
  "reason": "season quality edge below action threshold"
}
Score Distribution Widening
{
  "most_likely": [
    {
      "home_runs": 4,
      "away_runs": 4,
      "probability": 0.023186104004576623
    },
    {
      "home_runs": 3,
      "away_runs": 4,
      "probability": 0.02298110514110332
    },
    {
      "home_runs": 4,
      "away_runs": 3,
      "probability": 0.022697040358130083
    },
    {
      "home_runs": 3,
      "away_runs": 3,
      "probability": 0.022496365528210147
    },
    {
      "home_runs": 4,
      "away_runs": 5,
      "probability": 0.020864985002180366
    }
  ],
  "home_distribution": {
    "0": 0.06758079961779818,
    "1": 0.10081263462945908,
    "2": 0.13200640802179392,
    "3": 0.15172721046087204,
    "4": 0.15308066607196977,
    "5": 0.13557063291692284,
    "6": 0.10538997812176808,
    "7": 0.07191531971756727,
    "8": 0.043075658691504974,
    "9": 0.022648051777738595,
    "10": 0.010452451996744916,
    "11": 0.00423441992559661,
    "12": 0.0015057680502635177
  },
  "away_distribution": {
    "0": 0.06499257178318453,
    "1": 0.09712410498284726,
    "2": 0.12785628589491918,
    "3": 0.1482684975218179,
    "4": 0.15146330754581278,
    "5": 0.1363005893400728,
    "6": 0.10804875782668034,
    "7": 0.07545248899948677,
    "8": 0.046415080765177,
    "9": 0.02515222432957516,
    "10": 0.012006749021345835,
    "11": 0.0050490098150539195,
    "12": 0.001870332174026513
  },
  "model": "overdispersed_score_distribution",
  "variance_multiplier": 2.15,
  "variance_floor": 2.75,
  "roadmap_status": "implemented_above_requested_1.4x"
}
Matchup Recency Guardrail
{
  "applied": true,
  "confidence_cap": 0.56,
  "winner_flipped": false,
  "reasons": [
    "recent head-to-head is split and volatile",
    "local prediction memory shows 3 straight prior same-side picks",
    "a prior same-side pick already missed against the actual result"
  ],
  "signals": {
    "predicted_team": "TOR",
    "opponent_team": "BAL",
    "h2h_net_margin": 8,
    "opponent_breakout": false,
    "opponent_blowout_win": false,
    "split_recent_h2h": true,
    "recent_h2h": [
      {
        "date": "2026-09-13",
        "predicted_team_runs": 8,
        "opponent_runs": 1,
        "margin_for_predicted_team": 7,
        "winner": "TOR"
      },
      {
        "date": "2026-09-12",
        "predicted_team_runs": 7,
        "opponent_runs": 3,
        "margin_for_predicted_team": 4,
        "winner": "TOR"
      },
      {
        "date": "2026-09-11",
        "predicted_team_runs": 4,
        "opponent_runs": 7,
        "margin_for_predicted_team": -3,
        "winner": "BAL"
      }
    ],
    "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": 3,
      "same_pick_actual_loss_count": 1,
      "same_pick_blowout_loss_count": 0,
      "prior_predictions": [
        {
          "date": "20260913",
          "away": "BAL",
          "home": "TOR",
          "game_number": 1,
          "predicted_team": "TOR",
          "actual_winner": "TOR",
          "actual_margin": 7,
          "raw_pick_probability": 0.529621,
          "artifact": "20260913_BAL@TOR.json",
          "verification": "pregame_official_final"
        },
        {
          "date": "20260912",
          "away": "BAL",
          "home": "TOR",
          "game_number": 1,
          "predicted_team": "TOR",
          "actual_winner": "TOR",
          "actual_margin": 4,
          "raw_pick_probability": 0.53,
          "artifact": "20260912_BAL@TOR.json",
          "verification": "pregame_official_final"
        },
        {
          "date": "20260911",
          "away": "BAL",
          "home": "TOR",
          "game_number": 1,
          "predicted_team": "TOR",
          "actual_winner": "BAL",
          "actual_margin": 3,
          "raw_pick_probability": 0.505,
          "artifact": "20260911_BAL@TOR.json",
          "verification": "pregame_official_final"
        }
      ]
    },
    "guardrail_predicted_team": "TOR",
    "guardrail_opponent_team": "BAL",
    "output_pre_simulation_winner": "TOR",
    "output_opponent_team": "BAL",
    "simulation_score_winner": "TOR",
    "final_score_winner": "TOR",
    "pre_simulation_winner": "TOR",
    "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": 5,
      "home_runs": 4,
      "score_text": "TOR 5 - 4 BAL",
      "winner": "TOR"
    },
    "final_simulation_score": {
      "away_runs": 5,
      "home_runs": 4,
      "score_text": "TOR 5 - 4 BAL",
      "winner": "TOR"
    },
    "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.0531,
      "recent_form_edge_home_minus_away": -0.046,
      "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": 5,
      "home_runs": 4,
      "winner": "TOR",
      "model_winner": "TOR",
      "simulation_winner": "TOR",
      "simulation_winner_agrees": true,
      "simulation_agreement_scope": "selected_draw_only",
      "simulation_distribution_agreement": {
        "available": true,
        "draw_count": 5,
        "published_winner": "TOR",
        "published_winner_draw_share": 0.4,
        "draw_majority_team": "BAL",
        "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": 5,
        "home_runs": 4
      },
      "simulation_score": {
        "away_runs": 5,
        "home_runs": 4
      }
    },
    "final_margin_quality_review": {
      "review_required": false,
      "pre_margin": 1,
      "final_margin": 1,
      "winner_quality_edge": -0.0907,
      "winner": "TOR",
      "score_reviewed": {
        "away_runs": 5,
        "home_runs": 4,
        "source": "enhanced_prediction.pre_simulation_target"
      },
      "reason": "published margin is directionally supported or within review threshold"
    }
  }
}
Season Quality Guardrail
{
  "applied": false,
  "confidence_cap": null,
  "winner_flipped": false,
  "hard_flip_suppressed": false,
  "policy": "recency_uncertainty_shrinkage_v2",
  "reasons": [],
  "signals": {
    "home": {
      "team": "BAL",
      "games": 156,
      "wins": 75,
      "losses": 81,
      "win_pct": 0.4807692307692308,
      "runs_scored": 693,
      "runs_allowed": 724,
      "run_differential": -31,
      "run_differential_per_game": -0.1987179487179487,
      "available": true
    },
    "away": {
      "team": "TOR",
      "games": 156,
      "wins": 77,
      "losses": 79,
      "win_pct": 0.4935897435897436,
      "runs_scored": 629,
      "runs_allowed": 671,
      "run_differential": -42,
      "run_differential_per_game": -0.2692307692307692,
      "available": true
    }
  }
}
Margin Governor
{
  "applied": false,
  "raw_margin": -0.1,
  "final_margin": -0.1,
  "margin_cap": 1.5,
  "season_quality_edge": 0.0907,
  "reason": "raw target margin within supported range"
}
Confidence Governor
{
  "applied": true,
  "policy": "align_to_calibrated_probability_v2",
  "raw_confidence": 0.5013,
  "final_confidence": 0.5073,
  "calibrated_pick_probability": 0.5073,
  "shrinkage_weight": 0.977148,
  "hard_maximum": 0.9,
  "confidence_floor": 0.505,
  "score_gap": 0.1,
  "calibration_sample_size": 494,
  "calibration_empirical_hit_rate": 0.5425,
  "calibration_bayesian_hit_rate": 0.541,
  "calibration_sparse_bucket": false,
  "season_quality_edge": 0.0907,
  "reasons": [
    "confidence aligned to the calibrated pick probability"
  ],
  "score_coherence": {
    "policy": "probability_follows_published_score_v1",
    "published_score": {
      "away_runs": 5,
      "home_runs": 4
    },
    "margin": -1,
    "probability_before": 0.492724,
    "margin_implied_home_probability": 0.425967,
    "shrinkage_weight": 0.977148,
    "side_flipped": false,
    "applied": false,
    "magnitude_pull_suppressed": true,
    "probability_after": 0.492724,
    "aligned_pick_probability": 0.507276
  },
  "starter_experience": {
    "applied": false,
    "min_starter_games": 18,
    "shrink_factor": 1.0
  }
}
Simulation Reconciliation
{
  "pre_simulation_score": {
    "away_runs": 5,
    "home_runs": 4,
    "score_text": "TOR 5 - 4 BAL",
    "winner": "TOR"
  },
  "final_simulation_score": {
    "away_runs": 5,
    "home_runs": 4,
    "score_text": "TOR 5 - 4 BAL",
    "winner": "TOR"
  },
  "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.0531,
    "recent_form_edge_home_minus_away": -0.046,
    "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": 5,
    "home_runs": 4,
    "winner": "TOR",
    "model_winner": "TOR",
    "simulation_winner": "TOR",
    "simulation_winner_agrees": true,
    "simulation_agreement_scope": "selected_draw_only",
    "simulation_distribution_agreement": {
      "available": true,
      "draw_count": 5,
      "published_winner": "TOR",
      "published_winner_draw_share": 0.4,
      "draw_majority_team": "BAL",
      "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": 5,
      "home_runs": 4
    },
    "simulation_score": {
      "away_runs": 5,
      "home_runs": 4
    }
  },
  "final_margin_quality_review": {
    "review_required": false,
    "pre_margin": 1,
    "final_margin": 1,
    "winner_quality_edge": -0.0907,
    "winner": "TOR",
    "score_reviewed": {
      "away_runs": 5,
      "home_runs": 4,
      "source": "enhanced_prediction.pre_simulation_target"
    },
    "reason": "published margin is directionally supported or within review threshold"
  }
}
Enhanced Prediction Target
{
  "away_runs": 5,
  "home_runs": 4,
  "confidence": 0.50525691,
  "home_win_probability": 0.49474309000000005,
  "away_win_probability": 0.50525691,
  "predicted_score_text": "TOR 5 - 4 BAL",
  "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": "TOR",
      "original_runs": 5,
      "run_delta": -0.2485,
      "adjusted_runs": 5,
      "lineup": {
        "players_used": 9,
        "total_weight": 32.0,
        "quality": -0.31087021472130033,
        "contact": -0.38936134064303896,
        "power": -0.45182795301747947,
        "discipline": 0.014995988694559977,
        "xwoba": 0.28990625,
        "recent_xwoba": 0.28990625,
        "barrel": 5.3343750000000005,
        "ab_hard_contact": -0.4468983460638718,
        "ab_bat_speed": 68.33875917895034,
        "ab_strikeout_rate": 0.20209177431762168,
        "available_players": 9,
        "top_players": [
          {
            "player_id": "676391",
            "player_name": "Ernie Clement",
            "position": "2B",
            "weight": 3.0,
            "quality": -0.8548113342913504,
            "contact": -0.834863431593825,
            "power": -1.2069205115262598,
            "discipline": 0.1691117356149214,
            "xwoba": 0.26,
            "recent_xwoba": 0.26,
            "barrel": 2.1,
            "ab_hard_contact": -0.7658388019537612,
            "ab_bat_speed": 65.50053496168582,
            "ab_strikeout_rate": 0.08972602739726027,
            "available": 1.0
          },
          {
            "player_id": "665926",
            "player_name": "Andrés Giménez",
            "position": "SS",
            "weight": 3.0,
            "quality": -0.8491562818941593,
            "contact": -0.8690244935786436,
            "power": -0.9874479527398556,
            "discipline": -0.5321773885029701,
            "xwoba": 0.273,
            "recent_xwoba": 0.273,
            "barrel": 3.2999999999999994,
            "ab_hard_contact": -0.9786733405113945,
            "ab_bat_speed": 65.57114345839345,
            "ab_strikeout_rate": 0.1890151515151515,
            "available": 1.0
          },
          {
            "player_id": "703520",
            "player_name": "Brett Bateman",
            "position": "CF",
            "weight": 4.0,
            "quality": -0.47735174955118437,
            "contact": -0.4697724982683986,
            "power": -1.1732595978294857,
            "discipline": 0.3917151078895267,
            "xwoba": 0.3,
            "recent_xwoba": 0.3,
            "barrel": 1.7,
            "ab_hard_contact": -0.7992871946849451,
            "ab_bat_speed": 65.20618494468494,
            "ab_strikeout_rate": 0.19797979797979798,
            "available": 1.0
          },
          {
            "player_id": "669701",
            "player_name": "Josh Smith",
            "position": "LF",
            "weight": 3.0,
            "quality": -0.6036646283235075,
            "contact": -0.882430914735844,
            "power": -0.6496957686241404,
            "discipline": 0.2995431645757919,
            "xwoba": 0.282,
            "recent_xwoba": 0.282,
            "barrel": 6.8,
            "ab_hard_contact": -0.8742963248637763,
            "ab_bat_speed": 66.10689735844588,
            "ab_strikeout_rate": 0.21965174129353235,
            "available": 1.0
          },
          {
            "player_id": "664770",
            "player_name": "Nathan Lukes",
            "position": "RF",
            "weight": 4.0,
            "quality": -0.4967227222790801,
            "contact": -0.34769155209750635,
            "power": -0.8214955705127005,
            "discipline": 0.13282585825027685,
            "xwoba": 0.286,
            "recent_xwoba": 0.286,
            "barrel": 2.7,
            "ab_hard_contact": -0.5773399816825755,
            "ab_bat_speed": 65.38670924170924,
            "ab_strikeout_rate": 0.13779761904761906,
            "available": 1.0
          }
        ]
      },
      "opposing_starter": {
        "available": true,
        "player_id": "669358",
        "player_name": "Shane Baz",
        "quality": -0.123547547442005,
        "contact": -0.05421694652360266,
        "command": -0.3530900434690757,
        "movement": 0.10908293266630636,
        "xwoba": 0.315,
        "whiff": 21.9,
        "faced_est_woba": 0.2648585351179453,
        "faced_launch_speed": 83.79207589285714,
        "faced_strikeout_rate": 0.23575569358178053,
        "faced_run_exp": 0.006506401041666653
      }
    },
    "home": {
      "team": "BAL",
      "original_runs": 4,
      "run_delta": 0.0277,
      "adjusted_runs": 4,
      "lineup": {
        "players_used": 8,
        "total_weight": 30.0,
        "quality": 0.2877842002657866,
        "contact": 0.036703219957989794,
        "power": 0.5448352960650561,
        "discipline": -0.36529731428688916,
        "xwoba": 0.31816666666666665,
        "recent_xwoba": 0.31816666666666665,
        "barrel": 10.206666666666665,
        "ab_hard_contact": -0.05271630092110082,
        "ab_bat_speed": 72.36967407692929,
        "ab_strikeout_rate": 0.3029922784414617,
        "available_players": 8,
        "top_players": [
          {
            "player_id": "624413",
            "player_name": "Pete Alonso",
            "position": "1B",
            "weight": 4.0,
            "quality": 1.482889938053645,
            "contact": 1.6054855724658328,
            "power": 1.895264081010068,
            "discipline": 0.2258456995201181,
            "xwoba": 0.396,
            "recent_xwoba": 0.396,
            "barrel": 14.5,
            "ab_hard_contact": 0.8999482868680363,
            "ab_bat_speed": 73.23232054375805,
            "ab_strikeout_rate": 0.24563492063492065,
            "available": 1.0
          },
          {
            "player_id": "691723",
            "player_name": "Coby Mayo",
            "position": "DH",
            "weight": 4.0,
            "quality": 0.48934999475242,
            "contact": 0.26647968215654133,
            "power": 1.1670745115466863,
            "discipline": -0.6198231565280482,
            "xwoba": 0.335,
            "recent_xwoba": 0.335,
            "barrel": 13.4,
            "ab_hard_contact": 0.0868235642670653,
            "ab_bat_speed": 73.89939347290641,
            "ab_strikeout_rate": 0.34066091954022987,
            "available": 1.0
          },
          {
            "player_id": "677956",
            "player_name": "Rece Hinds",
            "position": "RF",
            "weight": 3.0,
            "quality": -0.3625859807446731,
            "contact": -1.7883260651629072,
            "power": -1.4258403271604936,
            "discipline": -1.3374999999999997,
            "xwoba": 0.19600000000000004,
            "recent_xwoba": 0.196,
            "barrel": 0.0,
            "ab_hard_contact": -1.3533779717813055,
            "ab_bat_speed": 70.53128858024691,
            "ab_strikeout_rate": 0.5210526315789474,
            "available": 1.0
          },
          {
            "player_id": "687952",
            "player_name": "Christian Encarnacion-Strand",
            "position": "3B",
            "weight": 4.0,
            "quality": 0.31541075245585426,
            "contact": 0.16509266835317482,
            "power": 1.1480802062163422,
            "discipline": -0.7977773163528977,
            "xwoba": 0.334,
            "recent_xwoba": 0.334,
            "barrel": 14.7,
            "ab_hard_contact": -0.02639587567315395,
            "ab_bat_speed": 72.3939779265873,
            "ab_strikeout_rate": 0.27847222222222223,
            "available": 1.0
          },
          {
            "player_id": "694212",
            "player_name": "Samuel Basallo",
            "position": "C",
            "weight": 4.0,
            "quality": 0.2851414945612205,
            "contact": 0.06189846036324767,
            "power": 0.7880492092161325,
            "discipline": -0.46439117471675606,
            "xwoba": 0.321,
            "recent_xwoba": 0.321,
            "barrel": 12.2,
            "ab_hard_contact": -0.20053962520115445,
            "ab_bat_speed": 72.83740565857752,
            "ab_strikeout_rate": 0.25737179487179485,
            "available": 1.0
          }
        ]
      },
      "opposing_starter": {
        "available": true,
        "player_id": "702056",
        "player_name": "Trey Yesavage",
        "quality": 0.32140805132698635,
        "contact": 0.623899576873699,
        "command": 0.026338527959495844,
        "movement": -0.04490905746581948,
        "xwoba": 0.285,
        "whiff": 30.0,
        "faced_est_woba": 0.26622999261811936,
        "faced_launch_speed": 83.8425925925926,
        "faced_strikeout_rate": 0.2342687074829932,
        "faced_run_exp": 0.006624893707482986
      }
    }
  },
  "fundamental_edge_target_review": {
    "applied": false,
    "method": "post_score_adjustment_fundamental_edge_review_v1",
    "previous_score": {
      "away_runs": 5,
      "home_runs": 4,
      "winner_side": "away"
    },
    "adjusted_score": {
      "away_runs": 5,
      "home_runs": 4,
      "winner_side": "away"
    },
    "signals": {
      "season_quality_edge_home_minus_away": 0.0907,
      "recent_form_edge_home_minus_away": -0.046,
      "pitcher_matchup_edge_home_minus_away": -0.0531,
      "composite_home_edge": -0.2584,
      "existing_home_win_probability": 0.4927,
      "refreshed_home_win_probability": 0.3736,
      "winner_support_before_review": 0.2584
    },
    "reasons": [
      "target direction already matched refreshed fundamentals or margin was not fragile"
    ]
  },
  "uncapped_home_win_probability": 0.492724,
  "uncapped_away_win_probability": 0.507276,
  "confidence_shrinkage": {
    "policy": "starter_quality_shrinkage_v3",
    "staged_confidence": 0.507276,
    "discount_factor": 0.7225,
    "published_confidence": 0.505257,
    "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.373584,
    "incoming_favoured_side": "away",
    "score_winner_side": "away",
    "published_home_win_probability": 0.494743,
    "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": 5,
    "home_runs": 4,
    "predicted_score_text": "TOR 5 - 4 BAL",
    "confidence": 0.50525691,
    "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": 5,
      "home_runs": 4,
      "score_text": "TOR 5 - 4 BAL",
      "winner": "TOR"
    },
    "final_simulation_score": {
      "away_runs": 5,
      "home_runs": 4,
      "score_text": "TOR 5 - 4 BAL",
      "winner": "TOR"
    },
    "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.0531,
      "recent_form_edge_home_minus_away": -0.046,
      "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": 5,
      "home_runs": 4,
      "winner": "TOR",
      "model_winner": "TOR",
      "simulation_winner": "TOR",
      "simulation_winner_agrees": true,
      "simulation_agreement_scope": "selected_draw_only",
      "simulation_distribution_agreement": {
        "available": true,
        "draw_count": 5,
        "published_winner": "TOR",
        "published_winner_draw_share": 0.4,
        "draw_majority_team": "BAL",
        "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": 5,
        "home_runs": 4
      },
      "simulation_score": {
        "away_runs": 5,
        "home_runs": 4
      }
    },
    "final_margin_quality_review": {
      "review_required": false,
      "pre_margin": 1,
      "final_margin": 1,
      "winner_quality_edge": -0.0907,
      "winner": "TOR",
      "score_reviewed": {
        "away_runs": 5,
        "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": "TOR",
    "display_confidence": 0.5053,
    "internal_signal_score": 0.5328,
    "internal_signal_status": "ranking_signal_not_a_calibrated_fair_probability",
    "model_pick_probability": 0.5053,
    "confidence_compression_detected": false,
    "moneyline_fit": "unavailable_without_market_price",
    "betting_status": "price_required_before_betting_analysis",
    "market_context": null,
    "margin_fit": "volatile_margin_profile",
    "totals_fit": "high_volatility_totals",
    "winner_accuracy_and_margin_accuracy_decoupled": true,
    "signals": {
      "final_margin": 1,
      "winner_quality_edge": -0.0907,
      "winner_recent_form_edge": -0.164,
      "winner_pitcher_matchup_edge": 0.0531,
      "winner_simulation_draw_rate": 0.4,
      "blowout_draw_rate_margin_4_plus": 0.4,
      "high_total_draw_rate_11_plus": 0.0,
      "low_total_draw_rate_6_or_less": 0.2,
      "total_runs_spread": {
        "min": 6,
        "median": 8,
        "max": 9,
        "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."
  }
}

Savant Batter Quality

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.

TeamAppliedOffense FactorRaw Avg FactorCoverage WeightCoveredMissing
Away TORTrue0.98050.9805190
Home BALTrue1.03281.03690.888981

Away Batter Inputs

PosPlayerESPN RankOff FactorQualityRegressionxwOBAxBAxSLGBarrel%HardHit%EVLAWhiff%K%BB%Regression Edge
CAlejandro Kirk-1.00560.0742neutral0.30900.26500.37403.9040.2088.208.7016.1012.2010.20-0.7714
1BSean Keys-0.9820-0.2406neutral0.24000.19700.31707.1060.7090.7019.5031.5037.504.20-0.3429
DHGeorge Springer-0.9984-0.0210neutral0.30400.23400.37506.4038.3088.5012.7023.30189.40-0.5429
LFJosh Smith-0.9674-0.4352neutral0.28200.20500.32506.8030.8085.9014.902522.8011.20-0.3143
CFBrett Bateman-0.9700-0.3999negative_batter_regression0.30000.25700.32701.7020.7084.601.7015.20208.50-1.6000
RFNathan Lukes-0.9660-0.4538neutral0.28600.25200.34202.7028.2086.608.1016.3014.905.20-0.7429
3BKazuma Okamoto-1.05040.6721neutral0.32900.22500.450013.5043.9090.5019.5032.8028.909-0.1714
SSAndrés Giménez-0.9508-0.6556neutral0.27300.23500.32903.3024.6085.301324.5018.603.30-0.3143
2BErnie Clement-0.9335-0.8862neutral0.26000.24200.32002.1020.3084.1017.5015.309.403.70-0.8571

Home Batter Inputs

PosPlayerESPN RankOff FactorQualityRegressionxwOBAxBAxSLGBarrel%HardHit%EVLAWhiff%K%BB%Regression Edge
DHCoby Mayo-1.06620.8830neutral0.33500.23400.475013.4047.9091.4019.4029.9030.307.700.1143
LFDylan Beavers-0.9967-0.0439neutral0.29700.22500.3690737.4087.5018.3024.9026.209.50-0.2286
3BChristian Encarnacion-Strand-1.04830.6441neutral0.33400.24600.489014.7039.5090.4018.4029.6027.405.10-0.4286
SSGunnar Henderson-1.03150.4198neutral0.32000.24600.39807.4043.1089.2012.2023.1021.809.500.2571
1BPete Alonso-1.13901.8535neutral0.39600.28300.548014.5056.209414.8026.8024.2011.600.6857
RFRece Hinds-0.9429-0.7612neutral0.19600.14000.183004088.9018.8043.4042.907.90-0.8000
CSamuel Basallo-1.04720.6298neutral0.32100.23700.445012.2043.1090.5011.3031.6026.207.900.4286
CFColton Cowser-1.02310.3085neutral0.31500.21900.40409.8040.7087.9012.8032.803111.500.3429
Raw Savant Batter Quality JSON
{
  "home": {
    "applied": true,
    "offense_factor": 1.0328,
    "raw_average_factor": 1.0369,
    "team_espn_average_rank": null,
    "coverage_weight": 0.8889,
    "covered_batters": 8,
    "missing_batters": 1,
    "players": [
      {
        "position": "DH",
        "player_id": "691723",
        "player_name": "Coby Mayo",
        "offense_factor": 1.0662,
        "quality_score": 0.883,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "691723",
          "espn_rank": null
        },
        "metrics": {
          "pa": 414.0,
          "k_percent": 30.3,
          "bb_percent": 7.7,
          "woba": 0.331,
          "xwoba": 0.335,
          "xba": 0.234,
          "xslg": 0.475,
          "sweet_spot_percent": 34.1,
          "barrel_batted_rate": 13.4,
          "hard_hit_percent": 47.9,
          "exit_velocity_avg": 91.4,
          "launch_angle_avg": 19.4,
          "whiff_percent": 29.9,
          "swing_percent": 46.7
        },
        "components": {
          "expected_quality": 1.0082,
          "regression_edge": 0.1143,
          "xwoba_edge": 1.0286,
          "xba_edge": -0.0571,
          "xslg_edge": 1.5786,
          "barrel_edge": 1.4889,
          "hard_hit_edge": 1.4571,
          "exit_velocity_edge": 1.2,
          "sweet_spot_edge": 0.1333,
          "launch_angle_hr_bonus": 0.45
        }
      },
      {
        "position": "LF",
        "player_id": "687637",
        "player_name": "Dylan Beavers",
        "offense_factor": 0.9967,
        "quality_score": -0.0439,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "687637",
          "espn_rank": null
        },
        "metrics": {
          "pa": 323.0,
          "k_percent": 26.2,
          "bb_percent": 9.5,
          "woba": 0.305,
          "xwoba": 0.297,
          "xba": 0.225,
          "xslg": 0.369,
          "sweet_spot_percent": 38.3,
          "barrel_batted_rate": 7.0,
          "hard_hit_percent": 37.4,
          "exit_velocity_avg": 87.5,
          "launch_angle_avg": 18.3,
          "whiff_percent": 24.9,
          "swing_percent": 42.0
        },
        "components": {
          "expected_quality": -0.0138,
          "regression_edge": -0.2286,
          "xwoba_edge": -0.0571,
          "xba_edge": -0.3143,
          "xslg_edge": 0.0643,
          "barrel_edge": 0.0667,
          "hard_hit_edge": -0.0429,
          "exit_velocity_edge": -0.36,
          "sweet_spot_edge": 0.8333,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "3B",
        "player_id": "687952",
        "player_name": "Christian Encarnacion-Strand",
        "offense_factor": 1.0483,
        "quality_score": 0.6441,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "687952",
          "espn_rank": null
        },
        "metrics": {
          "pa": 179.0,
          "k_percent": 27.4,
          "bb_percent": 5.1,
          "woba": 0.349,
          "xwoba": 0.334,
          "xba": 0.246,
          "xslg": 0.489,
          "sweet_spot_percent": 35.7,
          "barrel_batted_rate": 14.7,
          "hard_hit_percent": 39.5,
          "exit_velocity_avg": 90.4,
          "launch_angle_avg": 18.4,
          "whiff_percent": 29.6,
          "swing_percent": 61.0
        },
        "components": {
          "expected_quality": 0.9903,
          "regression_edge": -0.4286,
          "xwoba_edge": 1.0,
          "xba_edge": 0.2857,
          "xslg_edge": 1.7786,
          "barrel_edge": 1.7778,
          "hard_hit_edge": 0.2571,
          "exit_velocity_edge": 0.8,
          "sweet_spot_edge": 0.4,
          "launch_angle_hr_bonus": 0.45
        }
      },
      {
        "position": "SS",
        "player_id": "683002",
        "player_name": "Gunnar Henderson",
        "offense_factor": 1.0315,
        "quality_score": 0.4198,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "683002",
          "espn_rank": null
        },
        "metrics": {
          "pa": 658.0,
          "k_percent": 21.8,
          "bb_percent": 9.5,
          "woba": 0.311,
          "xwoba": 0.32,
          "xba": 0.246,
          "xslg": 0.398,
          "sweet_spot_percent": 32.5,
          "barrel_batted_rate": 7.4,
          "hard_hit_percent": 43.1,
          "exit_velocity_avg": 89.2,
          "launch_angle_avg": 12.2,
          "whiff_percent": 23.1,
          "swing_percent": 47.4
        },
        "components": {
          "expected_quality": 0.4463,
          "regression_edge": 0.2571,
          "xwoba_edge": 0.6,
          "xba_edge": 0.2857,
          "xslg_edge": 0.4786,
          "barrel_edge": 0.1556,
          "hard_hit_edge": 0.7714,
          "exit_velocity_edge": 0.32,
          "sweet_spot_edge": -0.1333,
          "launch_angle_hr_bonus": 0.2
        }
      },
      {
        "position": "1B",
        "player_id": "624413",
        "player_name": "Pete Alonso",
        "offense_factor": 1.139,
        "quality_score": 1.8535,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "624413",
          "espn_rank": null
        },
        "metrics": {
          "pa": 648.0,
          "k_percent": 24.2,
          "bb_percent": 11.6,
          "woba": 0.372,
          "xwoba": 0.396,
          "xba": 0.283,
          "xslg": 0.548,
          "sweet_spot_percent": 36.0,
          "barrel_batted_rate": 14.5,
          "hard_hit_percent": 56.2,
          "exit_velocity_avg": 94.0,
          "launch_angle_avg": 14.8,
          "whiff_percent": 26.8,
          "swing_percent": 45.1
        },
        "components": {
          "expected_quality": 2.0436,
          "regression_edge": 0.6857,
          "xwoba_edge": 2.5,
          "xba_edge": 1.3429,
          "xslg_edge": 2.5,
          "barrel_edge": 1.7333,
          "hard_hit_edge": 2.5,
          "exit_velocity_edge": 2.24,
          "sweet_spot_edge": 0.45,
          "launch_angle_hr_bonus": 0.2
        }
      },
      {
        "position": "RF",
        "player_id": "677956",
        "player_name": "Rece Hinds",
        "offense_factor": 0.9429,
        "quality_score": -0.7612,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "677956",
          "espn_rank": null
        },
        "metrics": {
          "pa": 52.0,
          "k_percent": 42.9,
          "bb_percent": 7.9,
          "woba": 0.224,
          "xwoba": 0.196,
          "xba": 0.14,
          "xslg": 0.183,
          "sweet_spot_percent": 26.7,
          "barrel_batted_rate": 0.0,
          "hard_hit_percent": 40.0,
          "exit_velocity_avg": 88.9,
          "launch_angle_avg": 18.8,
          "whiff_percent": 43.4,
          "swing_percent": 52.5
        },
        "components": {
          "expected_quality": -1.8368,
          "regression_edge": -0.8,
          "xwoba_edge": -2.5,
          "xba_edge": -2.5,
          "xslg_edge": -2.5,
          "barrel_edge": -1.4889,
          "hard_hit_edge": 0.3286,
          "exit_velocity_edge": 0.2,
          "sweet_spot_edge": -1.1,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "C",
        "player_id": "694212",
        "player_name": "Samuel Basallo",
        "offense_factor": 1.0472,
        "quality_score": 0.6298,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "694212",
          "espn_rank": null
        },
        "metrics": {
          "pa": 375.0,
          "k_percent": 26.2,
          "bb_percent": 7.9,
          "woba": 0.306,
          "xwoba": 0.321,
          "xba": 0.237,
          "xslg": 0.445,
          "sweet_spot_percent": 31.0,
          "barrel_batted_rate": 12.2,
          "hard_hit_percent": 43.1,
          "exit_velocity_avg": 90.5,
          "launch_angle_avg": 11.3,
          "whiff_percent": 31.6,
          "swing_percent": 53.1
        },
        "components": {
          "expected_quality": 0.6626,
          "regression_edge": 0.4286,
          "xwoba_edge": 0.6286,
          "xba_edge": 0.0286,
          "xslg_edge": 1.15,
          "barrel_edge": 1.2222,
          "hard_hit_edge": 0.7714,
          "exit_velocity_edge": 0.84,
          "sweet_spot_edge": -0.3833,
          "launch_angle_hr_bonus": 0.2
        }
      },
      {
        "position": "CF",
        "player_id": "681297",
        "player_name": "Colton Cowser",
        "offense_factor": 1.0231,
        "quality_score": 0.3085,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "681297",
          "espn_rank": null
        },
        "metrics": {
          "pa": 357.0,
          "k_percent": 31.0,
          "bb_percent": 11.5,
          "woba": 0.303,
          "xwoba": 0.315,
          "xba": 0.219,
          "xslg": 0.404,
          "sweet_spot_percent": 33.2,
          "barrel_batted_rate": 9.8,
          "hard_hit_percent": 40.7,
          "exit_velocity_avg": 87.9,
          "launch_angle_avg": 12.8,
          "whiff_percent": 32.8,
          "swing_percent": 44.6
        },
        "components": {
          "expected_quality": 0.3029,
          "regression_edge": 0.3429,
          "xwoba_edge": 0.4571,
          "xba_edge": -0.4857,
          "xslg_edge": 0.5643,
          "barrel_edge": 0.6889,
          "hard_hit_edge": 0.4286,
          "exit_velocity_edge": -0.2,
          "sweet_spot_edge": -0.0167,
          "launch_angle_hr_bonus": 0.0
        }
      }
    ],
    "source": "all_players_stats.csv embedded Savant batter features"
  },
  "away": {
    "applied": true,
    "offense_factor": 0.9805,
    "raw_average_factor": 0.9805,
    "team_espn_average_rank": null,
    "coverage_weight": 1.0,
    "covered_batters": 9,
    "missing_batters": 0,
    "players": [
      {
        "position": "C",
        "player_id": "672386",
        "player_name": "Alejandro Kirk",
        "offense_factor": 1.0056,
        "quality_score": 0.0742,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "672386",
          "espn_rank": null
        },
        "metrics": {
          "pa": 276.0,
          "k_percent": 12.2,
          "bb_percent": 10.2,
          "woba": 0.336,
          "xwoba": 0.309,
          "xba": 0.265,
          "xslg": 0.374,
          "sweet_spot_percent": 32.8,
          "barrel_batted_rate": 3.9,
          "hard_hit_percent": 40.2,
          "exit_velocity_avg": 88.2,
          "launch_angle_avg": 8.7,
          "whiff_percent": 16.1,
          "swing_percent": 43.4
        },
        "components": {
          "expected_quality": 0.2118,
          "regression_edge": -0.7714,
          "xwoba_edge": 0.2857,
          "xba_edge": 0.8286,
          "xslg_edge": 0.1357,
          "barrel_edge": -0.6222,
          "hard_hit_edge": 0.3571,
          "exit_velocity_edge": -0.08,
          "sweet_spot_edge": -0.0833,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "1B",
        "player_id": "815873",
        "player_name": "Sean Keys",
        "offense_factor": 0.982,
        "quality_score": -0.2406,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "815873",
          "espn_rank": null
        },
        "metrics": {
          "pa": 46.0,
          "k_percent": 37.5,
          "bb_percent": 4.2,
          "woba": 0.252,
          "xwoba": 0.24,
          "xba": 0.197,
          "xslg": 0.317,
          "sweet_spot_percent": 35.7,
          "barrel_batted_rate": 7.1,
          "hard_hit_percent": 60.7,
          "exit_velocity_avg": 90.7,
          "launch_angle_avg": 19.5,
          "whiff_percent": 31.5,
          "swing_percent": 50.7
        },
        "components": {
          "expected_quality": -0.5659,
          "regression_edge": -0.3429,
          "xwoba_edge": -1.6857,
          "xba_edge": -1.1143,
          "xslg_edge": -0.6786,
          "barrel_edge": 0.0889,
          "hard_hit_edge": 2.5,
          "exit_velocity_edge": 0.92,
          "sweet_spot_edge": 0.4,
          "launch_angle_hr_bonus": 0.45
        }
      },
      {
        "position": "DH",
        "player_id": "543807",
        "player_name": "George Springer",
        "offense_factor": 0.9984,
        "quality_score": -0.021,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "543807",
          "espn_rank": null
        },
        "metrics": {
          "pa": 484.0,
          "k_percent": 18.0,
          "bb_percent": 9.4,
          "woba": 0.323,
          "xwoba": 0.304,
          "xba": 0.234,
          "xslg": 0.375,
          "sweet_spot_percent": 29.3,
          "barrel_batted_rate": 6.4,
          "hard_hit_percent": 38.3,
          "exit_velocity_avg": 88.5,
          "launch_angle_avg": 12.7,
          "whiff_percent": 23.3,
          "swing_percent": 48.3
        },
        "components": {
          "expected_quality": 0.0639,
          "regression_edge": -0.5429,
          "xwoba_edge": 0.1429,
          "xba_edge": -0.0571,
          "xslg_edge": 0.15,
          "barrel_edge": -0.0667,
          "hard_hit_edge": 0.0857,
          "exit_velocity_edge": 0.04,
          "sweet_spot_edge": -0.6667,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "LF",
        "player_id": "669701",
        "player_name": "Josh Smith",
        "offense_factor": 0.9674,
        "quality_score": -0.4352,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "669701",
          "espn_rank": null
        },
        "metrics": {
          "pa": 213.0,
          "k_percent": 22.8,
          "bb_percent": 11.2,
          "woba": 0.293,
          "xwoba": 0.282,
          "xba": 0.205,
          "xslg": 0.325,
          "sweet_spot_percent": 32.9,
          "barrel_batted_rate": 6.8,
          "hard_hit_percent": 30.8,
          "exit_velocity_avg": 85.9,
          "launch_angle_avg": 14.9,
          "whiff_percent": 25.0,
          "swing_percent": 47.0
        },
        "components": {
          "expected_quality": -0.4716,
          "regression_edge": -0.3143,
          "xwoba_edge": -0.4857,
          "xba_edge": -0.8857,
          "xslg_edge": -0.5643,
          "barrel_edge": 0.0222,
          "hard_hit_edge": -0.9857,
          "exit_velocity_edge": -1.0,
          "sweet_spot_edge": -0.0667,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "CF",
        "player_id": "703520",
        "player_name": "Brett Bateman",
        "offense_factor": 0.97,
        "quality_score": -0.3999,
        "regression_flag": "negative_batter_regression",
        "espn_rank": {
          "available": false,
          "player_id": "703520",
          "espn_rank": null
        },
        "metrics": {
          "pa": 150.0,
          "k_percent": 20.0,
          "bb_percent": 8.5,
          "woba": 0.356,
          "xwoba": 0.3,
          "xba": 0.257,
          "xslg": 0.327,
          "sweet_spot_percent": 32.8,
          "barrel_batted_rate": 1.7,
          "hard_hit_percent": 20.7,
          "exit_velocity_avg": 84.6,
          "launch_angle_avg": 1.7,
          "whiff_percent": 15.2,
          "swing_percent": 43.1
        },
        "components": {
          "expected_quality": -0.4215,
          "regression_edge": -1.6,
          "xwoba_edge": 0.0286,
          "xba_edge": 0.6,
          "xslg_edge": -0.5357,
          "barrel_edge": -1.1111,
          "hard_hit_edge": -2.4286,
          "exit_velocity_edge": -1.52,
          "sweet_spot_edge": -0.0833,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "RF",
        "player_id": "664770",
        "player_name": "Nathan Lukes",
        "offense_factor": 0.966,
        "quality_score": -0.4538,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "664770",
          "espn_rank": null
        },
        "metrics": {
          "pa": 409.0,
          "k_percent": 14.9,
          "bb_percent": 5.2,
          "woba": 0.312,
          "xwoba": 0.286,
          "xba": 0.252,
          "xslg": 0.342,
          "sweet_spot_percent": 30.3,
          "barrel_batted_rate": 2.7,
          "hard_hit_percent": 28.2,
          "exit_velocity_avg": 86.6,
          "launch_angle_avg": 8.1,
          "whiff_percent": 16.3,
          "swing_percent": 50.2
        },
        "components": {
          "expected_quality": -0.4067,
          "regression_edge": -0.7429,
          "xwoba_edge": -0.3714,
          "xba_edge": 0.4571,
          "xslg_edge": -0.3214,
          "barrel_edge": -0.8889,
          "hard_hit_edge": -1.3571,
          "exit_velocity_edge": -0.72,
          "sweet_spot_edge": -0.5,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "3B",
        "player_id": "672960",
        "player_name": "Kazuma Okamoto",
        "offense_factor": 1.0504,
        "quality_score": 0.6721,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "672960",
          "espn_rank": null
        },
        "metrics": {
          "pa": 592.0,
          "k_percent": 28.9,
          "bb_percent": 9.0,
          "woba": 0.335,
          "xwoba": 0.329,
          "xba": 0.225,
          "xslg": 0.45,
          "sweet_spot_percent": 34.5,
          "barrel_batted_rate": 13.5,
          "hard_hit_percent": 43.9,
          "exit_velocity_avg": 90.5,
          "launch_angle_avg": 19.5,
          "whiff_percent": 32.8,
          "swing_percent": 47.3
        },
        "components": {
          "expected_quality": 0.8094,
          "regression_edge": -0.1714,
          "xwoba_edge": 0.8571,
          "xba_edge": -0.3143,
          "xslg_edge": 1.2214,
          "barrel_edge": 1.5111,
          "hard_hit_edge": 0.8857,
          "exit_velocity_edge": 0.84,
          "sweet_spot_edge": 0.2,
          "launch_angle_hr_bonus": 0.45
        }
      },
      {
        "position": "SS",
        "player_id": "665926",
        "player_name": "Andrés Giménez",
        "offense_factor": 0.9508,
        "quality_score": -0.6556,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "665926",
          "espn_rank": null
        },
        "metrics": {
          "pa": 472.0,
          "k_percent": 18.6,
          "bb_percent": 3.3,
          "woba": 0.284,
          "xwoba": 0.273,
          "xba": 0.235,
          "xslg": 0.329,
          "sweet_spot_percent": 30.1,
          "barrel_batted_rate": 3.3,
          "hard_hit_percent": 24.6,
          "exit_velocity_avg": 85.3,
          "launch_angle_avg": 13.0,
          "whiff_percent": 24.5,
          "swing_percent": 57.9
        },
        "components": {
          "expected_quality": -0.7112,
          "regression_edge": -0.3143,
          "xwoba_edge": -0.7429,
          "xba_edge": -0.0286,
          "xslg_edge": -0.5071,
          "barrel_edge": -0.7556,
          "hard_hit_edge": -1.8714,
          "exit_velocity_edge": -1.24,
          "sweet_spot_edge": -0.5333,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "2B",
        "player_id": "676391",
        "player_name": "Ernie Clement",
        "offense_factor": 0.9335,
        "quality_score": -0.8862,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "676391",
          "espn_rank": null
        },
        "metrics": {
          "pa": 581.0,
          "k_percent": 9.4,
          "bb_percent": 3.7,
          "woba": 0.29,
          "xwoba": 0.26,
          "xba": 0.242,
          "xslg": 0.32,
          "sweet_spot_percent": 32.1,
          "barrel_batted_rate": 2.1,
          "hard_hit_percent": 20.3,
          "exit_velocity_avg": 84.1,
          "launch_angle_avg": 17.5,
          "whiff_percent": 15.3,
          "swing_percent": 57.5
        },
        "components": {
          "expected_quality": -0.8909,
          "regression_edge": -0.8571,
          "xwoba_edge": -1.1143,
          "xba_edge": 0.1714,
          "xslg_edge": -0.6357,
          "barrel_edge": -1.0222,
          "hard_hit_edge": -2.4857,
          "exit_velocity_edge": -1.72,
          "sweet_spot_edge": -0.2,
          "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"
}

Savant Pitcher Quality

Source: data/all_players_stats.csv embedded Savant pitcher and movement features. Starter quality modifies opposing run scoring and pitcher strikeout/walk/homer expectations.

TeamPitcherAvailableESPN RankQualitySample WtRun PrevK FactorBB FactorHR FactorRegressionxwOBAwOBAK%BB%Whiff%Barrel%HardHit%
Away TORTrue-0.315910.97311.03771.05600.9359neutral0.28500.280023.6011.90306.1034
Home BALTrue--0.142511.01210.97370.98001.0215neutral0.31500.318020.508.1021.906.9042

Pitch Movement And Arsenal

TeamPitcherMovement AvailablePrimary PitchPitchesVeloSpinAxisHBIVBDropRel XRel ZExtensionArm AngleMovement Score
Away TORTrueNone8889.32200500000000-0.0299
Home BALTrueNone9590.712403000000000.0480
Run FactorValue
away_runs_vs_home_pitcher1.0115
home_runs_vs_away_pitcher0.9855
home_pitcher_starter_only_factor1.0121
away_pitcher_starter_only_factor0.9731
home_pitcher_workload_share0.6296
away_pitcher_workload_share0.5556
home_pitcher_quality_edge-0.2652
Raw Savant Pitcher Quality JSON
{
  "applied": true,
  "home_pitcher": {
    "available": true,
    "pitcher_id": "669358",
    "player_name": "",
    "source": "all_players_stats.csv embedded Savant pitcher features",
    "source_url": null,
    "metrics": {
      "pa": 694.0,
      "k_percent": 20.5,
      "bb_percent": 8.1,
      "woba": 0.318,
      "xwoba": 0.315,
      "sweet_spot_percent": 35.5,
      "barrel_batted_rate": 6.9,
      "hard_hit_percent": 42.0,
      "avg_best_speed": 80.2761,
      "avg_hyper_speed": 94.4624,
      "whiff_percent": 21.9,
      "swing_percent": 48.2
    },
    "league_medians": {
      "pa": 135.0,
      "k_percent": 22.0,
      "bb_percent": 9.1,
      "woba": 0.316,
      "xwoba": 0.311,
      "sweet_spot_percent": 33.3,
      "barrel_batted_rate": 7.2,
      "hard_hit_percent": 37.9,
      "avg_best_speed": 77.6329,
      "avg_hyper_speed": 93.8957,
      "whiff_percent": 25.0,
      "swing_percent": 47.4
    },
    "components": {
      "contact_quality": -0.183,
      "command_and_miss": -0.2014,
      "regression_edge": 0.0857,
      "xwoba_edge": -0.1143,
      "barrel_edge": 0.0667,
      "hard_hit_edge": -0.5857,
      "whiff_edge": -0.4429,
      "bb_edge": 0.25,
      "pitch_design_score": 0.048
    },
    "pitch_movement_profile": {
      "available": true,
      "pitcher_id": "669358",
      "player_name": null,
      "source": "all_players_stats.csv embedded Savant pitcher movement features",
      "total_pitches": 95,
      "primary_pitch": {
        "pitch_type": null,
        "pitch_name": null,
        "pitches": 95,
        "pitch_usage": 0.0,
        "release_speed": 90.70819900179096,
        "release_spin_rate": 2403.1313618200516,
        "spin_axis": null,
        "horizontal_break_inches": 0.0,
        "induced_vertical_break_inches": 0.0,
        "vertical_break_with_gravity_inches": null,
        "release_pos_x": null,
        "release_pos_z": null,
        "release_extension": 0.0,
        "arm_angle": 0.0,
        "whiff_percent": 0.0,
        "xwoba": 0.0,
        "hard_hit_percent": 0.0
      },
      "pitch_mix": [
        {
          "pitch_type": null,
          "pitch_name": null,
          "pitches": 95,
          "pitch_usage": 0.0,
          "release_speed": 90.70819900179096,
          "release_spin_rate": 2403.1313618200516,
          "spin_axis": null,
          "horizontal_break_inches": 0.0,
          "induced_vertical_break_inches": 0.0,
          "vertical_break_with_gravity_inches": null,
          "release_pos_x": null,
          "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.7082,
        "release_spin_rate": 2403.1314,
        "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.048,
        "horizontal_break_edge": 0.0,
        "induced_vertical_break_edge": 0.0,
        "extension_edge": 0.0,
        "velocity_edge": 0.3427,
        "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.1425,
    "sample_weight": 1.0,
    "run_prevention_factor": 1.0121,
    "strikeout_factor": 0.9737,
    "walk_factor": 0.98,
    "homer_factor": 1.0215,
    "woba_minus_xwoba": 0.003,
    "regression_flag": "neutral",
    "espn_rank": {
      "available": false,
      "player_id": "669358",
      "espn_rank": null
    }
  },
  "away_pitcher": {
    "available": true,
    "pitcher_id": "702056",
    "player_name": "",
    "source": "all_players_stats.csv embedded Savant pitcher features",
    "source_url": null,
    "metrics": {
      "pa": 356.0,
      "k_percent": 23.6,
      "bb_percent": 11.9,
      "woba": 0.28,
      "xwoba": 0.285,
      "sweet_spot_percent": 36.4,
      "barrel_batted_rate": 6.1,
      "hard_hit_percent": 34.0,
      "avg_best_speed": 78.1032,
      "avg_hyper_speed": 93.3477,
      "whiff_percent": 30.0,
      "swing_percent": 47.3
    },
    "league_medians": {
      "pa": 135.0,
      "k_percent": 22.0,
      "bb_percent": 9.1,
      "woba": 0.316,
      "xwoba": 0.311,
      "sweet_spot_percent": 33.3,
      "barrel_batted_rate": 7.2,
      "hard_hit_percent": 37.9,
      "avg_best_speed": 77.6329,
      "avg_hyper_speed": 93.8957,
      "whiff_percent": 25.0,
      "swing_percent": 47.4
    },
    "components": {
      "contact_quality": 0.4951,
      "command_and_miss": 0.2129,
      "regression_edge": -0.1429,
      "xwoba_edge": 0.7429,
      "barrel_edge": 0.2444,
      "hard_hit_edge": 0.5571,
      "whiff_edge": 0.7143,
      "bb_edge": -0.7,
      "pitch_design_score": -0.0299
    },
    "pitch_movement_profile": {
      "available": true,
      "pitcher_id": "702056",
      "player_name": null,
      "source": "all_players_stats.csv embedded Savant pitcher movement features",
      "total_pitches": 88,
      "primary_pitch": {
        "pitch_type": null,
        "pitch_name": null,
        "pitches": 88,
        "pitch_usage": 0.0,
        "release_speed": 89.31756719718713,
        "release_spin_rate": 2004.5012215502159,
        "spin_axis": null,
        "horizontal_break_inches": 0.0,
        "induced_vertical_break_inches": 0.0,
        "vertical_break_with_gravity_inches": null,
        "release_pos_x": null,
        "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": 89.31756719718713,
          "release_spin_rate": 2004.5012215502159,
          "spin_axis": null,
          "horizontal_break_inches": 0.0,
          "induced_vertical_break_inches": 0.0,
          "vertical_break_with_gravity_inches": null,
          "release_pos_x": null,
          "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.3176,
        "release_spin_rate": 2004.5012,
        "spin_axis": 0.0,
        "horizontal_break_inches": 0.0,
        "induced_vertical_break_inches": 0.0,
        "vertical_break_with_gravity_inches": 0.0,
        "release_pos_x": 0.0,
        "release_pos_z": 0.0,
        "release_extension": 0.0,
        "arm_angle": 0.0,
        "whiff_percent": 0.0,
        "xwoba": 0.0,
        "hard_hit_percent": 0.0
      },
      "components": {
        "movement_score": -0.0299,
        "horizontal_break_edge": 0.0,
        "induced_vertical_break_edge": 0.0,
        "extension_edge": 0.0,
        "velocity_edge": -0.2136,
        "whiff_edge": 0.0,
        "xwoba_edge": -0.0,
        "hard_hit_edge": -0.0
      },
      "spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
    },
    "quality_score": 0.3159,
    "sample_weight": 1.0,
    "run_prevention_factor": 0.9731,
    "strikeout_factor": 1.0377,
    "walk_factor": 1.056,
    "homer_factor": 0.9359,
    "woba_minus_xwoba": -0.005,
    "regression_flag": "neutral",
    "espn_rank": {
      "available": false,
      "player_id": "702056",
      "espn_rank": null
    }
  },
  "run_factors": {
    "away_runs_vs_home_pitcher": 1.0115,
    "home_runs_vs_away_pitcher": 0.9855,
    "home_pitcher_starter_only_factor": 1.0121,
    "away_pitcher_starter_only_factor": 0.9731,
    "home_pitcher_workload_share": 0.6296,
    "away_pitcher_workload_share": 0.5556,
    "home_pitcher_quality_edge": -0.2652
  },
  "score_before": {
    "away_runs": 4.0,
    "home_runs": 3.0
  },
  "score_after": {
    "away_runs": 4.0459,
    "home_runs": 2.9566,
    "home_win_probability": 0.4026
  },
  "reason": "Baseball Savant xwOBA, barrel, hard-hit, sweet-spot, whiff, K%, and BB% adjusted starter run prevention"
}

Team Form Snapshot

TeamLast-10 W-LWin %R/GRA/GRun DiffStreakOffenseDefense
Away TOR4-60.40044.50-51Waverageaverage
Home BAL5-50.5004.104.1003Laverageaverage

Season Run Differential

TeamRecordWin %Run DiffRD/GameAvailable
Away TOR77-790.494-42-0.269True
Home BAL75-810.481-31-0.199True
Signal--0.0700.091applied=False

Recent Head-to-Head

DateMatchupScoreWinnerMarginType
2026-09-13BAL @ TOR1 - 8TOR7blowout
2026-09-12BAL @ TOR3 - 7TOR4blowout
2026-09-11BAL @ TOR7 - 4BAL3blowout
2026-06-07BAL @ TOR4 - 6TOR2close
2026-06-06BAL @ TOR4 - 6TOR2close

Player/Game Reconciliation

LayerABHRHRRBIBBSO
Game target TOR--5----
Game target BAL--4----
Player finalized TOR32841437
Player finalized BAL337414410
Player model fractional TOR33.267.913.650.853.612.436.41
Player model fractional BAL30.866.013.681.213.773.319.39
Simulation box TOR36952527
Simulation box BAL32542426

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.

Pitching Snapshot

TeamRolePitcherPre IPPre ERPre SOPre HPre BBWeighted ERAWeighted WHIPBox Sync
Away TORStarterTrey Yesavage534414.391.26True
Away TORMiddle Reliever (High Leverage)Spencer Miles1.2001001.351.04True
Away TORCloserLouis Varland1.1010102.291.11True
Away TORSetup ManTyler Rogers101011.441.04True
Home BALStarterShane Baz5.2044724.411.36True
Home BALCloserAndrew Kittredge101105.631.42True
Home BALSetup ManRico Garcia1.2001003.621.45True
Home BALMiddle Reliever (High Leverage)Yennier Cano0.2011102.201.13True
Market-line comparison is not rendered because no local odds or sportsbook line CSV was found in data/. Add a real odds source before using market deltas as a model feature.

Player Boost/Deboost Impact Summary

SideTeamRolePosPlayerDominantChangedBoostedDeboostedBetterWorseLargest MetricLargest DeltaDirectionEffect
homeBALbatterSSGunnar Hendersonworse84435predicted_SO2.0200boostworse
awayTORbatterCFBrett Batemanworse114756predicted_RBI1.6800boostbetter
awayTORbatter2BErnie Clementworse91809predicted_SO1.6290boostworse
homeBALbatterRFRece Hindsworse91827predicted_AB1.5000boostbetter
homeBALbatterDHCoby Mayobetter118392predicted_RBI1.4750boostbetter
homeBALbatter2BJosé Barrerodeboosted83544predicted_AB-1.3690deboostworse
awayTORbatter1BSean Keysworse116556predicted_AB1.3330boostbetter
awayTORbatterSSAndrés Giménezworse93645predicted_H1.3000boostbetter
awayTORbatterCAlejandro Kirkbetter115665predicted_RBI1.2100boostbetter
awayTORbatterRFNathan Lukesdeboosted104655predicted_H1.0600boostbetter
awayTORbatter3BKazuma Okamotoworse1019010predicted_H-1.0400deboostworse
homeBALbatter1BPete Alonsoworse113847predicted_AB-1.0300deboostworse
homeBALbatterCFColton Cowserbetter96372predicted_SO-0.9670deboostbetter
homeBALbatterLFDylan Beaversworse101928predicted_SO-0.9470deboostbetter
awayTORbatterLFJosh Smithbetter116574predicted_2B0.9440boostbetter
awayTORbatterDHGeorge Springerworse113829predicted_H0.6600boostbetter
homeBALbatter3BChristian Encarnacion-Strandworse1111029predicted_AB0.5490boostbetter
homeBALbatterCSamuel Basalloworse82626predicted_RBI-0.5100deboostworse
homeBALpitcherStarterShane Bazworse10101predicted_IP-0.4667deboostworse
homeBALpitcherMiddle Reliever (High Leverage)Yennier Canoworse10101predicted_IP-0.4667deboostworse
homeBALpitcherSetup ManRico Garciabetter11010predicted_IP0.2000boostbetter
awayTORpitcherMiddle Reliever (High Leverage)Spencer Milesworse10101predicted_IP-0.1333deboostworse
awayTORpitcherCloserLouis Varlandbetter11010predicted_IP0.1000boostbetter

This table ranks players whose JSON evolution changed materially. Boost/deboost is numeric movement; better/worse is role-aware.

Away Team: TOR

Away Pitcher Deep Analysis

FieldValue
PitcherTrey Yesavage
RoleStarter
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score0.3159
ESPN Rank-
Movement AvailableTrue
Primary Pitch-
Movement Score-0.0299
Avg Velo89.3176
Avg Spin2004.5012
HB Inches0
IVB Inches0
Release Extension0
Pre IP5
Pre ER3
Pre H4
Pre BB1
Pre SO4
Season ERA3.6512
Season WHIP1.1423
Role Avg IP5.2040
Recent Avg IP4.0670
Last Start IP2
Team Form Snapshot
{
  "method": "team_form_snapshot",
  "role": "pitcher",
  "team": {
    "team": "TOR",
    "games": 156,
    "wins": 77,
    "losses": 79,
    "win_pct": 0.4936,
    "runs_scored": 629.0,
    "runs_allowed": 671.0,
    "run_differential": -42.0,
    "run_differential_per_game": -0.2692,
    "avg_runs_scored": 4.0321,
    "avg_runs_allowed": 4.3013,
    "offense_index": 0.8957,
    "defense_index": 1.0465,
    "current_streak": "W1",
    "recent": {
      "games": 10,
      "wins": 4,
      "losses": 6,
      "win_pct": 0.4,
      "avg_runs_scored": 4.0,
      "avg_runs_allowed": 4.5,
      "run_differential": -5.0
    },
    "available": true,
    "quality_score": -0.0733
  },
  "opponent": {
    "team": "BAL",
    "games": 156,
    "wins": 75,
    "losses": 81,
    "win_pct": 0.4808,
    "runs_scored": 693.0,
    "runs_allowed": 724.0,
    "run_differential": -31.0,
    "run_differential_per_game": -0.1987,
    "avg_runs_scored": 4.4423,
    "avg_runs_allowed": 4.641,
    "offense_index": 0.9869,
    "defense_index": 0.9699,
    "current_streak": "L3",
    "recent": {
      "games": 10,
      "wins": 5,
      "losses": 5,
      "win_pct": 0.5,
      "avg_runs_scored": 4.1,
      "avg_runs_allowed": 4.1,
      "run_differential": 0.0
    },
    "available": true,
    "quality_score": -0.0406
  },
  "edges": {
    "quality_edge": -0.0327,
    "offense_edge": -0.1043,
    "opponent_offense_edge": -0.0131,
    "defense_strength": 0.0465,
    "opponent_defense_weakness": 0.0301,
    "recent_win_pct_edge": -0.1
  },
  "player_factors": {
    "ip": 1.0006,
    "run_prevention": 0.9949,
    "strikeout": 1.0001
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "702056",
    "profile": {
      "available": true,
      "pitcher_id": "702056",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 356.0,
        "k_percent": 23.6,
        "bb_percent": 11.9,
        "woba": 0.28,
        "xwoba": 0.285,
        "sweet_spot_percent": 36.4,
        "barrel_batted_rate": 6.1,
        "hard_hit_percent": 34.0,
        "avg_best_speed": 78.1032,
        "avg_hyper_speed": 93.3477,
        "whiff_percent": 30.0,
        "swing_percent": 47.3
      },
      "league_medians": {
        "pa": 135.0,
        "k_percent": 22.0,
        "bb_percent": 9.1,
        "woba": 0.316,
        "xwoba": 0.311,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6329,
        "avg_hyper_speed": 93.8957,
        "whiff_percent": 25.0,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": 0.4951,
        "command_and_miss": 0.2129,
        "regression_edge": -0.1429,
        "xwoba_edge": 0.7429,
        "barrel_edge": 0.2444,
        "hard_hit_edge": 0.5571,
        "whiff_edge": 0.7143,
        "bb_edge": -0.7,
        "pitch_design_score": -0.0299
      },
      "pitch_movement_profile": {
        "available": true,
        "pitcher_id": "702056",
        "player_name": null,
        "source": "all_players_stats.csv embedded Savant pitcher movement features",
        "total_pitches": 88,
        "primary_pitch": {
          "pitch_type": null,
          "pitch_name": null,
          "pitches": 88,
          "pitch_usage": 0.0,
          "release_speed": 89.31756719718713,
          "release_spin_rate": 2004.5012215502159,
          "spin_axis": null,
          "horizontal_break_inches": 0.0,
          "induced_vertical_break_inches": 0.0,
          "vertical_break_with_gravity_inches": null,
          "release_pos_x": null,
          "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": 89.31756719718713,
            "release_spin_rate": 2004.5012215502159,
            "spin_axis": null,
            "horizontal_break_inches": 0.0,
            "induced_vertical_break_inches": 0.0,
            "vertical_break_with_gravity_inches": null,
            "release_pos_x": null,
            "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.3176,
          "release_spin_rate": 2004.5012,
          "spin_axis": 0.0,
          "horizontal_break_inches": 0.0,
          "induced_vertical_break_inches": 0.0,
          "vertical_break_with_gravity_inches": 0.0,
          "release_pos_x": 0.0,
          "release_pos_z": 0.0,
          "release_extension": 0.0,
          "arm_angle": 0.0,
          "whiff_percent": 0.0,
          "xwoba": 0.0,
          "hard_hit_percent": 0.0
        },
        "components": {
          "movement_score": -0.0299,
          "horizontal_break_edge": 0.0,
          "induced_vertical_break_edge": 0.0,
          "extension_edge": 0.0,
          "velocity_edge": -0.2136,
          "whiff_edge": 0.0,
          "xwoba_edge": -0.0,
          "hard_hit_edge": -0.0
        },
        "spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
      },
      "quality_score": 0.3159,
      "sample_weight": 1.0,
      "run_prevention_factor": 0.9731,
      "strikeout_factor": 1.0377,
      "walk_factor": 1.056,
      "homer_factor": 0.9359,
      "woba_minus_xwoba": -0.005,
      "regression_flag": "neutral",
      "espn_rank": {
        "available": false,
        "player_id": "702056",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 2.0,
        "factor": 0.9731,
        "adjusted": 2
      },
      "predicted_H": {
        "original": 3.0,
        "factor": 0.9731,
        "adjusted": 3
      },
      "predicted_BB": {
        "original": 3.0,
        "factor": 1.056,
        "adjusted": 3
      },
      "predicted_HR": {
        "original": 1.0,
        "factor": 0.9359,
        "adjusted": 1
      },
      "predicted_SO": {
        "original": 5.0,
        "factor": 1.0377,
        "adjusted": 5
      }
    }
  }
}
Recent Form Pitching
{
  "hitting": {
    "AB": 0,
    "H": 0,
    "HR": 0,
    "RBI": 0,
    "R": 0,
    "BB": 0,
    "SO": 0,
    "2B": 0,
    "3B": 0,
    "AVG": 0,
    "OBP": 0,
    "SLG": 0,
    "OPS": 0,
    "games_played": 0,
    "hot_streak": false,
    "cold_streak": true,
    "trend": "stable"
  },
  "pitching": {
    "IP": 51.0,
    "ER": 23,
    "H": 30,
    "BB": 27,
    "SO": 47,
    "HR": 8,
    "ERA": 4.0588235294117645,
    "WHIP": 1.1176470588235292,
    "K9": 8.294117647058822,
    "HR9": 1.4117647058823528,
    "games_pitched": 10,
    "quality_starts": 5,
    "dominant_form": false,
    "struggling_form": false
  },
  "fielding": {
    "errors": 1,
    "assists": 0,
    "games_fielded": 10,
    "error_prone": false
  },
  "games_count": 10,
  "latest_game_date": "2026-08-04T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": true,
  "pitcher_id": "702056",
  "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": 89.31756719718713,
    "release_spin_rate": 2004.5012215502159,
    "spin_axis": null,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": null,
    "release_pos_x": null,
    "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": 89.31756719718713,
      "release_spin_rate": 2004.5012215502159,
      "spin_axis": null,
      "horizontal_break_inches": 0.0,
      "induced_vertical_break_inches": 0.0,
      "vertical_break_with_gravity_inches": null,
      "release_pos_x": null,
      "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.3176,
    "release_spin_rate": 2004.5012,
    "spin_axis": 0.0,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": 0.0,
    "release_pos_x": 0.0,
    "release_pos_z": 0.0,
    "release_extension": 0.0,
    "arm_angle": 0.0,
    "whiff_percent": 0.0,
    "xwoba": 0.0,
    "hard_hit_percent": 0.0
  },
  "components": {
    "movement_score": -0.0299,
    "horizontal_break_edge": 0.0,
    "induced_vertical_break_edge": 0.0,
    "extension_edge": 0.0,
    "velocity_edge": -0.2136,
    "whiff_edge": 0.0,
    "xwoba_edge": -0.0,
    "hard_hit_edge": -0.0
  },
  "spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
}
Player Form Blend
{
  "form_version": "player_form_v3_5_10_season",
  "method": "weighted_recent_form",
  "description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
  "weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "effective_weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 18.0,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.7826,
    "prior_weight": 0.2174
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "702056",
  "report_date": "20260921",
  "season_year": 2026,
  "rows_used": 18,
  "reference_playing_time": 5.0,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 20.1,
        "ER": 11.0,
        "R": 11.0,
        "H": 14.0,
        "BB": 14.0,
        "SO": 23.0,
        "HR": 3.0,
        "BF": 88.0,
        "Pitches": 371.0
      },
      "per_game": {
        "IP": 4.0,
        "ER": 2.2,
        "R": 2.2,
        "H": 2.8,
        "BB": 2.8,
        "SO": 4.6,
        "HR": 0.6,
        "BF": 17.6,
        "Pitches": 74.2
      },
      "rates": {
        "ERA": 4.8689,
        "WHIP": 1.377,
        "ER_per_IP": 0.54098,
        "H_per_IP": 0.68852,
        "BB_per_IP": 0.68852,
        "SO_per_IP": 1.13115,
        "HR_per_IP": 0.14754
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 51.0,
        "ER": 23.0,
        "R": 24.0,
        "H": 30.0,
        "BB": 27.0,
        "SO": 47.0,
        "HR": 8.0,
        "BF": 213.0,
        "Pitches": 842.0
      },
      "per_game": {
        "IP": 5.0,
        "ER": 2.3,
        "R": 2.4,
        "H": 3.0,
        "BB": 2.7,
        "SO": 4.7,
        "HR": 0.8,
        "BF": 21.3,
        "Pitches": 84.2
      },
      "rates": {
        "ERA": 4.0588,
        "WHIP": 1.1176,
        "ER_per_IP": 0.45098,
        "H_per_IP": 0.58824,
        "BB_per_IP": 0.52941,
        "SO_per_IP": 0.92157,
        "HR_per_IP": 0.15686
      }
    },
    "season": {
      "games": 18,
      "totals": {
        "IP": 93.2,
        "ER": 38.0,
        "R": 39.0,
        "H": 61.0,
        "BB": 46.0,
        "SO": 91.0,
        "HR": 10.0,
        "BF": 386.0,
        "Pitches": 1549.0
      },
      "per_game": {
        "IP": 5.1,
        "ER": 2.1111,
        "R": 2.1667,
        "H": 3.3889,
        "BB": 2.5556,
        "SO": 5.0556,
        "HR": 0.5556,
        "BF": 21.4444,
        "Pitches": 86.0556
      },
      "rates": {
        "ERA": 3.6512,
        "WHIP": 1.1423,
        "ER_per_IP": 0.40569,
        "H_per_IP": 0.65125,
        "BB_per_IP": 0.4911,
        "SO_per_IP": 0.97153,
        "HR_per_IP": 0.10676
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 4.2,
    "predicted_ER": 2.295,
    "predicted_H": 3.377,
    "predicted_BB": 2.567,
    "predicted_SO": 4.731,
    "predicted_HR": 0.677,
    "predicted_ERA": 4.3949,
    "predicted_WHIP": 1.2648
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.4419,
  "form_weight": 0.5581,
  "form_reliability": 0.7826,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 18.0,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.7826,
    "prior_weight": 0.2174
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 5.0,
      "form": 4.2,
      "final": 4.2,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 3.0,
      "form": 2.295,
      "final": 2.6065,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 4.0,
      "form": 3.377,
      "final": 3.6523,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 1.0,
      "form": 2.567,
      "final": 1.8746,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 4.0,
      "form": 4.731,
      "final": 4.408,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 1.0,
      "form": 0.677,
      "final": 0.8197,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 4.3949,
      "final": 4.3949,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 1.2648,
      "final": 1.2648,
      "source": "form_only"
    }
  }
}
Inning Pitch Details
{
  "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."
}
FieldValue
PitcherSpencer Miles
RoleMiddle Reliever (High Leverage)
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score0.5252
ESPN Rank-
Movement AvailableTrue
Primary Pitch-
Movement Score0.0839
Avg Velo91.3496
Avg Spin2452.3605
HB Inches0
IVB Inches0
Release Extension0
Pre IP1.2000
Pre ER0
Pre H0
Pre BB0
Pre SO1
Season ERA2.5669
Season WHIP1.0775
Role Avg IP1.8170
Recent Avg IP1.3330
Last Start IP0
Team Form Snapshot
{
  "method": "team_form_snapshot",
  "role": "pitcher",
  "team": {
    "team": "TOR",
    "games": 156,
    "wins": 77,
    "losses": 79,
    "win_pct": 0.4936,
    "runs_scored": 629.0,
    "runs_allowed": 671.0,
    "run_differential": -42.0,
    "run_differential_per_game": -0.2692,
    "avg_runs_scored": 4.0321,
    "avg_runs_allowed": 4.3013,
    "offense_index": 0.8957,
    "defense_index": 1.0465,
    "current_streak": "W1",
    "recent": {
      "games": 10,
      "wins": 4,
      "losses": 6,
      "win_pct": 0.4,
      "avg_runs_scored": 4.0,
      "avg_runs_allowed": 4.5,
      "run_differential": -5.0
    },
    "available": true,
    "quality_score": -0.0733
  },
  "opponent": {
    "team": "BAL",
    "games": 156,
    "wins": 75,
    "losses": 81,
    "win_pct": 0.4808,
    "runs_scored": 693.0,
    "runs_allowed": 724.0,
    "run_differential": -31.0,
    "run_differential_per_game": -0.1987,
    "avg_runs_scored": 4.4423,
    "avg_runs_allowed": 4.641,
    "offense_index": 0.9869,
    "defense_index": 0.9699,
    "current_streak": "L3",
    "recent": {
      "games": 10,
      "wins": 5,
      "losses": 5,
      "win_pct": 0.5,
      "avg_runs_scored": 4.1,
      "avg_runs_allowed": 4.1,
      "run_differential": 0.0
    },
    "available": true,
    "quality_score": -0.0406
  },
  "edges": {
    "quality_edge": -0.0327,
    "offense_edge": -0.1043,
    "opponent_offense_edge": -0.0131,
    "defense_strength": 0.0465,
    "opponent_defense_weakness": 0.0301,
    "recent_win_pct_edge": -0.1
  },
  "player_factors": {
    "ip": 1.0006,
    "run_prevention": 0.9949,
    "strikeout": 1.0001
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "693686",
    "profile": {
      "available": true,
      "pitcher_id": "693686",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 368.0,
        "k_percent": 23.5,
        "bb_percent": 6.5,
        "woba": 0.256,
        "xwoba": 0.268,
        "sweet_spot_percent": 28.7,
        "barrel_batted_rate": 3.5,
        "hard_hit_percent": 34.5,
        "avg_best_speed": 75.7362,
        "avg_hyper_speed": 92.9442,
        "whiff_percent": 18.9,
        "swing_percent": 47.9
      },
      "league_medians": {
        "pa": 135.0,
        "k_percent": 22.0,
        "bb_percent": 9.1,
        "woba": 0.316,
        "xwoba": 0.311,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6329,
        "avg_hyper_speed": 93.8957,
        "whiff_percent": 25.0,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": 1.0236,
        "command_and_miss": -0.0786,
        "regression_edge": -0.3429,
        "xwoba_edge": 1.2286,
        "barrel_edge": 0.8222,
        "hard_hit_edge": 0.4857,
        "whiff_edge": -0.8714,
        "bb_edge": 0.65,
        "pitch_design_score": 0.0839
      },
      "pitch_movement_profile": {
        "available": true,
        "pitcher_id": "693686",
        "player_name": null,
        "source": "all_players_stats.csv embedded Savant pitcher movement features",
        "total_pitches": 27,
        "primary_pitch": {
          "pitch_type": null,
          "pitch_name": null,
          "pitches": 27,
          "pitch_usage": 0.0,
          "release_speed": 91.3495950738409,
          "release_spin_rate": 2452.360513196139,
          "spin_axis": null,
          "horizontal_break_inches": 0.0,
          "induced_vertical_break_inches": 0.0,
          "vertical_break_with_gravity_inches": null,
          "release_pos_x": null,
          "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": 27,
            "pitch_usage": 0.0,
            "release_speed": 91.3495950738409,
            "release_spin_rate": 2452.360513196139,
            "spin_axis": null,
            "horizontal_break_inches": 0.0,
            "induced_vertical_break_inches": 0.0,
            "vertical_break_with_gravity_inches": null,
            "release_pos_x": null,
            "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.3496,
          "release_spin_rate": 2452.3605,
          "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.0839,
          "horizontal_break_edge": 0.0,
          "induced_vertical_break_edge": 0.0,
          "extension_edge": 0.0,
          "velocity_edge": 0.5992,
          "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.5252,
      "sample_weight": 1.0,
      "run_prevention_factor": 0.9554,
      "strikeout_factor": 0.9737,
      "walk_factor": 0.948,
      "homer_factor": 0.8779,
      "woba_minus_xwoba": -0.012,
      "regression_flag": "neutral",
      "espn_rank": {
        "available": false,
        "player_id": "693686",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 0.0,
        "factor": 0.9554,
        "adjusted": 0
      },
      "predicted_H": {
        "original": 1.0,
        "factor": 0.9554,
        "adjusted": 1
      },
      "predicted_BB": {
        "original": 0.0,
        "factor": 0.948,
        "adjusted": 0
      },
      "predicted_HR": {
        "original": 0.0,
        "factor": 0.8779,
        "adjusted": 0
      },
      "predicted_SO": {
        "original": 3.0,
        "factor": 0.9737,
        "adjusted": 3
      }
    }
  }
}
Recent Form Pitching
{
  "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.2,
    "ER": 0,
    "H": 10,
    "BB": 4,
    "SO": 18,
    "HR": 0,
    "ERA": 0.0,
    "WHIP": 0.8936170212765958,
    "K9": 10.340425531914894,
    "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-20T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": true,
  "pitcher_id": "693686",
  "player_name": null,
  "source": "all_players_stats.csv embedded Savant pitcher movement features",
  "total_pitches": 27,
  "primary_pitch": {
    "pitch_type": null,
    "pitch_name": null,
    "pitches": 27,
    "pitch_usage": 0.0,
    "release_speed": 91.3495950738409,
    "release_spin_rate": 2452.360513196139,
    "spin_axis": null,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": null,
    "release_pos_x": null,
    "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": 27,
      "pitch_usage": 0.0,
      "release_speed": 91.3495950738409,
      "release_spin_rate": 2452.360513196139,
      "spin_axis": null,
      "horizontal_break_inches": 0.0,
      "induced_vertical_break_inches": 0.0,
      "vertical_break_with_gravity_inches": null,
      "release_pos_x": null,
      "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.3496,
    "release_spin_rate": 2452.3605,
    "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.0839,
    "horizontal_break_edge": 0.0,
    "induced_vertical_break_edge": 0.0,
    "extension_edge": 0.0,
    "velocity_edge": 0.5992,
    "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."
}
Player Form Blend
{
  "form_version": "player_form_v3_5_10_season",
  "method": "weighted_recent_form",
  "description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
  "weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "effective_weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 19.252,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.7938,
    "prior_weight": 0.2062
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "693686",
  "report_date": "20260921",
  "season_year": 2026,
  "rows_used": 48,
  "reference_playing_time": 1.333,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 10.1,
        "ER": 0.0,
        "R": 0.0,
        "H": 7.0,
        "BB": 3.0,
        "SO": 14.0,
        "HR": 0.0,
        "BF": 41.0,
        "Pitches": 165.0
      },
      "per_game": {
        "IP": 2.0,
        "ER": 0.0,
        "R": 0.0,
        "H": 1.4,
        "BB": 0.6,
        "SO": 2.8,
        "HR": 0.0,
        "BF": 8.2,
        "Pitches": 33.0
      },
      "rates": {
        "ERA": 0.0,
        "WHIP": 0.9677,
        "ER_per_IP": 0.0,
        "H_per_IP": 0.67742,
        "BB_per_IP": 0.29032,
        "SO_per_IP": 1.35484,
        "HR_per_IP": 0.0
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 15.2,
        "ER": 0.0,
        "R": 0.0,
        "H": 10.0,
        "BB": 4.0,
        "SO": 18.0,
        "HR": 0.0,
        "BF": 62.0,
        "Pitches": 247.0
      },
      "per_game": {
        "IP": 1.2,
        "ER": 0.0,
        "R": 0.0,
        "H": 1.0,
        "BB": 0.4,
        "SO": 1.8,
        "HR": 0.0,
        "BF": 6.2,
        "Pitches": 24.7
      },
      "rates": {
        "ERA": 0.0,
        "WHIP": 0.8936,
        "ER_per_IP": 0.0,
        "H_per_IP": 0.6383,
        "BB_per_IP": 0.25532,
        "SO_per_IP": 1.14894,
        "HR_per_IP": 0.0
      }
    },
    "season": {
      "games": 48,
      "totals": {
        "IP": 94.2,
        "ER": 27.0,
        "R": 29.0,
        "H": 78.0,
        "BB": 24.0,
        "SO": 91.0,
        "HR": 5.0,
        "BF": 381.0,
        "Pitches": 1475.0
      },
      "per_game": {
        "IP": 2.0,
        "ER": 0.5625,
        "R": 0.6042,
        "H": 1.625,
        "BB": 0.5,
        "SO": 1.8958,
        "HR": 0.1042,
        "BF": 7.9375,
        "Pitches": 30.7292
      },
      "rates": {
        "ERA": 2.5669,
        "WHIP": 1.0775,
        "ER_per_IP": 0.28521,
        "H_per_IP": 0.82394,
        "BB_per_IP": 0.25352,
        "SO_per_IP": 0.96127,
        "HR_per_IP": 0.05282
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 1.2,
    "predicted_ER": 0.266,
    "predicted_H": 1.331,
    "predicted_BB": 0.518,
    "predicted_SO": 2.034,
    "predicted_HR": 0.069,
    "predicted_ERA": 1.3532,
    "predicted_WHIP": 1.0447
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.4371,
  "form_weight": 0.5629,
  "form_reliability": 0.7938,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 19.252,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.7938,
    "prior_weight": 0.2062
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 1.1,
      "form": 1.2,
      "final": 1.2,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 0.0,
      "form": 0.266,
      "final": 0.1497,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 0.0,
      "form": 1.331,
      "final": 0.7492,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 0.0,
      "form": 0.518,
      "final": 0.2916,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 1.0,
      "form": 2.034,
      "final": 1.582,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 0.0,
      "form": 0.069,
      "final": 0.0388,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 1.3532,
      "final": 1.3532,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 1.0447,
      "final": 1.0447,
      "source": "form_only"
    }
  }
}
Inning Pitch Details
{
  "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."
}
FieldValue
PitcherLouis Varland
RoleCloser
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score1.0780
ESPN Rank-
Movement AvailableTrue
Primary Pitch-
Movement Score0.2238
Avg Velo93.8480
Avg Spin2262.3166
HB Inches0
IVB Inches0
Release Extension0
Pre IP1.1000
Pre ER1
Pre H1
Pre BB0
Pre SO0
Season ERA1.2857
Season WHIP1.0130
Role Avg IP1.1000
Recent Avg IP1.1330
Last Start IP0
Team Form Snapshot
{
  "method": "team_form_snapshot",
  "role": "pitcher",
  "team": {
    "team": "TOR",
    "games": 156,
    "wins": 77,
    "losses": 79,
    "win_pct": 0.4936,
    "runs_scored": 629.0,
    "runs_allowed": 671.0,
    "run_differential": -42.0,
    "run_differential_per_game": -0.2692,
    "avg_runs_scored": 4.0321,
    "avg_runs_allowed": 4.3013,
    "offense_index": 0.8957,
    "defense_index": 1.0465,
    "current_streak": "W1",
    "recent": {
      "games": 10,
      "wins": 4,
      "losses": 6,
      "win_pct": 0.4,
      "avg_runs_scored": 4.0,
      "avg_runs_allowed": 4.5,
      "run_differential": -5.0
    },
    "available": true,
    "quality_score": -0.0733
  },
  "opponent": {
    "team": "BAL",
    "games": 156,
    "wins": 75,
    "losses": 81,
    "win_pct": 0.4808,
    "runs_scored": 693.0,
    "runs_allowed": 724.0,
    "run_differential": -31.0,
    "run_differential_per_game": -0.1987,
    "avg_runs_scored": 4.4423,
    "avg_runs_allowed": 4.641,
    "offense_index": 0.9869,
    "defense_index": 0.9699,
    "current_streak": "L3",
    "recent": {
      "games": 10,
      "wins": 5,
      "losses": 5,
      "win_pct": 0.5,
      "avg_runs_scored": 4.1,
      "avg_runs_allowed": 4.1,
      "run_differential": 0.0
    },
    "available": true,
    "quality_score": -0.0406
  },
  "edges": {
    "quality_edge": -0.0327,
    "offense_edge": -0.1043,
    "opponent_offense_edge": -0.0131,
    "defense_strength": 0.0465,
    "opponent_defense_weakness": 0.0301,
    "recent_win_pct_edge": -0.1
  },
  "player_factors": {
    "ip": 1.0006,
    "run_prevention": 0.9949,
    "strikeout": 1.0001
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "686973",
    "profile": {
      "available": true,
      "pitcher_id": "686973",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 293.0,
        "k_percent": 31.7,
        "bb_percent": 7.3,
        "woba": 0.228,
        "xwoba": 0.236,
        "sweet_spot_percent": 26.2,
        "barrel_batted_rate": 3.8,
        "hard_hit_percent": 36.6,
        "avg_best_speed": 76.0813,
        "avg_hyper_speed": 93.4403,
        "whiff_percent": 29.2,
        "swing_percent": 51.9
      },
      "league_medians": {
        "pa": 135.0,
        "k_percent": 22.0,
        "bb_percent": 9.1,
        "woba": 0.316,
        "xwoba": 0.311,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6329,
        "avg_hyper_speed": 93.8957,
        "whiff_percent": 25.0,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": 1.5051,
        "command_and_miss": 0.9236,
        "regression_edge": -0.2286,
        "xwoba_edge": 2.1429,
        "barrel_edge": 0.7556,
        "hard_hit_edge": 0.1857,
        "whiff_edge": 0.6,
        "bb_edge": 0.45,
        "pitch_design_score": 0.2238
      },
      "pitch_movement_profile": {
        "available": true,
        "pitcher_id": "686973",
        "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": 93.84795177949835,
          "release_spin_rate": 2262.316637524449,
          "spin_axis": null,
          "horizontal_break_inches": 0.0,
          "induced_vertical_break_inches": 0.0,
          "vertical_break_with_gravity_inches": null,
          "release_pos_x": null,
          "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": 93.84795177949835,
            "release_spin_rate": 2262.316637524449,
            "spin_axis": null,
            "horizontal_break_inches": 0.0,
            "induced_vertical_break_inches": 0.0,
            "vertical_break_with_gravity_inches": null,
            "release_pos_x": null,
            "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.848,
          "release_spin_rate": 2262.3166,
          "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.2238,
          "horizontal_break_edge": 0.0,
          "induced_vertical_break_edge": 0.0,
          "extension_edge": 0.0,
          "velocity_edge": 1.5986,
          "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.078,
      "sample_weight": 1.0,
      "run_prevention_factor": 0.9084,
      "strikeout_factor": 1.0794,
      "walk_factor": 0.964,
      "homer_factor": 0.8678,
      "woba_minus_xwoba": -0.008,
      "regression_flag": "neutral",
      "espn_rank": {
        "available": false,
        "player_id": "686973",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 0.0,
        "factor": 0.9084,
        "adjusted": 0
      },
      "predicted_H": {
        "original": 1.0,
        "factor": 0.9084,
        "adjusted": 1
      },
      "predicted_BB": {
        "original": 0.0,
        "factor": 0.964,
        "adjusted": 0
      },
      "predicted_HR": {
        "original": 0.0,
        "factor": 0.8678,
        "adjusted": 0
      },
      "predicted_SO": {
        "original": 2.0,
        "factor": 1.0794,
        "adjusted": 2
      }
    }
  }
}
Recent Form Pitching
{
  "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": 2,
    "H": 8,
    "BB": 5,
    "SO": 13,
    "HR": 0,
    "ERA": 1.6874999999999998,
    "WHIP": 1.2187499999999998,
    "K9": 10.968749999999998,
    "HR9": 0.0,
    "games_pitched": 10,
    "quality_starts": 0,
    "dominant_form": false,
    "struggling_form": false
  },
  "fielding": {
    "errors": 2,
    "assists": 0,
    "games_fielded": 10,
    "error_prone": false
  },
  "games_count": 10,
  "latest_game_date": "2026-09-20T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": true,
  "pitcher_id": "686973",
  "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": 93.84795177949835,
    "release_spin_rate": 2262.316637524449,
    "spin_axis": null,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": null,
    "release_pos_x": null,
    "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": 93.84795177949835,
      "release_spin_rate": 2262.316637524449,
      "spin_axis": null,
      "horizontal_break_inches": 0.0,
      "induced_vertical_break_inches": 0.0,
      "vertical_break_with_gravity_inches": null,
      "release_pos_x": null,
      "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.848,
    "release_spin_rate": 2262.3166,
    "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.2238,
    "horizontal_break_edge": 0.0,
    "induced_vertical_break_edge": 0.0,
    "extension_edge": 0.0,
    "velocity_edge": 1.5986,
    "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."
}
Player Form Blend
{
  "form_version": "player_form_v3_5_10_season",
  "method": "weighted_recent_form",
  "description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
  "weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "effective_weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 15.659,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.758,
    "prior_weight": 0.242
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "686973",
  "report_date": "20260921",
  "season_year": 2026,
  "rows_used": 70,
  "reference_playing_time": 1.0,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 5.2,
        "ER": 1.0,
        "R": 1.0,
        "H": 3.0,
        "BB": 2.0,
        "SO": 8.0,
        "HR": 0.0,
        "BF": 23.0,
        "Pitches": 93.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.2,
        "R": 0.2,
        "H": 0.6,
        "BB": 0.4,
        "SO": 1.6,
        "HR": 0.0,
        "BF": 4.6,
        "Pitches": 18.6
      },
      "rates": {
        "ERA": 1.5882,
        "WHIP": 0.8824,
        "ER_per_IP": 0.17647,
        "H_per_IP": 0.52941,
        "BB_per_IP": 0.35294,
        "SO_per_IP": 1.41176,
        "HR_per_IP": 0.0
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 10.2,
        "ER": 2.0,
        "R": 2.0,
        "H": 8.0,
        "BB": 5.0,
        "SO": 13.0,
        "HR": 0.0,
        "BF": 46.0,
        "Pitches": 175.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.2,
        "R": 0.2,
        "H": 0.8,
        "BB": 0.5,
        "SO": 1.3,
        "HR": 0.0,
        "BF": 4.6,
        "Pitches": 17.5
      },
      "rates": {
        "ERA": 1.6875,
        "WHIP": 1.2188,
        "ER_per_IP": 0.1875,
        "H_per_IP": 0.75,
        "BB_per_IP": 0.46875,
        "SO_per_IP": 1.21875,
        "HR_per_IP": 0.0
      }
    },
    "season": {
      "games": 70,
      "totals": {
        "IP": 77.0,
        "ER": 11.0,
        "R": 20.0,
        "H": 55.0,
        "BB": 23.0,
        "SO": 95.0,
        "HR": 2.0,
        "BF": 304.0,
        "Pitches": 1225.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.1571,
        "R": 0.2857,
        "H": 0.7857,
        "BB": 0.3286,
        "SO": 1.3571,
        "HR": 0.0286,
        "BF": 4.3429,
        "Pitches": 17.5
      },
      "rates": {
        "ERA": 1.2857,
        "WHIP": 1.013,
        "ER_per_IP": 0.14286,
        "H_per_IP": 0.71429,
        "BB_per_IP": 0.2987,
        "SO_per_IP": 1.23377,
        "HR_per_IP": 0.02597
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 1.0,
    "predicted_ER": 0.255,
    "predicted_H": 0.725,
    "predicted_BB": 0.381,
    "predicted_SO": 1.219,
    "predicted_HR": 0.04,
    "predicted_ERA": 2.2942,
    "predicted_WHIP": 1.1062
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.4522,
  "form_weight": 0.5478,
  "form_reliability": 0.758,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 15.659,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.758,
    "prior_weight": 0.242
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 1.0,
      "form": 1.0,
      "final": 1.0,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 1.0,
      "form": 0.255,
      "final": 0.5919,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 1.0,
      "form": 0.725,
      "final": 0.8494,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 0.0,
      "form": 0.381,
      "final": 0.2087,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 0.0,
      "form": 1.219,
      "final": 0.6677,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 1.0,
      "form": 0.04,
      "final": 0.4742,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 2.2942,
      "final": 2.2942,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 1.1062,
      "final": 1.1062,
      "source": "form_only"
    }
  }
}
Inning Pitch Details
{
  "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."
}
FieldValue
PitcherTyler Rogers
RoleSetup Man
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score0.5506
ESPN Rank-
Movement AvailableTrue
Primary Pitch-
Movement Score-0.2800
Avg Velo81.0272
Avg Spin2081.7598
HB Inches0
IVB Inches0
Release Extension0
Pre IP1
Pre ER0
Pre H0
Pre BB1
Pre SO1
Season ERA1.6794
Season WHIP1.1483
Role Avg IP0.9680
Recent Avg IP1
Last Start IP0
Team Form Snapshot
{
  "method": "team_form_snapshot",
  "role": "pitcher",
  "team": {
    "team": "TOR",
    "games": 156,
    "wins": 77,
    "losses": 79,
    "win_pct": 0.4936,
    "runs_scored": 629.0,
    "runs_allowed": 671.0,
    "run_differential": -42.0,
    "run_differential_per_game": -0.2692,
    "avg_runs_scored": 4.0321,
    "avg_runs_allowed": 4.3013,
    "offense_index": 0.8957,
    "defense_index": 1.0465,
    "current_streak": "W1",
    "recent": {
      "games": 10,
      "wins": 4,
      "losses": 6,
      "win_pct": 0.4,
      "avg_runs_scored": 4.0,
      "avg_runs_allowed": 4.5,
      "run_differential": -5.0
    },
    "available": true,
    "quality_score": -0.0733
  },
  "opponent": {
    "team": "BAL",
    "games": 156,
    "wins": 75,
    "losses": 81,
    "win_pct": 0.4808,
    "runs_scored": 693.0,
    "runs_allowed": 724.0,
    "run_differential": -31.0,
    "run_differential_per_game": -0.1987,
    "avg_runs_scored": 4.4423,
    "avg_runs_allowed": 4.641,
    "offense_index": 0.9869,
    "defense_index": 0.9699,
    "current_streak": "L3",
    "recent": {
      "games": 10,
      "wins": 5,
      "losses": 5,
      "win_pct": 0.5,
      "avg_runs_scored": 4.1,
      "avg_runs_allowed": 4.1,
      "run_differential": 0.0
    },
    "available": true,
    "quality_score": -0.0406
  },
  "edges": {
    "quality_edge": -0.0327,
    "offense_edge": -0.1043,
    "opponent_offense_edge": -0.0131,
    "defense_strength": 0.0465,
    "opponent_defense_weakness": 0.0301,
    "recent_win_pct_edge": -0.1
  },
  "player_factors": {
    "ip": 1.0006,
    "run_prevention": 0.9949,
    "strikeout": 1.0001
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "643511",
    "profile": {
      "available": true,
      "pitcher_id": "643511",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 268.0,
        "k_percent": 13.8,
        "bb_percent": 7.8,
        "woba": 0.248,
        "xwoba": 0.256,
        "sweet_spot_percent": 22.5,
        "barrel_batted_rate": 1.4,
        "hard_hit_percent": 27.1,
        "avg_best_speed": 71.5527,
        "avg_hyper_speed": 92.3614,
        "whiff_percent": 14.8,
        "swing_percent": 49.7
      },
      "league_medians": {
        "pa": 135.0,
        "k_percent": 22.0,
        "bb_percent": 9.1,
        "woba": 0.316,
        "xwoba": 0.311,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6329,
        "avg_hyper_speed": 93.8957,
        "whiff_percent": 25.0,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": 1.5154,
        "command_and_miss": -0.9721,
        "regression_edge": -0.2286,
        "xwoba_edge": 1.5714,
        "barrel_edge": 1.2889,
        "hard_hit_edge": 1.5429,
        "whiff_edge": -1.4571,
        "bb_edge": 0.325,
        "pitch_design_score": -0.28
      },
      "pitch_movement_profile": {
        "available": true,
        "pitcher_id": "643511",
        "player_name": null,
        "source": "all_players_stats.csv embedded Savant pitcher movement features",
        "total_pitches": 14,
        "primary_pitch": {
          "pitch_type": null,
          "pitch_name": null,
          "pitches": 14,
          "pitch_usage": 0.0,
          "release_speed": 81.02719146830346,
          "release_spin_rate": 2081.7597558339717,
          "spin_axis": null,
          "horizontal_break_inches": 0.0,
          "induced_vertical_break_inches": 0.0,
          "vertical_break_with_gravity_inches": null,
          "release_pos_x": null,
          "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": 14,
            "pitch_usage": 0.0,
            "release_speed": 81.02719146830346,
            "release_spin_rate": 2081.7597558339717,
            "spin_axis": null,
            "horizontal_break_inches": 0.0,
            "induced_vertical_break_inches": 0.0,
            "vertical_break_with_gravity_inches": null,
            "release_pos_x": null,
            "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": 81.0272,
          "release_spin_rate": 2081.7598,
          "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.5506,
      "sample_weight": 1.0,
      "run_prevention_factor": 0.9532,
      "strikeout_factor": 0.8949,
      "walk_factor": 0.974,
      "homer_factor": 0.8,
      "woba_minus_xwoba": -0.008,
      "regression_flag": "neutral",
      "espn_rank": {
        "available": false,
        "player_id": "643511",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 0.0,
        "factor": 0.9532,
        "adjusted": 0
      },
      "predicted_H": {
        "original": 1.0,
        "factor": 0.9532,
        "adjusted": 1
      },
      "predicted_BB": {
        "original": 0.0,
        "factor": 0.974,
        "adjusted": 0
      },
      "predicted_HR": {
        "original": 0.0,
        "factor": 0.82,
        "adjusted": 0
      },
      "predicted_SO": {
        "original": 2.0,
        "factor": 0.8949,
        "adjusted": 2
      }
    }
  }
}
Recent Form Pitching
{
  "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": 7,
    "BB": 2,
    "SO": 7,
    "HR": 0,
    "ERA": 0.0,
    "WHIP": 0.9642857142857144,
    "K9": 6.750000000000001,
    "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-20T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": true,
  "pitcher_id": "643511",
  "player_name": null,
  "source": "all_players_stats.csv embedded Savant pitcher movement features",
  "total_pitches": 14,
  "primary_pitch": {
    "pitch_type": null,
    "pitch_name": null,
    "pitches": 14,
    "pitch_usage": 0.0,
    "release_speed": 81.02719146830346,
    "release_spin_rate": 2081.7597558339717,
    "spin_axis": null,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": null,
    "release_pos_x": null,
    "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": 14,
      "pitch_usage": 0.0,
      "release_speed": 81.02719146830346,
      "release_spin_rate": 2081.7597558339717,
      "spin_axis": null,
      "horizontal_break_inches": 0.0,
      "induced_vertical_break_inches": 0.0,
      "vertical_break_with_gravity_inches": null,
      "release_pos_x": null,
      "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": 81.0272,
    "release_spin_rate": 2081.7598,
    "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."
}
Player Form Blend
{
  "form_version": "player_form_v3_5_10_season",
  "method": "weighted_recent_form",
  "description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
  "weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "effective_weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 14.168,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.7391,
    "prior_weight": 0.2609
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "643511",
  "report_date": "20260921",
  "season_year": 2026,
  "rows_used": 72,
  "reference_playing_time": 1.0,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 5.0,
        "ER": 0.0,
        "R": 0.0,
        "H": 3.0,
        "BB": 1.0,
        "SO": 3.0,
        "HR": 0.0,
        "BF": 18.0,
        "Pitches": 67.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.0,
        "R": 0.0,
        "H": 0.6,
        "BB": 0.2,
        "SO": 0.6,
        "HR": 0.0,
        "BF": 3.6,
        "Pitches": 13.4
      },
      "rates": {
        "ERA": 0.0,
        "WHIP": 0.8,
        "ER_per_IP": 0.0,
        "H_per_IP": 0.6,
        "BB_per_IP": 0.2,
        "SO_per_IP": 0.6,
        "HR_per_IP": 0.0
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 9.1,
        "ER": 0.0,
        "R": 0.0,
        "H": 7.0,
        "BB": 2.0,
        "SO": 7.0,
        "HR": 0.0,
        "BF": 36.0,
        "Pitches": 135.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.0,
        "R": 0.0,
        "H": 0.7,
        "BB": 0.2,
        "SO": 0.7,
        "HR": 0.0,
        "BF": 3.6,
        "Pitches": 13.5
      },
      "rates": {
        "ERA": 0.0,
        "WHIP": 0.9643,
        "ER_per_IP": 0.0,
        "H_per_IP": 0.75,
        "BB_per_IP": 0.21429,
        "SO_per_IP": 0.75,
        "HR_per_IP": 0.0
      }
    },
    "season": {
      "games": 72,
      "totals": {
        "IP": 69.2,
        "ER": 13.0,
        "R": 21.0,
        "H": 58.0,
        "BB": 22.0,
        "SO": 39.0,
        "HR": 1.0,
        "BF": 287.0,
        "Pitches": 994.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.1806,
        "R": 0.2917,
        "H": 0.8056,
        "BB": 0.3056,
        "SO": 0.5417,
        "HR": 0.0139,
        "BF": 3.9861,
        "Pitches": 13.8056
      },
      "rates": {
        "ERA": 1.6794,
        "WHIP": 1.1483,
        "ER_per_IP": 0.1866,
        "H_per_IP": 0.83254,
        "BB_per_IP": 0.31579,
        "SO_per_IP": 0.55981,
        "HR_per_IP": 0.01435
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 1.0,
    "predicted_ER": 0.161,
    "predicted_H": 0.772,
    "predicted_BB": 0.267,
    "predicted_SO": 0.721,
    "predicted_HR": 0.041,
    "predicted_ERA": 1.4448,
    "predicted_WHIP": 1.0392
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.4602,
  "form_weight": 0.5398,
  "form_reliability": 0.7391,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 14.168,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.7391,
    "prior_weight": 0.2609
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 1.0,
      "form": 1.0,
      "final": 1.0,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 0.0,
      "form": 0.161,
      "final": 0.0869,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 0.0,
      "form": 0.772,
      "final": 0.4167,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 1.0,
      "form": 0.267,
      "final": 0.6043,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 1.0,
      "form": 0.721,
      "final": 0.8494,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 0.0,
      "form": 0.041,
      "final": 0.0221,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 1.4448,
      "final": 1.4448,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 1.0392,
      "final": 1.0392,
      "source": "form_only"
    }
  }
}
Inning Pitch Details
{
  "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."
}
Alejandro Kirk (672386) · BATTER · C · Team TOR
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 286
All-history rows before 20260921: 286
System season_avg: 0.2820
Data season_avg (2026 season-to-date): 0.2856
Diff (system - data): -0.0036
System opponent_avg: 0.2690

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.0970.0000.000Hitting_2B0.1080.000-0.1080.000
predicted_3B0.0000.0000.000Hitting_3B0.0000.0000.0000.000
predicted_AB4.8505.0004.000Hitting_AB3.8084.0001.1921.000
predicted_AVG0.2840.2000.250Hitting_AVG0.2860.500-0.086-0.300
predicted_BB0.3890.0001.000Hitting_BB0.4370.000-0.4370.000
predicted_CS-0.0000.000BaseRunning_CS0.0000.0000.0000.000
predicted_H1.3801.0001.000Hitting_H1.0872.000-0.087-1.000
predicted_HR0.1501.0000.000Hitting_HR0.1540.0000.8461.000
predicted_OBP0.3600.2000.400Hitting_OBP0.3550.500-0.155-0.300
predicted_R0.3191.0000.000Hitting_R0.3710.0000.6291.000
predicted_RBI0.7902.0001.000Hitting_RBI0.6221.0001.3781.000
predicted_SLG0.4310.8000.250Hitting_SLG0.4350.5000.3650.300
predicted_SO0.5000.0000.000Hitting_SO0.5170.000-0.5170.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics11
Boosted Metrics5
Deboosted Metrics6
Better Metrics6
Worse Metrics5
Biggest Boostpredicted_RBI: 0.7900 -> 2.0000 (boost 1.2100, better)
Biggest Deboostpredicted_SO: 0.5000 -> 0.0000 (deboost -0.5000, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend42222predicted_AVG: 0.2840 -> 0.2949 (boost 0.0109, better)predicted_AB: 4.8500 -> 4.3921 (deboost -0.4579, 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.
3team_form_snapshot20202-predicted_SLG: 0.4419 -> 0.4140 (deboost -0.0279, worse)Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling71625predicted_RBI: 0.7439 -> 1.0000 (boost 0.2561, better)predicted_SO: 0.5094 -> 0.0000 (deboost -0.5094, better)AB rounded to 4 (raw=4.85), rates preserved: AVG=0.271 HR/AB=0.031
6consistency_constraints10101-predicted_R: 0.3310 -> 0.0000 (deboost -0.3310, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine54132predicted_SO: 0.0000 -> 0.6098 (boost 0.6098, worse)predicted_RBI: 1.0000 -> 0.5584 (deboost -0.4416, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation52332predicted_BB: 0.3919 -> 1.0000 (boost 0.6081, better)predicted_SO: 0.6098 -> 0.0000 (deboost -0.6098, better)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context30303-predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse)Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10simulation_box_score_reference44040predicted_AB: 4.0000 -> 5.0000 (boost 1.0000, better)-Attached simulation box score without overwriting model prediction
11current_json_final22020predicted_AVG: 0.2570 -> 0.2901 (boost 0.0331, better)-Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "672386",
  "player_name": "Alejandro Kirk",
  "position": "C",
  "team": "TOR",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.097,
        "predicted_3B": 0.0,
        "predicted_AB": 4.85,
        "predicted_AVG": 0.284,
        "predicted_BB": 0.389,
        "predicted_H": 1.38,
        "predicted_HR": 0.15,
        "predicted_OBP": 0.36,
        "predicted_R": 0.319,
        "predicted_RBI": 0.79,
        "predicted_SLG": 0.431,
        "predicted_SO": 0.5
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.086,
        "predicted_3B": 0.0004,
        "predicted_AB": 4.3921,
        "predicted_AVG": 0.2949,
        "predicted_BB": 0.3717,
        "predicted_H": 1.2899,
        "predicted_HBP": 0.003,
        "predicted_HR": 0.1542,
        "predicted_OBP": 0.3631,
        "predicted_R": 0.338,
        "predicted_RBI": 0.7596,
        "predicted_SLG": 0.4419,
        "predicted_SO": 0.5068
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.097,
          "after": 0.086,
          "delta": -0.011,
          "percent_delta": -0.1134,
          "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.85,
          "after": 4.3921,
          "delta": -0.4579,
          "percent_delta": -0.0944,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.284,
          "after": 0.2949,
          "delta": 0.0109,
          "percent_delta": 0.0384,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.389,
          "after": 0.3717,
          "delta": -0.0173,
          "percent_delta": -0.0445,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 1.38,
          "after": 1.2899,
          "delta": -0.0901,
          "percent_delta": -0.0653,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.15,
          "after": 0.1542,
          "delta": 0.0042,
          "percent_delta": 0.028,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.36,
          "after": 0.3631,
          "delta": 0.0031,
          "percent_delta": 0.0086,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.319,
          "after": 0.338,
          "delta": 0.019,
          "percent_delta": 0.0596,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.79,
          "after": 0.7596,
          "delta": -0.0304,
          "percent_delta": -0.0385,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.431,
          "after": 0.4419,
          "delta": 0.0109,
          "percent_delta": 0.0253,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.5,
          "after": 0.5068,
          "delta": 0.0068,
          "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_AVG",
          "before": 0.284,
          "after": 0.2949,
          "delta": 0.0109,
          "percent_delta": 0.0384,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 4.85,
          "after": 4.3921,
          "delta": -0.4579,
          "percent_delta": -0.0944,
          "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.086,
        "predicted_3B": 0.0004,
        "predicted_AB": 4.3921,
        "predicted_AVG": 0.2901,
        "predicted_BB": 0.3698,
        "predicted_H": 1.274,
        "predicted_HBP": 0.003,
        "predicted_HR": 0.1525,
        "predicted_OBP": 0.3452,
        "predicted_R": 0.331,
        "predicted_RBI": 0.7439,
        "predicted_SLG": 0.414,
        "predicted_SO": 0.5094
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.086,
          "after": 0.086,
          "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.3921,
          "after": 4.3921,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2949,
          "after": 0.2901,
          "delta": -0.0048,
          "percent_delta": -0.0163,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.3717,
          "after": 0.3698,
          "delta": -0.0019,
          "percent_delta": -0.0051,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 1.2899,
          "after": 1.274,
          "delta": -0.0159,
          "percent_delta": -0.0123,
          "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.1542,
          "after": 0.1525,
          "delta": -0.0017,
          "percent_delta": -0.011,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3631,
          "after": 0.3452,
          "delta": -0.0179,
          "percent_delta": -0.0493,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.338,
          "after": 0.331,
          "delta": -0.007,
          "percent_delta": -0.0207,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.7596,
          "after": 0.7439,
          "delta": -0.0157,
          "percent_delta": -0.0207,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4419,
          "after": 0.414,
          "delta": -0.0279,
          "percent_delta": -0.0631,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.5068,
          "after": 0.5094,
          "delta": 0.0026,
          "percent_delta": 0.0051,
          "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.4419,
          "after": 0.414,
          "delta": -0.0279,
          "percent_delta": -0.0631,
          "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.85), rates preserved: AVG=0.271 HR/AB=0.031",
      "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": 0.0
      },
      "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.0004,
          "after": 0.0,
          "delta": -0.0004,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 4.3921,
          "after": 4.0,
          "delta": -0.3921,
          "percent_delta": -0.0893,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3698,
          "after": 0.0,
          "delta": -0.3698,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.274,
          "after": 1.0,
          "delta": -0.274,
          "percent_delta": -0.2151,
          "direction": "deboost",
          "projection_effect": "worse",
          "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.1525,
          "after": 0.0,
          "delta": -0.1525,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.7439,
          "after": 1.0,
          "delta": 0.2561,
          "percent_delta": 0.3443,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.5094,
          "after": 0.0,
          "delta": -0.5094,
          "percent_delta": -1.0,
          "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.7439,
          "after": 1.0,
          "delta": 0.2561,
          "percent_delta": 0.3443,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 0.5094,
          "after": 0.0,
          "delta": -0.5094,
          "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": 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": 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.331,
          "after": 0.0,
          "delta": -0.331,
          "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": 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.331,
          "after": 0.0,
          "delta": -0.331,
          "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.1523,
        "predicted_3B": 0.0097,
        "predicted_BB": 0.3919,
        "predicted_H": 1.0067,
        "predicted_HR": 0.1438,
        "predicted_RBI": 0.5584,
        "predicted_SO": 0.6098
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1523,
          "delta": 0.1523,
          "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.3919,
          "delta": 0.3919,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 1.0067,
          "delta": 0.0067,
          "percent_delta": 0.0067,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1438,
          "delta": 0.1438,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.5584,
          "delta": -0.4416,
          "percent_delta": -0.4416,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.0,
          "after": 0.6098,
          "delta": 0.6098,
          "percent_delta": null,
          "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_SO",
          "before": 0.0,
          "after": 0.6098,
          "delta": 0.6098,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.5584,
          "delta": -0.4416,
          "percent_delta": -0.4416,
          "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": 1.0,
        "predicted_SO": 0.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1523,
          "after": 0.0,
          "delta": -0.1523,
          "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.3919,
          "after": 1.0,
          "delta": 0.6081,
          "percent_delta": 1.5517,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0067,
          "after": 1.0,
          "delta": -0.0067,
          "percent_delta": -0.0067,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.1438,
          "after": 0.0,
          "delta": -0.1438,
          "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.5584,
          "after": 1.0,
          "delta": 0.4416,
          "percent_delta": 0.7908,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.6098,
          "after": 0.0,
          "delta": -0.6098,
          "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.3919,
          "after": 1.0,
          "delta": 0.6081,
          "percent_delta": 1.5517,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 0.6098,
          "after": 0.0,
          "delta": -0.6098,
          "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.257,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.33,
        "predicted_R": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.411,
        "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.2901,
          "after": 0.257,
          "delta": -0.0331,
          "percent_delta": -0.1141,
          "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.3452,
          "after": 0.33,
          "delta": -0.0152,
          "percent_delta": -0.044,
          "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.414,
          "after": 0.411,
          "delta": -0.003,
          "percent_delta": -0.0072,
          "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": 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": 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": 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": 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": 0.0,
          "after": 0.0,
          "delta": 0.0,
          "percent_delta": null,
          "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_AB",
          "before": 4.0,
          "after": 5.0,
          "delta": 1.0,
          "percent_delta": 0.25,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      },
      "weights": {},
      "window_games": {}
    },
    {
      "index": 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.2901,
        "predicted_BB": 0.0,
        "predicted_C": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 1.0,
        "predicted_OBP": 0.3452,
        "predicted_R": 1.0,
        "predicted_RBI": 2.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.414,
        "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.257,
          "after": 0.2901,
          "delta": 0.0331,
          "percent_delta": 0.1287,
          "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.33,
          "after": 0.3452,
          "delta": 0.0152,
          "percent_delta": 0.0461,
          "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.411,
          "after": 0.414,
          "delta": 0.003,
          "percent_delta": 0.0073,
          "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.257,
          "after": 0.2901,
          "delta": 0.0331,
          "percent_delta": 0.1287,
          "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.097,
        "after": 0.0,
        "delta": -0.097,
        "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.85,
        "after": 5.0,
        "delta": 0.15,
        "percent_delta": 0.0309,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.284,
        "after": 0.2901,
        "delta": 0.0061,
        "percent_delta": 0.0215,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.389,
        "after": 0.0,
        "delta": -0.389,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 1.38,
        "after": 1.0,
        "delta": -0.38,
        "percent_delta": -0.2754,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.15,
        "after": 1.0,
        "delta": 0.85,
        "percent_delta": 5.6667,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.36,
        "after": 0.3452,
        "delta": -0.0148,
        "percent_delta": -0.0411,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.319,
        "after": 1.0,
        "delta": 0.681,
        "percent_delta": 2.1348,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.79,
        "after": 2.0,
        "delta": 1.21,
        "percent_delta": 1.5316,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.431,
        "after": 0.414,
        "delta": -0.017,
        "percent_delta": -0.0394,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.5,
        "after": 0.0,
        "delta": -0.5,
        "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_RBI",
        "before": 0.79,
        "after": 2.0,
        "delta": 1.21,
        "percent_delta": 1.5316,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_SO",
        "before": 0.5,
        "after": 0.0,
        "delta": -0.5,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "better"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.097-
predicted_3B0.000-
predicted_AB4.850-
predicted_AVG0.284-
predicted_BB0.389-
predicted_H1.380-
predicted_HR0.150-
predicted_OBP0.360-
predicted_R0.319-
predicted_RBI0.790-
predicted_SLG0.431-
predicted_SO0.500-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.086-0.011
predicted_3B0.0000.000
predicted_AB4.392-0.458
predicted_AVG0.2950.011
predicted_BB0.372-0.017
predicted_H1.290-0.090
predicted_HBP0.003-
predicted_HR0.1540.004
predicted_OBP0.3630.003
predicted_R0.3380.019
predicted_RBI0.760-0.030
predicted_SLG0.4420.011
predicted_SO0.5070.007
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.0860.000
predicted_3B0.0000.000
predicted_AB4.3920.000
predicted_AVG0.290-0.005
predicted_BB0.370-0.002
predicted_H1.274-0.016
predicted_HBP0.0030.000
predicted_HR0.152-0.002
predicted_OBP0.345-0.018
predicted_R0.331-0.007
predicted_RBI0.744-0.016
predicted_SLG0.414-0.028
predicted_SO0.5090.003
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 4 (raw=4.85), rates preserved: AVG=0.271 HR/AB=0.031

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB4.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI1.000-
SB0.000-
SO0.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI1.0000.000
SB0.0000.000
SF0.000-
SO0.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1520.152
3B0.0100.010
BB0.3920.392
H1.0070.007
HR0.1440.144
RBI0.558-0.442
SO0.6100.610
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.152
3B0.000-0.010
AB4.0000.000
BB1.0000.608
H1.000-0.007
HR0.000-0.144
R0.0000.000
RBI1.0000.442
SO0.000-0.610
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.086
predicted_3B0.000-0.000
predicted_AB4.000-0.392
predicted_AVG0.257-0.033
predicted_BB0.000-0.370
predicted_H1.000-0.274
predicted_HR0.000-0.152
predicted_OBP0.330-0.015
predicted_R0.000-0.331
predicted_RBI1.0000.256
predicted_SLG0.411-0.003
predicted_SO0.000-0.509
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB5.0001.000
BB0.000-1.000
CS0.0000.000
H1.0000.000
HBP0.0000.000
HR1.0001.000
PA5.000-
R1.0001.000
RBI2.0001.000
SB0.0000.000
SF0.0000.000
SO0.0000.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 72
Reference playing time: 4.850
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-20.0008.0000.0000.0001.0006.0002.0001.0002.0000.40000.42860.55000.40000.05000.30000.05000.1000
last_100.2010-39.00013.0000.0000.0002.0008.0004.0004.0005.0000.33330.39530.48720.33330.05130.20510.10260.1282
season0.6072-262.00074.0007.0000.00010.00042.00023.00028.00036.0000.28240.34810.42370.28240.03820.16030.10690.1374
Weighted Prediction From Real Data
MetricValue
predicted_2B0.0710
predicted_3B0.0010
predicted_AB3.7670
predicted_AVG0.3098
predicted_BB0.3480
predicted_H1.1670
predicted_HBP0.0030
predicted_HR0.1600
predicted_OBP0.3673
predicted_R0.3640
predicted_RBI0.7180
predicted_SLG0.4567
predicted_SO0.5160
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.09700.07100.0860model_form_blend
predicted_3B0.00000.00100.0004model_form_blend
predicted_AB4.85003.76704.3921model_form_blend
predicted_AVG0.28400.30980.2949model_form_blend
predicted_BB0.38900.34800.3717model_form_blend
predicted_H1.38001.16701.2899model_form_blend
predicted_HBP-0.00300.0030form_only
predicted_HR0.15000.16000.1542model_form_blend
predicted_OBP0.36000.36730.3631model_form_blend
predicted_R0.31900.36400.3380model_form_blend
predicted_RBI0.79000.71800.7596model_form_blend
predicted_SLG0.43100.45670.4419model_form_blend
predicted_SO0.50000.51600.5068model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date286
Season rows before report date286
Report year2026
Profile rows used72
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA5
AB5
H1
2B0
3B0
HR1
R1
RBI2
BB0
SO0
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB4
Hitting_AVG0.5
Hitting_BB0
Hitting_GIDP0
Hitting_H2
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI1
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB2
Hitting_battingOrder3
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedC
gameID20260919_TOR@TEX
game_typefull
mlbID672386
playerID672386
playerNameAlejandro Kirk
posC
startedTrue
startingPositionC
teamTOR
teamID29
game_date2026-09-19
sl_k_percent12.2
sl_bb_percent10.2
sl_woba0.336
sl_xwoba0.309
sl_xba0.265
sl_xslg0.374
sl_sweet_spot_percent32.8
sl_barrel_batted_rate3.9
sl_hard_hit_percent40.2
sl_exit_velocity_avg88.2
sl_launch_angle_avg8.7
sl_whiff_percent16.1
sl_swing_percent43.4
Sean Keys (815873) · BATTER · 1B · Team TOR
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 50
All-history rows before 20260921: 50
System season_avg: 0.2080
Data season_avg (2026 season-to-date): 0.2051
Diff (system - data): 0.0029
System opponent_avg: 0.2080

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1110.0000.000Hitting_2B0.1001.000-0.100-1.000
predicted_3B0.0000.0000.000Hitting_3B0.0000.0000.0000.000
predicted_AB2.6674.0003.000Hitting_AB3.1202.0000.8802.000
predicted_AVG0.2080.2500.333Hitting_AVG0.2050.5000.045-0.250
predicted_BB0.1110.0000.000Hitting_BB0.1401.000-0.140-1.000
predicted_CS-0.0000.000BaseRunning_CS0.0000.0000.0000.000
predicted_H0.5561.0001.000Hitting_H0.6401.0000.3600.000
predicted_HR0.1110.0000.000Hitting_HR0.1000.000-0.1000.000
predicted_OBP0.2400.2500.333Hitting_OBP0.2440.7500.006-0.500
predicted_R0.3890.0000.000Hitting_R0.4400.000-0.4400.000
predicted_RBI0.4440.0001.000Hitting_RBI0.5401.000-0.540-1.000
predicted_SLG0.3750.2500.333Hitting_SLG0.3331.000-0.083-0.750
predicted_SO1.0002.0001.000Hitting_SO1.2000.0000.8002.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics11
Boosted Metrics6
Deboosted Metrics5
Better Metrics5
Worse Metrics6
Biggest Boostpredicted_AB: 2.6670 -> 4.0000 (boost 1.3330, better)
Biggest Deboostpredicted_RBI: 0.4440 -> 0.0000 (deboost -0.4440, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend44040predicted_AB: 2.6670 -> 2.7234 (boost 0.0564, 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.
3team_form_snapshot10101-predicted_OBP: 0.2624 -> 0.2536 (deboost -0.0088, worse)Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling73434predicted_RBI: 0.4431 -> 1.0000 (boost 0.5569, better)predicted_BB: 0.1428 -> 0.0000 (deboost -0.1428, worse)AB rounded to 3 (raw=2.72), rates preserved: AVG=0.221 HR/AB=0.045
6consistency_constraints10101-predicted_R: 0.3786 -> 0.0000 (deboost -0.3786, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine64233predicted_BB: 0.0000 -> 0.2850 (boost 0.2850, better)predicted_RBI: 1.0000 -> 0.4440 (deboost -0.5560, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation62433predicted_RBI: 0.4440 -> 1.0000 (boost 0.5560, better)predicted_BB: 0.2850 -> 0.0000 (deboost -0.2850, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context33030predicted_OBP: 0.2536 -> 0.3080 (boost 0.0544, better)-Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10simulation_box_score_reference32112predicted_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
11current_json_final30303-predicted_OBP: 0.3080 -> 0.2536 (deboost -0.0544, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "815873",
  "player_name": "Sean Keys",
  "position": "1B",
  "team": "TOR",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.111,
        "predicted_3B": 0.0,
        "predicted_AB": 2.667,
        "predicted_AVG": 0.208,
        "predicted_BB": 0.111,
        "predicted_H": 0.556,
        "predicted_HR": 0.111,
        "predicted_OBP": 0.24,
        "predicted_R": 0.389,
        "predicted_RBI": 0.444,
        "predicted_SLG": 0.375,
        "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.1288,
        "predicted_3B": 0.0014,
        "predicted_AB": 2.7234,
        "predicted_AVG": 0.2166,
        "predicted_BB": 0.1435,
        "predicted_H": 0.5915,
        "predicted_HBP": 0.101,
        "predicted_HR": 0.1247,
        "predicted_OBP": 0.2624,
        "predicted_R": 0.3866,
        "predicted_RBI": 0.4525,
        "predicted_SLG": 0.4019,
        "predicted_SO": 0.9723
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.111,
          "after": 0.1288,
          "delta": 0.0178,
          "percent_delta": 0.1604,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0014,
          "delta": 0.0014,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 2.667,
          "after": 2.7234,
          "delta": 0.0564,
          "percent_delta": 0.0211,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.208,
          "after": 0.2166,
          "delta": 0.0086,
          "percent_delta": 0.0413,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.111,
          "after": 0.1435,
          "delta": 0.0325,
          "percent_delta": 0.2928,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.556,
          "after": 0.5915,
          "delta": 0.0355,
          "percent_delta": 0.0638,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.111,
          "after": 0.1247,
          "delta": 0.0137,
          "percent_delta": 0.1234,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.24,
          "after": 0.2624,
          "delta": 0.0224,
          "percent_delta": 0.0933,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.389,
          "after": 0.3866,
          "delta": -0.0024,
          "percent_delta": -0.0062,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.444,
          "after": 0.4525,
          "delta": 0.0085,
          "percent_delta": 0.0191,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.375,
          "after": 0.4019,
          "delta": 0.0269,
          "percent_delta": 0.0717,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.9723,
          "delta": -0.0277,
          "percent_delta": -0.0277,
          "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_AB",
          "before": 2.667,
          "after": 2.7234,
          "delta": 0.0564,
          "percent_delta": 0.0211,
          "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": 18
      }
    },
    {
      "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.1288,
        "predicted_3B": 0.0014,
        "predicted_AB": 2.7234,
        "predicted_AVG": 0.2145,
        "predicted_BB": 0.1428,
        "predicted_H": 0.5842,
        "predicted_HBP": 0.101,
        "predicted_HR": 0.1233,
        "predicted_OBP": 0.2536,
        "predicted_R": 0.3786,
        "predicted_RBI": 0.4431,
        "predicted_SLG": 0.3987,
        "predicted_SO": 0.9774
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1288,
          "after": 0.1288,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.0014,
          "after": 0.0014,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 2.7234,
          "after": 2.7234,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2166,
          "after": 0.2145,
          "delta": -0.0021,
          "percent_delta": -0.0097,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.1435,
          "after": 0.1428,
          "delta": -0.0007,
          "percent_delta": -0.0049,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.5915,
          "after": 0.5842,
          "delta": -0.0073,
          "percent_delta": -0.0123,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HBP",
          "before": 0.101,
          "after": 0.101,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.1247,
          "after": 0.1233,
          "delta": -0.0014,
          "percent_delta": -0.0112,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2624,
          "after": 0.2536,
          "delta": -0.0088,
          "percent_delta": -0.0335,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.3866,
          "after": 0.3786,
          "delta": -0.008,
          "percent_delta": -0.0207,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4525,
          "after": 0.4431,
          "delta": -0.0094,
          "percent_delta": -0.0208,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4019,
          "after": 0.3987,
          "delta": -0.0032,
          "percent_delta": -0.008,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.9723,
          "after": 0.9774,
          "delta": 0.0051,
          "percent_delta": 0.0052,
          "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.2624,
          "after": 0.2536,
          "delta": -0.0088,
          "percent_delta": -0.0335,
          "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.72), rates preserved: AVG=0.221 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": 1.0,
        "predicted_SB": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1288,
          "after": 0.0,
          "delta": -0.1288,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0014,
          "after": 0.0,
          "delta": -0.0014,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 2.7234,
          "after": 3.0,
          "delta": 0.2766,
          "percent_delta": 0.1016,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.1428,
          "after": 0.0,
          "delta": -0.1428,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.5842,
          "after": 1.0,
          "delta": 0.4158,
          "percent_delta": 0.7117,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HBP",
          "before": 0.101,
          "after": 0.0,
          "delta": -0.101,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1233,
          "after": 0.0,
          "delta": -0.1233,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4431,
          "after": 1.0,
          "delta": 0.5569,
          "percent_delta": 1.2568,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.9774,
          "after": 1.0,
          "delta": 0.0226,
          "percent_delta": 0.0231,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        }
      ],
      "summary": {
        "changed_metrics": 7,
        "boosted_metrics": 3,
        "deboosted_metrics": 4,
        "better_metrics": 3,
        "worse_metrics": 4,
        "biggest_boost": {
          "metric": "predicted_RBI",
          "before": 0.4431,
          "after": 1.0,
          "delta": 0.5569,
          "percent_delta": 1.2568,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.1428,
          "after": 0.0,
          "delta": -0.1428,
          "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": 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.3786,
          "after": 0.0,
          "delta": -0.3786,
          "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.3786,
          "after": 0.0,
          "delta": -0.3786,
          "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.1526,
        "predicted_3B": 0.0107,
        "predicted_BB": 0.285,
        "predicted_H": 0.8249,
        "predicted_HR": 0.1254,
        "predicted_RBI": 0.444,
        "predicted_SO": 1.065
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1526,
          "delta": 0.1526,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0107,
          "delta": 0.0107,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.285,
          "delta": 0.285,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8249,
          "delta": -0.1751,
          "percent_delta": -0.1751,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1254,
          "delta": 0.1254,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.444,
          "delta": -0.556,
          "percent_delta": -0.556,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 1.065,
          "delta": 0.065,
          "percent_delta": 0.065,
          "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.285,
          "delta": 0.285,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.444,
          "delta": -0.556,
          "percent_delta": -0.556,
          "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": 1.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1526,
          "after": 0.0,
          "delta": -0.1526,
          "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.0,
          "after": 3.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.285,
          "after": 0.0,
          "delta": -0.285,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8249,
          "after": 1.0,
          "delta": 0.1751,
          "percent_delta": 0.2123,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1254,
          "after": 0.0,
          "delta": -0.1254,
          "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.444,
          "after": 1.0,
          "delta": 0.556,
          "percent_delta": 1.2523,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.065,
          "after": 1.0,
          "delta": -0.065,
          "percent_delta": -0.061,
          "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.444,
          "after": 1.0,
          "delta": 0.556,
          "percent_delta": 1.2523,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.285,
          "after": 0.0,
          "delta": -0.285,
          "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.243,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.308,
        "predicted_R": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.406,
        "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.2145,
          "after": 0.243,
          "delta": 0.0285,
          "percent_delta": 0.1329,
          "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.2536,
          "after": 0.308,
          "delta": 0.0544,
          "percent_delta": 0.2145,
          "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.3987,
          "after": 0.406,
          "delta": 0.0073,
          "percent_delta": 0.0183,
          "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.2536,
          "after": 0.308,
          "delta": 0.0544,
          "percent_delta": 0.2145,
          "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": 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": 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": 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": 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_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.2145,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_FB": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.2536,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.3987,
        "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.243,
          "after": 0.2145,
          "delta": -0.0285,
          "percent_delta": -0.1172,
          "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": 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.2536,
          "delta": -0.0544,
          "percent_delta": -0.1765,
          "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.406,
          "after": 0.3987,
          "delta": -0.0073,
          "percent_delta": -0.018,
          "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_OBP",
          "before": 0.308,
          "after": 0.2536,
          "delta": -0.0544,
          "percent_delta": -0.1765,
          "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.111,
        "after": 0.0,
        "delta": -0.111,
        "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.667,
        "after": 4.0,
        "delta": 1.333,
        "percent_delta": 0.4998,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.208,
        "after": 0.2145,
        "delta": 0.0065,
        "percent_delta": 0.0313,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.111,
        "after": 0.0,
        "delta": -0.111,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.556,
        "after": 1.0,
        "delta": 0.444,
        "percent_delta": 0.7986,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.111,
        "after": 0.0,
        "delta": -0.111,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.24,
        "after": 0.2536,
        "delta": 0.0136,
        "percent_delta": 0.0567,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.389,
        "after": 0.0,
        "delta": -0.389,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.444,
        "after": 0.0,
        "delta": -0.444,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.375,
        "after": 0.3987,
        "delta": 0.0237,
        "percent_delta": 0.0632,
        "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": 11,
      "boosted_metrics": 6,
      "deboosted_metrics": 5,
      "better_metrics": 5,
      "worse_metrics": 6,
      "biggest_boost": {
        "metric": "predicted_AB",
        "before": 2.667,
        "after": 4.0,
        "delta": 1.333,
        "percent_delta": 0.4998,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_RBI",
        "before": 0.444,
        "after": 0.0,
        "delta": -0.444,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.111-
predicted_3B0.000-
predicted_AB2.667-
predicted_AVG0.208-
predicted_BB0.111-
predicted_H0.556-
predicted_HR0.111-
predicted_OBP0.240-
predicted_R0.389-
predicted_RBI0.444-
predicted_SLG0.375-
predicted_SO1.000-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.1290.018
predicted_3B0.0010.001
predicted_AB2.7230.056
predicted_AVG0.2170.009
predicted_BB0.1430.032
predicted_H0.5920.035
predicted_HBP0.101-
predicted_HR0.1250.014
predicted_OBP0.2620.022
predicted_R0.387-0.002
predicted_RBI0.4530.009
predicted_SLG0.4020.027
predicted_SO0.972-0.028
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1290.000
predicted_3B0.0010.000
predicted_AB2.7230.000
predicted_AVG0.214-0.002
predicted_BB0.143-0.001
predicted_H0.584-0.007
predicted_HBP0.1010.000
predicted_HR0.123-0.001
predicted_OBP0.254-0.009
predicted_R0.379-0.008
predicted_RBI0.443-0.009
predicted_SLG0.399-0.003
predicted_SO0.9770.005
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 3 (raw=2.72), rates preserved: AVG=0.221 HR/AB=0.045

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB3.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI1.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI1.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1530.153
3B0.0110.011
BB0.2850.285
H0.825-0.175
HR0.1250.125
RBI0.444-0.556
SO1.0650.065
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.153
3B0.000-0.011
AB3.0000.000
BB0.000-0.285
H1.0000.175
HR0.000-0.125
R0.0000.000
RBI1.0000.556
SO1.000-0.065
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.129
predicted_3B0.000-0.001
predicted_AB3.0000.277
predicted_AVG0.2430.028
predicted_BB0.000-0.143
predicted_H1.0000.416
predicted_HR0.000-0.123
predicted_OBP0.3080.054
predicted_R0.000-0.379
predicted_RBI1.0000.557
predicted_SLG0.4060.007
predicted_SO1.0000.023
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0001.000
BB0.0000.000
CS0.0000.000
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R0.0000.000
RBI0.000-1.000
SB0.0000.000
SF0.0000.000
SO2.0001.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 18
Reference playing time: 3.803
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-7.0002.0001.0000.0001.0002.0001.0001.0003.0000.28570.44440.85710.28570.14290.28570.14290.4286
last_100.2010-19.0004.0001.0000.0001.0003.0002.0002.0007.0000.21050.31820.42110.21050.05260.15790.10530.3684
season0.6018-48.00010.0002.0000.0002.0008.0007.0002.00018.0000.20830.25490.37500.20830.04170.16670.04170.3750
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1630
predicted_3B0.0040
predicted_AB2.8320
predicted_AVG0.2331
predicted_BB0.2060
predicted_H0.6600
predicted_HBP0.1010
predicted_HR0.1510
predicted_OBP0.3055
predicted_R0.3820
predicted_RBI0.4690
predicted_SLG0.4536
predicted_SO0.9190
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.11100.16300.1288model_form_blend
predicted_3B0.00000.00400.0014model_form_blend
predicted_AB2.66702.83202.7234model_form_blend
predicted_AVG0.20800.23310.2166model_form_blend
predicted_BB0.11100.20600.1435model_form_blend
predicted_H0.55600.66000.5915model_form_blend
predicted_HBP-0.10100.1010form_only
predicted_HR0.11100.15100.1247model_form_blend
predicted_OBP0.24000.30550.2624model_form_blend
predicted_R0.38900.38200.3866model_form_blend
predicted_RBI0.44400.46900.4525model_form_blend
predicted_SLG0.37500.45360.4019model_form_blend
predicted_SO1.00000.91900.9723model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date50
Season rows before report date50
Report year2026
Profile rows used18
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA4
AB4
H1
2B0
3B0
HR0
R0
RBI0
BB0
SO2
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B1
Hitting_3B0
Hitting_AB2
Hitting_AVG0.5
Hitting_BB1
Hitting_GIDP0
Hitting_H1
Hitting_HBP1
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI1
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB2
Hitting_battingOrder5
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedDH
gameID20260920_TOR@TEX
game_typefull
mlbID815873
playerID815873
playerNameSean Keys
pos3B
startedTrue
startingPositionDH
teamTOR
teamID29
game_date2026-09-20
sl_k_percent37.5
sl_bb_percent4.2
sl_woba0.252
sl_xwoba0.24
sl_xba0.197
sl_xslg0.317
sl_sweet_spot_percent35.7
sl_barrel_batted_rate7.1
sl_hard_hit_percent60.7
sl_exit_velocity_avg90.7
sl_launch_angle_avg19.5
sl_whiff_percent31.5
sl_swing_percent50.7
George Springer (543807) · BATTER · DH · Team TOR
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 492
All-history rows before 20260921: 492
System season_avg: 0.2480
Data season_avg (2026 season-to-date): 0.2530
Diff (system - data): -0.0050
System opponent_avg: 0.0670

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1850.0001.000Hitting_2B0.2030.000-0.2030.000
predicted_3B0.0170.0000.000Hitting_3B0.0160.000-0.0160.000
predicted_AB3.7564.0004.000Hitting_AB3.9451.0000.0553.000
predicted_AVG0.2080.2500.250Hitting_AVG0.2530.000-0.0030.250
predicted_BB0.3950.0001.000Hitting_BB0.4410.000-0.4410.000
predicted_CS-0.0000.000BaseRunning_CS0.0180.000-0.0180.000
predicted_H0.3401.0001.000Hitting_H0.9980.0000.0021.000
predicted_HR0.0500.0000.000Hitting_HR0.1380.000-0.1380.000
predicted_OBP0.2730.2500.400Hitting_OBP0.3310.000-0.0810.250
predicted_R0.4710.0001.000Hitting_R0.5140.000-0.5140.000
predicted_RBI0.2100.0000.000Hitting_RBI0.4840.000-0.4840.000
predicted_SLG0.3410.2500.500Hitting_SLG0.4180.000-0.1680.250
predicted_SO0.7651.0001.000Hitting_SO0.8051.0000.1950.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics11
Boosted Metrics3
Deboosted Metrics8
Better Metrics2
Worse Metrics9
Biggest Boostpredicted_H: 0.3400 -> 1.0000 (boost 0.6600, better)
Biggest Deboostpredicted_R: 0.4710 -> 0.0000 (deboost -0.4710, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend54141predicted_H: 0.3400 -> 0.5472 (boost 0.2072, better)predicted_AB: 3.7560 -> 3.6828 (deboost -0.0732, 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.
3team_form_snapshot30303-predicted_SLG: 0.3446 -> 0.2540 (deboost -0.0906, worse)Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling73425predicted_H: 0.5405 -> 1.0000 (boost 0.4595, better)predicted_BB: 0.3731 -> 0.0000 (deboost -0.3731, worse)AB rounded to 4 (raw=3.76), rates preserved: AVG=0.148 HR/AB=0.018
6bvp_blend00000--Sample-size BvP blend (BvP AB=15.0, weight=0.133, BvP AVG=0.067)
7consistency_constraints10101-predicted_R: 0.4145 -> 0.0000 (deboost -0.4145, worse)Enforced H<=AB, HR<=H, safety nets, derived R
8hitter_rate_engine64251predicted_RBI: 0.0000 -> 0.4233 (boost 0.4233, better)predicted_SO: 1.0000 -> 0.8451 (deboost -0.1549, better)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
9lineup_integer_allocation75243predicted_R: 0.0000 -> 1.0000 (boost 1.0000, better)predicted_RBI: 0.4233 -> 0.0000 (deboost -0.4233, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
10embedded_savant_player_context63333predicted_SLG: 0.2540 -> 0.3820 (boost 0.1280, 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
11simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
12current_json_final30303-predicted_SLG: 0.3820 -> 0.2540 (deboost -0.1280, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "543807",
  "player_name": "George Springer",
  "position": "DH",
  "team": "TOR",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.185,
        "predicted_3B": 0.017,
        "predicted_AB": 3.756,
        "predicted_AVG": 0.208,
        "predicted_BB": 0.395,
        "predicted_H": 0.34,
        "predicted_HR": 0.05,
        "predicted_OBP": 0.273,
        "predicted_R": 0.471,
        "predicted_RBI": 0.21,
        "predicted_SLG": 0.341,
        "predicted_SO": 0.765
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.1607,
        "predicted_3B": 0.014,
        "predicted_AB": 3.6828,
        "predicted_AVG": 0.2167,
        "predicted_BB": 0.3751,
        "predicted_H": 0.5472,
        "predicted_HBP": 0.015,
        "predicted_HR": 0.0695,
        "predicted_OBP": 0.2839,
        "predicted_R": 0.4233,
        "predicted_RBI": 0.2941,
        "predicted_SLG": 0.3446,
        "predicted_SO": 0.7572
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.185,
          "after": 0.1607,
          "delta": -0.0243,
          "percent_delta": -0.1314,
          "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.756,
          "after": 3.6828,
          "delta": -0.0732,
          "percent_delta": -0.0195,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.208,
          "after": 0.2167,
          "delta": 0.0087,
          "percent_delta": 0.0418,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.395,
          "after": 0.3751,
          "delta": -0.0199,
          "percent_delta": -0.0504,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.34,
          "after": 0.5472,
          "delta": 0.2072,
          "percent_delta": 0.6094,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.05,
          "after": 0.0695,
          "delta": 0.0195,
          "percent_delta": 0.39,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.273,
          "after": 0.2839,
          "delta": 0.0109,
          "percent_delta": 0.0399,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.471,
          "after": 0.4233,
          "delta": -0.0477,
          "percent_delta": -0.1013,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.21,
          "after": 0.2941,
          "delta": 0.0841,
          "percent_delta": 0.4005,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.341,
          "after": 0.3446,
          "delta": 0.0036,
          "percent_delta": 0.0106,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.765,
          "after": 0.7572,
          "delta": -0.0078,
          "percent_delta": -0.0102,
          "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_H",
          "before": 0.34,
          "after": 0.5472,
          "delta": 0.2072,
          "percent_delta": 0.6094,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 3.756,
          "after": 3.6828,
          "delta": -0.0732,
          "percent_delta": -0.0195,
          "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": 119
      }
    },
    {
      "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.1607,
        "predicted_3B": 0.014,
        "predicted_AB": 3.6828,
        "predicted_AVG": 0.1468,
        "predicted_BB": 0.3731,
        "predicted_H": 0.5405,
        "predicted_HBP": 0.015,
        "predicted_HR": 0.0687,
        "predicted_OBP": 0.2253,
        "predicted_R": 0.4145,
        "predicted_RBI": 0.288,
        "predicted_SLG": 0.254,
        "predicted_SO": 0.7611
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1607,
          "after": 0.1607,
          "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.6828,
          "after": 3.6828,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2167,
          "after": 0.1468,
          "delta": -0.0699,
          "percent_delta": -0.3226,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3751,
          "after": 0.3731,
          "delta": -0.002,
          "percent_delta": -0.0053,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.5472,
          "after": 0.5405,
          "delta": -0.0067,
          "percent_delta": -0.0122,
          "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.0695,
          "after": 0.0687,
          "delta": -0.0008,
          "percent_delta": -0.0115,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2839,
          "after": 0.2253,
          "delta": -0.0586,
          "percent_delta": -0.2064,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.4233,
          "after": 0.4145,
          "delta": -0.0088,
          "percent_delta": -0.0208,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.2941,
          "after": 0.288,
          "delta": -0.0061,
          "percent_delta": -0.0207,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3446,
          "after": 0.254,
          "delta": -0.0906,
          "percent_delta": -0.2629,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.7572,
          "after": 0.7611,
          "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_SLG",
          "before": 0.3446,
          "after": 0.254,
          "delta": -0.0906,
          "percent_delta": -0.2629,
          "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.76), rates preserved: AVG=0.148 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.1607,
          "after": 0.0,
          "delta": -0.1607,
          "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.6828,
          "after": 4.0,
          "delta": 0.3172,
          "percent_delta": 0.0861,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3731,
          "after": 0.0,
          "delta": -0.3731,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.5405,
          "after": 1.0,
          "delta": 0.4595,
          "percent_delta": 0.8501,
          "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.0687,
          "after": 0.0,
          "delta": -0.0687,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.288,
          "after": 0.0,
          "delta": -0.288,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.7611,
          "after": 1.0,
          "delta": 0.2389,
          "percent_delta": 0.3139,
          "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_H",
          "before": 0.5405,
          "after": 1.0,
          "delta": 0.4595,
          "percent_delta": 0.8501,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.3731,
          "after": 0.0,
          "delta": -0.3731,
          "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.067)",
      "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.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": 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.4145,
          "after": 0.0,
          "delta": -0.4145,
          "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.4145,
          "after": 0.0,
          "delta": -0.4145,
          "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.1796,
        "predicted_3B": 0.0125,
        "predicted_BB": 0.3888,
        "predicted_H": 0.9102,
        "predicted_HR": 0.1232,
        "predicted_RBI": 0.4233,
        "predicted_SO": 0.8451
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1796,
          "delta": 0.1796,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0125,
          "delta": 0.0125,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.3888,
          "delta": 0.3888,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.9102,
          "delta": -0.0898,
          "percent_delta": -0.0898,
          "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": 0.0,
          "after": 0.4233,
          "delta": 0.4233,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.8451,
          "delta": -0.1549,
          "percent_delta": -0.1549,
          "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.4233,
          "delta": 0.4233,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.8451,
          "delta": -0.1549,
          "percent_delta": -0.1549,
          "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": 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.1796,
          "after": 1.0,
          "delta": 0.8204,
          "percent_delta": 4.5679,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0125,
          "after": 0.0,
          "delta": -0.0125,
          "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.3888,
          "after": 1.0,
          "delta": 0.6112,
          "percent_delta": 1.572,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.9102,
          "after": 1.0,
          "delta": 0.0898,
          "percent_delta": 0.0987,
          "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": 1.0,
          "delta": 1.0,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4233,
          "after": 0.0,
          "delta": -0.4233,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.8451,
          "after": 1.0,
          "delta": 0.1549,
          "percent_delta": 0.1833,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 7,
        "boosted_metrics": 5,
        "deboosted_metrics": 2,
        "better_metrics": 4,
        "worse_metrics": 3,
        "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.4233,
          "after": 0.0,
          "delta": -0.4233,
          "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.234,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.309,
        "predicted_R": 0.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.1468,
          "after": 0.234,
          "delta": 0.0872,
          "percent_delta": 0.594,
          "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.2253,
          "after": 0.309,
          "delta": 0.0837,
          "percent_delta": 0.3715,
          "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": 0.0,
          "after": 0.0,
          "delta": 0.0,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.254,
          "after": 0.382,
          "delta": 0.128,
          "percent_delta": 0.5039,
          "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": 3,
        "deboosted_metrics": 3,
        "better_metrics": 3,
        "worse_metrics": 3,
        "biggest_boost": {
          "metric": "predicted_SLG",
          "before": 0.254,
          "after": 0.382,
          "delta": 0.128,
          "percent_delta": 0.5039,
          "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": 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_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": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "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.1468,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_DH": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.2253,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.254,
        "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.234,
          "after": 0.1468,
          "delta": -0.0872,
          "percent_delta": -0.3728,
          "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": 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.2253,
          "delta": -0.0837,
          "percent_delta": -0.271,
          "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.382,
          "after": 0.254,
          "delta": -0.128,
          "percent_delta": -0.3351,
          "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.382,
          "after": 0.254,
          "delta": -0.128,
          "percent_delta": -0.3351,
          "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.185,
        "after": 0.0,
        "delta": -0.185,
        "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.756,
        "after": 4.0,
        "delta": 0.244,
        "percent_delta": 0.065,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.208,
        "after": 0.1468,
        "delta": -0.0612,
        "percent_delta": -0.2942,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.395,
        "after": 0.0,
        "delta": -0.395,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.34,
        "after": 1.0,
        "delta": 0.66,
        "percent_delta": 1.9412,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.05,
        "after": 0.0,
        "delta": -0.05,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.273,
        "after": 0.2253,
        "delta": -0.0477,
        "percent_delta": -0.1747,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.471,
        "after": 0.0,
        "delta": -0.471,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.21,
        "after": 0.0,
        "delta": -0.21,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.341,
        "after": 0.254,
        "delta": -0.087,
        "percent_delta": -0.2551,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.765,
        "after": 1.0,
        "delta": 0.235,
        "percent_delta": 0.3072,
        "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_H",
        "before": 0.34,
        "after": 1.0,
        "delta": 0.66,
        "percent_delta": 1.9412,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_R",
        "before": 0.471,
        "after": 0.0,
        "delta": -0.471,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.185-
predicted_3B0.017-
predicted_AB3.756-
predicted_AVG0.208-
predicted_BB0.395-
predicted_H0.340-
predicted_HR0.050-
predicted_OBP0.273-
predicted_R0.471-
predicted_RBI0.210-
predicted_SLG0.341-
predicted_SO0.765-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.161-0.024
predicted_3B0.014-0.003
predicted_AB3.683-0.073
predicted_AVG0.2170.009
predicted_BB0.375-0.020
predicted_H0.5470.207
predicted_HBP0.015-
predicted_HR0.0700.020
predicted_OBP0.2840.011
predicted_R0.423-0.048
predicted_RBI0.2940.084
predicted_SLG0.3450.004
predicted_SO0.757-0.008
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1610.000
predicted_3B0.0140.000
predicted_AB3.6830.000
predicted_AVG0.147-0.070
predicted_BB0.373-0.002
predicted_H0.540-0.007
predicted_HBP0.0150.000
predicted_HR0.069-0.001
predicted_OBP0.225-0.059
predicted_R0.414-0.009
predicted_RBI0.288-0.006
predicted_SLG0.254-0.091
predicted_SO0.7610.004
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 4 (raw=3.76), rates preserved: AVG=0.148 HR/AB=0.018

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB4.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO1.000-
6. bvp_blend

Sample-size BvP blend (BvP AB=15.0, weight=0.133, BvP AVG=0.067)

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
H1.0000.000
HR0.0000.000
RBI0.0000.000
SO1.0000.000
7. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
8. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1800.180
3B0.0130.013
BB0.3890.389
H0.910-0.090
HR0.1230.123
RBI0.4230.423
SO0.845-0.155
9. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B1.0000.820
3B0.000-0.013
AB4.0000.000
BB1.0000.611
H1.0000.090
HR0.000-0.123
R1.0001.000
RBI0.000-0.423
SO1.0000.155
10. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.161
predicted_3B0.000-0.014
predicted_AB4.0000.317
predicted_AVG0.2340.087
predicted_BB0.000-0.373
predicted_H1.0000.460
predicted_HR0.000-0.069
predicted_OBP0.3090.084
predicted_R0.000-0.414
predicted_RBI0.000-0.288
predicted_SLG0.3820.128
predicted_SO1.0000.239
11. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.000-1.000
3B0.0000.000
AB4.0000.000
BB0.000-1.000
CS0.0000.000
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R0.000-1.000
RBI0.0000.000
SB0.0000.000
SF0.0000.000
SO1.0000.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 119
Reference playing time: 3.803
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-16.0002.0000.0000.0000.0001.0000.0001.0004.0000.12500.17650.12500.12500.00000.06250.06250.2500
last_100.2010-34.0009.0001.0000.0001.0005.0004.0004.0006.0000.26470.34210.38240.26470.02940.14710.11770.1765
season0.60119-447.000111.00022.0002.00015.00052.00056.00047.00091.0000.24830.32330.40720.24830.03360.11630.10510.2036
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1290
predicted_3B0.0100
predicted_AB3.5870
predicted_AVG0.2281
predicted_BB0.3490
predicted_H0.8180
predicted_HBP0.0150
predicted_HR0.0950
predicted_OBP0.2981
predicted_R0.3610
predicted_RBI0.4040
predicted_SLG0.3493
predicted_SO0.7470
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.18500.12900.1607model_form_blend
predicted_3B0.01700.01000.0140model_form_blend
predicted_AB3.75603.58703.6828model_form_blend
predicted_AVG0.20800.22810.2167model_form_blend
predicted_BB0.39500.34900.3751model_form_blend
predicted_H0.34000.81800.5472model_form_blend
predicted_HBP-0.01500.0150form_only
predicted_HR0.05000.09500.0695model_form_blend
predicted_OBP0.27300.29810.2839model_form_blend
predicted_R0.47100.36100.4233model_form_blend
predicted_RBI0.21000.40400.2941model_form_blend
predicted_SLG0.34100.34930.3446model_form_blend
predicted_SO0.76500.74700.7572model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date492
Season rows before report date492
Report year2026
Profile rows used119
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA4
AB4
H1
2B0
3B0
HR0
R0
RBI0
BB0
SO1
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB1
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO1
Hitting_TB0
Hitting_battingOrder5
Hitting_substitutionOrder1
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedPH
gameID20260920_TOR@TEX
game_typeph
mlbID543807
noteStruck out for Keys in the 9th.
playerID543807
playerNameGeorge Springer
posDH
startedFalse
startingPositionPH
teamTOR
teamID29
game_date2026-09-20
sl_k_percent18.0
sl_bb_percent9.4
sl_woba0.323
sl_xwoba0.304
sl_xba0.234
sl_xslg0.375
sl_sweet_spot_percent29.3
sl_barrel_batted_rate6.4
sl_hard_hit_percent38.3
sl_exit_velocity_avg88.5
sl_launch_angle_avg12.7
sl_whiff_percent23.3
sl_swing_percent48.3
Josh Smith (669701) · BATTER · LF · Team TOR
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 68
All-history rows before 20260921: 68
System season_avg: 0.2150
Data season_avg (2026 season-to-date): 0.2824
Diff (system - data): -0.0674
System opponent_avg: 0.2500
System season_avg diverges from 2026 season-to-date by -0.0674. This usually means mixed-season window logic.

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.0561.0000.000Hitting_2B0.0590.0000.9411.000
predicted_3B0.0140.0000.000Hitting_3B0.0000.0000.0000.000
predicted_AB2.7463.0003.000Hitting_AB2.5002.0000.5001.000
predicted_AVG0.2150.3330.000Hitting_AVG0.2820.0000.0510.333
predicted_BB0.3521.0000.000Hitting_BB0.4560.0000.5441.000
predicted_CS-0.0000.000BaseRunning_CS0.0000.0000.0000.000
predicted_H0.5921.0000.000Hitting_H0.7060.0000.2941.000
predicted_HR0.0850.0000.000Hitting_HR0.2500.000-0.2500.000
predicted_OBP0.3050.5000.000Hitting_OBP0.3980.0000.1020.500
predicted_R0.3101.0000.000Hitting_R0.7060.0000.2941.000
predicted_RBI0.2111.0000.000Hitting_RBI0.3530.0000.6471.000
predicted_SLG0.3380.6670.000Hitting_SLG0.6060.0000.0610.667
predicted_SO0.7320.0001.000Hitting_SO0.9561.000-0.956-1.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics11
Boosted Metrics6
Deboosted Metrics5
Better Metrics7
Worse Metrics4
Biggest Boostpredicted_2B: 0.0560 -> 1.0000 (boost 0.9440, better)
Biggest Deboostpredicted_SO: 0.7320 -> 0.0000 (deboost -0.7320, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend30303-predicted_OBP: 0.3050 -> 0.2912 (deboost -0.0138, 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.
3team_form_snapshot10101-predicted_OBP: 0.2912 -> 0.2856 (deboost -0.0056, worse)Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling73425predicted_H: 0.5548 -> 1.0000 (boost 0.4452, better)predicted_BB: 0.3245 -> 0.0000 (deboost -0.3245, worse)AB rounded to 3 (raw=2.75), rates preserved: AVG=0.207 HR/AB=0.029
6consistency_constraints10101-predicted_R: 0.3272 -> 0.0000 (deboost -0.3272, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine64251predicted_BB: 0.0000 -> 0.3501 (boost 0.3501, better)predicted_H: 1.0000 -> 0.6976 (deboost -0.3024, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation61506predicted_SO: 0.7462 -> 1.0000 (boost 0.2538, worse)predicted_H: 0.6976 -> 0.0000 (deboost -0.6976, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context44040predicted_H: 0.0000 -> 1.0000 (boost 1.0000, better)-Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10simulation_box_score_reference54150predicted_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
11current_json_final30303-predicted_SLG: 0.3830 -> 0.3260 (deboost -0.0570, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "669701",
  "player_name": "Josh Smith",
  "position": "LF",
  "team": "TOR",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.056,
        "predicted_3B": 0.014,
        "predicted_AB": 2.746,
        "predicted_AVG": 0.215,
        "predicted_BB": 0.352,
        "predicted_H": 0.592,
        "predicted_HR": 0.085,
        "predicted_OBP": 0.305,
        "predicted_R": 0.31,
        "predicted_RBI": 0.211,
        "predicted_SLG": 0.338,
        "predicted_SO": 0.732
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.0759,
        "predicted_3B": 0.0119,
        "predicted_AB": 2.7547,
        "predicted_AVG": 0.2036,
        "predicted_BB": 0.3262,
        "predicted_H": 0.5617,
        "predicted_HBP": 0.039,
        "predicted_HR": 0.0821,
        "predicted_OBP": 0.2912,
        "predicted_R": 0.3341,
        "predicted_RBI": 0.196,
        "predicted_SLG": 0.3287,
        "predicted_SO": 0.7619
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.056,
          "after": 0.0759,
          "delta": 0.0199,
          "percent_delta": 0.3554,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.014,
          "after": 0.0119,
          "delta": -0.0021,
          "percent_delta": -0.15,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 2.746,
          "after": 2.7547,
          "delta": 0.0087,
          "percent_delta": 0.0032,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.215,
          "after": 0.2036,
          "delta": -0.0114,
          "percent_delta": -0.053,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.352,
          "after": 0.3262,
          "delta": -0.0258,
          "percent_delta": -0.0733,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.592,
          "after": 0.5617,
          "delta": -0.0303,
          "percent_delta": -0.0512,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.085,
          "after": 0.0821,
          "delta": -0.0029,
          "percent_delta": -0.0341,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.305,
          "after": 0.2912,
          "delta": -0.0138,
          "percent_delta": -0.0452,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.31,
          "after": 0.3341,
          "delta": 0.0241,
          "percent_delta": 0.0777,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.211,
          "after": 0.196,
          "delta": -0.015,
          "percent_delta": -0.0711,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.338,
          "after": 0.3287,
          "delta": -0.0093,
          "percent_delta": -0.0275,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.732,
          "after": 0.7619,
          "delta": 0.0299,
          "percent_delta": 0.0408,
          "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.305,
          "after": 0.2912,
          "delta": -0.0138,
          "percent_delta": -0.0452,
          "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.0759,
        "predicted_3B": 0.0119,
        "predicted_AB": 2.7547,
        "predicted_AVG": 0.2014,
        "predicted_BB": 0.3245,
        "predicted_H": 0.5548,
        "predicted_HBP": 0.039,
        "predicted_HR": 0.0812,
        "predicted_OBP": 0.2856,
        "predicted_R": 0.3272,
        "predicted_RBI": 0.1919,
        "predicted_SLG": 0.326,
        "predicted_SO": 0.7659
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0759,
          "after": 0.0759,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.0119,
          "after": 0.0119,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 2.7547,
          "after": 2.7547,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2036,
          "after": 0.2014,
          "delta": -0.0022,
          "percent_delta": -0.0108,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.3262,
          "after": 0.3245,
          "delta": -0.0017,
          "percent_delta": -0.0052,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.5617,
          "after": 0.5548,
          "delta": -0.0069,
          "percent_delta": -0.0123,
          "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.0821,
          "after": 0.0812,
          "delta": -0.0009,
          "percent_delta": -0.011,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2912,
          "after": 0.2856,
          "delta": -0.0056,
          "percent_delta": -0.0192,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.3341,
          "after": 0.3272,
          "delta": -0.0069,
          "percent_delta": -0.0207,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.196,
          "after": 0.1919,
          "delta": -0.0041,
          "percent_delta": -0.0209,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3287,
          "after": 0.326,
          "delta": -0.0027,
          "percent_delta": -0.0082,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.7619,
          "after": 0.7659,
          "delta": 0.004,
          "percent_delta": 0.0053,
          "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.2912,
          "after": 0.2856,
          "delta": -0.0056,
          "percent_delta": -0.0192,
          "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.75), rates preserved: AVG=0.207 HR/AB=0.029",
      "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.0759,
          "after": 0.0,
          "delta": -0.0759,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0119,
          "after": 0.0,
          "delta": -0.0119,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 2.7547,
          "after": 3.0,
          "delta": 0.2453,
          "percent_delta": 0.089,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3245,
          "after": 0.0,
          "delta": -0.3245,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.5548,
          "after": 1.0,
          "delta": 0.4452,
          "percent_delta": 0.8025,
          "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.0812,
          "after": 0.0,
          "delta": -0.0812,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.1919,
          "after": 0.0,
          "delta": -0.1919,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.7659,
          "after": 1.0,
          "delta": 0.2341,
          "percent_delta": 0.3057,
          "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_H",
          "before": 0.5548,
          "after": 1.0,
          "delta": 0.4452,
          "percent_delta": 0.8025,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.3245,
          "after": 0.0,
          "delta": -0.3245,
          "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.3272,
          "after": 0.0,
          "delta": -0.3272,
          "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.3272,
          "after": 0.0,
          "delta": -0.3272,
          "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.1191,
        "predicted_3B": 0.0104,
        "predicted_BB": 0.3501,
        "predicted_H": 0.6976,
        "predicted_HR": 0.0985,
        "predicted_RBI": 0.2898,
        "predicted_SO": 0.7462
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1191,
          "delta": 0.1191,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0104,
          "delta": 0.0104,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.3501,
          "delta": 0.3501,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.6976,
          "delta": -0.3024,
          "percent_delta": -0.3024,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.0985,
          "delta": 0.0985,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.2898,
          "delta": 0.2898,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.7462,
          "delta": -0.2538,
          "percent_delta": -0.2538,
          "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.3501,
          "delta": 0.3501,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.6976,
          "delta": -0.3024,
          "percent_delta": -0.3024,
          "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.1191,
          "after": 0.0,
          "delta": -0.1191,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0104,
          "after": 0.0,
          "delta": -0.0104,
          "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.3501,
          "after": 0.0,
          "delta": -0.3501,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.6976,
          "after": 0.0,
          "delta": -0.6976,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0985,
          "after": 0.0,
          "delta": -0.0985,
          "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.2898,
          "after": 0.0,
          "delta": -0.2898,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.7462,
          "after": 1.0,
          "delta": 0.2538,
          "percent_delta": 0.3401,
          "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.7462,
          "after": 1.0,
          "delta": 0.2538,
          "percent_delta": 0.3401,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 0.6976,
          "after": 0.0,
          "delta": -0.6976,
          "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.236,
        "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.383,
        "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.2014,
          "after": 0.236,
          "delta": 0.0346,
          "percent_delta": 0.1718,
          "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.2856,
          "after": 0.322,
          "delta": 0.0364,
          "percent_delta": 0.1275,
          "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.326,
          "after": 0.383,
          "delta": 0.057,
          "percent_delta": 0.1748,
          "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": 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": 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": 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": 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": 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": 3.0,
        "predicted_AVG": 0.2014,
        "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.2856,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.326,
        "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.236,
          "after": 0.2014,
          "delta": -0.0346,
          "percent_delta": -0.1466,
          "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.322,
          "after": 0.2856,
          "delta": -0.0364,
          "percent_delta": -0.1132,
          "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.383,
          "after": 0.326,
          "delta": -0.057,
          "percent_delta": -0.1488,
          "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.383,
          "after": 0.326,
          "delta": -0.057,
          "percent_delta": -0.1488,
          "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.056,
        "after": 1.0,
        "delta": 0.944,
        "percent_delta": 16.8571,
        "direction": "boost",
        "projection_effect": "better",
        "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.746,
        "after": 3.0,
        "delta": 0.254,
        "percent_delta": 0.0925,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.215,
        "after": 0.2014,
        "delta": -0.0136,
        "percent_delta": -0.0633,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.352,
        "after": 1.0,
        "delta": 0.648,
        "percent_delta": 1.8409,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.592,
        "after": 1.0,
        "delta": 0.408,
        "percent_delta": 0.6892,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.085,
        "after": 0.0,
        "delta": -0.085,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.305,
        "after": 0.2856,
        "delta": -0.0194,
        "percent_delta": -0.0636,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.31,
        "after": 1.0,
        "delta": 0.69,
        "percent_delta": 2.2258,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.211,
        "after": 1.0,
        "delta": 0.789,
        "percent_delta": 3.7393,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.338,
        "after": 0.326,
        "delta": -0.012,
        "percent_delta": -0.0355,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.732,
        "after": 0.0,
        "delta": -0.732,
        "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_2B",
        "before": 0.056,
        "after": 1.0,
        "delta": 0.944,
        "percent_delta": 16.8571,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_SO",
        "before": 0.732,
        "after": 0.0,
        "delta": -0.732,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "better"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.056-
predicted_3B0.014-
predicted_AB2.746-
predicted_AVG0.215-
predicted_BB0.352-
predicted_H0.592-
predicted_HR0.085-
predicted_OBP0.305-
predicted_R0.310-
predicted_RBI0.211-
predicted_SLG0.338-
predicted_SO0.732-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.0760.020
predicted_3B0.012-0.002
predicted_AB2.7550.009
predicted_AVG0.204-0.011
predicted_BB0.326-0.026
predicted_H0.562-0.030
predicted_HBP0.039-
predicted_HR0.082-0.003
predicted_OBP0.291-0.014
predicted_R0.3340.024
predicted_RBI0.196-0.015
predicted_SLG0.329-0.009
predicted_SO0.7620.030
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.0760.000
predicted_3B0.0120.000
predicted_AB2.7550.000
predicted_AVG0.201-0.002
predicted_BB0.325-0.002
predicted_H0.555-0.007
predicted_HBP0.0390.000
predicted_HR0.081-0.001
predicted_OBP0.286-0.006
predicted_R0.327-0.007
predicted_RBI0.192-0.004
predicted_SLG0.326-0.003
predicted_SO0.7660.004
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 3 (raw=2.75), rates preserved: AVG=0.207 HR/AB=0.029

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB3.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1190.119
3B0.0100.010
BB0.3500.350
H0.698-0.302
HR0.0990.099
RBI0.2900.290
SO0.746-0.254
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.119
3B0.000-0.010
AB3.0000.000
BB0.000-0.350
H0.000-0.698
HR0.000-0.099
R0.0000.000
RBI0.000-0.290
SO1.0000.254
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.076
predicted_3B0.000-0.012
predicted_AB3.0000.245
predicted_AVG0.2360.035
predicted_BB0.000-0.325
predicted_H1.0000.445
predicted_HR0.000-0.081
predicted_OBP0.3220.036
predicted_R0.000-0.327
predicted_RBI0.000-0.192
predicted_SLG0.3830.057
predicted_SO1.0000.234
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B1.0001.000
3B0.0000.000
AB3.0000.000
BB1.0001.000
CS0.0000.000
H1.0001.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R1.0001.000
RBI1.0001.000
SB0.0000.000
SF0.0000.000
SO0.000-1.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 71
Reference playing time: 3.803
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-13.0001.0001.0000.0000.0000.0002.0001.0004.0000.07690.14290.15380.07690.00000.00000.07690.3077
last_100.2010-23.0004.0001.0000.0001.0001.0004.0002.0009.0000.17390.26920.34780.17390.04350.04350.08700.3913
season0.6071-195.00042.0004.0001.0006.00015.00022.00025.00052.0000.21540.30800.33850.21540.03080.07690.12820.2667
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1040
predicted_3B0.0090
predicted_AB2.7670
predicted_AVG0.1875
predicted_BB0.2900
predicted_H0.5190
predicted_HBP0.0390
predicted_HR0.0780
predicted_OBP0.2717
predicted_R0.3680
predicted_RBI0.1750
predicted_SLG0.3157
predicted_SO0.8040
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.05600.10400.0759model_form_blend
predicted_3B0.01400.00900.0119model_form_blend
predicted_AB2.74602.76702.7547model_form_blend
predicted_AVG0.21500.18750.2036model_form_blend
predicted_BB0.35200.29000.3262model_form_blend
predicted_H0.59200.51900.5617model_form_blend
predicted_HBP-0.03900.0390form_only
predicted_HR0.08500.07800.0821model_form_blend
predicted_OBP0.30500.27170.2912model_form_blend
predicted_R0.31000.36800.3341model_form_blend
predicted_RBI0.21100.17500.1960model_form_blend
predicted_SLG0.33800.31570.3287model_form_blend
predicted_SO0.73200.80400.7619model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date68
Season rows before report date68
Report year2026
Profile rows used71
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA4
AB3
H1
2B1
3B0
HR0
R1
RBI1
BB1
SO0
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB2
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO1
Hitting_TB0
Hitting_battingOrder6
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedLF
gameID20260920_TOR@TEX
game_typefull
mlbID669701
playerID669701
playerNameJosh Smith
pos2B
startedTrue
startingPositionLF
teamTOR
teamID29
game_date2026-09-20
sl_k_percent22.8
sl_bb_percent11.2
sl_woba0.293
sl_xwoba0.282
sl_xba0.205
sl_xslg0.325
sl_sweet_spot_percent32.9
sl_barrel_batted_rate6.8
sl_hard_hit_percent30.8
sl_exit_velocity_avg85.9
sl_launch_angle_avg14.9
sl_whiff_percent25.0
sl_swing_percent47.0
Brett Bateman (703520) · BATTER · CF · Team TOR
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 158
All-history rows before 20260921: 158
System season_avg: 0.3220
Data season_avg (2026 season-to-date): 0.3267
Diff (system - data): -0.0047
System opponent_avg: 0.3330

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1620.0000.000Hitting_2B0.1461.000-0.146-1.000
predicted_3B0.0270.0000.000Hitting_3B0.0320.000-0.0320.000
predicted_AB5.4005.0004.000Hitting_AB4.1653.0000.8352.000
predicted_AVG0.2760.2000.250Hitting_AVG0.3270.333-0.127-0.133
predicted_BB0.4320.0001.000Hitting_BB0.4372.000-0.437-2.000
predicted_CS-0.0000.000BaseRunning_CS0.0000.0000.0000.000
predicted_H1.4901.0001.000Hitting_H1.3611.000-0.3610.000
predicted_HR0.0701.0000.000Hitting_HR0.0630.0000.9371.000
predicted_OBP0.3690.2000.400Hitting_OBP0.3960.600-0.196-0.400
predicted_R0.7031.0001.000Hitting_R0.7223.0000.278-2.000
predicted_RBI0.3202.0000.000Hitting_RBI0.3350.0001.6652.000
predicted_SLG0.4050.8000.250Hitting_SLG0.4220.6670.3780.133
predicted_SO0.9190.0001.000Hitting_SO0.9681.000-0.968-1.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics11
Boosted Metrics4
Deboosted Metrics7
Better Metrics5
Worse Metrics6
Biggest Boostpredicted_RBI: 0.3200 -> 2.0000 (boost 1.6800, better)
Biggest Deboostpredicted_SO: 0.9190 -> 0.0000 (deboost -0.9190, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend42222predicted_AVG: 0.2760 -> 0.2882 (boost 0.0122, better)predicted_AB: 5.4000 -> 4.8118 (deboost -0.5882, 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.
3team_form_snapshot30303-predicted_SLG: 0.4115 -> 0.3727 (deboost -0.0388, worse)Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling71607predicted_SO: 0.9095 -> 1.0000 (boost 0.0905, worse)predicted_AB: 4.8118 -> 4.0000 (deboost -0.8118, worse)AB rounded to 4 (raw=5.40), rates preserved: AVG=0.259 HR/AB=0.014
6consistency_constraints11010predicted_R: 0.7167 -> 1.0000 (boost 0.2833, better)-Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine54150predicted_BB: 0.0000 -> 0.4103 (boost 0.4103, better)predicted_SO: 1.0000 -> 0.8819 (deboost -0.1181, better)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation52314predicted_BB: 0.4103 -> 1.0000 (boost 0.5897, better)predicted_RBI: 0.3921 -> 0.0000 (deboost -0.3921, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context31212predicted_SLG: 0.3727 -> 0.3940 (boost 0.0213, 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
10simulation_box_score_reference43140predicted_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
11current_json_final21111predicted_AVG: 0.2620 -> 0.2824 (boost 0.0204, better)predicted_SLG: 0.3940 -> 0.3727 (deboost -0.0213, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "703520",
  "player_name": "Brett Bateman",
  "position": "CF",
  "team": "TOR",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.162,
        "predicted_3B": 0.027,
        "predicted_AB": 5.4,
        "predicted_AVG": 0.276,
        "predicted_BB": 0.432,
        "predicted_H": 1.49,
        "predicted_HR": 0.07,
        "predicted_OBP": 0.369,
        "predicted_R": 0.703,
        "predicted_RBI": 0.32,
        "predicted_SLG": 0.405,
        "predicted_SO": 0.919
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.1685,
        "predicted_3B": 0.0225,
        "predicted_AB": 4.8118,
        "predicted_AVG": 0.2882,
        "predicted_BB": 0.4239,
        "predicted_H": 1.376,
        "predicted_HBP": 0.032,
        "predicted_HR": 0.0745,
        "predicted_OBP": 0.3715,
        "predicted_R": 0.7318,
        "predicted_RBI": 0.3082,
        "predicted_SLG": 0.4115,
        "predicted_SO": 0.9048
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.162,
          "after": 0.1685,
          "delta": 0.0065,
          "percent_delta": 0.0401,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.027,
          "after": 0.0225,
          "delta": -0.0045,
          "percent_delta": -0.1667,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 5.4,
          "after": 4.8118,
          "delta": -0.5882,
          "percent_delta": -0.1089,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.276,
          "after": 0.2882,
          "delta": 0.0122,
          "percent_delta": 0.0442,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.432,
          "after": 0.4239,
          "delta": -0.0081,
          "percent_delta": -0.0187,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 1.49,
          "after": 1.376,
          "delta": -0.114,
          "percent_delta": -0.0765,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.07,
          "after": 0.0745,
          "delta": 0.0045,
          "percent_delta": 0.0643,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.369,
          "after": 0.3715,
          "delta": 0.0025,
          "percent_delta": 0.0068,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.703,
          "after": 0.7318,
          "delta": 0.0288,
          "percent_delta": 0.041,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.32,
          "after": 0.3082,
          "delta": -0.0118,
          "percent_delta": -0.0369,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.405,
          "after": 0.4115,
          "delta": 0.0065,
          "percent_delta": 0.016,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.919,
          "after": 0.9048,
          "delta": -0.0142,
          "percent_delta": -0.0155,
          "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.276,
          "after": 0.2882,
          "delta": 0.0122,
          "percent_delta": 0.0442,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 5.4,
          "after": 4.8118,
          "delta": -0.5882,
          "percent_delta": -0.1089,
          "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": 37
      }
    },
    {
      "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.1685,
        "predicted_3B": 0.0225,
        "predicted_AB": 4.8118,
        "predicted_AVG": 0.2824,
        "predicted_BB": 0.4217,
        "predicted_H": 1.3591,
        "predicted_HBP": 0.032,
        "predicted_HR": 0.0737,
        "predicted_OBP": 0.3403,
        "predicted_R": 0.7167,
        "predicted_RBI": 0.3018,
        "predicted_SLG": 0.3727,
        "predicted_SO": 0.9095
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1685,
          "after": 0.1685,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.0225,
          "after": 0.0225,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 4.8118,
          "after": 4.8118,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2882,
          "after": 0.2824,
          "delta": -0.0058,
          "percent_delta": -0.0201,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.4239,
          "after": 0.4217,
          "delta": -0.0022,
          "percent_delta": -0.0052,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 1.376,
          "after": 1.3591,
          "delta": -0.0169,
          "percent_delta": -0.0123,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HBP",
          "before": 0.032,
          "after": 0.032,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.0745,
          "after": 0.0737,
          "delta": -0.0008,
          "percent_delta": -0.0107,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3715,
          "after": 0.3403,
          "delta": -0.0312,
          "percent_delta": -0.084,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.7318,
          "after": 0.7167,
          "delta": -0.0151,
          "percent_delta": -0.0206,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3082,
          "after": 0.3018,
          "delta": -0.0064,
          "percent_delta": -0.0208,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4115,
          "after": 0.3727,
          "delta": -0.0388,
          "percent_delta": -0.0943,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.9048,
          "after": 0.9095,
          "delta": 0.0047,
          "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.4115,
          "after": 0.3727,
          "delta": -0.0388,
          "percent_delta": -0.0943,
          "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.40), rates preserved: AVG=0.259 HR/AB=0.014",
      "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.1685,
          "after": 0.0,
          "delta": -0.1685,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0225,
          "after": 0.0,
          "delta": -0.0225,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 4.8118,
          "after": 4.0,
          "delta": -0.8118,
          "percent_delta": -0.1687,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.4217,
          "after": 0.0,
          "delta": -0.4217,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.3591,
          "after": 1.0,
          "delta": -0.3591,
          "percent_delta": -0.2642,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HBP",
          "before": 0.032,
          "after": 0.0,
          "delta": -0.032,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.0737,
          "after": 0.0,
          "delta": -0.0737,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3018,
          "after": 0.0,
          "delta": -0.3018,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.9095,
          "after": 1.0,
          "delta": 0.0905,
          "percent_delta": 0.0995,
          "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.9095,
          "after": 1.0,
          "delta": 0.0905,
          "percent_delta": 0.0995,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 4.8118,
          "after": 4.0,
          "delta": -0.8118,
          "percent_delta": -0.1687,
          "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.7167,
          "after": 1.0,
          "delta": 0.2833,
          "percent_delta": 0.3953,
          "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.7167,
          "after": 1.0,
          "delta": 0.2833,
          "percent_delta": 0.3953,
          "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.1719,
        "predicted_3B": 0.0144,
        "predicted_BB": 0.4103,
        "predicted_H": 1.0163,
        "predicted_HR": 0.1042,
        "predicted_RBI": 0.3921,
        "predicted_SO": 0.8819
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1719,
          "delta": 0.1719,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0144,
          "delta": 0.0144,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.4103,
          "delta": 0.4103,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 1.0163,
          "delta": 0.0163,
          "percent_delta": 0.0163,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1042,
          "delta": 0.1042,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.3921,
          "delta": 0.3921,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.8819,
          "delta": -0.1181,
          "percent_delta": -0.1181,
          "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_BB",
          "before": 0.0,
          "after": 0.4103,
          "delta": 0.4103,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.8819,
          "delta": -0.1181,
          "percent_delta": -0.1181,
          "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": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1719,
          "after": 0.0,
          "delta": -0.1719,
          "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": 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.4103,
          "after": 1.0,
          "delta": 0.5897,
          "percent_delta": 1.4372,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0163,
          "after": 1.0,
          "delta": -0.0163,
          "percent_delta": -0.016,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.1042,
          "after": 0.0,
          "delta": -0.1042,
          "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.3921,
          "after": 0.0,
          "delta": -0.3921,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.8819,
          "after": 1.0,
          "delta": 0.1181,
          "percent_delta": 0.1339,
          "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.4103,
          "after": 1.0,
          "delta": 0.5897,
          "percent_delta": 1.4372,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.3921,
          "after": 0.0,
          "delta": -0.3921,
          "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.262,
        "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.394,
        "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.2824,
          "after": 0.262,
          "delta": -0.0204,
          "percent_delta": -0.0722,
          "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.3403,
          "after": 0.337,
          "delta": -0.0033,
          "percent_delta": -0.0097,
          "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.3727,
          "after": 0.394,
          "delta": 0.0213,
          "percent_delta": 0.0572,
          "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.3727,
          "after": 0.394,
          "delta": 0.0213,
          "percent_delta": 0.0572,
          "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": 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": 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": 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_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": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 5.0,
        "predicted_AVG": 0.2824,
        "predicted_BB": 0.0,
        "predicted_CF": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 1.0,
        "predicted_OBP": 0.3403,
        "predicted_R": 1.0,
        "predicted_RBI": 2.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.3727,
        "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.262,
          "after": 0.2824,
          "delta": 0.0204,
          "percent_delta": 0.078,
          "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.337,
          "after": 0.3403,
          "delta": 0.0033,
          "percent_delta": 0.0097,
          "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": 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.394,
          "after": 0.3727,
          "delta": -0.0213,
          "percent_delta": -0.0539,
          "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.262,
          "after": 0.2824,
          "delta": 0.0204,
          "percent_delta": 0.078,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SLG",
          "before": 0.394,
          "after": 0.3727,
          "delta": -0.0213,
          "percent_delta": -0.0539,
          "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.162,
        "after": 0.0,
        "delta": -0.162,
        "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": 5.4,
        "after": 5.0,
        "delta": -0.4,
        "percent_delta": -0.0741,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.276,
        "after": 0.2824,
        "delta": 0.0064,
        "percent_delta": 0.0232,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.432,
        "after": 0.0,
        "delta": -0.432,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 1.49,
        "after": 1.0,
        "delta": -0.49,
        "percent_delta": -0.3289,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.07,
        "after": 1.0,
        "delta": 0.93,
        "percent_delta": 13.2857,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.369,
        "after": 0.3403,
        "delta": -0.0287,
        "percent_delta": -0.0778,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.703,
        "after": 1.0,
        "delta": 0.297,
        "percent_delta": 0.4225,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.32,
        "after": 2.0,
        "delta": 1.68,
        "percent_delta": 5.25,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.405,
        "after": 0.3727,
        "delta": -0.0323,
        "percent_delta": -0.0798,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.919,
        "after": 0.0,
        "delta": -0.919,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 11,
      "boosted_metrics": 4,
      "deboosted_metrics": 7,
      "better_metrics": 5,
      "worse_metrics": 6,
      "biggest_boost": {
        "metric": "predicted_RBI",
        "before": 0.32,
        "after": 2.0,
        "delta": 1.68,
        "percent_delta": 5.25,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_SO",
        "before": 0.919,
        "after": 0.0,
        "delta": -0.919,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.162-
predicted_3B0.027-
predicted_AB5.400-
predicted_AVG0.276-
predicted_BB0.432-
predicted_H1.490-
predicted_HR0.070-
predicted_OBP0.369-
predicted_R0.703-
predicted_RBI0.320-
predicted_SLG0.405-
predicted_SO0.919-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.1690.007
predicted_3B0.022-0.005
predicted_AB4.812-0.588
predicted_AVG0.2880.012
predicted_BB0.424-0.008
predicted_H1.376-0.114
predicted_HBP0.032-
predicted_HR0.0740.004
predicted_OBP0.3710.003
predicted_R0.7320.029
predicted_RBI0.308-0.012
predicted_SLG0.4110.006
predicted_SO0.905-0.014
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1690.000
predicted_3B0.0220.000
predicted_AB4.8120.000
predicted_AVG0.282-0.006
predicted_BB0.422-0.002
predicted_H1.359-0.017
predicted_HBP0.0320.000
predicted_HR0.074-0.001
predicted_OBP0.340-0.031
predicted_R0.717-0.015
predicted_RBI0.302-0.006
predicted_SLG0.373-0.039
predicted_SO0.9090.005
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 4 (raw=5.40), rates preserved: AVG=0.259 HR/AB=0.014

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB4.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R1.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1720.172
3B0.0140.014
BB0.4100.410
H1.0160.016
HR0.1040.104
RBI0.3920.392
SO0.882-0.118
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.172
3B0.000-0.014
AB4.0000.000
BB1.0000.590
H1.000-0.016
HR0.000-0.104
R1.0000.000
RBI0.000-0.392
SO1.0000.118
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.169
predicted_3B0.000-0.022
predicted_AB4.000-0.812
predicted_AVG0.262-0.020
predicted_BB0.000-0.422
predicted_H1.000-0.359
predicted_HR0.000-0.074
predicted_OBP0.337-0.003
predicted_R1.0000.283
predicted_RBI0.000-0.302
predicted_SLG0.3940.021
predicted_SO1.0000.091
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB5.0001.000
BB0.000-1.000
CS0.0000.000
H1.0000.000
HBP0.0000.000
HR1.0001.000
PA5.000-
R1.0000.000
RBI2.0002.000
SB0.0000.000
SF0.0000.000
SO0.000-1.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 37
Reference playing time: 5.400
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-19.0006.0001.0000.0000.0000.0005.0002.0004.0000.31580.38100.36840.31580.00000.00000.10530.2105
last_100.2010-40.00012.0002.0000.0002.0004.00010.0005.0009.0000.30000.37780.50000.30000.05000.10000.12500.2250
season0.6037-149.00048.0006.0001.0002.00011.00026.00016.00034.0000.32210.39290.41610.32210.01340.07380.10740.2282
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1780
predicted_3B0.0160
predicted_AB3.9500
predicted_AVG0.3061
predicted_BB0.4120
predicted_H1.2090
predicted_HBP0.0320
predicted_HR0.0810
predicted_OBP0.3751
predicted_R0.7740
predicted_RBI0.2910
predicted_SLG0.4210
predicted_SO0.8840
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.16200.17800.1685model_form_blend
predicted_3B0.02700.01600.0225model_form_blend
predicted_AB5.40003.95004.8118model_form_blend
predicted_AVG0.27600.30610.2882model_form_blend
predicted_BB0.43200.41200.4239model_form_blend
predicted_H1.49001.20901.3760model_form_blend
predicted_HBP-0.03200.0320form_only
predicted_HR0.07000.08100.0745model_form_blend
predicted_OBP0.36900.37510.3715model_form_blend
predicted_R0.70300.77400.7318model_form_blend
predicted_RBI0.32000.29100.3082model_form_blend
predicted_SLG0.40500.42100.4115model_form_blend
predicted_SO0.91900.88400.9048model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date158
Season rows before report date158
Report year2026
Profile rows used37
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA5
AB5
H1
2B0
3B0
HR1
R1
RBI2
BB0
SO0
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B1
Hitting_3B0
Hitting_AB3
Hitting_AVG0.333
Hitting_BB2
Hitting_GIDP0
Hitting_H1
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R3
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO1
Hitting_TB2
Hitting_battingOrder1
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedCF
gameID20260920_TOR@TEX
game_typefull
mlbID703520
playerID703520
playerNameBrett Bateman
posCF
startedTrue
startingPositionCF
teamTOR
teamID29
game_date2026-09-20
sl_k_percent20.0
sl_bb_percent8.5
sl_woba0.356
sl_xwoba0.3
sl_xba0.257
sl_xslg0.327
sl_sweet_spot_percent32.8
sl_barrel_batted_rate1.7
sl_hard_hit_percent20.7
sl_exit_velocity_avg84.6
sl_launch_angle_avg1.7
sl_whiff_percent15.2
sl_swing_percent43.1
Nathan Lukes (664770) · BATTER · RF · Team TOR
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 425
All-history rows before 20260921: 425
System season_avg: 0.2740
Data season_avg (2026 season-to-date): 0.2820
Diff (system - data): -0.0080
System opponent_avg: 0.2270

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1210.0000.000Hitting_2B0.1320.000-0.1320.000
predicted_3B0.0000.0000.000Hitting_3B0.0000.0000.0000.000
predicted_AB3.6104.0004.000Hitting_AB3.6803.0000.3201.000
predicted_AVG0.2610.5000.250Hitting_AVG0.2820.6670.218-0.167
predicted_BB0.1900.0000.000Hitting_BB0.2281.000-0.228-1.000
predicted_CS-0.0000.000BaseRunning_CS0.0120.000-0.0120.000
predicted_H0.9402.0001.000Hitting_H1.0382.0000.9620.000
predicted_HR0.0700.0000.000Hitting_HR0.0960.000-0.0960.000
predicted_OBP0.3090.5000.250Hitting_OBP0.3330.6000.167-0.100
predicted_R0.3881.0001.000Hitting_R0.4492.0000.551-1.000
predicted_RBI0.4600.0000.000Hitting_RBI0.3692.000-0.369-2.000
predicted_SLG0.3560.5000.250Hitting_SLG0.3960.6670.104-0.167
predicted_SO0.5430.0001.000Hitting_SO0.6240.000-0.6240.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectdeboosted
Changed Metrics10
Boosted Metrics4
Deboosted Metrics6
Better Metrics5
Worse Metrics5
Biggest Boostpredicted_H: 0.9400 -> 2.0000 (boost 1.0600, better)
Biggest Deboostpredicted_SO: 0.5430 -> 0.0000 (deboost -0.5430, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend32121predicted_AVG: 0.2610 -> 0.2708 (boost 0.0098, better)predicted_AB: 3.6100 -> 3.4257 (deboost -0.1843, 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.
3team_form_snapshot20202-predicted_OBP: 0.3140 -> 0.3039 (deboost -0.0101, worse)Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling73425predicted_AB: 3.4257 -> 4.0000 (boost 0.5743, better)predicted_RBI: 0.4260 -> 0.0000 (deboost -0.4260, worse)AB rounded to 4 (raw=3.61), rates preserved: AVG=0.260 HR/AB=0.017
6bvp_blend00000--Sample-size BvP blend (BvP AB=9.0, weight=0.092, BvP AVG=0.222)
7consistency_constraints10101-predicted_R: 0.3867 -> 0.0000 (deboost -0.3867, worse)Enforced H<=AB, HR<=H, safety nets, derived R
8hitter_rate_engine54150predicted_RBI: 0.0000 -> 0.3806 (boost 0.3806, better)predicted_SO: 1.0000 -> 0.6330 (deboost -0.3670, better)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
9lineup_integer_allocation62415predicted_R: 0.0000 -> 1.0000 (boost 1.0000, better)predicted_RBI: 0.3806 -> 0.0000 (deboost -0.3806, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
10embedded_savant_player_context42222predicted_SLG: 0.3528 -> 0.3920 (boost 0.0392, better)predicted_R: 1.0000 -> 0.0000 (deboost -1.0000, worse)Player Savant profile contributed to the team run-environment adjustment against the opposing starter
11simulation_box_score_reference32130predicted_H: 1.0000 -> 2.0000 (boost 1.0000, better)predicted_SO: 1.0000 -> 0.0000 (deboost -1.0000, better)Attached simulation box score without overwriting model prediction
12current_json_final31212predicted_AVG: 0.2610 -> 0.2663 (boost 0.0053, better)predicted_SLG: 0.3920 -> 0.3528 (deboost -0.0392, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "664770",
  "player_name": "Nathan Lukes",
  "position": "RF",
  "team": "TOR",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.121,
        "predicted_3B": 0.0,
        "predicted_AB": 3.61,
        "predicted_AVG": 0.261,
        "predicted_BB": 0.19,
        "predicted_H": 0.94,
        "predicted_HR": 0.07,
        "predicted_OBP": 0.309,
        "predicted_R": 0.388,
        "predicted_RBI": 0.46,
        "predicted_SLG": 0.356,
        "predicted_SO": 0.543
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.1094,
        "predicted_3B": 0.0004,
        "predicted_AB": 3.4257,
        "predicted_AVG": 0.2708,
        "predicted_BB": 0.1861,
        "predicted_H": 0.9236,
        "predicted_HBP": 0.029,
        "predicted_HR": 0.0627,
        "predicted_OBP": 0.314,
        "predicted_R": 0.3949,
        "predicted_RBI": 0.435,
        "predicted_SLG": 0.3593,
        "predicted_SO": 0.5353
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.121,
          "after": 0.1094,
          "delta": -0.0116,
          "percent_delta": -0.0959,
          "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.61,
          "after": 3.4257,
          "delta": -0.1843,
          "percent_delta": -0.0511,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.261,
          "after": 0.2708,
          "delta": 0.0098,
          "percent_delta": 0.0375,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.19,
          "after": 0.1861,
          "delta": -0.0039,
          "percent_delta": -0.0205,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.94,
          "after": 0.9236,
          "delta": -0.0164,
          "percent_delta": -0.0174,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.07,
          "after": 0.0627,
          "delta": -0.0073,
          "percent_delta": -0.1043,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.309,
          "after": 0.314,
          "delta": 0.005,
          "percent_delta": 0.0162,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.388,
          "after": 0.3949,
          "delta": 0.0069,
          "percent_delta": 0.0178,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.46,
          "after": 0.435,
          "delta": -0.025,
          "percent_delta": -0.0543,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.356,
          "after": 0.3593,
          "delta": 0.0033,
          "percent_delta": 0.0093,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.543,
          "after": 0.5353,
          "delta": -0.0077,
          "percent_delta": -0.0142,
          "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.261,
          "after": 0.2708,
          "delta": 0.0098,
          "percent_delta": 0.0375,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 3.61,
          "after": 3.4257,
          "delta": -0.1843,
          "percent_delta": -0.0511,
          "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.1094,
        "predicted_3B": 0.0004,
        "predicted_AB": 3.4257,
        "predicted_AVG": 0.2663,
        "predicted_BB": 0.1851,
        "predicted_H": 0.9122,
        "predicted_HBP": 0.029,
        "predicted_HR": 0.062,
        "predicted_OBP": 0.3039,
        "predicted_R": 0.3867,
        "predicted_RBI": 0.426,
        "predicted_SLG": 0.3528,
        "predicted_SO": 0.5381
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1094,
          "after": 0.1094,
          "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.4257,
          "after": 3.4257,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2708,
          "after": 0.2663,
          "delta": -0.0045,
          "percent_delta": -0.0166,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.1861,
          "after": 0.1851,
          "delta": -0.001,
          "percent_delta": -0.0054,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.9236,
          "after": 0.9122,
          "delta": -0.0114,
          "percent_delta": -0.0123,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HBP",
          "before": 0.029,
          "after": 0.029,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.0627,
          "after": 0.062,
          "delta": -0.0007,
          "percent_delta": -0.0112,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.314,
          "after": 0.3039,
          "delta": -0.0101,
          "percent_delta": -0.0322,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.3949,
          "after": 0.3867,
          "delta": -0.0082,
          "percent_delta": -0.0208,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.435,
          "after": 0.426,
          "delta": -0.009,
          "percent_delta": -0.0207,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3593,
          "after": 0.3528,
          "delta": -0.0065,
          "percent_delta": -0.0181,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.5353,
          "after": 0.5381,
          "delta": 0.0028,
          "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.314,
          "after": 0.3039,
          "delta": -0.0101,
          "percent_delta": -0.0322,
          "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.61), rates preserved: AVG=0.260 HR/AB=0.017",
      "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.1094,
          "after": 0.0,
          "delta": -0.1094,
          "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.4257,
          "after": 4.0,
          "delta": 0.5743,
          "percent_delta": 0.1676,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.1851,
          "after": 0.0,
          "delta": -0.1851,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.9122,
          "after": 1.0,
          "delta": 0.0878,
          "percent_delta": 0.0963,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HBP",
          "before": 0.029,
          "after": 0.0,
          "delta": -0.029,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.062,
          "after": 0.0,
          "delta": -0.062,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.426,
          "after": 0.0,
          "delta": -0.426,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.5381,
          "after": 1.0,
          "delta": 0.4619,
          "percent_delta": 0.8584,
          "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.4257,
          "after": 4.0,
          "delta": 0.5743,
          "percent_delta": 0.1676,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.426,
          "after": 0.0,
          "delta": -0.426,
          "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.3867,
          "after": 0.0,
          "delta": -0.3867,
          "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.3867,
          "after": 0.0,
          "delta": -0.3867,
          "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.1497,
        "predicted_3B": 0.0079,
        "predicted_BB": 0.2574,
        "predicted_H": 0.971,
        "predicted_HR": 0.1073,
        "predicted_RBI": 0.3806,
        "predicted_SO": 0.633
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1497,
          "delta": 0.1497,
          "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.2574,
          "delta": 0.2574,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.971,
          "delta": -0.029,
          "percent_delta": -0.029,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1073,
          "delta": 0.1073,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.3806,
          "delta": 0.3806,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.633,
          "delta": -0.367,
          "percent_delta": -0.367,
          "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": 0.3806,
          "delta": 0.3806,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.633,
          "delta": -0.367,
          "percent_delta": -0.367,
          "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": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1497,
          "after": 0.0,
          "delta": -0.1497,
          "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.2574,
          "after": 0.0,
          "delta": -0.2574,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.971,
          "after": 1.0,
          "delta": 0.029,
          "percent_delta": 0.0299,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.1073,
          "after": 0.0,
          "delta": -0.1073,
          "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.3806,
          "after": 0.0,
          "delta": -0.3806,
          "percent_delta": -1.0,
          "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": 6,
        "boosted_metrics": 2,
        "deboosted_metrics": 4,
        "better_metrics": 1,
        "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.3806,
          "after": 0.0,
          "delta": -0.3806,
          "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.261,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.314,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.392,
        "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.261,
          "delta": -0.0053,
          "percent_delta": -0.0199,
          "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.3039,
          "after": 0.314,
          "delta": 0.0101,
          "percent_delta": 0.0332,
          "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": 0.0,
          "after": 0.0,
          "delta": 0.0,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3528,
          "after": 0.392,
          "delta": 0.0392,
          "percent_delta": 0.1111,
          "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.3528,
          "after": 0.392,
          "delta": 0.0392,
          "percent_delta": 0.1111,
          "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": "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": 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": 2,
        "deboosted_metrics": 1,
        "better_metrics": 3,
        "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": {
          "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.2663,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 2.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.3039,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_RF": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.3528,
        "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.261,
          "after": 0.2663,
          "delta": 0.0053,
          "percent_delta": 0.0203,
          "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.314,
          "after": 0.3039,
          "delta": -0.0101,
          "percent_delta": -0.0321,
          "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.392,
          "after": 0.3528,
          "delta": -0.0392,
          "percent_delta": -0.1001,
          "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.261,
          "after": 0.2663,
          "delta": 0.0053,
          "percent_delta": 0.0203,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SLG",
          "before": 0.392,
          "after": 0.3528,
          "delta": -0.0392,
          "percent_delta": -0.1001,
          "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.121,
        "after": 0.0,
        "delta": -0.121,
        "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.61,
        "after": 4.0,
        "delta": 0.39,
        "percent_delta": 0.108,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.261,
        "after": 0.2663,
        "delta": 0.0053,
        "percent_delta": 0.0203,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.19,
        "after": 0.0,
        "delta": -0.19,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.94,
        "after": 2.0,
        "delta": 1.06,
        "percent_delta": 1.1277,
        "direction": "boost",
        "projection_effect": "better",
        "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.309,
        "after": 0.3039,
        "delta": -0.0051,
        "percent_delta": -0.0165,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.388,
        "after": 1.0,
        "delta": 0.612,
        "percent_delta": 1.5773,
        "direction": "boost",
        "projection_effect": "better",
        "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.356,
        "after": 0.3528,
        "delta": -0.0032,
        "percent_delta": -0.009,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_SO",
        "before": 0.543,
        "after": 0.0,
        "delta": -0.543,
        "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.94,
        "after": 2.0,
        "delta": 1.06,
        "percent_delta": 1.1277,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_SO",
        "before": 0.543,
        "after": 0.0,
        "delta": -0.543,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "deboosted"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.121-
predicted_3B0.000-
predicted_AB3.610-
predicted_AVG0.261-
predicted_BB0.190-
predicted_H0.940-
predicted_HR0.070-
predicted_OBP0.309-
predicted_R0.388-
predicted_RBI0.460-
predicted_SLG0.356-
predicted_SO0.543-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.109-0.012
predicted_3B0.0000.000
predicted_AB3.426-0.184
predicted_AVG0.2710.010
predicted_BB0.186-0.004
predicted_H0.924-0.016
predicted_HBP0.029-
predicted_HR0.063-0.007
predicted_OBP0.3140.005
predicted_R0.3950.007
predicted_RBI0.435-0.025
predicted_SLG0.3590.003
predicted_SO0.535-0.008
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1090.000
predicted_3B0.0000.000
predicted_AB3.4260.000
predicted_AVG0.266-0.005
predicted_BB0.185-0.001
predicted_H0.912-0.011
predicted_HBP0.0290.000
predicted_HR0.062-0.001
predicted_OBP0.304-0.010
predicted_R0.387-0.008
predicted_RBI0.426-0.009
predicted_SLG0.353-0.007
predicted_SO0.5380.003
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 4 (raw=3.61), rates preserved: AVG=0.260 HR/AB=0.017

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB4.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO1.000-
6. bvp_blend

Sample-size BvP blend (BvP AB=9.0, weight=0.092, BvP AVG=0.222)

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
H1.0000.000
HR0.0000.000
RBI0.0000.000
SO1.0000.000
7. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
8. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1500.150
3B0.0080.008
BB0.2570.257
H0.971-0.029
HR0.1070.107
RBI0.3810.381
SO0.633-0.367
9. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.150
3B0.000-0.008
AB4.0000.000
BB0.000-0.257
H1.0000.029
HR0.000-0.107
R1.0001.000
RBI0.000-0.381
SO1.0000.367
10. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.109
predicted_3B0.000-0.000
predicted_AB4.0000.574
predicted_AVG0.261-0.005
predicted_BB0.000-0.185
predicted_H1.0000.088
predicted_HR0.000-0.062
predicted_OBP0.3140.010
predicted_R0.000-0.387
predicted_RBI0.000-0.426
predicted_SLG0.3920.039
predicted_SO1.0000.462
11. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.0000.000
H2.0001.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R1.0000.000
RBI0.0000.000
SB0.0000.000
SF0.0000.000
SO0.000-1.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 116
Reference playing time: 3.803
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-13.0004.0000.0000.0000.0003.0002.0001.0002.0000.30770.33330.30770.30770.00000.23080.07690.1538
last_100.2010-30.0009.0001.0000.0000.0003.0004.0001.0005.0000.30000.31250.33330.30000.00000.10000.03330.1667
season0.60116-390.000107.00014.0000.00010.00039.00045.00022.00063.0000.27440.32070.38720.27440.02560.10000.05640.1615
Weighted Prediction From Real Data
MetricValue
predicted_2B0.0940
predicted_3B0.0010
predicted_AB3.1820
predicted_AVG0.2837
predicted_BB0.1810
predicted_H0.9020
predicted_HBP0.0290
predicted_HR0.0530
predicted_OBP0.3205
predicted_R0.4040
predicted_RBI0.4020
predicted_SLG0.3637
predicted_SO0.5250
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.12100.09400.1094model_form_blend
predicted_3B0.00000.00100.0004model_form_blend
predicted_AB3.61003.18203.4257model_form_blend
predicted_AVG0.26100.28370.2708model_form_blend
predicted_BB0.19000.18100.1861model_form_blend
predicted_H0.94000.90200.9236model_form_blend
predicted_HBP-0.02900.0290form_only
predicted_HR0.07000.05300.0627model_form_blend
predicted_OBP0.30900.32050.3140model_form_blend
predicted_R0.38800.40400.3949model_form_blend
predicted_RBI0.46000.40200.4350model_form_blend
predicted_SLG0.35600.36370.3593model_form_blend
predicted_SO0.54300.52500.5353model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date425
Season rows before report date425
Report year2026
Profile rows used116
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA4
AB4
H2
2B0
3B0
HR0
R1
RBI0
BB0
SO0
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB3
Hitting_AVG0.667
Hitting_BB1
Hitting_GIDP0
Hitting_H2
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R2
Hitting_RBI2
Hitting_SAC0
Hitting_SF1
Hitting_SO0
Hitting_TB2
Hitting_battingOrder3
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedRF
gameID20260920_TOR@TEX
game_typefull
mlbID664770
playerID664770
playerNameNathan Lukes
posRF
startedTrue
startingPositionRF
teamTOR
teamID29
game_date2026-09-20
sl_k_percent14.9
sl_bb_percent5.2
sl_woba0.312
sl_xwoba0.286
sl_xba0.252
sl_xslg0.342
sl_sweet_spot_percent30.3
sl_barrel_batted_rate2.7
sl_hard_hit_percent28.2
sl_exit_velocity_avg86.6
sl_launch_angle_avg8.1
sl_whiff_percent16.3
sl_swing_percent50.2
Kazuma Okamoto (672960) · BATTER · 3B · Team TOR
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 599
All-history rows before 20260921: 599
System season_avg: 0.2350
Data season_avg (2026 season-to-date): 0.2406
Diff (system - data): -0.0056
System opponent_avg: 0.2640

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1610.0000.000Hitting_2B0.1700.000-0.1700.000
predicted_3B0.0000.0000.000Hitting_3B0.0000.0000.0000.000
predicted_AB4.4804.0004.000Hitting_AB3.7465.0000.254-1.000
predicted_AVG0.2320.0000.250Hitting_AVG0.2410.200-0.241-0.200
predicted_BB0.3690.0000.000Hitting_BB0.3940.000-0.3940.000
predicted_CS-0.0000.000BaseRunning_CS0.0080.000-0.0080.000
predicted_H1.0400.0001.000Hitting_H0.9021.000-0.902-1.000
predicted_HR0.2100.0001.000Hitting_HR0.2300.000-0.2300.000
predicted_OBP0.3100.0000.250Hitting_OBP0.3180.200-0.318-0.200
predicted_R0.5300.0001.000Hitting_R0.5630.000-0.5630.000
predicted_RBI0.6000.0001.000Hitting_RBI0.6431.000-0.643-1.000
predicted_SLG0.4220.0001.000Hitting_SLG0.4710.200-0.471-0.200
predicted_SO1.1882.0001.000Hitting_SO1.1991.0000.8011.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics10
Boosted Metrics1
Deboosted Metrics9
Better Metrics0
Worse Metrics10
Biggest Boostpredicted_SO: 1.1880 -> 2.0000 (boost 0.8120, worse)
Biggest Deboostpredicted_H: 1.0400 -> 0.0000 (deboost -1.0400, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend30312-predicted_AB: 4.4800 -> 4.1379 (deboost -0.3421, 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.
3team_form_snapshot20202-predicted_OBP: 0.3105 -> 0.2945 (deboost -0.0160, worse)Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling60615-predicted_RBI: 0.5530 -> 0.0000 (deboost -0.5530, worse)AB rounded to 4 (raw=4.48), rates preserved: AVG=0.219 HR/AB=0.045
6consistency_constraints10101-predicted_R: 0.4814 -> 0.0000 (deboost -0.4814, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine65142predicted_RBI: 0.0000 -> 0.5273 (boost 0.5273, better)predicted_H: 1.0000 -> 0.8471 (deboost -0.1529, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation74352predicted_R: 0.0000 -> 1.0000 (boost 1.0000, better)predicted_BB: 0.3388 -> 0.0000 (deboost -0.3388, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context63333predicted_SLG: 0.4096 -> 0.4460 (boost 0.0364, 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
10simulation_box_score_reference21102predicted_SO: 1.0000 -> 2.0000 (boost 1.0000, worse)predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse)Attached simulation box score without overwriting model prediction
11current_json_final30303-predicted_SLG: 0.4460 -> 0.4096 (deboost -0.0364, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "672960",
  "player_name": "Kazuma Okamoto",
  "position": "3B",
  "team": "TOR",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.161,
        "predicted_3B": 0.0,
        "predicted_AB": 4.48,
        "predicted_AVG": 0.232,
        "predicted_BB": 0.369,
        "predicted_H": 1.04,
        "predicted_HR": 0.21,
        "predicted_OBP": 0.31,
        "predicted_R": 0.53,
        "predicted_RBI": 0.6,
        "predicted_SLG": 0.422,
        "predicted_SO": 1.188
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.1431,
        "predicted_3B": 0.0004,
        "predicted_AB": 4.1379,
        "predicted_AVG": 0.2328,
        "predicted_BB": 0.3808,
        "predicted_H": 0.9632,
        "predicted_HBP": 0.025,
        "predicted_HR": 0.2021,
        "predicted_OBP": 0.3105,
        "predicted_R": 0.4916,
        "predicted_RBI": 0.5647,
        "predicted_SLG": 0.4221,
        "predicted_SO": 1.1256
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.161,
          "after": 0.1431,
          "delta": -0.0179,
          "percent_delta": -0.1112,
          "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.48,
          "after": 4.1379,
          "delta": -0.3421,
          "percent_delta": -0.0764,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.232,
          "after": 0.2328,
          "delta": 0.0008,
          "percent_delta": 0.0034,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.369,
          "after": 0.3808,
          "delta": 0.0118,
          "percent_delta": 0.032,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 1.04,
          "after": 0.9632,
          "delta": -0.0768,
          "percent_delta": -0.0738,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.21,
          "after": 0.2021,
          "delta": -0.0079,
          "percent_delta": -0.0376,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.31,
          "after": 0.3105,
          "delta": 0.0005,
          "percent_delta": 0.0016,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.53,
          "after": 0.4916,
          "delta": -0.0384,
          "percent_delta": -0.0725,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.6,
          "after": 0.5647,
          "delta": -0.0353,
          "percent_delta": -0.0588,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.422,
          "after": 0.4221,
          "delta": 0.0001,
          "percent_delta": 0.0002,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 1.188,
          "after": 1.1256,
          "delta": -0.0624,
          "percent_delta": -0.0525,
          "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_AB",
          "before": 4.48,
          "after": 4.1379,
          "delta": -0.3421,
          "percent_delta": -0.0764,
          "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.1431,
        "predicted_3B": 0.0004,
        "predicted_AB": 4.1379,
        "predicted_AVG": 0.2299,
        "predicted_BB": 0.3788,
        "predicted_H": 0.9514,
        "predicted_HBP": 0.025,
        "predicted_HR": 0.1999,
        "predicted_OBP": 0.2945,
        "predicted_R": 0.4814,
        "predicted_RBI": 0.553,
        "predicted_SLG": 0.4096,
        "predicted_SO": 1.1315
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1431,
          "after": 0.1431,
          "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.1379,
          "after": 4.1379,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2328,
          "after": 0.2299,
          "delta": -0.0029,
          "percent_delta": -0.0125,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.3808,
          "after": 0.3788,
          "delta": -0.002,
          "percent_delta": -0.0053,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.9632,
          "after": 0.9514,
          "delta": -0.0118,
          "percent_delta": -0.0123,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HBP",
          "before": 0.025,
          "after": 0.025,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.2021,
          "after": 0.1999,
          "delta": -0.0022,
          "percent_delta": -0.0109,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3105,
          "after": 0.2945,
          "delta": -0.016,
          "percent_delta": -0.0515,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.4916,
          "after": 0.4814,
          "delta": -0.0102,
          "percent_delta": -0.0207,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5647,
          "after": 0.553,
          "delta": -0.0117,
          "percent_delta": -0.0207,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4221,
          "after": 0.4096,
          "delta": -0.0125,
          "percent_delta": -0.0296,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.1256,
          "after": 1.1315,
          "delta": 0.0059,
          "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.3105,
          "after": 0.2945,
          "delta": -0.016,
          "percent_delta": -0.0515,
          "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.48), rates preserved: AVG=0.219 HR/AB=0.045",
      "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.1431,
          "after": 0.0,
          "delta": -0.1431,
          "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.1379,
          "after": 4.0,
          "delta": -0.1379,
          "percent_delta": -0.0333,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3788,
          "after": 0.0,
          "delta": -0.3788,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.9514,
          "after": 1.0,
          "delta": 0.0486,
          "percent_delta": 0.0511,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HBP",
          "before": 0.025,
          "after": 0.0,
          "delta": -0.025,
          "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.553,
          "after": 0.0,
          "delta": -0.553,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.1315,
          "after": 1.0,
          "delta": -0.1315,
          "percent_delta": -0.1162,
          "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.553,
          "after": 0.0,
          "delta": -0.553,
          "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.4814,
          "after": 0.0,
          "delta": -0.4814,
          "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.4814,
          "after": 0.0,
          "delta": -0.4814,
          "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.1493,
        "predicted_3B": 0.0069,
        "predicted_BB": 0.3388,
        "predicted_H": 0.8471,
        "predicted_HR": 0.1874,
        "predicted_RBI": 0.5273,
        "predicted_SO": 1.1285
      },
      "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.0069,
          "delta": 0.0069,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.3388,
          "delta": 0.3388,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8471,
          "delta": -0.1529,
          "percent_delta": -0.1529,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1874,
          "delta": 0.1874,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.5273,
          "delta": 0.5273,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 1.1285,
          "delta": 0.1285,
          "percent_delta": 0.1285,
          "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.5273,
          "delta": 0.5273,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8471,
          "delta": -0.1529,
          "percent_delta": -0.1529,
          "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.1493,
          "after": 0.0,
          "delta": -0.1493,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0069,
          "after": 0.0,
          "delta": -0.0069,
          "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.3388,
          "after": 0.0,
          "delta": -0.3388,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8471,
          "after": 1.0,
          "delta": 0.1529,
          "percent_delta": 0.1805,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1874,
          "after": 1.0,
          "delta": 0.8126,
          "percent_delta": 4.3362,
          "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.5273,
          "after": 1.0,
          "delta": 0.4727,
          "percent_delta": 0.8965,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.1285,
          "after": 1.0,
          "delta": -0.1285,
          "percent_delta": -0.1139,
          "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.3388,
          "after": 0.0,
          "delta": -0.3388,
          "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.24,
        "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.446,
        "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.2299,
          "after": 0.24,
          "delta": 0.0101,
          "percent_delta": 0.0439,
          "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.2945,
          "after": 0.312,
          "delta": 0.0175,
          "percent_delta": 0.0594,
          "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": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4096,
          "after": 0.446,
          "delta": 0.0364,
          "percent_delta": 0.0889,
          "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": 3,
        "deboosted_metrics": 3,
        "better_metrics": 3,
        "worse_metrics": 3,
        "biggest_boost": {
          "metric": "predicted_SLG",
          "before": 0.4096,
          "after": 0.446,
          "delta": 0.0364,
          "percent_delta": 0.0889,
          "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": 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": 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": 2,
        "boosted_metrics": 1,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 2,
        "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_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.2299,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 0.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.2945,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.4096,
        "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.24,
          "after": 0.2299,
          "delta": -0.0101,
          "percent_delta": -0.042,
          "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.312,
          "after": 0.2945,
          "delta": -0.0175,
          "percent_delta": -0.0561,
          "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.446,
          "after": 0.4096,
          "delta": -0.0364,
          "percent_delta": -0.0816,
          "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.446,
          "after": 0.4096,
          "delta": -0.0364,
          "percent_delta": -0.0816,
          "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.161,
        "after": 0.0,
        "delta": -0.161,
        "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.48,
        "after": 4.0,
        "delta": -0.48,
        "percent_delta": -0.1071,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.232,
        "after": 0.2299,
        "delta": -0.0021,
        "percent_delta": -0.0091,
        "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": 1.04,
        "after": 0.0,
        "delta": -1.04,
        "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.31,
        "after": 0.2945,
        "delta": -0.0155,
        "percent_delta": -0.05,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.53,
        "after": 0.0,
        "delta": -0.53,
        "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.422,
        "after": 0.4096,
        "delta": -0.0124,
        "percent_delta": -0.0294,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 1.188,
        "after": 2.0,
        "delta": 0.812,
        "percent_delta": 0.6835,
        "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": 1.188,
        "after": 2.0,
        "delta": 0.812,
        "percent_delta": 0.6835,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_H",
        "before": 1.04,
        "after": 0.0,
        "delta": -1.04,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.161-
predicted_3B0.000-
predicted_AB4.480-
predicted_AVG0.232-
predicted_BB0.369-
predicted_H1.040-
predicted_HR0.210-
predicted_OBP0.310-
predicted_R0.530-
predicted_RBI0.600-
predicted_SLG0.422-
predicted_SO1.188-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.143-0.018
predicted_3B0.0000.000
predicted_AB4.138-0.342
predicted_AVG0.2330.001
predicted_BB0.3810.012
predicted_H0.963-0.077
predicted_HBP0.025-
predicted_HR0.202-0.008
predicted_OBP0.3100.001
predicted_R0.492-0.038
predicted_RBI0.565-0.035
predicted_SLG0.4220.000
predicted_SO1.126-0.062
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1430.000
predicted_3B0.0000.000
predicted_AB4.1380.000
predicted_AVG0.230-0.003
predicted_BB0.379-0.002
predicted_H0.951-0.012
predicted_HBP0.0250.000
predicted_HR0.200-0.002
predicted_OBP0.294-0.016
predicted_R0.481-0.010
predicted_RBI0.553-0.012
predicted_SLG0.410-0.012
predicted_SO1.1310.006
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 4 (raw=4.48), rates preserved: AVG=0.219 HR/AB=0.045

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB4.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1490.149
3B0.0070.007
BB0.3390.339
H0.847-0.153
HR0.1870.187
RBI0.5270.527
SO1.1290.129
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.149
3B0.000-0.007
AB4.0000.000
BB0.000-0.339
H1.0000.153
HR1.0000.813
R1.0001.000
RBI1.0000.473
SO1.000-0.129
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.143
predicted_3B0.000-0.000
predicted_AB4.000-0.138
predicted_AVG0.2400.010
predicted_BB0.000-0.379
predicted_H1.0000.049
predicted_HR0.000-0.200
predicted_OBP0.3120.018
predicted_R0.000-0.481
predicted_RBI0.000-0.553
predicted_SLG0.4460.036
predicted_SO1.000-0.131
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.0000.000
H0.000-1.000
HBP0.0000.000
HR0.000-1.000
PA4.000-
R0.000-1.000
RBI0.000-1.000
SB0.0000.000
SF0.0000.000
SO2.0001.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 149
Reference playing time: 4.480
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-19.0004.0000.0000.0000.0001.0001.0002.0004.0000.21050.28570.21050.21050.00000.05260.10530.2105
last_100.2010-36.0009.0001.0000.0003.0006.0004.0005.0009.0000.25000.34150.52780.25000.08330.16670.13890.2500
season0.60149-549.000129.00024.0000.00033.00089.00079.00055.000177.0000.23500.31000.45900.23500.06010.16210.10020.3224
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1200
predicted_3B0.0010
predicted_AB3.6960
predicted_AVG0.2338
predicted_BB0.3960
predicted_H0.8640
predicted_HBP0.0250
predicted_HR0.1920
predicted_OBP0.3112
predicted_R0.4420
predicted_RBI0.5190
predicted_SLG0.4223
predicted_SO1.0450
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.16100.12000.1431model_form_blend
predicted_3B0.00000.00100.0004model_form_blend
predicted_AB4.48003.69604.1379model_form_blend
predicted_AVG0.23200.23380.2328model_form_blend
predicted_BB0.36900.39600.3808model_form_blend
predicted_H1.04000.86400.9632model_form_blend
predicted_HBP-0.02500.0250form_only
predicted_HR0.21000.19200.2021model_form_blend
predicted_OBP0.31000.31120.3105model_form_blend
predicted_R0.53000.44200.4916model_form_blend
predicted_RBI0.60000.51900.5647model_form_blend
predicted_SLG0.42200.42230.4221model_form_blend
predicted_SO1.18801.04501.1256model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date599
Season rows before report date599
Report year2026
Profile rows used149
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA4
AB4
H0
2B0
3B0
HR0
R0
RBI0
BB0
SO2
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB5
Hitting_AVG0.2
Hitting_BB0
Hitting_GIDP0
Hitting_H1
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI1
Hitting_SAC0
Hitting_SF0
Hitting_SO1
Hitting_TB1
Hitting_battingOrder4
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayed3B-1B-3B
gameID20260920_TOR@TEX
game_typefull
mlbID672960
playerID672960
playerNameKazuma Okamoto
pos3B
startedTrue
startingPosition3B
teamTOR
teamID29
game_date2026-09-20
sl_k_percent28.9
sl_bb_percent9.0
sl_woba0.335
sl_xwoba0.329
sl_xba0.225
sl_xslg0.45
sl_sweet_spot_percent34.5
sl_barrel_batted_rate13.5
sl_hard_hit_percent43.9
sl_exit_velocity_avg90.5
sl_launch_angle_avg19.5
sl_whiff_percent32.8
sl_swing_percent47.3
Andrés Giménez (665926) · BATTER · SS · Team TOR
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 489
All-history rows before 20260921: 489
System season_avg: 0.2420
Data season_avg (2026 season-to-date): 0.2516
Diff (system - data): -0.0096
System opponent_avg: 0.3210

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1690.0000.000Hitting_2B0.1880.000-0.1880.000
predicted_3B0.0070.0000.000Hitting_3B0.0080.000-0.0080.000
predicted_AB3.3463.0003.000Hitting_AB3.4705.000-0.470-2.000
predicted_AVG0.2160.6670.333Hitting_AVG0.2520.2000.4150.467
predicted_BB0.1181.0000.000Hitting_BB0.1210.0000.8791.000
predicted_CS-0.0000.000BaseRunning_CS0.0310.000-0.0310.000
predicted_H0.7002.0001.000Hitting_H0.8731.0001.1271.000
predicted_HR0.0500.0000.000Hitting_HR0.0760.000-0.0760.000
predicted_OBP0.2670.7500.333Hitting_OBP0.2940.2000.4560.550
predicted_R0.2721.0000.000Hitting_R0.2860.0000.7141.000
predicted_RBI0.3900.0001.000Hitting_RBI0.4661.000-0.466-1.000
predicted_SLG0.3160.6670.333Hitting_SLG0.3760.2000.2910.467
predicted_SO0.6760.0001.000Hitting_SO0.6811.000-0.681-1.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics9
Boosted Metrics3
Deboosted Metrics6
Better Metrics4
Worse Metrics5
Biggest Boostpredicted_H: 0.7000 -> 2.0000 (boost 1.3000, better)
Biggest Deboostpredicted_SO: 0.6760 -> 0.0000 (deboost -0.6760, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend33030predicted_AB: 3.3460 -> 3.4071 (boost 0.0611, 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.
3team_form_snapshot30303-predicted_OBP: 0.2697 -> 0.2395 (deboost -0.0302, worse)Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling82617predicted_SO: 0.6804 -> 1.0000 (boost 0.3196, worse)predicted_RBI: 0.4083 -> 0.0000 (deboost -0.4083, worse)AB rounded to 3 (raw=3.41), rates preserved: AVG=0.221 HR/AB=0.016
6bvp_blend00000--Sample-size BvP blend (BvP AB=5.0, weight=0.057, BvP AVG=0.400)
7consistency_constraints10101-predicted_R: 0.2609 -> 0.0000 (deboost -0.2609, worse)Enforced H<=AB, HR<=H, safety nets, derived R
8hitter_rate_engine64251predicted_RBI: 0.0000 -> 0.4251 (boost 0.4251, better)predicted_SO: 1.0000 -> 0.6990 (deboost -0.3010, better)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
9lineup_integer_allocation63324predicted_RBI: 0.4251 -> 1.0000 (boost 0.5749, better)predicted_2B: 0.1767 -> 0.0000 (deboost -0.1767, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
10embedded_savant_player_context43131predicted_SLG: 0.3208 -> 0.3890 (boost 0.0682, 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
11simulation_box_score_reference43140predicted_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
12current_json_final30303-predicted_SLG: 0.3890 -> 0.3208 (deboost -0.0682, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "665926",
  "player_name": "Andrés Giménez",
  "position": "SS",
  "team": "TOR",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.169,
        "predicted_3B": 0.007,
        "predicted_AB": 3.346,
        "predicted_AVG": 0.216,
        "predicted_BB": 0.118,
        "predicted_H": 0.7,
        "predicted_HR": 0.05,
        "predicted_OBP": 0.267,
        "predicted_R": 0.272,
        "predicted_RBI": 0.39,
        "predicted_SLG": 0.316,
        "predicted_SO": 0.676
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.182,
        "predicted_3B": 0.0061,
        "predicted_AB": 3.4071,
        "predicted_AVG": 0.2213,
        "predicted_BB": 0.1106,
        "predicted_H": 0.7416,
        "predicted_HBP": 0.121,
        "predicted_HR": 0.0561,
        "predicted_OBP": 0.2697,
        "predicted_R": 0.2664,
        "predicted_RBI": 0.4169,
        "predicted_SLG": 0.3277,
        "predicted_SO": 0.6769
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.169,
          "after": 0.182,
          "delta": 0.013,
          "percent_delta": 0.0769,
          "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.346,
          "after": 3.4071,
          "delta": 0.0611,
          "percent_delta": 0.0183,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.216,
          "after": 0.2213,
          "delta": 0.0053,
          "percent_delta": 0.0245,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.118,
          "after": 0.1106,
          "delta": -0.0074,
          "percent_delta": -0.0627,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.7,
          "after": 0.7416,
          "delta": 0.0416,
          "percent_delta": 0.0594,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.05,
          "after": 0.0561,
          "delta": 0.0061,
          "percent_delta": 0.122,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.267,
          "after": 0.2697,
          "delta": 0.0027,
          "percent_delta": 0.0101,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.272,
          "after": 0.2664,
          "delta": -0.0056,
          "percent_delta": -0.0206,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.39,
          "after": 0.4169,
          "delta": 0.0269,
          "percent_delta": 0.069,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.316,
          "after": 0.3277,
          "delta": 0.0117,
          "percent_delta": 0.037,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.676,
          "after": 0.6769,
          "delta": 0.0009,
          "percent_delta": 0.0013,
          "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_AB",
          "before": 3.346,
          "after": 3.4071,
          "delta": 0.0611,
          "percent_delta": 0.0183,
          "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": 136
      }
    },
    {
      "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.182,
        "predicted_3B": 0.0061,
        "predicted_AB": 3.4071,
        "predicted_AVG": 0.215,
        "predicted_BB": 0.11,
        "predicted_H": 0.7325,
        "predicted_HBP": 0.121,
        "predicted_HR": 0.0555,
        "predicted_OBP": 0.2395,
        "predicted_R": 0.2609,
        "predicted_RBI": 0.4083,
        "predicted_SLG": 0.3208,
        "predicted_SO": 0.6804
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.182,
          "after": 0.182,
          "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.4071,
          "after": 3.4071,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2213,
          "after": 0.215,
          "delta": -0.0063,
          "percent_delta": -0.0285,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.1106,
          "after": 0.11,
          "delta": -0.0006,
          "percent_delta": -0.0054,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.7416,
          "after": 0.7325,
          "delta": -0.0091,
          "percent_delta": -0.0123,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HBP",
          "before": 0.121,
          "after": 0.121,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.0561,
          "after": 0.0555,
          "delta": -0.0006,
          "percent_delta": -0.0107,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2697,
          "after": 0.2395,
          "delta": -0.0302,
          "percent_delta": -0.112,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.2664,
          "after": 0.2609,
          "delta": -0.0055,
          "percent_delta": -0.0206,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4169,
          "after": 0.4083,
          "delta": -0.0086,
          "percent_delta": -0.0206,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3277,
          "after": 0.3208,
          "delta": -0.0069,
          "percent_delta": -0.0211,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.6769,
          "after": 0.6804,
          "delta": 0.0035,
          "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.2697,
          "after": 0.2395,
          "delta": -0.0302,
          "percent_delta": -0.112,
          "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.41), rates preserved: AVG=0.221 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.182,
          "after": 0.0,
          "delta": -0.182,
          "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.4071,
          "after": 3.0,
          "delta": -0.4071,
          "percent_delta": -0.1195,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.11,
          "after": 0.0,
          "delta": -0.11,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.7325,
          "after": 1.0,
          "delta": 0.2675,
          "percent_delta": 0.3652,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HBP",
          "before": 0.121,
          "after": 0.0,
          "delta": -0.121,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0555,
          "after": 0.0,
          "delta": -0.0555,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4083,
          "after": 0.0,
          "delta": -0.4083,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.6804,
          "after": 1.0,
          "delta": 0.3196,
          "percent_delta": 0.4697,
          "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.6804,
          "after": 1.0,
          "delta": 0.3196,
          "percent_delta": 0.4697,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.4083,
          "after": 0.0,
          "delta": -0.4083,
          "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.400)",
      "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.2609,
          "after": 0.0,
          "delta": -0.2609,
          "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.2609,
          "after": 0.0,
          "delta": -0.2609,
          "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.1767,
        "predicted_3B": 0.0091,
        "predicted_BB": 0.1671,
        "predicted_H": 0.8496,
        "predicted_HR": 0.0841,
        "predicted_RBI": 0.4251,
        "predicted_SO": 0.699
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1767,
          "delta": 0.1767,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0091,
          "delta": 0.0091,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.1671,
          "delta": 0.1671,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8496,
          "delta": -0.1504,
          "percent_delta": -0.1504,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.0841,
          "delta": 0.0841,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.4251,
          "delta": 0.4251,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.699,
          "delta": -0.301,
          "percent_delta": -0.301,
          "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.4251,
          "delta": 0.4251,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.699,
          "delta": -0.301,
          "percent_delta": -0.301,
          "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": 1.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1767,
          "after": 0.0,
          "delta": -0.1767,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0091,
          "after": 0.0,
          "delta": -0.0091,
          "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.1671,
          "after": 0.0,
          "delta": -0.1671,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8496,
          "after": 1.0,
          "delta": 0.1504,
          "percent_delta": 0.177,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0841,
          "after": 0.0,
          "delta": -0.0841,
          "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.4251,
          "after": 1.0,
          "delta": 0.5749,
          "percent_delta": 1.3524,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.699,
          "after": 1.0,
          "delta": 0.301,
          "percent_delta": 0.4306,
          "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.4251,
          "after": 1.0,
          "delta": 0.5749,
          "percent_delta": 1.3524,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_2B",
          "before": 0.1767,
          "after": 0.0,
          "delta": -0.1767,
          "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.255,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.296,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.389,
        "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.255,
          "delta": 0.04,
          "percent_delta": 0.186,
          "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.2395,
          "after": 0.296,
          "delta": 0.0565,
          "percent_delta": 0.2359,
          "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.3208,
          "after": 0.389,
          "delta": 0.0682,
          "percent_delta": 0.2126,
          "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.3208,
          "after": 0.389,
          "delta": 0.0682,
          "percent_delta": 0.2126,
          "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": 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": 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": 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_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": 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.215,
        "predicted_BB": 1.0,
        "predicted_CS": 0.0,
        "predicted_H": 2.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.2395,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.3208,
        "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.255,
          "after": 0.215,
          "delta": -0.04,
          "percent_delta": -0.1569,
          "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": 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.296,
          "after": 0.2395,
          "delta": -0.0565,
          "percent_delta": -0.1907,
          "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.389,
          "after": 0.3208,
          "delta": -0.0682,
          "percent_delta": -0.1752,
          "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.389,
          "after": 0.3208,
          "delta": -0.0682,
          "percent_delta": -0.1752,
          "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.169,
        "after": 0.0,
        "delta": -0.169,
        "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.346,
        "after": 3.0,
        "delta": -0.346,
        "percent_delta": -0.1034,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.216,
        "after": 0.215,
        "delta": -0.001,
        "percent_delta": -0.0046,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_BB",
        "before": 0.118,
        "after": 1.0,
        "delta": 0.882,
        "percent_delta": 7.4746,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.7,
        "after": 2.0,
        "delta": 1.3,
        "percent_delta": 1.8571,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.05,
        "after": 0.0,
        "delta": -0.05,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.267,
        "after": 0.2395,
        "delta": -0.0275,
        "percent_delta": -0.103,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.272,
        "after": 1.0,
        "delta": 0.728,
        "percent_delta": 2.6765,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.39,
        "after": 0.0,
        "delta": -0.39,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.316,
        "after": 0.3208,
        "delta": 0.0048,
        "percent_delta": 0.0152,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_SO",
        "before": 0.676,
        "after": 0.0,
        "delta": -0.676,
        "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": 0.7,
        "after": 2.0,
        "delta": 1.3,
        "percent_delta": 1.8571,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_SO",
        "before": 0.676,
        "after": 0.0,
        "delta": -0.676,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.169-
predicted_3B0.007-
predicted_AB3.346-
predicted_AVG0.216-
predicted_BB0.118-
predicted_H0.700-
predicted_HR0.050-
predicted_OBP0.267-
predicted_R0.272-
predicted_RBI0.390-
predicted_SLG0.316-
predicted_SO0.676-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.1820.013
predicted_3B0.006-0.001
predicted_AB3.4070.061
predicted_AVG0.2210.005
predicted_BB0.111-0.007
predicted_H0.7420.042
predicted_HBP0.121-
predicted_HR0.0560.006
predicted_OBP0.2700.003
predicted_R0.266-0.006
predicted_RBI0.4170.027
predicted_SLG0.3280.012
predicted_SO0.6770.001
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1820.000
predicted_3B0.0060.000
predicted_AB3.4070.000
predicted_AVG0.215-0.006
predicted_BB0.110-0.001
predicted_H0.733-0.009
predicted_HBP0.1210.000
predicted_HR0.056-0.001
predicted_OBP0.239-0.030
predicted_R0.261-0.006
predicted_RBI0.408-0.009
predicted_SLG0.321-0.007
predicted_SO0.6800.004
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 3 (raw=3.41), rates preserved: AVG=0.221 HR/AB=0.016

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB3.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO1.000-
6. bvp_blend

Sample-size BvP blend (BvP AB=5.0, weight=0.057, BvP AVG=0.400)

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB0.0000.000
H1.0000.000
HR0.0000.000
RBI0.0000.000
SO1.0000.000
7. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
8. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1770.177
3B0.0090.009
BB0.1670.167
H0.850-0.150
HR0.0840.084
RBI0.4250.425
SO0.699-0.301
9. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.177
3B0.000-0.009
AB3.0000.000
BB0.000-0.167
H1.0000.150
HR0.000-0.084
R0.0000.000
RBI1.0000.575
SO1.0000.301
10. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.182
predicted_3B0.000-0.006
predicted_AB3.000-0.407
predicted_AVG0.2550.040
predicted_BB0.000-0.110
predicted_H1.0000.267
predicted_HR0.000-0.056
predicted_OBP0.2960.056
predicted_R0.000-0.261
predicted_RBI0.000-0.408
predicted_SLG0.3890.068
predicted_SO1.0000.320
11. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB1.0001.000
CS0.0000.000
H2.0001.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R1.0001.000
RBI0.000-1.000
SB0.0000.000
SF0.0000.000
SO0.000-1.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 136
Reference playing time: 3.803
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-18.0003.0001.0000.0000.0002.0001.0000.0004.0000.16670.21050.22220.16670.00000.11110.00000.2222
last_100.2010-37.0009.0003.0000.0001.0006.0002.0001.0005.0000.24320.28210.40540.24320.02700.16220.02700.1351
season0.60136-455.000110.00023.0001.0009.00057.00037.00016.00092.0000.24180.28780.35600.24180.01980.12530.03520.2022
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1990
predicted_3B0.0050
predicted_AB3.4870
predicted_AVG0.2283
predicted_BB0.1010
predicted_H0.7960
predicted_HBP0.1210
predicted_HR0.0640
predicted_OBP0.2732
predicted_R0.2590
predicted_RBI0.4520
predicted_SLG0.3431
predicted_SO0.6780
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.16900.19900.1820model_form_blend
predicted_3B0.00700.00500.0061model_form_blend
predicted_AB3.34603.48703.4071model_form_blend
predicted_AVG0.21600.22830.2213model_form_blend
predicted_BB0.11800.10100.1106model_form_blend
predicted_H0.70000.79600.7416model_form_blend
predicted_HBP-0.12100.1210form_only
predicted_HR0.05000.06400.0561model_form_blend
predicted_OBP0.26700.27320.2697model_form_blend
predicted_R0.27200.25900.2664model_form_blend
predicted_RBI0.39000.45200.4169model_form_blend
predicted_SLG0.31600.34310.3277model_form_blend
predicted_SO0.67600.67800.6769model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date489
Season rows before report date489
Report year2026
Profile rows used136
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA4
AB3
H2
2B0
3B0
HR0
R1
RBI0
BB1
SO0
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB5
Hitting_AVG0.2
Hitting_BB0
Hitting_GIDP0
Hitting_H1
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI1
Hitting_SAC0
Hitting_SF0
Hitting_SO1
Hitting_TB1
Hitting_battingOrder7
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedSS
gameID20260920_TOR@TEX
game_typefull
mlbID665926
playerID665926
playerNameAndrés Giménez
posSS
startedTrue
startingPositionSS
teamTOR
teamID29
game_date2026-09-20
sl_k_percent18.6
sl_bb_percent3.3
sl_woba0.284
sl_xwoba0.273
sl_xba0.235
sl_xslg0.329
sl_sweet_spot_percent30.1
sl_barrel_batted_rate3.3
sl_hard_hit_percent24.6
sl_exit_velocity_avg85.3
sl_launch_angle_avg13.0
sl_whiff_percent24.5
sl_swing_percent57.9
Ernie Clement (676391) · BATTER · 2B · Team TOR
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 589
All-history rows before 20260921: 589
System season_avg: 0.2650
Data season_avg (2026 season-to-date): 0.2761
Diff (system - data): -0.0111
System opponent_avg: 0.2730

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.2120.0000.000Hitting_2B0.2291.000-0.229-1.000
predicted_3B0.0070.0000.000Hitting_3B0.0070.000-0.0070.000
predicted_AB4.1604.0003.000Hitting_AB3.9544.0000.0460.000
predicted_AVG0.2030.0000.333Hitting_AVG0.2760.250-0.276-0.250
predicted_BB0.1460.0000.000Hitting_BB0.1460.000-0.1460.000
predicted_CS-0.0000.000BaseRunning_CS0.0070.000-0.0070.000
predicted_H0.8400.0001.000Hitting_H1.0921.000-1.092-1.000
predicted_HR0.0300.0000.000Hitting_HR0.0660.000-0.0660.000
predicted_OBP0.2310.0000.333Hitting_OBP0.3020.250-0.302-0.250
predicted_R0.3970.0000.000Hitting_R0.4410.000-0.4410.000
predicted_RBI0.2700.0000.000Hitting_RBI0.3510.000-0.3510.000
predicted_SB-0.0000.000BaseRunning_SB0.0460.000-0.0460.000
predicted_SLG0.3070.0000.333Hitting_SLG0.3880.500-0.388-0.500
predicted_SO0.3712.0000.000Hitting_SO0.3870.0001.6132.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics9
Boosted Metrics1
Deboosted Metrics8
Better Metrics0
Worse Metrics9
Biggest Boostpredicted_SO: 0.3710 -> 2.0000 (boost 1.6290, worse)
Biggest Deboostpredicted_H: 0.8400 -> 0.0000 (deboost -0.8400, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend30303-predicted_AB: 4.1600 -> 3.9219 (deboost -0.2381, 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.
3team_form_snapshot10101-predicted_SLG: 0.2989 -> 0.2794 (deboost -0.0195, worse)Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling61524predicted_H: 0.7746 -> 1.0000 (boost 0.2254, better)predicted_AB: 3.9219 -> 3.0000 (deboost -0.9219, worse)AB rounded to 3 (raw=4.16), rates preserved: AVG=0.192 HR/AB=0.008
6bvp_blend00000--Sample-size BvP blend (BvP AB=11.0, weight=0.107, BvP AVG=0.273)
7consistency_constraints10101-predicted_R: 0.3568 -> 0.0000 (deboost -0.3568, worse)Enforced H<=AB, HR<=H, safety nets, derived R
8hitter_rate_engine65142predicted_SO: 0.0000 -> 0.4159 (boost 0.4159, worse)predicted_H: 1.0000 -> 0.9032 (deboost -0.0968, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
9lineup_integer_allocation61524predicted_H: 0.9032 -> 1.0000 (boost 0.0968, better)predicted_SO: 0.4159 -> 0.0000 (deboost -0.4159, better)Lineup-level largest-remainder allocation so team totals match the summed model expectation
10embedded_savant_player_context33030predicted_SLG: 0.2794 -> 0.3770 (boost 0.0976, better)-Player Savant profile contributed to the team run-environment adjustment against the opposing starter
11simulation_box_score_reference32112predicted_SO: 0.0000 -> 2.0000 (boost 2.0000, worse)predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse)Attached simulation box score without overwriting model prediction
12current_json_final30303-predicted_SLG: 0.3770 -> 0.2794 (deboost -0.0976, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "676391",
  "player_name": "Ernie Clement",
  "position": "2B",
  "team": "TOR",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.212,
        "predicted_3B": 0.007,
        "predicted_AB": 4.16,
        "predicted_AVG": 0.203,
        "predicted_BB": 0.146,
        "predicted_H": 0.84,
        "predicted_HR": 0.03,
        "predicted_OBP": 0.231,
        "predicted_R": 0.397,
        "predicted_RBI": 0.27,
        "predicted_SLG": 0.307,
        "predicted_SO": 0.371
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.2094,
        "predicted_3B": 0.0057,
        "predicted_AB": 3.9219,
        "predicted_AVG": 0.2003,
        "predicted_BB": 0.1582,
        "predicted_H": 0.7842,
        "predicted_HBP": 0.009,
        "predicted_HR": 0.0339,
        "predicted_OBP": 0.2317,
        "predicted_R": 0.3643,
        "predicted_RBI": 0.2635,
        "predicted_SLG": 0.2989,
        "predicted_SO": 0.3418
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.212,
          "after": 0.2094,
          "delta": -0.0026,
          "percent_delta": -0.0123,
          "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": 4.16,
          "after": 3.9219,
          "delta": -0.2381,
          "percent_delta": -0.0572,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.203,
          "after": 0.2003,
          "delta": -0.0027,
          "percent_delta": -0.0133,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.146,
          "after": 0.1582,
          "delta": 0.0122,
          "percent_delta": 0.0836,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.84,
          "after": 0.7842,
          "delta": -0.0558,
          "percent_delta": -0.0664,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.03,
          "after": 0.0339,
          "delta": 0.0039,
          "percent_delta": 0.13,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.231,
          "after": 0.2317,
          "delta": 0.0007,
          "percent_delta": 0.003,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.397,
          "after": 0.3643,
          "delta": -0.0327,
          "percent_delta": -0.0824,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.27,
          "after": 0.2635,
          "delta": -0.0065,
          "percent_delta": -0.0241,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.307,
          "after": 0.2989,
          "delta": -0.0081,
          "percent_delta": -0.0264,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.371,
          "after": 0.3418,
          "delta": -0.0292,
          "percent_delta": -0.0787,
          "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.16,
          "after": 3.9219,
          "delta": -0.2381,
          "percent_delta": -0.0572,
          "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": 151
      }
    },
    {
      "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.2094,
        "predicted_3B": 0.0057,
        "predicted_AB": 3.9219,
        "predicted_AVG": 0.1975,
        "predicted_BB": 0.1574,
        "predicted_H": 0.7746,
        "predicted_HBP": 0.009,
        "predicted_HR": 0.0335,
        "predicted_OBP": 0.2285,
        "predicted_R": 0.3568,
        "predicted_RBI": 0.258,
        "predicted_SLG": 0.2794,
        "predicted_SO": 0.3436
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.2094,
          "after": 0.2094,
          "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": 3.9219,
          "after": 3.9219,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2003,
          "after": 0.1975,
          "delta": -0.0028,
          "percent_delta": -0.014,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.1582,
          "after": 0.1574,
          "delta": -0.0008,
          "percent_delta": -0.0051,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.7842,
          "after": 0.7746,
          "delta": -0.0096,
          "percent_delta": -0.0122,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HBP",
          "before": 0.009,
          "after": 0.009,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.0339,
          "after": 0.0335,
          "delta": -0.0004,
          "percent_delta": -0.0118,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2317,
          "after": 0.2285,
          "delta": -0.0032,
          "percent_delta": -0.0138,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.3643,
          "after": 0.3568,
          "delta": -0.0075,
          "percent_delta": -0.0206,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.2635,
          "after": 0.258,
          "delta": -0.0055,
          "percent_delta": -0.0209,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.2989,
          "after": 0.2794,
          "delta": -0.0195,
          "percent_delta": -0.0652,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.3418,
          "after": 0.3436,
          "delta": 0.0018,
          "percent_delta": 0.0053,
          "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.2989,
          "after": 0.2794,
          "delta": -0.0195,
          "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 3 (raw=4.16), rates preserved: AVG=0.192 HR/AB=0.008",
      "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": 0.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.2094,
          "after": 0.0,
          "delta": -0.2094,
          "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": 3.9219,
          "after": 3.0,
          "delta": -0.9219,
          "percent_delta": -0.2351,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.1574,
          "after": 0.0,
          "delta": -0.1574,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.7746,
          "after": 1.0,
          "delta": 0.2254,
          "percent_delta": 0.291,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HBP",
          "before": 0.009,
          "after": 0.0,
          "delta": -0.009,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.0335,
          "after": 0.0,
          "delta": -0.0335,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.258,
          "after": 0.0,
          "delta": -0.258,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.3436,
          "after": 0.0,
          "delta": -0.3436,
          "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_H",
          "before": 0.7746,
          "after": 1.0,
          "delta": 0.2254,
          "percent_delta": 0.291,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 3.9219,
          "after": 3.0,
          "delta": -0.9219,
          "percent_delta": -0.2351,
          "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.273)",
      "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": 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_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.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": 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_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.3568,
          "after": 0.0,
          "delta": -0.3568,
          "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.3568,
          "after": 0.0,
          "delta": -0.3568,
          "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.1537,
        "predicted_3B": 0.0083,
        "predicted_BB": 0.1664,
        "predicted_H": 0.9032,
        "predicted_HR": 0.0711,
        "predicted_RBI": 0.3091,
        "predicted_SO": 0.4159
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1537,
          "delta": 0.1537,
          "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.1664,
          "delta": 0.1664,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.9032,
          "delta": -0.0968,
          "percent_delta": -0.0968,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.0711,
          "delta": 0.0711,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.3091,
          "delta": 0.3091,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.0,
          "after": 0.4159,
          "delta": 0.4159,
          "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.4159,
          "delta": 0.4159,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.9032,
          "delta": -0.0968,
          "percent_delta": -0.0968,
          "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": 0.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1537,
          "after": 0.0,
          "delta": -0.1537,
          "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": 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.1664,
          "after": 0.0,
          "delta": -0.1664,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.9032,
          "after": 1.0,
          "delta": 0.0968,
          "percent_delta": 0.1072,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "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_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.3091,
          "after": 0.0,
          "delta": -0.3091,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.4159,
          "after": 0.0,
          "delta": -0.4159,
          "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_H",
          "before": 0.9032,
          "after": 1.0,
          "delta": 0.0968,
          "percent_delta": 0.1072,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 0.4159,
          "after": 0.0,
          "delta": -0.4159,
          "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": 3.0,
        "predicted_AVG": 0.264,
        "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.377,
        "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.1975,
          "after": 0.264,
          "delta": 0.0665,
          "percent_delta": 0.3367,
          "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.2285,
          "after": 0.304,
          "delta": 0.0755,
          "percent_delta": 0.3304,
          "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.2794,
          "after": 0.377,
          "delta": 0.0976,
          "percent_delta": 0.3493,
          "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.2794,
          "after": 0.377,
          "delta": 0.0976,
          "percent_delta": 0.3493,
          "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": 0.0,
          "after": 2.0,
          "delta": 2.0,
          "percent_delta": null,
          "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_SO",
          "before": 0.0,
          "after": 2.0,
          "delta": 2.0,
          "percent_delta": null,
          "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.1975,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 0.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.2285,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.2794,
        "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.264,
          "after": 0.1975,
          "delta": -0.0665,
          "percent_delta": -0.2519,
          "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.304,
          "after": 0.2285,
          "delta": -0.0755,
          "percent_delta": -0.2485,
          "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.377,
          "after": 0.2794,
          "delta": -0.0976,
          "percent_delta": -0.2588,
          "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.377,
          "after": 0.2794,
          "delta": -0.0976,
          "percent_delta": -0.2588,
          "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.212,
        "after": 0.0,
        "delta": -0.212,
        "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.16,
        "after": 4.0,
        "delta": -0.16,
        "percent_delta": -0.0385,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.203,
        "after": 0.1975,
        "delta": -0.0055,
        "percent_delta": -0.0271,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.146,
        "after": 0.0,
        "delta": -0.146,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.84,
        "after": 0.0,
        "delta": -0.84,
        "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.231,
        "after": 0.2285,
        "delta": -0.0025,
        "percent_delta": -0.0108,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_R",
        "before": 0.397,
        "after": 0.0,
        "delta": -0.397,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.27,
        "after": 0.0,
        "delta": -0.27,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.307,
        "after": 0.2794,
        "delta": -0.0276,
        "percent_delta": -0.0899,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.371,
        "after": 2.0,
        "delta": 1.629,
        "percent_delta": 4.3908,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 9,
      "boosted_metrics": 1,
      "deboosted_metrics": 8,
      "better_metrics": 0,
      "worse_metrics": 9,
      "biggest_boost": {
        "metric": "predicted_SO",
        "before": 0.371,
        "after": 2.0,
        "delta": 1.629,
        "percent_delta": 4.3908,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_H",
        "before": 0.84,
        "after": 0.0,
        "delta": -0.84,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.212-
predicted_3B0.007-
predicted_AB4.160-
predicted_AVG0.203-
predicted_BB0.146-
predicted_H0.840-
predicted_HR0.030-
predicted_OBP0.231-
predicted_R0.397-
predicted_RBI0.270-
predicted_SLG0.307-
predicted_SO0.371-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.209-0.003
predicted_3B0.006-0.001
predicted_AB3.922-0.238
predicted_AVG0.200-0.003
predicted_BB0.1580.012
predicted_H0.784-0.056
predicted_HBP0.009-
predicted_HR0.0340.004
predicted_OBP0.2320.001
predicted_R0.364-0.033
predicted_RBI0.264-0.007
predicted_SLG0.299-0.008
predicted_SO0.342-0.029
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.2090.000
predicted_3B0.0060.000
predicted_AB3.9220.000
predicted_AVG0.198-0.003
predicted_BB0.157-0.001
predicted_H0.775-0.010
predicted_HBP0.0090.000
predicted_HR0.034-0.000
predicted_OBP0.229-0.003
predicted_R0.357-0.008
predicted_RBI0.258-0.006
predicted_SLG0.279-0.020
predicted_SO0.3440.002
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 3 (raw=4.16), rates preserved: AVG=0.192 HR/AB=0.008

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB3.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO0.000-
6. bvp_blend

Sample-size BvP blend (BvP AB=11.0, weight=0.107, BvP AVG=0.273)

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB0.0000.000
H1.0000.000
HR0.0000.000
RBI0.0000.000
SO0.0000.000
7. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO0.0000.000
8. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1540.154
3B0.0080.008
BB0.1660.166
H0.903-0.097
HR0.0710.071
RBI0.3090.309
SO0.4160.416
9. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.154
3B0.000-0.008
AB3.0000.000
BB0.000-0.166
H1.0000.097
HR0.000-0.071
R0.0000.000
RBI0.000-0.309
SO0.000-0.416
10. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.209
predicted_3B0.000-0.006
predicted_AB3.000-0.922
predicted_AVG0.2640.067
predicted_BB0.000-0.157
predicted_H1.0000.225
predicted_HR0.000-0.034
predicted_OBP0.3040.075
predicted_R0.000-0.357
predicted_RBI0.000-0.258
predicted_SLG0.3770.098
predicted_SO0.000-0.344
11. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0001.000
BB0.0000.000
CS0.0000.000
H0.000-1.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R0.0000.000
RBI0.0000.000
SB0.0000.000
SF0.0000.000
SO2.0002.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 151
Reference playing time: 4.160
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-16.0001.0001.0000.0000.0001.0001.0001.0001.0000.06250.11110.12500.06250.00000.06250.06250.0625
last_100.2010-35.0004.0002.0000.0000.0001.0002.0002.0001.0000.11430.15790.17140.11430.00000.02860.05710.0286
season0.60151-570.000151.00032.0001.0009.00047.00060.00022.00056.0000.26490.29170.37190.26490.01580.08250.03860.0983
Weighted Prediction From Real Data
MetricValue
predicted_2B0.2060
predicted_3B0.0040
predicted_AB3.6140
predicted_AVG0.1969
predicted_BB0.1740
predicted_H0.7120
predicted_HBP0.0090
predicted_HR0.0390
predicted_OBP0.2325
predicted_R0.3220
predicted_RBI0.2550
predicted_SLG0.2884
predicted_SO0.3040
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.21200.20600.2094model_form_blend
predicted_3B0.00700.00400.0057model_form_blend
predicted_AB4.16003.61403.9219model_form_blend
predicted_AVG0.20300.19690.2003model_form_blend
predicted_BB0.14600.17400.1582model_form_blend
predicted_H0.84000.71200.7842model_form_blend
predicted_HBP-0.00900.0090form_only
predicted_HR0.03000.03900.0339model_form_blend
predicted_OBP0.23100.23250.2317model_form_blend
predicted_R0.39700.32200.3643model_form_blend
predicted_RBI0.27000.25500.2635model_form_blend
predicted_SLG0.30700.28840.2989model_form_blend
predicted_SO0.37100.30400.3418model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date589
Season rows before report date589
Report year2026
Profile rows used151
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA4
AB4
H0
2B0
3B0
HR0
R0
RBI0
BB0
SO2
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B1
Hitting_3B0
Hitting_AB4
Hitting_AVG0.25
Hitting_BB0
Hitting_GIDP1
Hitting_H1
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB2
Hitting_battingOrder9
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayed2B
gameID20260920_TOR@TEX
game_typefull
mlbID676391
playerID676391
playerNameErnie Clement
pos2B
startedTrue
startingPosition2B
teamTOR
teamID29
game_date2026-09-20
sl_k_percent9.4
sl_bb_percent3.7
sl_woba0.29
sl_xwoba0.26
sl_xba0.242
sl_xslg0.32
sl_sweet_spot_percent32.1
sl_barrel_batted_rate2.1
sl_hard_hit_percent20.3
sl_exit_velocity_avg84.1
sl_launch_angle_avg17.5
sl_whiff_percent15.3
sl_swing_percent57.5
Trey Yesavage (702056) · PITCHER · Starter · Team TOR
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 18
All-history rows before 20260921: 18

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB1.0001.0001.000Pitching_BB2.5561.000-1.5560.000
predicted_ER3.0003.0003.000Pitching_ER2.1110.0000.8893.000
predicted_H4.0004.0004.000Pitching_H3.3890.0000.6114.000
predicted_IP5.0005.0005.000Pitching_InningsPitched5.0222.000-0.0223.000
predicted_SO4.0004.0004.000Pitching_SO5.0560.000-1.0564.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_form_blend
Tocurrent_json_final
Dominant Effectneutral
Changed Metrics0
Boosted Metrics0
Deboosted Metrics0
Better Metrics0
Worse Metrics0
Biggest Boost-
Biggest Deboost-
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
2current_json_final00000--Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "pitcher",
  "player_id": "702056",
  "player_name": "Trey Yesavage",
  "position": "Starter",
  "team": "TOR",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 1.0,
        "predicted_ER": 3.0,
        "predicted_H": 4.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": 4.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": 4.0,
          "after": 4.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 1.0,
          "after": 1.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_IP",
          "before": 5.0,
          "after": 5.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 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": 4.0,
        "after": 4.0,
        "delta": 0.0,
        "percent_delta": 0.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_HR",
        "before": 1.0,
        "after": 1.0,
        "delta": 0.0,
        "percent_delta": 0.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_IP",
        "before": 5.0,
        "after": 5.0,
        "delta": 0.0,
        "percent_delta": 0.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_SO",
        "before": 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"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_form_blend

Pitcher model/profile expectation with Bayesian recent-form shrinkage

MetricValueDelta vs Prev Step
predicted_BB1.000-
predicted_ER3.000-
predicted_H4.000-
predicted_HR1.000-
predicted_IP5.000-
predicted_SO4.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 18
Reference playing time: 5.000
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.45520.10011.00014.00014.00023.0003.0004.86891.37700.54100.68850.68851.13120.1475
last_100.351051.00023.00030.00027.00047.0008.0004.05881.11760.45100.58820.52940.92160.1569
season0.201893.20038.00061.00046.00091.00010.0003.65121.14230.40570.65120.49110.97150.1068
Weighted Prediction From Real Data
MetricValue
predicted_BB2.5670
predicted_ER2.2950
predicted_ERA4.3949
predicted_H3.3770
predicted_HR0.6770
predicted_IP4.2000
predicted_SO4.7310
predicted_WHIP1.2648
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB1.00002.56701.8746model_form_blend
predicted_ER3.00002.29502.6065model_form_blend
predicted_ERA-4.39494.3949form_only
predicted_H4.00003.37703.6523model_form_blend
predicted_HR1.00000.67700.8197model_form_blend
predicted_IP5.00004.20004.2000model_form_blend
predicted_SO4.00004.73104.4080model_form_blend
predicted_WHIP-1.26481.2648form_only

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula45% last 5 + 35% last 10 + 20% season
Active form weightslast_5=45%, last_10=35%, season=20%
Model calibration35% raw model + 65% weighted form
Rows before report date18
Season rows before report date18
Report year2026
Profile rows used18
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP5.0
H4
R3
ER3
BB1
SO4
HR1
BF20
Pitches79

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB0
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB0
Hitting_battingOrder0
Hitting_substitutionOrder0
Pitching_BB1
Pitching_Balk0
Pitching_Batters Faced7
Pitching_ER0
Pitching_ERA3.65
Pitching_Flyouts4
Pitching_Groundouts1
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched2.0
Pitching_Pitches27
Pitching_R0
Pitching_SO0
Pitching_Strikes16
Pitching_Wild Pitch0
Pitching_pitchingOrder1
allPositionsPlayedP
gameID20260804_TOR@HOU
game_typefull
mlbID702056
playerID702056
playerNameTrey Yesavage
posP
startedTrue
startingPositionP
teamTOR
teamID29
game_date2026-08-04
game_pk824161.0
sl_k_percent23.6
sl_bb_percent11.9
sl_woba0.28
sl_xwoba0.285
sl_sweet_spot_percent36.4
sl_barrel_batted_rate6.1
sl_hard_hit_percent34.0
sl_whiff_percent30.0
sl_swing_percent47.3
sv_pitch_count27.0
sv_outs_recorded_est6.0
sv_release_speed89.52962962962964
sv_release_spin_rate2127.259259259259
sv_effective_speed88.92962962962963
sv_launch_speed84.7375
sv_launch_angle36.75
sv_woba_value0.7
sv_woba_denom7.0
sv_delta_run_exp-1.235
sv_delta_home_win_exp-0.099
sl_avg_best_speed78.103157273
sl_avg_hyper_speed93.347663636
Spencer Miles (693686) · PITCHER · Middle Reliever (High Leverage) · Team TOR
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 48
All-history rows before 20260921: 48

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB0.0000.0000.000Pitching_BB0.5000.000-0.5000.000
predicted_ER0.0000.0000.000Pitching_ER0.5620.000-0.5620.000
predicted_H0.0000.0000.000Pitching_H1.6252.000-1.625-2.000
predicted_IP1.2001.2001.200Pitching_InningsPitched1.8313.000-0.631-1.800
predicted_SO1.0001.0001.000Pitching_SO1.8964.000-0.896-3.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_form_blend
Tocurrent_json_final
Dominant Effectworse
Changed Metrics1
Boosted Metrics0
Deboosted Metrics1
Better Metrics0
Worse Metrics1
Biggest Boost-
Biggest Deboostpredicted_IP: 1.3333 -> 1.2000 (deboost -0.1333, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
2current_json_final10101-predicted_IP: 1.3333 -> 1.2000 (deboost -0.1333, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "pitcher",
  "player_id": "693686",
  "player_name": "Spencer Miles",
  "position": "Middle Reliever (High Leverage)",
  "team": "TOR",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 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.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": 1.3333,
          "after": 1.2,
          "delta": -0.1333,
          "percent_delta": -0.1,
          "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.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": 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.2,
        "delta": -0.1333,
        "percent_delta": -0.1,
        "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.2,
        "delta": -0.1333,
        "percent_delta": -0.1,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_form_blend

Pitcher model/profile expectation with Bayesian recent-form shrinkage

MetricValueDelta vs Prev Step
predicted_BB0.000-
predicted_ER0.000-
predicted_H0.000-
predicted_HR0.000-
predicted_IP1.333-
predicted_SO1.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 48
Reference playing time: 1.333
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.45510.1000.0007.0003.00014.0000.0000.00000.96770.00000.67740.29031.35480.0000
last_100.351015.2000.00010.0004.00018.0000.0000.00000.89360.00000.63830.25531.14890.0000
season0.204894.20027.00078.00024.00091.0005.0002.56691.07750.28520.82390.25350.96130.0528
Weighted Prediction From Real Data
MetricValue
predicted_BB0.5180
predicted_ER0.2660
predicted_ERA1.3532
predicted_H1.3310
predicted_HR0.0690
predicted_IP1.2000
predicted_SO2.0340
predicted_WHIP1.0447
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB0.00000.51800.2916model_form_blend
predicted_ER0.00000.26600.1497model_form_blend
predicted_ERA-1.35321.3532form_only
predicted_H0.00001.33100.7492model_form_blend
predicted_HR0.00000.06900.0388model_form_blend
predicted_IP1.10001.20001.2000model_form_blend
predicted_SO1.00002.03401.5820model_form_blend
predicted_WHIP-1.04471.0447form_only

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula45% last 5 + 35% last 10 + 20% season
Active form weightslast_5=45%, last_10=35%, season=20%
Model calibration35% raw model + 65% weighted form
Rows before report date48
Season rows before report date48
Report year2026
Profile rows used48
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP1.2
H0
R0
ER0
BB0
SO1
HR0
BF5
Pitches12

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB0
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB0
Hitting_battingOrder0
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced11
Pitching_ER0
Pitching_ERA2.57
Pitching_Flyouts1
Pitching_Groundouts2
Pitching_H2
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched3.0
Pitching_Pitches46
Pitching_R0
Pitching_SO4
Pitching_Strikes30
Pitching_Wild Pitch0
Pitching_pitchingOrder1
allPositionsPlayedP
gameID20260920_TOR@TEX
game_typefull
mlbID693686
playerID693686
playerNameSpencer Miles
posP
startedTrue
startingPositionP
teamTOR
teamID29
game_date2026-09-20
sl_k_percent23.5
sl_bb_percent6.5
sl_woba0.256
sl_xwoba0.268
sl_sweet_spot_percent28.7
sl_barrel_batted_rate3.5
sl_hard_hit_percent34.5
sl_whiff_percent18.9
sl_swing_percent47.9
sl_avg_best_speed75.736222578
sl_avg_hyper_speed92.944197188
Louis Varland (686973) · PITCHER · Closer · Team TOR
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 70
All-history rows before 20260921: 70

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB0.0000.0000.000Pitching_BB0.3291.000-0.329-1.000
predicted_ER1.0001.0001.000Pitching_ER0.1570.0000.8431.000
predicted_H1.0001.0001.000Pitching_H0.7861.0000.2140.000
predicted_IP1.1001.1001.100Pitching_InningsPitched1.0201.0000.0800.100
predicted_SO0.0000.0000.000Pitching_SO1.3570.000-1.3570.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_form_blend
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics1
Boosted Metrics1
Deboosted Metrics0
Better Metrics1
Worse Metrics0
Biggest Boostpredicted_IP: 1.0000 -> 1.1000 (boost 0.1000, better)
Biggest Deboost-
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
2current_json_final11010predicted_IP: 1.0000 -> 1.1000 (boost 0.1000, better)-Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "pitcher",
  "player_id": "686973",
  "player_name": "Louis Varland",
  "position": "Closer",
  "team": "TOR",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 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.1,
        "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.1,
          "delta": 0.1,
          "percent_delta": 0.1,
          "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": 1,
        "boosted_metrics": 1,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_IP",
          "before": 1.0,
          "after": 1.1,
          "delta": 0.1,
          "percent_delta": 0.1,
          "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": 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.1,
        "delta": 0.1,
        "percent_delta": 0.1,
        "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": 1,
      "boosted_metrics": 1,
      "deboosted_metrics": 0,
      "better_metrics": 1,
      "worse_metrics": 0,
      "biggest_boost": {
        "metric": "predicted_IP",
        "before": 1.0,
        "after": 1.1,
        "delta": 0.1,
        "percent_delta": 0.1,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": null,
      "has_material_change": true,
      "dominant_effect": "better"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_form_blend

Pitcher model/profile expectation with Bayesian recent-form shrinkage

MetricValueDelta vs Prev Step
predicted_BB0.000-
predicted_ER1.000-
predicted_H1.000-
predicted_HR1.000-
predicted_IP1.000-
predicted_SO0.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 70
Reference playing time: 1.000
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.4555.2001.0003.0002.0008.0000.0001.58820.88240.17650.52940.35291.41180.0000
last_100.351010.2002.0008.0005.00013.0000.0001.68751.21880.18750.75000.46881.21880.0000
season0.207077.00011.00055.00023.00095.0002.0001.28571.01300.14290.71430.29871.23380.0260
Weighted Prediction From Real Data
MetricValue
predicted_BB0.3810
predicted_ER0.2550
predicted_ERA2.2942
predicted_H0.7250
predicted_HR0.0400
predicted_IP1.0000
predicted_SO1.2190
predicted_WHIP1.1062
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB0.00000.38100.2087model_form_blend
predicted_ER1.00000.25500.5919model_form_blend
predicted_ERA-2.29422.2942form_only
predicted_H1.00000.72500.8494model_form_blend
predicted_HR1.00000.04000.4742model_form_blend
predicted_IP1.00001.00001.0000model_form_blend
predicted_SO0.00001.21900.6677model_form_blend
predicted_WHIP-1.10621.1062form_only

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula45% last 5 + 35% last 10 + 20% season
Active form weightslast_5=45%, last_10=35%, season=20%
Model calibration35% raw model + 65% weighted form
Rows before report date70
Season rows before report date70
Report year2026
Profile rows used70
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP1.1
H1
R1
ER1
BB0
SO0
HR1
BF5
Pitches20

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB0
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB0
Hitting_battingOrder0
Hitting_substitutionOrder0
Pitching_BB1
Pitching_Balk0
Pitching_Batters Faced4
Pitching_ER0
Pitching_ERA1.29
Pitching_Flyouts0
Pitching_Groundouts2
Pitching_H1
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched1.0
Pitching_Pitches16
Pitching_R0
Pitching_SO0
Pitching_Strikes9
Pitching_Wild Pitch0
Pitching_pitchingOrder7
allPositionsPlayedP
gameID20260920_TOR@TEX
game_typefull
mlbID686973
playerID686973
playerNameLouis Varland
posP
startedFalse
startingPositionP
teamTOR
teamID29
game_date2026-09-20
sl_k_percent31.7
sl_bb_percent7.3
sl_woba0.228
sl_xwoba0.236
sl_sweet_spot_percent26.2
sl_barrel_batted_rate3.8
sl_hard_hit_percent36.6
sl_whiff_percent29.2
sl_swing_percent51.9
sl_avg_best_speed76.081292333
sl_avg_hyper_speed93.440286089
Tyler Rogers (643511) · PITCHER · Setup Man · Team TOR
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 72
All-history rows before 20260921: 72

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB1.0001.0001.000Pitching_BB0.3060.0000.6941.000
predicted_ER0.0000.0000.000Pitching_ER0.1810.000-0.1810.000
predicted_H0.0000.0000.000Pitching_H0.8061.000-0.806-1.000
predicted_IP1.0001.0001.000Pitching_InningsPitched0.9031.0000.0970.000
predicted_SO1.0001.0001.000Pitching_SO0.5420.0000.4581.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_form_blend
Tocurrent_json_final
Dominant Effectneutral
Changed Metrics0
Boosted Metrics0
Deboosted Metrics0
Better Metrics0
Worse Metrics0
Biggest Boost-
Biggest Deboost-
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
2current_json_final00000--Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "pitcher",
  "player_id": "643511",
  "player_name": "Tyler Rogers",
  "position": "Setup Man",
  "team": "TOR",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 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": "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.0,
        "predicted_R": 0.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": 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": 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": 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": 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"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_form_blend

Pitcher model/profile expectation with Bayesian recent-form shrinkage

MetricValueDelta vs Prev Step
predicted_BB1.000-
predicted_ER0.000-
predicted_H0.000-
predicted_HR0.000-
predicted_IP1.000-
predicted_SO1.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 72
Reference playing time: 1.000
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.4555.0000.0003.0001.0003.0000.0000.00000.80000.00000.60000.20000.60000.0000
last_100.35109.1000.0007.0002.0007.0000.0000.00000.96430.00000.75000.21430.75000.0000
season0.207269.20013.00058.00022.00039.0001.0001.67941.14830.18660.83250.31580.55980.0143
Weighted Prediction From Real Data
MetricValue
predicted_BB0.2670
predicted_ER0.1610
predicted_ERA1.4448
predicted_H0.7720
predicted_HR0.0410
predicted_IP1.0000
predicted_SO0.7210
predicted_WHIP1.0392
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB1.00000.26700.6043model_form_blend
predicted_ER0.00000.16100.0869model_form_blend
predicted_ERA-1.44481.4448form_only
predicted_H0.00000.77200.4167model_form_blend
predicted_HR0.00000.04100.0221model_form_blend
predicted_IP1.00001.00001.0000model_form_blend
predicted_SO1.00000.72100.8494model_form_blend
predicted_WHIP-1.03921.0392form_only

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula45% last 5 + 35% last 10 + 20% season
Active form weightslast_5=45%, last_10=35%, season=20%
Model calibration35% raw model + 65% weighted form
Rows before report date72
Season rows before report date72
Report year2026
Profile rows used72
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP1.0
H0
R0
ER0
BB1
SO1
HR0
BF4
Pitches17

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB0
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB0
Hitting_battingOrder0
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced4
Pitching_ER0
Pitching_ERA1.68
Pitching_Flyouts1
Pitching_Groundouts1
Pitching_H1
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched1.0
Pitching_Pitches16
Pitching_R0
Pitching_SO0
Pitching_Strikes13
Pitching_Wild Pitch0
Pitching_pitchingOrder6
allPositionsPlayedP
gameID20260920_TOR@TEX
game_typefull
mlbID643511
playerID643511
playerNameTyler Rogers
posP
startedFalse
startingPositionP
teamTOR
teamID29
game_date2026-09-20
sl_k_percent13.8
sl_bb_percent7.8
sl_woba0.248
sl_xwoba0.256
sl_sweet_spot_percent22.5
sl_barrel_batted_rate1.4
sl_hard_hit_percent27.1
sl_whiff_percent14.8
sl_swing_percent49.7
sl_avg_best_speed71.552721495
sl_avg_hyper_speed92.361386009

Home Team: BAL

Home Pitcher Deep Analysis

FieldValue
PitcherShane Baz
RoleStarter
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score-0.1425
ESPN Rank-
Movement AvailableTrue
Primary Pitch-
Movement Score0.0480
Avg Velo90.7082
Avg Spin2403.1314
HB Inches0
IVB Inches0
Release Extension0
Pre IP5.2000
Pre ER4
Pre H7
Pre BB2
Pre SO4
Season ERA4.1098
Season WHIP1.3526
Role Avg IP5.7670
Recent Avg IP5.4670
Last Start IP4
Team Form Snapshot
{
  "method": "team_form_snapshot",
  "role": "pitcher",
  "team": {
    "team": "BAL",
    "games": 156,
    "wins": 75,
    "losses": 81,
    "win_pct": 0.4808,
    "runs_scored": 693.0,
    "runs_allowed": 724.0,
    "run_differential": -31.0,
    "run_differential_per_game": -0.1987,
    "avg_runs_scored": 4.4423,
    "avg_runs_allowed": 4.641,
    "offense_index": 0.9869,
    "defense_index": 0.9699,
    "current_streak": "L3",
    "recent": {
      "games": 10,
      "wins": 5,
      "losses": 5,
      "win_pct": 0.5,
      "avg_runs_scored": 4.1,
      "avg_runs_allowed": 4.1,
      "run_differential": 0.0
    },
    "available": true,
    "quality_score": -0.0406
  },
  "opponent": {
    "team": "TOR",
    "games": 156,
    "wins": 77,
    "losses": 79,
    "win_pct": 0.4936,
    "runs_scored": 629.0,
    "runs_allowed": 671.0,
    "run_differential": -42.0,
    "run_differential_per_game": -0.2692,
    "avg_runs_scored": 4.0321,
    "avg_runs_allowed": 4.3013,
    "offense_index": 0.8957,
    "defense_index": 1.0465,
    "current_streak": "W1",
    "recent": {
      "games": 10,
      "wins": 4,
      "losses": 6,
      "win_pct": 0.4,
      "avg_runs_scored": 4.0,
      "avg_runs_allowed": 4.5,
      "run_differential": -5.0
    },
    "available": true,
    "quality_score": -0.0733
  },
  "edges": {
    "quality_edge": 0.0327,
    "offense_edge": -0.0131,
    "opponent_offense_edge": -0.1043,
    "defense_strength": -0.0301,
    "opponent_defense_weakness": -0.0465,
    "recent_win_pct_edge": 0.1
  },
  "player_factors": {
    "ip": 1.0046,
    "run_prevention": 0.9847,
    "strikeout": 1.0093
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "669358",
    "profile": {
      "available": true,
      "pitcher_id": "669358",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 694.0,
        "k_percent": 20.5,
        "bb_percent": 8.1,
        "woba": 0.318,
        "xwoba": 0.315,
        "sweet_spot_percent": 35.5,
        "barrel_batted_rate": 6.9,
        "hard_hit_percent": 42.0,
        "avg_best_speed": 80.2761,
        "avg_hyper_speed": 94.4624,
        "whiff_percent": 21.9,
        "swing_percent": 48.2
      },
      "league_medians": {
        "pa": 135.0,
        "k_percent": 22.0,
        "bb_percent": 9.1,
        "woba": 0.316,
        "xwoba": 0.311,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6329,
        "avg_hyper_speed": 93.8957,
        "whiff_percent": 25.0,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": -0.183,
        "command_and_miss": -0.2014,
        "regression_edge": 0.0857,
        "xwoba_edge": -0.1143,
        "barrel_edge": 0.0667,
        "hard_hit_edge": -0.5857,
        "whiff_edge": -0.4429,
        "bb_edge": 0.25,
        "pitch_design_score": 0.048
      },
      "pitch_movement_profile": {
        "available": true,
        "pitcher_id": "669358",
        "player_name": null,
        "source": "all_players_stats.csv embedded Savant pitcher movement features",
        "total_pitches": 95,
        "primary_pitch": {
          "pitch_type": null,
          "pitch_name": null,
          "pitches": 95,
          "pitch_usage": 0.0,
          "release_speed": 90.70819900179096,
          "release_spin_rate": 2403.1313618200516,
          "spin_axis": null,
          "horizontal_break_inches": 0.0,
          "induced_vertical_break_inches": 0.0,
          "vertical_break_with_gravity_inches": null,
          "release_pos_x": null,
          "release_pos_z": null,
          "release_extension": 0.0,
          "arm_angle": 0.0,
          "whiff_percent": 0.0,
          "xwoba": 0.0,
          "hard_hit_percent": 0.0
        },
        "pitch_mix": [
          {
            "pitch_type": null,
            "pitch_name": null,
            "pitches": 95,
            "pitch_usage": 0.0,
            "release_speed": 90.70819900179096,
            "release_spin_rate": 2403.1313618200516,
            "spin_axis": null,
            "horizontal_break_inches": 0.0,
            "induced_vertical_break_inches": 0.0,
            "vertical_break_with_gravity_inches": null,
            "release_pos_x": null,
            "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.7082,
          "release_spin_rate": 2403.1314,
          "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.048,
          "horizontal_break_edge": 0.0,
          "induced_vertical_break_edge": 0.0,
          "extension_edge": 0.0,
          "velocity_edge": 0.3427,
          "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.1425,
      "sample_weight": 1.0,
      "run_prevention_factor": 1.0121,
      "strikeout_factor": 0.9737,
      "walk_factor": 0.98,
      "homer_factor": 1.0215,
      "woba_minus_xwoba": 0.003,
      "regression_flag": "neutral",
      "espn_rank": {
        "available": false,
        "player_id": "669358",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 3.0,
        "factor": 1.0121,
        "adjusted": 3
      },
      "predicted_H": {
        "original": 6.0,
        "factor": 1.0121,
        "adjusted": 6
      },
      "predicted_BB": {
        "original": 2.0,
        "factor": 0.98,
        "adjusted": 2
      },
      "predicted_HR": {
        "original": 1.0,
        "factor": 1.0215,
        "adjusted": 1
      },
      "predicted_SO": {
        "original": 4.0,
        "factor": 0.9737,
        "adjusted": 4
      }
    }
  }
}
Recent Form Pitching
{
  "hitting": {
    "AB": 0,
    "H": 0,
    "HR": 0,
    "RBI": 0,
    "R": 0,
    "BB": 0,
    "SO": 0,
    "2B": 0,
    "3B": 0,
    "AVG": 0,
    "OBP": 0,
    "SLG": 0,
    "OPS": 0,
    "games_played": 0,
    "hot_streak": false,
    "cold_streak": true,
    "trend": "stable"
  },
  "pitching": {
    "IP": 55.1,
    "ER": 26,
    "H": 55,
    "BB": 18,
    "SO": 47,
    "HR": 6,
    "ERA": 4.228915662650602,
    "WHIP": 1.3192771084337347,
    "K9": 7.644578313253011,
    "HR9": 0.9759036144578311,
    "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-15T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": true,
  "pitcher_id": "669358",
  "player_name": null,
  "source": "all_players_stats.csv embedded Savant pitcher movement features",
  "total_pitches": 95,
  "primary_pitch": {
    "pitch_type": null,
    "pitch_name": null,
    "pitches": 95,
    "pitch_usage": 0.0,
    "release_speed": 90.70819900179096,
    "release_spin_rate": 2403.1313618200516,
    "spin_axis": null,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": null,
    "release_pos_x": null,
    "release_pos_z": null,
    "release_extension": 0.0,
    "arm_angle": 0.0,
    "whiff_percent": 0.0,
    "xwoba": 0.0,
    "hard_hit_percent": 0.0
  },
  "pitch_mix": [
    {
      "pitch_type": null,
      "pitch_name": null,
      "pitches": 95,
      "pitch_usage": 0.0,
      "release_speed": 90.70819900179096,
      "release_spin_rate": 2403.1313618200516,
      "spin_axis": null,
      "horizontal_break_inches": 0.0,
      "induced_vertical_break_inches": 0.0,
      "vertical_break_with_gravity_inches": null,
      "release_pos_x": null,
      "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.7082,
    "release_spin_rate": 2403.1314,
    "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.048,
    "horizontal_break_edge": 0.0,
    "induced_vertical_break_edge": 0.0,
    "extension_edge": 0.0,
    "velocity_edge": 0.3427,
    "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."
}
Player Form Blend
{
  "form_version": "player_form_v3_5_10_season",
  "method": "weighted_recent_form",
  "description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
  "weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "effective_weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 30.0,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.8571,
    "prior_weight": 0.1429
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "669358",
  "report_date": "20260921",
  "season_year": 2026,
  "rows_used": 30,
  "reference_playing_time": 5.667,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 27.1,
        "ER": 14.0,
        "R": 14.0,
        "H": 27.0,
        "BB": 11.0,
        "SO": 20.0,
        "HR": 4.0,
        "BF": 119.0,
        "Pitches": 443.0
      },
      "per_game": {
        "IP": 5.1,
        "ER": 2.8,
        "R": 2.8,
        "H": 5.4,
        "BB": 2.2,
        "SO": 4.0,
        "HR": 0.8,
        "BF": 23.8,
        "Pitches": 88.6
      },
      "rates": {
        "ERA": 4.6098,
        "WHIP": 1.3902,
        "ER_per_IP": 0.5122,
        "H_per_IP": 0.9878,
        "BB_per_IP": 0.40244,
        "SO_per_IP": 0.73171,
        "HR_per_IP": 0.14634
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 55.1,
        "ER": 26.0,
        "R": 27.0,
        "H": 55.0,
        "BB": 18.0,
        "SO": 47.0,
        "HR": 6.0,
        "BF": 235.0,
        "Pitches": 894.0
      },
      "per_game": {
        "IP": 5.2,
        "ER": 2.6,
        "R": 2.7,
        "H": 5.5,
        "BB": 1.8,
        "SO": 4.7,
        "HR": 0.6,
        "BF": 23.5,
        "Pitches": 89.4
      },
      "rates": {
        "ERA": 4.2289,
        "WHIP": 1.3193,
        "ER_per_IP": 0.46988,
        "H_per_IP": 0.99398,
        "BB_per_IP": 0.3253,
        "SO_per_IP": 0.8494,
        "HR_per_IP": 0.10843
      }
    },
    "season": {
      "games": 30,
      "totals": {
        "IP": 173.0,
        "ER": 79.0,
        "R": 89.0,
        "H": 174.0,
        "BB": 60.0,
        "SO": 152.0,
        "HR": 15.0,
        "BF": 742.0,
        "Pitches": 2819.0
      },
      "per_game": {
        "IP": 5.2,
        "ER": 2.6333,
        "R": 2.9667,
        "H": 5.8,
        "BB": 2.0,
        "SO": 5.0667,
        "HR": 0.5,
        "BF": 24.7333,
        "Pitches": 93.9667
      },
      "rates": {
        "ERA": 4.1098,
        "WHIP": 1.3526,
        "ER_per_IP": 0.45665,
        "H_per_IP": 1.00578,
        "BB_per_IP": 0.34682,
        "SO_per_IP": 0.87861,
        "HR_per_IP": 0.08671
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 5.2,
    "predicted_ER": 2.711,
    "predicted_H": 5.492,
    "predicted_BB": 2.027,
    "predicted_SO": 4.55,
    "predicted_HR": 0.693,
    "predicted_ERA": 4.4064,
    "predicted_WHIP": 1.3577
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.4104,
  "form_weight": 0.5896,
  "form_reliability": 0.8571,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 30.0,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.8571,
    "prior_weight": 0.1429
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 5.2,
      "form": 5.2,
      "final": 5.2,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 4.0,
      "form": 2.711,
      "final": 3.24,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 7.0,
      "form": 5.492,
      "final": 6.1108,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 2.0,
      "form": 2.027,
      "final": 2.0159,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 4.0,
      "form": 4.55,
      "final": 4.3243,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 1.0,
      "form": 0.693,
      "final": 0.819,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 4.4064,
      "final": 4.4064,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 1.3577,
      "final": 1.3577,
      "source": "form_only"
    }
  }
}
Inning Pitch Details
{
  "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."
}
FieldValue
PitcherAndrew Kittredge
RoleCloser
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score-0.0216
ESPN Rank-
Movement AvailableTrue
Primary Pitch-
Movement Score0.1197
Avg Velo91.9894
Avg Spin2481.1240
HB Inches0
IVB Inches0
Release Extension0
Pre IP1
Pre ER0
Pre H1
Pre BB0
Pre SO1
Season ERA3.6127
Season WHIP1.3732
Role Avg IP0.8770
Recent Avg IP0.8000
Last Start IP0
Team Form Snapshot
{
  "method": "team_form_snapshot",
  "role": "pitcher",
  "team": {
    "team": "BAL",
    "games": 156,
    "wins": 75,
    "losses": 81,
    "win_pct": 0.4808,
    "runs_scored": 693.0,
    "runs_allowed": 724.0,
    "run_differential": -31.0,
    "run_differential_per_game": -0.1987,
    "avg_runs_scored": 4.4423,
    "avg_runs_allowed": 4.641,
    "offense_index": 0.9869,
    "defense_index": 0.9699,
    "current_streak": "L3",
    "recent": {
      "games": 10,
      "wins": 5,
      "losses": 5,
      "win_pct": 0.5,
      "avg_runs_scored": 4.1,
      "avg_runs_allowed": 4.1,
      "run_differential": 0.0
    },
    "available": true,
    "quality_score": -0.0406
  },
  "opponent": {
    "team": "TOR",
    "games": 156,
    "wins": 77,
    "losses": 79,
    "win_pct": 0.4936,
    "runs_scored": 629.0,
    "runs_allowed": 671.0,
    "run_differential": -42.0,
    "run_differential_per_game": -0.2692,
    "avg_runs_scored": 4.0321,
    "avg_runs_allowed": 4.3013,
    "offense_index": 0.8957,
    "defense_index": 1.0465,
    "current_streak": "W1",
    "recent": {
      "games": 10,
      "wins": 4,
      "losses": 6,
      "win_pct": 0.4,
      "avg_runs_scored": 4.0,
      "avg_runs_allowed": 4.5,
      "run_differential": -5.0
    },
    "available": true,
    "quality_score": -0.0733
  },
  "edges": {
    "quality_edge": 0.0327,
    "offense_edge": -0.0131,
    "opponent_offense_edge": -0.1043,
    "defense_strength": -0.0301,
    "opponent_defense_weakness": -0.0465,
    "recent_win_pct_edge": 0.1
  },
  "player_factors": {
    "ip": 1.0046,
    "run_prevention": 0.9847,
    "strikeout": 1.0093
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "552640",
    "profile": {
      "available": true,
      "pitcher_id": "552640",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 202.0,
        "k_percent": 18.5,
        "bb_percent": 5.7,
        "woba": 0.316,
        "xwoba": 0.312,
        "sweet_spot_percent": 38.1,
        "barrel_batted_rate": 6.3,
        "hard_hit_percent": 37.5,
        "avg_best_speed": 76.9719,
        "avg_hyper_speed": 93.8961,
        "whiff_percent": 23.0,
        "swing_percent": 53.6
      },
      "league_medians": {
        "pa": 135.0,
        "k_percent": 22.0,
        "bb_percent": 9.1,
        "woba": 0.316,
        "xwoba": 0.311,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6329,
        "avg_hyper_speed": 93.8957,
        "whiff_percent": 25.0,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": -0.0132,
        "command_and_miss": -0.155,
        "regression_edge": 0.1143,
        "xwoba_edge": -0.0286,
        "barrel_edge": 0.2,
        "hard_hit_edge": 0.0571,
        "whiff_edge": -0.2857,
        "bb_edge": 0.85,
        "pitch_design_score": 0.1197
      },
      "pitch_movement_profile": {
        "available": true,
        "pitcher_id": "552640",
        "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": 91.98941394508219,
          "release_spin_rate": 2481.124036917146,
          "spin_axis": null,
          "horizontal_break_inches": 0.0,
          "induced_vertical_break_inches": 0.0,
          "vertical_break_with_gravity_inches": null,
          "release_pos_x": null,
          "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": 91.98941394508219,
            "release_spin_rate": 2481.124036917146,
            "spin_axis": null,
            "horizontal_break_inches": 0.0,
            "induced_vertical_break_inches": 0.0,
            "vertical_break_with_gravity_inches": null,
            "release_pos_x": null,
            "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.9894,
          "release_spin_rate": 2481.124,
          "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.1197,
          "horizontal_break_edge": 0.0,
          "induced_vertical_break_edge": 0.0,
          "extension_edge": 0.0,
          "velocity_edge": 0.8552,
          "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.0216,
      "sample_weight": 0.808,
      "run_prevention_factor": 1.0018,
      "strikeout_factor": 0.9746,
      "walk_factor": 0.9451,
      "homer_factor": 0.9859,
      "woba_minus_xwoba": 0.004,
      "regression_flag": "neutral",
      "espn_rank": {
        "available": false,
        "player_id": "552640",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 1.0,
        "factor": 1.0015,
        "adjusted": 1
      },
      "predicted_H": {
        "original": 1.0,
        "factor": 1.0015,
        "adjusted": 1
      },
      "predicted_BB": {
        "original": 0.0,
        "factor": 0.9556,
        "adjusted": 0
      },
      "predicted_HR": {
        "original": 0.0,
        "factor": 0.9886,
        "adjusted": 0
      },
      "predicted_SO": {
        "original": 2.0,
        "factor": 0.9795,
        "adjusted": 2
      }
    }
  }
}
Recent Form Pitching
{
  "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": 4,
    "H": 12,
    "BB": 1,
    "SO": 6,
    "HR": 1,
    "ERA": 4.0,
    "WHIP": 1.4444444444444444,
    "K9": 6.0,
    "HR9": 1.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-18T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": true,
  "pitcher_id": "552640",
  "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": 91.98941394508219,
    "release_spin_rate": 2481.124036917146,
    "spin_axis": null,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": null,
    "release_pos_x": null,
    "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": 91.98941394508219,
      "release_spin_rate": 2481.124036917146,
      "spin_axis": null,
      "horizontal_break_inches": 0.0,
      "induced_vertical_break_inches": 0.0,
      "vertical_break_with_gravity_inches": null,
      "release_pos_x": null,
      "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.9894,
    "release_spin_rate": 2481.124,
    "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.1197,
    "horizontal_break_edge": 0.0,
    "induced_vertical_break_edge": 0.0,
    "extension_edge": 0.0,
    "velocity_edge": 0.8552,
    "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."
}
Player Form Blend
{
  "form_version": "player_form_v3_5_10_season",
  "method": "weighted_recent_form",
  "description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
  "weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "effective_weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 9.626,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.6581,
    "prior_weight": 0.3419
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "552640",
  "report_date": "20260921",
  "season_year": 2026,
  "rows_used": 54,
  "reference_playing_time": 1.0,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 4.0,
        "ER": 4.0,
        "R": 5.0,
        "H": 6.0,
        "BB": 0.0,
        "SO": 3.0,
        "HR": 1.0,
        "BF": 18.0,
        "Pitches": 67.0
      },
      "per_game": {
        "IP": 0.2,
        "ER": 0.8,
        "R": 1.0,
        "H": 1.2,
        "BB": 0.0,
        "SO": 0.6,
        "HR": 0.2,
        "BF": 3.6,
        "Pitches": 13.4
      },
      "rates": {
        "ERA": 9.0,
        "WHIP": 1.5,
        "ER_per_IP": 1.0,
        "H_per_IP": 1.5,
        "BB_per_IP": 0.0,
        "SO_per_IP": 0.75,
        "HR_per_IP": 0.25
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 9.0,
        "ER": 4.0,
        "R": 5.0,
        "H": 12.0,
        "BB": 1.0,
        "SO": 6.0,
        "HR": 1.0,
        "BF": 40.0,
        "Pitches": 139.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.4,
        "R": 0.5,
        "H": 1.2,
        "BB": 0.1,
        "SO": 0.6,
        "HR": 0.1,
        "BF": 4.0,
        "Pitches": 13.9
      },
      "rates": {
        "ERA": 4.0,
        "WHIP": 1.4444,
        "ER_per_IP": 0.44444,
        "H_per_IP": 1.33333,
        "BB_per_IP": 0.11111,
        "SO_per_IP": 0.66667,
        "HR_per_IP": 0.11111
      }
    },
    "season": {
      "games": 54,
      "totals": {
        "IP": 47.1,
        "ER": 19.0,
        "R": 30.0,
        "H": 54.0,
        "BB": 11.0,
        "SO": 39.0,
        "HR": 6.0,
        "BF": 210.0,
        "Pitches": 698.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.3519,
        "R": 0.5556,
        "H": 1.0,
        "BB": 0.2037,
        "SO": 0.7222,
        "HR": 0.1111,
        "BF": 3.8889,
        "Pitches": 12.9259
      },
      "rates": {
        "ERA": 3.6127,
        "WHIP": 1.3732,
        "ER_per_IP": 0.40141,
        "H_per_IP": 1.14085,
        "BB_per_IP": 0.23239,
        "SO_per_IP": 0.82394,
        "HR_per_IP": 0.12676
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 1.0,
    "predicted_ER": 0.564,
    "predicted_H": 1.115,
    "predicted_BB": 0.167,
    "predicted_SO": 0.725,
    "predicted_HR": 0.151,
    "predicted_ERA": 5.6301,
    "predicted_WHIP": 1.4214
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.4945,
  "form_weight": 0.5055,
  "form_reliability": 0.6581,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 9.626,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.6581,
    "prior_weight": 0.3419
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 1.0,
      "form": 1.0,
      "final": 1.0,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 0.0,
      "form": 0.564,
      "final": 0.2851,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 1.0,
      "form": 1.115,
      "final": 1.0581,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 0.0,
      "form": 0.167,
      "final": 0.0844,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 1.0,
      "form": 0.725,
      "final": 0.861,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 0.0,
      "form": 0.151,
      "final": 0.0763,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 5.6301,
      "final": 5.6301,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 1.4214,
      "final": 1.4214,
      "source": "form_only"
    }
  }
}
Inning Pitch Details
{
  "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."
}
FieldValue
PitcherRico Garcia
RoleSetup Man
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score0.6680
ESPN Rank-
Movement AvailableTrue
Primary Pitch-
Movement Score0.0007
Avg Velo89.8645
Avg Spin2440.1991
HB Inches0
IVB Inches0
Release Extension0
Pre IP1.2000
Pre ER0
Pre H0
Pre BB0
Pre SO1
Season ERA2.6308
Season WHIP0.9385
Role Avg IP0.9030
Recent Avg IP0.8670
Last Start IP0
Team Form Snapshot
{
  "method": "team_form_snapshot",
  "role": "pitcher",
  "team": {
    "team": "BAL",
    "games": 156,
    "wins": 75,
    "losses": 81,
    "win_pct": 0.4808,
    "runs_scored": 693.0,
    "runs_allowed": 724.0,
    "run_differential": -31.0,
    "run_differential_per_game": -0.1987,
    "avg_runs_scored": 4.4423,
    "avg_runs_allowed": 4.641,
    "offense_index": 0.9869,
    "defense_index": 0.9699,
    "current_streak": "L3",
    "recent": {
      "games": 10,
      "wins": 5,
      "losses": 5,
      "win_pct": 0.5,
      "avg_runs_scored": 4.1,
      "avg_runs_allowed": 4.1,
      "run_differential": 0.0
    },
    "available": true,
    "quality_score": -0.0406
  },
  "opponent": {
    "team": "TOR",
    "games": 156,
    "wins": 77,
    "losses": 79,
    "win_pct": 0.4936,
    "runs_scored": 629.0,
    "runs_allowed": 671.0,
    "run_differential": -42.0,
    "run_differential_per_game": -0.2692,
    "avg_runs_scored": 4.0321,
    "avg_runs_allowed": 4.3013,
    "offense_index": 0.8957,
    "defense_index": 1.0465,
    "current_streak": "W1",
    "recent": {
      "games": 10,
      "wins": 4,
      "losses": 6,
      "win_pct": 0.4,
      "avg_runs_scored": 4.0,
      "avg_runs_allowed": 4.5,
      "run_differential": -5.0
    },
    "available": true,
    "quality_score": -0.0733
  },
  "edges": {
    "quality_edge": 0.0327,
    "offense_edge": -0.0131,
    "opponent_offense_edge": -0.1043,
    "defense_strength": -0.0301,
    "opponent_defense_weakness": -0.0465,
    "recent_win_pct_edge": 0.1
  },
  "player_factors": {
    "ip": 1.0046,
    "run_prevention": 0.9847,
    "strikeout": 1.0093
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "670329",
    "profile": {
      "available": true,
      "pitcher_id": "670329",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 244.0,
        "k_percent": 25.5,
        "bb_percent": 8.5,
        "woba": 0.264,
        "xwoba": 0.269,
        "sweet_spot_percent": 24.9,
        "barrel_batted_rate": 5.3,
        "hard_hit_percent": 34.9,
        "avg_best_speed": 75.1575,
        "avg_hyper_speed": 93.2522,
        "whiff_percent": 31.8,
        "swing_percent": 49.1
      },
      "league_medians": {
        "pa": 135.0,
        "k_percent": 22.0,
        "bb_percent": 9.1,
        "woba": 0.316,
        "xwoba": 0.311,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6329,
        "avg_hyper_speed": 93.8957,
        "whiff_percent": 25.0,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": 0.9714,
        "command_and_miss": 0.595,
        "regression_edge": -0.1429,
        "xwoba_edge": 1.2,
        "barrel_edge": 0.4222,
        "hard_hit_edge": 0.4286,
        "whiff_edge": 0.9714,
        "bb_edge": 0.15,
        "pitch_design_score": 0.0007
      },
      "pitch_movement_profile": {
        "available": true,
        "pitcher_id": "670329",
        "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": 89.86451066862888,
          "release_spin_rate": 2440.1991140034406,
          "spin_axis": null,
          "horizontal_break_inches": 0.0,
          "induced_vertical_break_inches": 0.0,
          "vertical_break_with_gravity_inches": null,
          "release_pos_x": null,
          "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": 89.86451066862888,
            "release_spin_rate": 2440.1991140034406,
            "spin_axis": null,
            "horizontal_break_inches": 0.0,
            "induced_vertical_break_inches": 0.0,
            "vertical_break_with_gravity_inches": null,
            "release_pos_x": null,
            "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.8645,
          "release_spin_rate": 2440.1991,
          "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.0007,
          "horizontal_break_edge": 0.0,
          "induced_vertical_break_edge": 0.0,
          "extension_edge": 0.0,
          "velocity_edge": 0.0052,
          "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.668,
      "sample_weight": 0.976,
      "run_prevention_factor": 0.9432,
      "strikeout_factor": 1.0574,
      "walk_factor": 0.9883,
      "homer_factor": 0.9152,
      "woba_minus_xwoba": -0.005,
      "regression_flag": "neutral",
      "espn_rank": {
        "available": false,
        "player_id": "670329",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 0.0,
        "factor": 0.9446,
        "adjusted": 0
      },
      "predicted_H": {
        "original": 1.0,
        "factor": 0.9446,
        "adjusted": 1
      },
      "predicted_BB": {
        "original": 0.0,
        "factor": 0.9886,
        "adjusted": 0
      },
      "predicted_HR": {
        "original": 0.0,
        "factor": 0.9172,
        "adjusted": 0
      },
      "predicted_SO": {
        "original": 2.0,
        "factor": 1.056,
        "adjusted": 2
      }
    }
  }
}
Recent Form Pitching
{
  "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": 2,
    "H": 9,
    "BB": 3,
    "SO": 7,
    "HR": 0,
    "ERA": 2.454545454545454,
    "WHIP": 1.6363636363636362,
    "K9": 8.59090909090909,
    "HR9": 0.0,
    "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-18T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": true,
  "pitcher_id": "670329",
  "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": 89.86451066862888,
    "release_spin_rate": 2440.1991140034406,
    "spin_axis": null,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": null,
    "release_pos_x": null,
    "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": 89.86451066862888,
      "release_spin_rate": 2440.1991140034406,
      "spin_axis": null,
      "horizontal_break_inches": 0.0,
      "induced_vertical_break_inches": 0.0,
      "vertical_break_with_gravity_inches": null,
      "release_pos_x": null,
      "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.8645,
    "release_spin_rate": 2440.1991,
    "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.0007,
    "horizontal_break_edge": 0.0,
    "induced_vertical_break_edge": 0.0,
    "extension_edge": 0.0,
    "velocity_edge": 0.0052,
    "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."
}
Player Form Blend
{
  "form_version": "player_form_v3_5_10_season",
  "method": "weighted_recent_form",
  "description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
  "weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "effective_weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 13.219,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.7256,
    "prior_weight": 0.2744
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "670329",
  "report_date": "20260921",
  "season_year": 2026,
  "rows_used": 72,
  "reference_playing_time": 1.0,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 4.1,
        "ER": 2.0,
        "R": 2.0,
        "H": 5.0,
        "BB": 2.0,
        "SO": 4.0,
        "HR": 0.0,
        "BF": 20.0,
        "Pitches": 75.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.4,
        "R": 0.4,
        "H": 1.0,
        "BB": 0.4,
        "SO": 0.8,
        "HR": 0.0,
        "BF": 4.0,
        "Pitches": 15.0
      },
      "rates": {
        "ERA": 4.1538,
        "WHIP": 1.6154,
        "ER_per_IP": 0.46154,
        "H_per_IP": 1.15385,
        "BB_per_IP": 0.46154,
        "SO_per_IP": 0.92308,
        "HR_per_IP": 0.0
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 7.1,
        "ER": 2.0,
        "R": 2.0,
        "H": 9.0,
        "BB": 3.0,
        "SO": 7.0,
        "HR": 0.0,
        "BF": 34.0,
        "Pitches": 121.0
      },
      "per_game": {
        "IP": 0.2,
        "ER": 0.2,
        "R": 0.2,
        "H": 0.9,
        "BB": 0.3,
        "SO": 0.7,
        "HR": 0.0,
        "BF": 3.4,
        "Pitches": 12.1
      },
      "rates": {
        "ERA": 2.4545,
        "WHIP": 1.6364,
        "ER_per_IP": 0.27273,
        "H_per_IP": 1.22727,
        "BB_per_IP": 0.40909,
        "SO_per_IP": 0.95455,
        "HR_per_IP": 0.0
      }
    },
    "season": {
      "games": 72,
      "totals": {
        "IP": 65.0,
        "ER": 19.0,
        "R": 22.0,
        "H": 40.0,
        "BB": 21.0,
        "SO": 66.0,
        "HR": 9.0,
        "BF": 255.0,
        "Pitches": 960.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.2639,
        "R": 0.3056,
        "H": 0.5556,
        "BB": 0.2917,
        "SO": 0.9167,
        "HR": 0.125,
        "BF": 3.5417,
        "Pitches": 13.3333
      },
      "rates": {
        "ERA": 2.6308,
        "WHIP": 0.9385,
        "ER_per_IP": 0.29231,
        "H_per_IP": 0.61538,
        "BB_per_IP": 0.32308,
        "SO_per_IP": 1.01538,
        "HR_per_IP": 0.13846
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 1.0,
    "predicted_ER": 0.368,
    "predicted_H": 0.958,
    "predicted_BB": 0.371,
    "predicted_SO": 0.868,
    "predicted_HR": 0.056,
    "predicted_ERA": 3.6198,
    "predicted_WHIP": 1.4515
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.4659,
  "form_weight": 0.5341,
  "form_reliability": 0.7256,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 13.219,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.7256,
    "prior_weight": 0.2744
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 1.0,
      "form": 1.0,
      "final": 1.0,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 0.0,
      "form": 0.368,
      "final": 0.1965,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 0.0,
      "form": 0.958,
      "final": 0.5116,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 0.0,
      "form": 0.371,
      "final": 0.1981,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 1.0,
      "form": 0.868,
      "final": 0.9295,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 0.0,
      "form": 0.056,
      "final": 0.0299,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 3.6198,
      "final": 3.6198,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 1.4515,
      "final": 1.4515,
      "source": "form_only"
    }
  }
}
Inning Pitch Details
{
  "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."
}
FieldValue
PitcherYennier Cano
RoleMiddle Reliever (High Leverage)
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score0.2967
ESPN Rank-
Movement AvailableTrue
Primary Pitch-
Movement Score0.1485
Avg Velo92.5037
Avg Spin1988.7400
HB Inches0
IVB Inches0
Release Extension0
Pre IP0.2000
Pre ER1
Pre H1
Pre BB0
Pre SO1
Season ERA2.2500
Season WHIP0.9167
Role Avg IP0.7500
Recent Avg IP0.6670
Last Start IP0
Team Form Snapshot
{
  "method": "team_form_snapshot",
  "role": "pitcher",
  "team": {
    "team": "BAL",
    "games": 156,
    "wins": 75,
    "losses": 81,
    "win_pct": 0.4808,
    "runs_scored": 693.0,
    "runs_allowed": 724.0,
    "run_differential": -31.0,
    "run_differential_per_game": -0.1987,
    "avg_runs_scored": 4.4423,
    "avg_runs_allowed": 4.641,
    "offense_index": 0.9869,
    "defense_index": 0.9699,
    "current_streak": "L3",
    "recent": {
      "games": 10,
      "wins": 5,
      "losses": 5,
      "win_pct": 0.5,
      "avg_runs_scored": 4.1,
      "avg_runs_allowed": 4.1,
      "run_differential": 0.0
    },
    "available": true,
    "quality_score": -0.0406
  },
  "opponent": {
    "team": "TOR",
    "games": 156,
    "wins": 77,
    "losses": 79,
    "win_pct": 0.4936,
    "runs_scored": 629.0,
    "runs_allowed": 671.0,
    "run_differential": -42.0,
    "run_differential_per_game": -0.2692,
    "avg_runs_scored": 4.0321,
    "avg_runs_allowed": 4.3013,
    "offense_index": 0.8957,
    "defense_index": 1.0465,
    "current_streak": "W1",
    "recent": {
      "games": 10,
      "wins": 4,
      "losses": 6,
      "win_pct": 0.4,
      "avg_runs_scored": 4.0,
      "avg_runs_allowed": 4.5,
      "run_differential": -5.0
    },
    "available": true,
    "quality_score": -0.0733
  },
  "edges": {
    "quality_edge": 0.0327,
    "offense_edge": -0.0131,
    "opponent_offense_edge": -0.1043,
    "defense_strength": -0.0301,
    "opponent_defense_weakness": -0.0465,
    "recent_win_pct_edge": 0.1
  },
  "player_factors": {
    "ip": 1.0046,
    "run_prevention": 0.9847,
    "strikeout": 1.0093
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "666974",
    "profile": {
      "available": true,
      "pitcher_id": "666974",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 189.0,
        "k_percent": 21.8,
        "bb_percent": 5.6,
        "woba": 0.249,
        "xwoba": 0.282,
        "sweet_spot_percent": 25.7,
        "barrel_batted_rate": 5.9,
        "hard_hit_percent": 39.3,
        "avg_best_speed": 78.286,
        "avg_hyper_speed": 94.2096,
        "whiff_percent": 26.5,
        "swing_percent": 44.9
      },
      "league_medians": {
        "pa": 135.0,
        "k_percent": 22.0,
        "bb_percent": 9.1,
        "woba": 0.316,
        "xwoba": 0.311,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6329,
        "avg_hyper_speed": 93.8957,
        "whiff_percent": 25.0,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": 0.7378,
        "command_and_miss": 0.2371,
        "regression_edge": -0.9429,
        "xwoba_edge": 0.8286,
        "barrel_edge": 0.2889,
        "hard_hit_edge": -0.2,
        "whiff_edge": 0.2143,
        "bb_edge": 0.875,
        "pitch_design_score": 0.1485
      },
      "pitch_movement_profile": {
        "available": true,
        "pitcher_id": "666974",
        "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": 92.50369586074969,
          "release_spin_rate": 1988.7400126153143,
          "spin_axis": null,
          "horizontal_break_inches": 0.0,
          "induced_vertical_break_inches": 0.0,
          "vertical_break_with_gravity_inches": null,
          "release_pos_x": null,
          "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": 92.50369586074969,
            "release_spin_rate": 1988.7400126153143,
            "spin_axis": null,
            "horizontal_break_inches": 0.0,
            "induced_vertical_break_inches": 0.0,
            "vertical_break_with_gravity_inches": null,
            "release_pos_x": null,
            "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.5037,
          "release_spin_rate": 1988.74,
          "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.1485,
          "horizontal_break_edge": 0.0,
          "induced_vertical_break_edge": 0.0,
          "extension_edge": 0.0,
          "velocity_edge": 1.0609,
          "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.2967,
      "sample_weight": 0.756,
      "run_prevention_factor": 0.9748,
      "strikeout_factor": 1.0056,
      "walk_factor": 0.9471,
      "homer_factor": 0.9698,
      "woba_minus_xwoba": -0.033,
      "regression_flag": "negative_pitcher_regression",
      "espn_rank": {
        "available": false,
        "player_id": "666974",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 0.0,
        "factor": 0.9809,
        "adjusted": 0
      },
      "predicted_H": {
        "original": 0.0,
        "factor": 0.9809,
        "adjusted": 0
      },
      "predicted_BB": {
        "original": 0.0,
        "factor": 0.96,
        "adjusted": 0
      },
      "predicted_HR": {
        "original": 0.0,
        "factor": 0.9772,
        "adjusted": 0
      },
      "predicted_SO": {
        "original": 2.0,
        "factor": 1.0042,
        "adjusted": 2
      }
    }
  }
}
Recent Form Pitching
{
  "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": 6.0,
    "ER": 1,
    "H": 3,
    "BB": 2,
    "SO": 5,
    "HR": 1,
    "ERA": 1.5,
    "WHIP": 0.8333333333333334,
    "K9": 7.5,
    "HR9": 1.5,
    "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-18T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": true,
  "pitcher_id": "666974",
  "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": 92.50369586074969,
    "release_spin_rate": 1988.7400126153143,
    "spin_axis": null,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": null,
    "release_pos_x": null,
    "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": 92.50369586074969,
      "release_spin_rate": 1988.7400126153143,
      "spin_axis": null,
      "horizontal_break_inches": 0.0,
      "induced_vertical_break_inches": 0.0,
      "vertical_break_with_gravity_inches": null,
      "release_pos_x": null,
      "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.5037,
    "release_spin_rate": 1988.74,
    "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.1485,
    "horizontal_break_edge": 0.0,
    "induced_vertical_break_edge": 0.0,
    "extension_edge": 0.0,
    "velocity_edge": 1.0609,
    "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."
}
Player Form Blend
{
  "form_version": "player_form_v3_5_10_season",
  "method": "weighted_recent_form",
  "description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
  "weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "effective_weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 9.762,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.6613,
    "prior_weight": 0.3387
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "666974",
  "report_date": "20260921",
  "season_year": 2026,
  "rows_used": 64,
  "reference_playing_time": 0.667,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 3.1,
        "ER": 0.0,
        "R": 0.0,
        "H": 2.0,
        "BB": 2.0,
        "SO": 2.0,
        "HR": 0.0,
        "BF": 14.0,
        "Pitches": 53.0
      },
      "per_game": {
        "IP": 0.2,
        "ER": 0.0,
        "R": 0.0,
        "H": 0.4,
        "BB": 0.4,
        "SO": 0.4,
        "HR": 0.0,
        "BF": 2.8,
        "Pitches": 10.6
      },
      "rates": {
        "ERA": 0.0,
        "WHIP": 1.2,
        "ER_per_IP": 0.0,
        "H_per_IP": 0.6,
        "BB_per_IP": 0.6,
        "SO_per_IP": 0.6,
        "HR_per_IP": 0.0
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 6.0,
        "ER": 1.0,
        "R": 1.0,
        "H": 3.0,
        "BB": 2.0,
        "SO": 5.0,
        "HR": 1.0,
        "BF": 24.0,
        "Pitches": 98.0
      },
      "per_game": {
        "IP": 0.2,
        "ER": 0.1,
        "R": 0.1,
        "H": 0.3,
        "BB": 0.2,
        "SO": 0.5,
        "HR": 0.1,
        "BF": 2.4,
        "Pitches": 9.8
      },
      "rates": {
        "ERA": 1.5,
        "WHIP": 0.8333,
        "ER_per_IP": 0.16667,
        "H_per_IP": 0.5,
        "BB_per_IP": 0.33333,
        "SO_per_IP": 0.83333,
        "HR_per_IP": 0.16667
      }
    },
    "season": {
      "games": 64,
      "totals": {
        "IP": 48.0,
        "ER": 12.0,
        "R": 15.0,
        "H": 33.0,
        "BB": 11.0,
        "SO": 43.0,
        "HR": 2.0,
        "BF": 190.0,
        "Pitches": 736.0
      },
      "per_game": {
        "IP": 0.2,
        "ER": 0.1875,
        "R": 0.2344,
        "H": 0.5156,
        "BB": 0.1719,
        "SO": 0.6719,
        "HR": 0.0312,
        "BF": 2.9688,
        "Pitches": 11.5
      },
      "rates": {
        "ERA": 2.25,
        "WHIP": 0.9167,
        "ER_per_IP": 0.25,
        "H_per_IP": 0.6875,
        "BB_per_IP": 0.22917,
        "SO_per_IP": 0.89583,
        "HR_per_IP": 0.04167
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 0.2,
    "predicted_ER": 0.163,
    "predicted_H": 0.478,
    "predicted_BB": 0.276,
    "predicted_SO": 0.538,
    "predicted_HR": 0.063,
    "predicted_ERA": 2.1981,
    "predicted_WHIP": 1.1307
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.4931,
  "form_weight": 0.5069,
  "form_reliability": 0.6613,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 9.762,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.6613,
    "prior_weight": 0.3387
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 0.2,
      "form": 0.2,
      "final": 0.2,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 1.0,
      "form": 0.163,
      "final": 0.5757,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 1.0,
      "form": 0.478,
      "final": 0.7354,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 0.0,
      "form": 0.276,
      "final": 0.1399,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 1.0,
      "form": 0.538,
      "final": 0.7658,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 1.0,
      "form": 0.063,
      "final": 0.525,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 2.1981,
      "final": 2.1981,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 1.1307,
      "final": 1.1307,
      "source": "form_only"
    }
  }
}
Inning Pitch Details
{
  "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."
}
Coby Mayo (691723) · BATTER · DH · Team BAL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 424
All-history rows before 20260921: 424
System season_avg: 0.2310
Data season_avg (2026 season-to-date): 0.2358
Diff (system - data): -0.0048
System opponent_avg: 0.3160

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1420.0000.000Hitting_2B0.1320.000-0.1320.000
predicted_3B0.0250.0000.000Hitting_3B0.0310.000-0.0310.000
predicted_AB3.2424.0004.000Hitting_AB3.4013.0000.5991.000
predicted_AVG0.2310.2500.250Hitting_AVG0.2360.3330.014-0.083
predicted_BB0.2750.0000.000Hitting_BB0.2971.000-0.297-1.000
predicted_CS-0.0000.000BaseRunning_CS0.0000.0000.0000.000
predicted_H0.7501.0001.000Hitting_H0.8021.0000.1980.000
predicted_HR0.2001.0001.000Hitting_HR0.2170.0000.7831.000
predicted_OBP0.2910.2500.250Hitting_OBP0.3040.500-0.054-0.250
predicted_R0.5081.0001.000Hitting_R0.5750.0000.4251.000
predicted_RBI0.5252.0001.000Hitting_RBI0.5780.0001.4222.000
predicted_SLG0.4761.0001.000Hitting_SLG0.4840.3330.5160.667
predicted_SO1.0750.0001.000Hitting_SO1.1060.000-1.1060.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics11
Boosted Metrics8
Deboosted Metrics3
Better Metrics9
Worse Metrics2
Biggest Boostpredicted_RBI: 0.5250 -> 2.0000 (boost 1.4750, better)
Biggest Deboostpredicted_SO: 1.0750 -> 0.0000 (deboost -1.0750, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend76170predicted_AB: 3.2420 -> 3.3316 (boost 0.0896, better)predicted_SO: 1.0750 -> 0.9992 (deboost -0.0758, 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.
3team_form_snapshot00000--Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling63333predicted_AB: 3.3316 -> 4.0000 (boost 0.6684, better)predicted_BB: 0.3398 -> 0.0000 (deboost -0.3398, worse)AB rounded to 4 (raw=3.33), rates preserved: AVG=0.216 HR/AB=0.062
6bvp_blend00000--Sample-size BvP blend (BvP AB=5.0, weight=0.057, BvP AVG=0.400)
7consistency_constraints11010predicted_R: 0.5225 -> 1.0000 (boost 0.4775, better)-Enforced H<=AB, HR<=H, safety nets, derived R
8hitter_rate_engine64233predicted_BB: 0.0000 -> 0.3936 (boost 0.3936, better)predicted_RBI: 1.0000 -> 0.5800 (deboost -0.4200, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
9lineup_integer_allocation63342predicted_HR: 0.2160 -> 1.0000 (boost 0.7840, better)predicted_BB: 0.3936 -> 0.0000 (deboost -0.3936, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
10embedded_savant_player_context40404-predicted_HR: 1.0000 -> 0.0000 (deboost -1.0000, worse)Player Savant profile contributed to the team run-environment adjustment against the opposing starter
11simulation_box_score_reference32130predicted_HR: 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
12current_json_final33030predicted_SLG: 0.4420 -> 0.4993 (boost 0.0573, better)-Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "691723",
  "player_name": "Coby Mayo",
  "position": "DH",
  "team": "BAL",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.142,
        "predicted_3B": 0.025,
        "predicted_AB": 3.242,
        "predicted_AVG": 0.231,
        "predicted_BB": 0.275,
        "predicted_H": 0.75,
        "predicted_HR": 0.2,
        "predicted_OBP": 0.291,
        "predicted_R": 0.508,
        "predicted_RBI": 0.525,
        "predicted_SLG": 0.476,
        "predicted_SO": 1.075
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.1898,
        "predicted_3B": 0.0211,
        "predicted_AB": 3.3316,
        "predicted_AVG": 0.2445,
        "predicted_BB": 0.3396,
        "predicted_H": 0.8168,
        "predicted_HBP": 0.027,
        "predicted_HR": 0.206,
        "predicted_OBP": 0.3142,
        "predicted_R": 0.5226,
        "predicted_RBI": 0.5289,
        "predicted_SLG": 0.4997,
        "predicted_SO": 0.9992
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.142,
          "after": 0.1898,
          "delta": 0.0478,
          "percent_delta": 0.3366,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.025,
          "after": 0.0211,
          "delta": -0.0039,
          "percent_delta": -0.156,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 3.242,
          "after": 3.3316,
          "delta": 0.0896,
          "percent_delta": 0.0276,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.231,
          "after": 0.2445,
          "delta": 0.0135,
          "percent_delta": 0.0584,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.275,
          "after": 0.3396,
          "delta": 0.0646,
          "percent_delta": 0.2349,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.75,
          "after": 0.8168,
          "delta": 0.0668,
          "percent_delta": 0.0891,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.2,
          "after": 0.206,
          "delta": 0.006,
          "percent_delta": 0.03,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.291,
          "after": 0.3142,
          "delta": 0.0232,
          "percent_delta": 0.0797,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.508,
          "after": 0.5226,
          "delta": 0.0146,
          "percent_delta": 0.0287,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.525,
          "after": 0.5289,
          "delta": 0.0039,
          "percent_delta": 0.0074,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.476,
          "after": 0.4997,
          "delta": 0.0237,
          "percent_delta": 0.0498,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.075,
          "after": 0.9992,
          "delta": -0.0758,
          "percent_delta": -0.0705,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 7,
        "boosted_metrics": 6,
        "deboosted_metrics": 1,
        "better_metrics": 7,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_AB",
          "before": 3.242,
          "after": 3.3316,
          "delta": 0.0896,
          "percent_delta": 0.0276,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.075,
          "after": 0.9992,
          "delta": -0.0758,
          "percent_delta": -0.0705,
          "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": 120
      }
    },
    {
      "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.1898,
        "predicted_3B": 0.0211,
        "predicted_AB": 3.3316,
        "predicted_AVG": 0.245,
        "predicted_BB": 0.3398,
        "predicted_H": 0.8162,
        "predicted_HBP": 0.027,
        "predicted_HR": 0.2051,
        "predicted_OBP": 0.3149,
        "predicted_R": 0.5225,
        "predicted_RBI": 0.5288,
        "predicted_SLG": 0.4993,
        "predicted_SO": 0.9987
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1898,
          "after": 0.1898,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.0211,
          "after": 0.0211,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 3.3316,
          "after": 3.3316,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2445,
          "after": 0.245,
          "delta": 0.0005,
          "percent_delta": 0.002,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.3396,
          "after": 0.3398,
          "delta": 0.0002,
          "percent_delta": 0.0006,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.8168,
          "after": 0.8162,
          "delta": -0.0006,
          "percent_delta": -0.0007,
          "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.206,
          "after": 0.2051,
          "delta": -0.0009,
          "percent_delta": -0.0044,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3142,
          "after": 0.3149,
          "delta": 0.0007,
          "percent_delta": 0.0022,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.5226,
          "after": 0.5225,
          "delta": -0.0001,
          "percent_delta": -0.0002,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5289,
          "after": 0.5288,
          "delta": -0.0001,
          "percent_delta": -0.0002,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4997,
          "after": 0.4993,
          "delta": -0.0004,
          "percent_delta": -0.0008,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.9992,
          "after": 0.9987,
          "delta": -0.0005,
          "percent_delta": -0.0005,
          "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.33), rates preserved: AVG=0.216 HR/AB=0.062",
      "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.1898,
          "after": 0.0,
          "delta": -0.1898,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0211,
          "after": 0.0,
          "delta": -0.0211,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 3.3316,
          "after": 4.0,
          "delta": 0.6684,
          "percent_delta": 0.2006,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3398,
          "after": 0.0,
          "delta": -0.3398,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8162,
          "after": 1.0,
          "delta": 0.1838,
          "percent_delta": 0.2252,
          "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.2051,
          "after": 0.0,
          "delta": -0.2051,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5288,
          "after": 1.0,
          "delta": 0.4712,
          "percent_delta": 0.8911,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.9987,
          "after": 1.0,
          "delta": 0.0013,
          "percent_delta": 0.0013,
          "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_AB",
          "before": 3.3316,
          "after": 4.0,
          "delta": 0.6684,
          "percent_delta": 0.2006,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.3398,
          "after": 0.0,
          "delta": -0.3398,
          "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.400)",
      "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.5225,
          "after": 1.0,
          "delta": 0.4775,
          "percent_delta": 0.9139,
          "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.5225,
          "after": 1.0,
          "delta": 0.4775,
          "percent_delta": 0.9139,
          "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.1577,
        "predicted_3B": 0.0171,
        "predicted_BB": 0.3936,
        "predicted_H": 0.7895,
        "predicted_HR": 0.216,
        "predicted_RBI": 0.58,
        "predicted_SO": 1.2597
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1577,
          "delta": 0.1577,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0171,
          "delta": 0.0171,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.3936,
          "delta": 0.3936,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7895,
          "delta": -0.2105,
          "percent_delta": -0.2105,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.216,
          "delta": 0.216,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.58,
          "delta": -0.42,
          "percent_delta": -0.42,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 1.2597,
          "delta": 0.2597,
          "percent_delta": 0.2597,
          "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.3936,
          "delta": 0.3936,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.58,
          "delta": -0.42,
          "percent_delta": -0.42,
          "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.1577,
          "after": 0.0,
          "delta": -0.1577,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0171,
          "after": 0.0,
          "delta": -0.0171,
          "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.3936,
          "after": 0.0,
          "delta": -0.3936,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.7895,
          "after": 1.0,
          "delta": 0.2105,
          "percent_delta": 0.2666,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.216,
          "after": 1.0,
          "delta": 0.784,
          "percent_delta": 3.6296,
          "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.58,
          "after": 1.0,
          "delta": 0.42,
          "percent_delta": 0.7241,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.2597,
          "after": 1.0,
          "delta": -0.2597,
          "percent_delta": -0.2062,
          "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.216,
          "after": 1.0,
          "delta": 0.784,
          "percent_delta": 3.6296,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.3936,
          "after": 0.0,
          "delta": -0.3936,
          "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.214,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.295,
        "predicted_R": 1.0,
        "predicted_RBI": 1.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.245,
          "after": 0.214,
          "delta": -0.031,
          "percent_delta": -0.1265,
          "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.3149,
          "after": 0.295,
          "delta": -0.0199,
          "percent_delta": -0.0632,
          "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.4993,
          "after": 0.442,
          "delta": -0.0573,
          "percent_delta": -0.1148,
          "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": 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": 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": 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": 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": 3,
        "boosted_metrics": 2,
        "deboosted_metrics": 1,
        "better_metrics": 3,
        "worse_metrics": 0,
        "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": {
          "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.245,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_DH": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 1.0,
        "predicted_OBP": 0.3149,
        "predicted_R": 1.0,
        "predicted_RBI": 2.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.4993,
        "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.214,
          "after": 0.245,
          "delta": 0.031,
          "percent_delta": 0.1448,
          "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.295,
          "after": 0.3149,
          "delta": 0.0199,
          "percent_delta": 0.0674,
          "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.442,
          "after": 0.4993,
          "delta": 0.0573,
          "percent_delta": 0.1296,
          "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.442,
          "after": 0.4993,
          "delta": 0.0573,
          "percent_delta": 0.1296,
          "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.142,
        "after": 0.0,
        "delta": -0.142,
        "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.242,
        "after": 4.0,
        "delta": 0.758,
        "percent_delta": 0.2338,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.231,
        "after": 0.245,
        "delta": 0.014,
        "percent_delta": 0.0606,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.275,
        "after": 0.0,
        "delta": -0.275,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.75,
        "after": 1.0,
        "delta": 0.25,
        "percent_delta": 0.3333,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "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.291,
        "after": 0.3149,
        "delta": 0.0239,
        "percent_delta": 0.0821,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.508,
        "after": 1.0,
        "delta": 0.492,
        "percent_delta": 0.9685,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.525,
        "after": 2.0,
        "delta": 1.475,
        "percent_delta": 2.8095,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.476,
        "after": 0.4993,
        "delta": 0.0233,
        "percent_delta": 0.0489,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 1.075,
        "after": 0.0,
        "delta": -1.075,
        "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_RBI",
        "before": 0.525,
        "after": 2.0,
        "delta": 1.475,
        "percent_delta": 2.8095,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_SO",
        "before": 1.075,
        "after": 0.0,
        "delta": -1.075,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "better"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.142-
predicted_3B0.025-
predicted_AB3.242-
predicted_AVG0.231-
predicted_BB0.275-
predicted_H0.750-
predicted_HR0.200-
predicted_OBP0.291-
predicted_R0.508-
predicted_RBI0.525-
predicted_SLG0.476-
predicted_SO1.075-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.1900.048
predicted_3B0.021-0.004
predicted_AB3.3320.090
predicted_AVG0.2440.013
predicted_BB0.3400.065
predicted_H0.8170.067
predicted_HBP0.027-
predicted_HR0.2060.006
predicted_OBP0.3140.023
predicted_R0.5230.015
predicted_RBI0.5290.004
predicted_SLG0.5000.024
predicted_SO0.999-0.076
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1900.000
predicted_3B0.0210.000
predicted_AB3.3320.000
predicted_AVG0.2450.001
predicted_BB0.3400.000
predicted_H0.816-0.001
predicted_HBP0.0270.000
predicted_HR0.205-0.001
predicted_OBP0.3150.001
predicted_R0.522-0.000
predicted_RBI0.529-0.000
predicted_SLG0.499-0.000
predicted_SO0.999-0.000
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 4 (raw=3.33), rates preserved: AVG=0.216 HR/AB=0.062

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB4.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI1.000-
SB0.000-
SO1.000-
6. bvp_blend

Sample-size BvP blend (BvP AB=5.0, weight=0.057, BvP AVG=0.400)

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
H1.0000.000
HR0.0000.000
RBI1.0000.000
SO1.0000.000
7. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R1.000-
RBI1.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
8. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1580.158
3B0.0170.017
BB0.3940.394
H0.789-0.211
HR0.2160.216
RBI0.580-0.420
SO1.2600.260
9. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.158
3B0.000-0.017
AB4.0000.000
BB0.000-0.394
H1.0000.211
HR1.0000.784
R1.0000.000
RBI1.0000.420
SO1.000-0.260
10. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.190
predicted_3B0.000-0.021
predicted_AB4.0000.668
predicted_AVG0.214-0.031
predicted_BB0.000-0.340
predicted_H1.0000.184
predicted_HR0.000-0.205
predicted_OBP0.295-0.020
predicted_R1.0000.478
predicted_RBI1.0000.471
predicted_SLG0.442-0.057
predicted_SO1.0000.001
11. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.0000.000
H1.0000.000
HBP0.0000.000
HR1.0000.000
PA4.000-
R1.0000.000
RBI2.0001.000
SB0.0000.000
SF0.0000.000
SO0.000-1.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 120
Reference playing time: 3.803
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-18.0006.0003.0000.0001.0003.0003.0004.0002.0000.33330.45450.66670.33330.05560.16670.22220.1111
last_100.2010-38.00011.0003.0000.0003.0005.0006.0006.0008.0000.28950.38640.60530.28950.07900.13160.15790.2105
season0.60120-389.00090.00017.0003.00024.00063.00061.00033.000129.0000.23140.29910.47560.23140.06170.16200.08480.3316
Weighted Prediction From Real Data
MetricValue
predicted_2B0.2530
predicted_3B0.0160
predicted_AB3.4500
predicted_AVG0.2624
predicted_BB0.4250
predicted_H0.9050
predicted_HBP0.0270
predicted_HR0.2140
predicted_OBP0.3449
predicted_R0.5420
predicted_RBI0.5340
predicted_SLG0.5311
predicted_SO0.8990
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.14200.25300.1898model_form_blend
predicted_3B0.02500.01600.0211model_form_blend
predicted_AB3.24203.45003.3316model_form_blend
predicted_AVG0.23100.26240.2445model_form_blend
predicted_BB0.27500.42500.3396model_form_blend
predicted_H0.75000.90500.8168model_form_blend
predicted_HBP-0.02700.0270form_only
predicted_HR0.20000.21400.2060model_form_blend
predicted_OBP0.29100.34490.3142model_form_blend
predicted_R0.50800.54200.5226model_form_blend
predicted_RBI0.52500.53400.5289model_form_blend
predicted_SLG0.47600.53110.4997model_form_blend
predicted_SO1.07500.89900.9992model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date424
Season rows before report date424
Report year2026
Profile rows used120
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA4
AB4
H1
2B0
3B0
HR1
R1
RBI2
BB0
SO0
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB3
Hitting_AVG0.333
Hitting_BB1
Hitting_GIDP0
Hitting_H1
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB1
Hitting_battingOrder4
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayed3B
gameID20260920_MIL@BAL
game_typefull
mlbID691723
playerID691723
playerNameCoby Mayo
pos3B
startedTrue
startingPosition3B
teamBAL
teamID3
game_date2026-09-20
sl_k_percent30.3
sl_bb_percent7.7
sl_woba0.331
sl_xwoba0.335
sl_xba0.234
sl_xslg0.475
sl_sweet_spot_percent34.1
sl_barrel_batted_rate13.4
sl_hard_hit_percent47.9
sl_exit_velocity_avg91.4
sl_launch_angle_avg19.4
sl_whiff_percent29.9
sl_swing_percent46.7
Dylan Beavers (687637) · BATTER · LF · Team BAL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 333
All-history rows before 20260921: 333
System season_avg: 0.2360
Data season_avg (2026 season-to-date): 0.2487
Diff (system - data): -0.0127
System opponent_avg: 0.2860

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.2130.0001.000Hitting_2B0.2400.000-0.2400.000
predicted_3B0.0000.0000.000Hitting_3B0.0000.0000.0000.000
predicted_AB3.9004.0004.000Hitting_AB3.5264.0000.4740.000
predicted_AVG0.2130.0000.250Hitting_AVG0.2490.000-0.2490.000
predicted_BB0.3090.0001.000Hitting_BB0.3420.000-0.3420.000
predicted_CS-0.0000.000BaseRunning_CS0.0630.000-0.0630.000
predicted_H0.8300.0001.000Hitting_H0.8770.000-0.8770.000
predicted_HR0.0800.0000.000Hitting_HR0.0840.000-0.0840.000
predicted_OBP0.2660.0000.400Hitting_OBP0.3200.000-0.3200.000
predicted_R0.3720.0000.000Hitting_R0.4080.000-0.4080.000
predicted_RBI0.4000.0001.000Hitting_RBI0.4500.000-0.4500.000
predicted_SLG0.3230.0000.500Hitting_SLG0.3880.000-0.3880.000
predicted_SO0.9470.0001.000Hitting_SO0.9882.000-0.988-2.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics10
Boosted Metrics1
Deboosted Metrics9
Better Metrics2
Worse Metrics8
Biggest Boostpredicted_AB: 3.9000 -> 4.0000 (boost 0.1000, better)
Biggest Deboostpredicted_SO: 0.9470 -> 0.0000 (deboost -0.9470, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend51405predicted_SO: 0.9470 -> 1.0049 (boost 0.0579, worse)predicted_AB: 3.9000 -> 3.7488 (deboost -0.1512, 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.
3team_form_snapshot00000--Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling62424predicted_AB: 3.7488 -> 4.0000 (boost 0.2512, better)predicted_RBI: 0.3898 -> 0.0000 (deboost -0.3898, worse)AB rounded to 4 (raw=3.90), rates preserved: AVG=0.173 HR/AB=0.019
6consistency_constraints10101-predicted_R: 0.3886 -> 0.0000 (deboost -0.3886, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine65142predicted_RBI: 0.0000 -> 0.4984 (boost 0.4984, 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
8lineup_integer_allocation64251predicted_2B: 0.2006 -> 1.0000 (boost 0.7994, better)predicted_SO: 1.2347 -> 1.0000 (deboost -0.2347, better)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context63333predicted_SLG: 0.3170 -> 0.3510 (boost 0.0340, 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
10simulation_box_score_reference20211-predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse)Attached simulation box score without overwriting model prediction
11current_json_final30303-predicted_SLG: 0.3510 -> 0.3170 (deboost -0.0340, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "687637",
  "player_name": "Dylan Beavers",
  "position": "LF",
  "team": "BAL",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.213,
        "predicted_3B": 0.0,
        "predicted_AB": 3.9,
        "predicted_AVG": 0.213,
        "predicted_BB": 0.309,
        "predicted_H": 0.83,
        "predicted_HR": 0.08,
        "predicted_OBP": 0.266,
        "predicted_R": 0.372,
        "predicted_RBI": 0.4,
        "predicted_SLG": 0.323,
        "predicted_SO": 0.947
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.1964,
        "predicted_3B": 0.0004,
        "predicted_AB": 3.7488,
        "predicted_AVG": 0.2035,
        "predicted_BB": 0.315,
        "predicted_H": 0.764,
        "predicted_HBP": 0.016,
        "predicted_HR": 0.0762,
        "predicted_OBP": 0.2638,
        "predicted_R": 0.3886,
        "predicted_RBI": 0.3898,
        "predicted_SLG": 0.3135,
        "predicted_SO": 1.0049
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.213,
          "after": 0.1964,
          "delta": -0.0166,
          "percent_delta": -0.0779,
          "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.9,
          "after": 3.7488,
          "delta": -0.1512,
          "percent_delta": -0.0388,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.213,
          "after": 0.2035,
          "delta": -0.0095,
          "percent_delta": -0.0446,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.309,
          "after": 0.315,
          "delta": 0.006,
          "percent_delta": 0.0194,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.83,
          "after": 0.764,
          "delta": -0.066,
          "percent_delta": -0.0795,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.08,
          "after": 0.0762,
          "delta": -0.0038,
          "percent_delta": -0.0475,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.266,
          "after": 0.2638,
          "delta": -0.0022,
          "percent_delta": -0.0083,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.372,
          "after": 0.3886,
          "delta": 0.0166,
          "percent_delta": 0.0446,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4,
          "after": 0.3898,
          "delta": -0.0102,
          "percent_delta": -0.0255,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.323,
          "after": 0.3135,
          "delta": -0.0095,
          "percent_delta": -0.0294,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.947,
          "after": 1.0049,
          "delta": 0.0579,
          "percent_delta": 0.0611,
          "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.947,
          "after": 1.0049,
          "delta": 0.0579,
          "percent_delta": 0.0611,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 3.9,
          "after": 3.7488,
          "delta": -0.1512,
          "percent_delta": -0.0388,
          "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.1964,
        "predicted_3B": 0.0004,
        "predicted_AB": 3.7488,
        "predicted_AVG": 0.2037,
        "predicted_BB": 0.3152,
        "predicted_H": 0.7635,
        "predicted_HBP": 0.016,
        "predicted_HR": 0.0758,
        "predicted_OBP": 0.2654,
        "predicted_R": 0.3886,
        "predicted_RBI": 0.3898,
        "predicted_SLG": 0.317,
        "predicted_SO": 1.0044
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1964,
          "after": 0.1964,
          "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.7488,
          "after": 3.7488,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2035,
          "after": 0.2037,
          "delta": 0.0002,
          "percent_delta": 0.001,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.315,
          "after": 0.3152,
          "delta": 0.0002,
          "percent_delta": 0.0006,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.764,
          "after": 0.7635,
          "delta": -0.0005,
          "percent_delta": -0.0007,
          "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.0762,
          "after": 0.0758,
          "delta": -0.0004,
          "percent_delta": -0.0052,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2638,
          "after": 0.2654,
          "delta": 0.0016,
          "percent_delta": 0.0061,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.3886,
          "after": 0.3886,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3898,
          "after": 0.3898,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3135,
          "after": 0.317,
          "delta": 0.0035,
          "percent_delta": 0.0112,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 1.0049,
          "after": 1.0044,
          "delta": -0.0005,
          "percent_delta": -0.0005,
          "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.173 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": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1964,
          "after": 0.0,
          "delta": -0.1964,
          "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.7488,
          "after": 4.0,
          "delta": 0.2512,
          "percent_delta": 0.067,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3152,
          "after": 0.0,
          "delta": -0.3152,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.7635,
          "after": 1.0,
          "delta": 0.2365,
          "percent_delta": 0.3098,
          "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.0758,
          "after": 0.0,
          "delta": -0.0758,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3898,
          "after": 0.0,
          "delta": -0.3898,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0044,
          "after": 1.0,
          "delta": -0.0044,
          "percent_delta": -0.0044,
          "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": 3.7488,
          "after": 4.0,
          "delta": 0.2512,
          "percent_delta": 0.067,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.3898,
          "after": 0.0,
          "delta": -0.3898,
          "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.3886,
          "after": 0.0,
          "delta": -0.3886,
          "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.3886,
          "after": 0.0,
          "delta": -0.3886,
          "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.2006,
        "predicted_3B": 0.0105,
        "predicted_BB": 0.4697,
        "predicted_H": 0.8403,
        "predicted_HR": 0.1145,
        "predicted_RBI": 0.4984,
        "predicted_SO": 1.2347
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.2006,
          "delta": 0.2006,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0105,
          "delta": 0.0105,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.4697,
          "delta": 0.4697,
          "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.1145,
          "delta": 0.1145,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.4984,
          "delta": 0.4984,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 1.2347,
          "delta": 0.2347,
          "percent_delta": 0.2347,
          "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.4984,
          "delta": 0.4984,
          "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": 1.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.2006,
          "after": 1.0,
          "delta": 0.7994,
          "percent_delta": 3.985,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0105,
          "after": 0.0,
          "delta": -0.0105,
          "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.4697,
          "after": 1.0,
          "delta": 0.5303,
          "percent_delta": 1.129,
          "direction": "boost",
          "projection_effect": "better",
          "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.1145,
          "after": 0.0,
          "delta": -0.1145,
          "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.4984,
          "after": 1.0,
          "delta": 0.5016,
          "percent_delta": 1.0064,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.2347,
          "after": 1.0,
          "delta": -0.2347,
          "percent_delta": -0.1901,
          "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.2006,
          "after": 1.0,
          "delta": 0.7994,
          "percent_delta": 3.985,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.2347,
          "after": 1.0,
          "delta": -0.2347,
          "percent_delta": -0.1901,
          "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.21,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.298,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.351,
        "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.2037,
          "after": 0.21,
          "delta": 0.0063,
          "percent_delta": 0.0309,
          "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.2654,
          "after": 0.298,
          "delta": 0.0326,
          "percent_delta": 0.1228,
          "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.317,
          "after": 0.351,
          "delta": 0.034,
          "percent_delta": 0.1073,
          "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": 3,
        "deboosted_metrics": 3,
        "better_metrics": 3,
        "worse_metrics": 3,
        "biggest_boost": {
          "metric": "predicted_SLG",
          "before": 0.317,
          "after": 0.351,
          "delta": 0.034,
          "percent_delta": 0.1073,
          "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": 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.2037,
        "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.2654,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.317,
        "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.21,
          "after": 0.2037,
          "delta": -0.0063,
          "percent_delta": -0.0302,
          "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.298,
          "after": 0.2654,
          "delta": -0.0326,
          "percent_delta": -0.1094,
          "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.351,
          "after": 0.317,
          "delta": -0.034,
          "percent_delta": -0.097,
          "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.351,
          "after": 0.317,
          "delta": -0.034,
          "percent_delta": -0.097,
          "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.213,
        "after": 0.0,
        "delta": -0.213,
        "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.9,
        "after": 4.0,
        "delta": 0.1,
        "percent_delta": 0.0256,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.213,
        "after": 0.2037,
        "delta": -0.0093,
        "percent_delta": -0.0437,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.309,
        "after": 0.0,
        "delta": -0.309,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.83,
        "after": 0.0,
        "delta": -0.83,
        "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.266,
        "after": 0.2654,
        "delta": -0.0006,
        "percent_delta": -0.0023,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_R",
        "before": 0.372,
        "after": 0.0,
        "delta": -0.372,
        "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.323,
        "after": 0.317,
        "delta": -0.006,
        "percent_delta": -0.0186,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.947,
        "after": 0.0,
        "delta": -0.947,
        "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.9,
        "after": 4.0,
        "delta": 0.1,
        "percent_delta": 0.0256,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_SO",
        "before": 0.947,
        "after": 0.0,
        "delta": -0.947,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.213-
predicted_3B0.000-
predicted_AB3.900-
predicted_AVG0.213-
predicted_BB0.309-
predicted_H0.830-
predicted_HR0.080-
predicted_OBP0.266-
predicted_R0.372-
predicted_RBI0.400-
predicted_SLG0.323-
predicted_SO0.947-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.196-0.017
predicted_3B0.0000.000
predicted_AB3.749-0.151
predicted_AVG0.203-0.010
predicted_BB0.3150.006
predicted_H0.764-0.066
predicted_HBP0.016-
predicted_HR0.076-0.004
predicted_OBP0.264-0.002
predicted_R0.3890.017
predicted_RBI0.390-0.010
predicted_SLG0.314-0.010
predicted_SO1.0050.058
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1960.000
predicted_3B0.0000.000
predicted_AB3.7490.000
predicted_AVG0.2040.000
predicted_BB0.3150.000
predicted_H0.763-0.001
predicted_HBP0.0160.000
predicted_HR0.076-0.000
predicted_OBP0.2650.002
predicted_R0.3890.000
predicted_RBI0.3900.000
predicted_SLG0.3170.004
predicted_SO1.004-0.000
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 4 (raw=3.90), rates preserved: AVG=0.173 HR/AB=0.019

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB4.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.2010.201
3B0.0110.011
BB0.4700.470
H0.840-0.160
HR0.1150.115
RBI0.4980.498
SO1.2350.235
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B1.0000.799
3B0.000-0.011
AB4.0000.000
BB1.0000.530
H1.0000.160
HR0.000-0.115
R0.0000.000
RBI1.0000.502
SO1.000-0.235
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.196
predicted_3B0.000-0.000
predicted_AB4.0000.251
predicted_AVG0.2100.006
predicted_BB0.000-0.315
predicted_H1.0000.237
predicted_HR0.000-0.076
predicted_OBP0.2980.033
predicted_R0.000-0.389
predicted_RBI0.000-0.390
predicted_SLG0.3510.034
predicted_SO1.000-0.004
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.000-1.000
3B0.0000.000
AB4.0000.000
BB0.000-1.000
CS0.0000.000
H0.000-1.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R0.0000.000
RBI0.000-1.000
SB0.0000.000
SF0.0000.000
SO0.000-1.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 94
Reference playing time: 3.900
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-19.0001.0000.0000.0000.0000.0002.0002.0007.0000.05260.14290.05260.05260.00000.00000.10530.3684
last_100.2010-42.0007.0002.0000.0001.0006.0005.0003.00013.0000.16670.22220.28570.16670.02380.14290.07140.3095
season0.6094-301.00071.00020.0000.0007.00038.00035.00029.00089.0000.23590.30630.37210.23590.02330.12630.09640.2957
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1740
predicted_3B0.0010
predicted_AB3.5450
predicted_AVG0.1906
predicted_BB0.3230
predicted_H0.6750
predicted_HBP0.0160
predicted_HR0.0710
predicted_OBP0.2608
predicted_R0.4110
predicted_RBI0.3760
predicted_SLG0.3006
predicted_SO1.0830
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.21300.17400.1964model_form_blend
predicted_3B0.00000.00100.0004model_form_blend
predicted_AB3.90003.54503.7488model_form_blend
predicted_AVG0.21300.19060.2035model_form_blend
predicted_BB0.30900.32300.3150model_form_blend
predicted_H0.83000.67500.7640model_form_blend
predicted_HBP-0.01600.0160form_only
predicted_HR0.08000.07100.0762model_form_blend
predicted_OBP0.26600.26080.2638model_form_blend
predicted_R0.37200.41100.3886model_form_blend
predicted_RBI0.40000.37600.3898model_form_blend
predicted_SLG0.32300.30060.3135model_form_blend
predicted_SO0.94701.08301.0049model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date333
Season rows before report date333
Report year2026
Profile rows used94
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA4
AB4
H0
2B0
3B0
HR0
R0
RBI0
BB0
SO0
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB4
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO2
Hitting_TB0
Hitting_battingOrder1
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedLF
gameID20260920_MIL@BAL
game_typefull
mlbID687637
playerID687637
playerNameDylan Beavers
posLF
startedTrue
startingPositionLF
teamBAL
teamID3
game_date2026-09-20
sl_k_percent26.2
sl_bb_percent9.5
sl_woba0.305
sl_xwoba0.297
sl_xba0.225
sl_xslg0.369
sl_sweet_spot_percent38.3
sl_barrel_batted_rate7.0
sl_hard_hit_percent37.4
sl_exit_velocity_avg87.5
sl_launch_angle_avg18.3
sl_whiff_percent24.9
sl_swing_percent42.0
Christian Encarnacion-Strand (687952) · BATTER · 3B · Team BAL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 187
All-history rows before 20260921: 187
System season_avg: 0.2560
Data season_avg (2026 season-to-date): 0.2585
Diff (system - data): -0.0025
System opponent_avg: 0.3640

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.2350.0000.000Hitting_2B0.2570.000-0.2570.000
predicted_3B0.0000.0000.000Hitting_3B0.0000.0000.0000.000
predicted_AB3.4514.0004.000Hitting_AB3.7860.0000.2144.000
predicted_AVG0.2270.0000.250Hitting_AVG0.258--0.258-
predicted_BB0.1960.0000.000Hitting_BB0.2351.000-0.235-1.000
predicted_CS-0.0000.000BaseRunning_CS0.0210.000-0.0210.000
predicted_H0.3600.0001.000Hitting_H0.9790.000-0.9790.000
predicted_HR0.1000.0000.000Hitting_HR0.1930.000-0.1930.000
predicted_OBP0.2670.0000.250Hitting_OBP0.3091.000-0.309-1.000
predicted_R0.4120.0001.000Hitting_R0.4440.000-0.4440.000
predicted_RBI0.2900.0001.000Hitting_RBI0.7330.000-0.7330.000
predicted_SLG0.4480.0000.250Hitting_SLG0.479--0.479-
predicted_SO1.0591.0001.000Hitting_SO1.1660.000-0.1661.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics11
Boosted Metrics1
Deboosted Metrics10
Better Metrics2
Worse Metrics9
Biggest Boostpredicted_AB: 3.4510 -> 4.0000 (boost 0.5490, better)
Biggest Deboostpredicted_R: 0.4120 -> 0.0000 (deboost -0.4120, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend77070predicted_H: 0.3600 -> 0.6074 (boost 0.2474, 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.
3team_form_snapshot30303-predicted_SLG: 0.4771 -> 0.3688 (deboost -0.1083, worse)Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling82635predicted_AB: 3.5343 -> 4.0000 (boost 0.4657, better)predicted_RBI: 0.4328 -> 0.0000 (deboost -0.4328, worse)AB rounded to 4 (raw=3.53), rates preserved: AVG=0.151 HR/AB=0.041
6consistency_constraints10101-predicted_R: 0.4818 -> 0.0000 (deboost -0.4818, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine65142predicted_RBI: 0.0000 -> 0.5822 (boost 0.5822, better)predicted_H: 1.0000 -> 0.8061 (deboost -0.1939, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation73443predicted_R: 0.0000 -> 1.0000 (boost 1.0000, better)predicted_BB: 0.3322 -> 0.0000 (deboost -0.3322, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context53232predicted_OBP: 0.2135 -> 0.2850 (boost 0.0715, better)predicted_R: 1.0000 -> 0.0000 (deboost -1.0000, worse)Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10simulation_box_score_reference10101-predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse)Attached simulation box score without overwriting model prediction
11current_json_final30303-predicted_OBP: 0.2850 -> 0.2135 (deboost -0.0715, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "687952",
  "player_name": "Christian Encarnacion-Strand",
  "position": "3B",
  "team": "BAL",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.235,
        "predicted_3B": 0.0,
        "predicted_AB": 3.451,
        "predicted_AVG": 0.227,
        "predicted_BB": 0.196,
        "predicted_H": 0.36,
        "predicted_HR": 0.1,
        "predicted_OBP": 0.267,
        "predicted_R": 0.412,
        "predicted_RBI": 0.29,
        "predicted_SLG": 0.448,
        "predicted_SO": 1.059
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.2604,
        "predicted_3B": 0.0008,
        "predicted_AB": 3.5343,
        "predicted_AVG": 0.242,
        "predicted_BB": 0.1874,
        "predicted_H": 0.6074,
        "predicted_HBP": 0.101,
        "predicted_HR": 0.1455,
        "predicted_OBP": 0.2847,
        "predicted_R": 0.4818,
        "predicted_RBI": 0.4328,
        "predicted_SLG": 0.4771,
        "predicted_SO": 1.0812
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.235,
          "after": 0.2604,
          "delta": 0.0254,
          "percent_delta": 0.1081,
          "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.451,
          "after": 3.5343,
          "delta": 0.0833,
          "percent_delta": 0.0241,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.227,
          "after": 0.242,
          "delta": 0.015,
          "percent_delta": 0.0661,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.196,
          "after": 0.1874,
          "delta": -0.0086,
          "percent_delta": -0.0439,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.36,
          "after": 0.6074,
          "delta": 0.2474,
          "percent_delta": 0.6872,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1,
          "after": 0.1455,
          "delta": 0.0455,
          "percent_delta": 0.455,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.267,
          "after": 0.2847,
          "delta": 0.0177,
          "percent_delta": 0.0663,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.412,
          "after": 0.4818,
          "delta": 0.0698,
          "percent_delta": 0.1694,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.29,
          "after": 0.4328,
          "delta": 0.1428,
          "percent_delta": 0.4924,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.448,
          "after": 0.4771,
          "delta": 0.0291,
          "percent_delta": 0.065,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.059,
          "after": 1.0812,
          "delta": 0.0222,
          "percent_delta": 0.021,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        }
      ],
      "summary": {
        "changed_metrics": 7,
        "boosted_metrics": 7,
        "deboosted_metrics": 0,
        "better_metrics": 7,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_H",
          "before": 0.36,
          "after": 0.6074,
          "delta": 0.2474,
          "percent_delta": 0.6872,
          "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": 51
      }
    },
    {
      "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.2604,
        "predicted_3B": 0.0008,
        "predicted_AB": 3.5343,
        "predicted_AVG": 0.1717,
        "predicted_BB": 0.1875,
        "predicted_H": 0.607,
        "predicted_HBP": 0.101,
        "predicted_HR": 0.1448,
        "predicted_OBP": 0.2135,
        "predicted_R": 0.4818,
        "predicted_RBI": 0.4328,
        "predicted_SLG": 0.3688,
        "predicted_SO": 1.0807
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.2604,
          "after": 0.2604,
          "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.5343,
          "after": 3.5343,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.242,
          "after": 0.1717,
          "delta": -0.0703,
          "percent_delta": -0.2905,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.1874,
          "after": 0.1875,
          "delta": 0.0001,
          "percent_delta": 0.0005,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.6074,
          "after": 0.607,
          "delta": -0.0004,
          "percent_delta": -0.0007,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HBP",
          "before": 0.101,
          "after": 0.101,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.1455,
          "after": 0.1448,
          "delta": -0.0007,
          "percent_delta": -0.0048,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2847,
          "after": 0.2135,
          "delta": -0.0712,
          "percent_delta": -0.2501,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.4818,
          "after": 0.4818,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4328,
          "after": 0.4328,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4771,
          "after": 0.3688,
          "delta": -0.1083,
          "percent_delta": -0.227,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0812,
          "after": 1.0807,
          "delta": -0.0005,
          "percent_delta": -0.0005,
          "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.4771,
          "after": 0.3688,
          "delta": -0.1083,
          "percent_delta": -0.227,
          "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.53), rates preserved: AVG=0.151 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.2604,
          "after": 0.0,
          "delta": -0.2604,
          "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.5343,
          "after": 4.0,
          "delta": 0.4657,
          "percent_delta": 0.1318,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.1875,
          "after": 0.0,
          "delta": -0.1875,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.607,
          "after": 1.0,
          "delta": 0.393,
          "percent_delta": 0.6474,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HBP",
          "before": 0.101,
          "after": 0.0,
          "delta": -0.101,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1448,
          "after": 0.0,
          "delta": -0.1448,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4328,
          "after": 0.0,
          "delta": -0.4328,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0807,
          "after": 1.0,
          "delta": -0.0807,
          "percent_delta": -0.0747,
          "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_AB",
          "before": 3.5343,
          "after": 4.0,
          "delta": 0.4657,
          "percent_delta": 0.1318,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.4328,
          "after": 0.0,
          "delta": -0.4328,
          "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.4818,
          "after": 0.0,
          "delta": -0.4818,
          "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.4818,
          "after": 0.0,
          "delta": -0.4818,
          "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.1821,
        "predicted_3B": 0.0112,
        "predicted_BB": 0.3322,
        "predicted_H": 0.8061,
        "predicted_HR": 0.1598,
        "predicted_RBI": 0.5822,
        "predicted_SO": 1.1906
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1821,
          "delta": 0.1821,
          "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.3322,
          "delta": 0.3322,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8061,
          "delta": -0.1939,
          "percent_delta": -0.1939,
          "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.5822,
          "delta": 0.5822,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 1.1906,
          "delta": 0.1906,
          "percent_delta": 0.1906,
          "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.5822,
          "delta": 0.5822,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8061,
          "delta": -0.1939,
          "percent_delta": -0.1939,
          "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.1821,
          "after": 0.0,
          "delta": -0.1821,
          "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": 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.3322,
          "after": 0.0,
          "delta": -0.3322,
          "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_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": 0.0,
          "after": 1.0,
          "delta": 1.0,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5822,
          "after": 1.0,
          "delta": 0.4178,
          "percent_delta": 0.7176,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.1906,
          "after": 1.0,
          "delta": -0.1906,
          "percent_delta": -0.1601,
          "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_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.3322,
          "after": 0.0,
          "delta": -0.3322,
          "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.215,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.285,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.398,
        "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.1717,
          "after": 0.215,
          "delta": 0.0433,
          "percent_delta": 0.2522,
          "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.2135,
          "after": 0.285,
          "delta": 0.0715,
          "percent_delta": 0.3349,
          "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": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3688,
          "after": 0.398,
          "delta": 0.0292,
          "percent_delta": 0.0792,
          "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": 3,
        "deboosted_metrics": 2,
        "better_metrics": 3,
        "worse_metrics": 2,
        "biggest_boost": {
          "metric": "predicted_OBP",
          "before": 0.2135,
          "after": 0.285,
          "delta": 0.0715,
          "percent_delta": 0.3349,
          "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": "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.1717,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 0.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.2135,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.3688,
        "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.215,
          "after": 0.1717,
          "delta": -0.0433,
          "percent_delta": -0.2012,
          "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.285,
          "after": 0.2135,
          "delta": -0.0715,
          "percent_delta": -0.251,
          "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.398,
          "after": 0.3688,
          "delta": -0.0292,
          "percent_delta": -0.0734,
          "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.285,
          "after": 0.2135,
          "delta": -0.0715,
          "percent_delta": -0.251,
          "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.235,
        "after": 0.0,
        "delta": -0.235,
        "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.451,
        "after": 4.0,
        "delta": 0.549,
        "percent_delta": 0.1591,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.227,
        "after": 0.1717,
        "delta": -0.0553,
        "percent_delta": -0.2436,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.196,
        "after": 0.0,
        "delta": -0.196,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.36,
        "after": 0.0,
        "delta": -0.36,
        "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.267,
        "after": 0.2135,
        "delta": -0.0535,
        "percent_delta": -0.2004,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.412,
        "after": 0.0,
        "delta": -0.412,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.29,
        "after": 0.0,
        "delta": -0.29,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.448,
        "after": 0.3688,
        "delta": -0.0792,
        "percent_delta": -0.1768,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 1.059,
        "after": 1.0,
        "delta": -0.059,
        "percent_delta": -0.0557,
        "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.451,
        "after": 4.0,
        "delta": 0.549,
        "percent_delta": 0.1591,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_R",
        "before": 0.412,
        "after": 0.0,
        "delta": -0.412,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.235-
predicted_3B0.000-
predicted_AB3.451-
predicted_AVG0.227-
predicted_BB0.196-
predicted_H0.360-
predicted_HR0.100-
predicted_OBP0.267-
predicted_R0.412-
predicted_RBI0.290-
predicted_SLG0.448-
predicted_SO1.059-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.2600.025
predicted_3B0.0010.001
predicted_AB3.5340.083
predicted_AVG0.2420.015
predicted_BB0.187-0.009
predicted_H0.6070.247
predicted_HBP0.101-
predicted_HR0.1450.045
predicted_OBP0.2850.018
predicted_R0.4820.070
predicted_RBI0.4330.143
predicted_SLG0.4770.029
predicted_SO1.0810.022
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.2600.000
predicted_3B0.0010.000
predicted_AB3.5340.000
predicted_AVG0.172-0.070
predicted_BB0.1880.000
predicted_H0.607-0.000
predicted_HBP0.1010.000
predicted_HR0.145-0.001
predicted_OBP0.213-0.071
predicted_R0.4820.000
predicted_RBI0.4330.000
predicted_SLG0.369-0.108
predicted_SO1.081-0.000
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 4 (raw=3.53), rates preserved: AVG=0.151 HR/AB=0.041

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB4.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1820.182
3B0.0110.011
BB0.3320.332
H0.806-0.194
HR0.1600.160
RBI0.5820.582
SO1.1910.191
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.182
3B0.000-0.011
AB4.0000.000
BB0.000-0.332
H1.0000.194
HR0.000-0.160
R1.0001.000
RBI1.0000.418
SO1.000-0.191
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.260
predicted_3B0.000-0.001
predicted_AB4.0000.466
predicted_AVG0.2150.043
predicted_BB0.000-0.188
predicted_H1.0000.393
predicted_HR0.000-0.145
predicted_OBP0.2850.071
predicted_R0.000-0.482
predicted_RBI0.000-0.433
predicted_SLG0.3980.029
predicted_SO1.000-0.081
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.0000.000
H0.000-1.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R0.000-1.000
RBI0.000-1.000
SB0.0000.000
SF0.0000.000
SO1.0000.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 51
Reference playing time: 3.803
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-20.0006.0003.0000.0002.0004.0005.0000.0007.0000.30000.31820.75000.30000.10000.20000.00000.3500
last_100.2010-38.00010.0003.0000.0002.0005.0008.0002.00012.0000.26320.32560.50000.26320.05260.13160.05260.3158
season0.6051-176.00045.00012.0000.0009.00034.00021.00010.00054.0000.25570.30370.47730.25570.05110.19320.05680.3068
Weighted Prediction From Real Data
MetricValue
predicted_2B0.2970
predicted_3B0.0020
predicted_AB3.6540
predicted_AVG0.2636
predicted_BB0.1750
predicted_H0.9630
predicted_HBP0.1010
predicted_HR0.2110
predicted_OBP0.3102
predicted_R0.5820
predicted_RBI0.6380
predicted_SLG0.5189
predicted_SO1.1130
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.23500.29700.2604model_form_blend
predicted_3B0.00000.00200.0008model_form_blend
predicted_AB3.45103.65403.5343model_form_blend
predicted_AVG0.22700.26360.2420model_form_blend
predicted_BB0.19600.17500.1874model_form_blend
predicted_H0.36000.96300.6074model_form_blend
predicted_HBP-0.10100.1010form_only
predicted_HR0.10000.21100.1455model_form_blend
predicted_OBP0.26700.31020.2847model_form_blend
predicted_R0.41200.58200.4818model_form_blend
predicted_RBI0.29000.63800.4328model_form_blend
predicted_SLG0.44800.51890.4771model_form_blend
predicted_SO1.05901.11301.0812model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date187
Season rows before report date187
Report year2026
Profile rows used51
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA4
AB4
H0
2B0
3B0
HR0
R0
RBI0
BB0
SO1
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB0
Hitting_AVG0.0
Hitting_BB1
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB0
Hitting_battingOrder9
Hitting_substitutionOrder1
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedPH
gameID20260920_MIL@BAL
game_typeph
mlbID687952
noteWalked for Narváez in the 7th.
playerID687952
playerNameChristian Encarnacion-Strand
pos3B
startedFalse
startingPositionPH
teamBAL
teamID3
game_date2026-09-20
sl_k_percent27.4
sl_bb_percent5.1
sl_woba0.349
sl_xwoba0.334
sl_xba0.246
sl_xslg0.489
sl_sweet_spot_percent35.7
sl_barrel_batted_rate14.7
sl_hard_hit_percent39.5
sl_exit_velocity_avg90.4
sl_launch_angle_avg18.4
sl_whiff_percent29.6
sl_swing_percent61.0
Gunnar Henderson (683002) · BATTER · SS · Team BAL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 672
All-history rows before 20260921: 672
System season_avg: 0.2230
Data season_avg (2026 season-to-date): 0.2192
Diff (system - data): 0.0038
System opponent_avg: 0.2120

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1801.0000.000Hitting_2B0.1950.0000.8051.000
predicted_3B0.0330.0000.000Hitting_3B0.0400.000-0.0400.000
predicted_AB4.0704.0004.000Hitting_AB4.0123.000-0.0121.000
predicted_AVG0.2410.2500.250Hitting_AVG0.2190.0000.0310.250
predicted_BB0.4270.0001.000Hitting_BB0.4520.000-0.4520.000
predicted_CS-0.0000.000BaseRunning_CS0.0360.000-0.0360.000
predicted_H0.9801.0001.000Hitting_H0.8790.0000.1211.000
predicted_HR0.1200.0000.000Hitting_HR0.1410.000-0.1410.000
predicted_OBP0.3100.2500.400Hitting_OBP0.3090.250-0.0590.000
predicted_R0.5601.0001.000Hitting_R0.5890.0000.4111.000
predicted_RBI0.3301.0000.000Hitting_RBI0.3850.0000.6151.000
predicted_SLG0.4050.5000.250Hitting_SLG0.3940.0000.1060.500
predicted_SO0.9803.0001.000Hitting_SO0.9912.0002.0091.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics8
Boosted Metrics4
Deboosted Metrics4
Better Metrics3
Worse Metrics5
Biggest Boostpredicted_SO: 0.9800 -> 3.0000 (boost 2.0200, worse)
Biggest Deboostpredicted_BB: 0.4270 -> 0.0000 (deboost -0.4270, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend21102predicted_SO: 0.9800 -> 1.0378 (boost 0.0578, worse)predicted_SLG: 0.4050 -> 0.3927 (deboost -0.0123, 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.
3team_form_snapshot10101-predicted_SLG: 0.3927 -> 0.3835 (deboost -0.0092, worse)Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling50505-predicted_BB: 0.3970 -> 0.0000 (deboost -0.3970, worse)AB rounded to 4 (raw=4.07), rates preserved: AVG=0.208 HR/AB=0.028
6bvp_blend00000--Sample-size BvP blend (BvP AB=5.0, weight=0.057, BvP AVG=0.200)
7consistency_constraints11010predicted_R: 0.5161 -> 1.0000 (boost 0.4839, better)-Enforced H<=AB, HR<=H, safety nets, derived R
8hitter_rate_engine54141predicted_BB: 0.0000 -> 0.4728 (boost 0.4728, better)predicted_H: 1.0000 -> 0.7462 (deboost -0.2538, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
9lineup_integer_allocation52323predicted_BB: 0.4728 -> 1.0000 (boost 0.5272, better)predicted_RBI: 0.3884 -> 0.0000 (deboost -0.3884, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
10embedded_savant_player_context40404-predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse)Player Savant profile contributed to the team run-environment adjustment against the opposing starter
11simulation_box_score_reference33021predicted_SO: 1.0000 -> 3.0000 (boost 2.0000, worse)-Attached simulation box score without overwriting model prediction
12current_json_final33030predicted_AVG: 0.1990 -> 0.2385 (boost 0.0395, better)-Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "683002",
  "player_name": "Gunnar Henderson",
  "position": "SS",
  "team": "BAL",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.18,
        "predicted_3B": 0.033,
        "predicted_AB": 4.07,
        "predicted_AVG": 0.241,
        "predicted_BB": 0.427,
        "predicted_H": 0.98,
        "predicted_HR": 0.12,
        "predicted_OBP": 0.31,
        "predicted_R": 0.56,
        "predicted_RBI": 0.33,
        "predicted_SLG": 0.405,
        "predicted_SO": 0.98
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.1835,
        "predicted_3B": 0.0273,
        "predicted_AB": 4.0223,
        "predicted_AVG": 0.2388,
        "predicted_BB": 0.3968,
        "predicted_H": 0.9599,
        "predicted_HBP": 0.096,
        "predicted_HR": 0.1156,
        "predicted_OBP": 0.3114,
        "predicted_R": 0.5162,
        "predicted_RBI": 0.2989,
        "predicted_SLG": 0.3927,
        "predicted_SO": 1.0378
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.18,
          "after": 0.1835,
          "delta": 0.0035,
          "percent_delta": 0.0194,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.033,
          "after": 0.0273,
          "delta": -0.0057,
          "percent_delta": -0.1727,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 4.07,
          "after": 4.0223,
          "delta": -0.0477,
          "percent_delta": -0.0117,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.241,
          "after": 0.2388,
          "delta": -0.0022,
          "percent_delta": -0.0091,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.427,
          "after": 0.3968,
          "delta": -0.0302,
          "percent_delta": -0.0707,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.98,
          "after": 0.9599,
          "delta": -0.0201,
          "percent_delta": -0.0205,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.12,
          "after": 0.1156,
          "delta": -0.0044,
          "percent_delta": -0.0367,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.31,
          "after": 0.3114,
          "delta": 0.0014,
          "percent_delta": 0.0045,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.56,
          "after": 0.5162,
          "delta": -0.0438,
          "percent_delta": -0.0782,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.33,
          "after": 0.2989,
          "delta": -0.0311,
          "percent_delta": -0.0942,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.405,
          "after": 0.3927,
          "delta": -0.0123,
          "percent_delta": -0.0304,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.98,
          "after": 1.0378,
          "delta": 0.0578,
          "percent_delta": 0.059,
          "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": 0.98,
          "after": 1.0378,
          "delta": 0.0578,
          "percent_delta": 0.059,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SLG",
          "before": 0.405,
          "after": 0.3927,
          "delta": -0.0123,
          "percent_delta": -0.0304,
          "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.1835,
        "predicted_3B": 0.0273,
        "predicted_AB": 4.0223,
        "predicted_AVG": 0.2385,
        "predicted_BB": 0.397,
        "predicted_H": 0.9592,
        "predicted_HBP": 0.096,
        "predicted_HR": 0.1151,
        "predicted_OBP": 0.3069,
        "predicted_R": 0.5161,
        "predicted_RBI": 0.2989,
        "predicted_SLG": 0.3835,
        "predicted_SO": 1.0373
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1835,
          "after": 0.1835,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.0273,
          "after": 0.0273,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 4.0223,
          "after": 4.0223,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2388,
          "after": 0.2385,
          "delta": -0.0003,
          "percent_delta": -0.0013,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.3968,
          "after": 0.397,
          "delta": 0.0002,
          "percent_delta": 0.0005,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.9599,
          "after": 0.9592,
          "delta": -0.0007,
          "percent_delta": -0.0007,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HBP",
          "before": 0.096,
          "after": 0.096,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.1156,
          "after": 0.1151,
          "delta": -0.0005,
          "percent_delta": -0.0043,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3114,
          "after": 0.3069,
          "delta": -0.0045,
          "percent_delta": -0.0145,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.5162,
          "after": 0.5161,
          "delta": -0.0001,
          "percent_delta": -0.0002,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.2989,
          "after": 0.2989,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3927,
          "after": 0.3835,
          "delta": -0.0092,
          "percent_delta": -0.0234,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0378,
          "after": 1.0373,
          "delta": -0.0005,
          "percent_delta": -0.0005,
          "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.3927,
          "after": 0.3835,
          "delta": -0.0092,
          "percent_delta": -0.0234,
          "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.208 HR/AB=0.028",
      "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.1835,
          "after": 0.0,
          "delta": -0.1835,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0273,
          "after": 0.0,
          "delta": -0.0273,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 4.0223,
          "after": 4.0,
          "delta": -0.0223,
          "percent_delta": -0.0055,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.397,
          "after": 0.0,
          "delta": -0.397,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.9592,
          "after": 1.0,
          "delta": 0.0408,
          "percent_delta": 0.0425,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HBP",
          "before": 0.096,
          "after": 0.0,
          "delta": -0.096,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1151,
          "after": 0.0,
          "delta": -0.1151,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.2989,
          "after": 0.0,
          "delta": -0.2989,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0373,
          "after": 1.0,
          "delta": -0.0373,
          "percent_delta": -0.036,
          "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": 0.397,
          "after": 0.0,
          "delta": -0.397,
          "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.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": 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.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": 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.1593,
        "predicted_3B": 0.0193,
        "predicted_BB": 0.4728,
        "predicted_H": 0.7462,
        "predicted_HR": 0.1311,
        "predicted_RBI": 0.3884,
        "predicted_SO": 0.9569
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1593,
          "delta": 0.1593,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0193,
          "delta": 0.0193,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.4728,
          "delta": 0.4728,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7462,
          "delta": -0.2538,
          "percent_delta": -0.2538,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1311,
          "delta": 0.1311,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.3884,
          "delta": 0.3884,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.9569,
          "delta": -0.0431,
          "percent_delta": -0.0431,
          "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.4728,
          "delta": 0.4728,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7462,
          "delta": -0.2538,
          "percent_delta": -0.2538,
          "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.1593,
          "after": 0.0,
          "delta": -0.1593,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0193,
          "after": 0.0,
          "delta": -0.0193,
          "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.4728,
          "after": 1.0,
          "delta": 0.5272,
          "percent_delta": 1.1151,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.7462,
          "after": 1.0,
          "delta": 0.2538,
          "percent_delta": 0.3401,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1311,
          "after": 0.0,
          "delta": -0.1311,
          "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.3884,
          "after": 0.0,
          "delta": -0.3884,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.9569,
          "after": 1.0,
          "delta": 0.0431,
          "percent_delta": 0.045,
          "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.4728,
          "after": 1.0,
          "delta": 0.5272,
          "percent_delta": 1.1151,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.3884,
          "after": 0.0,
          "delta": -0.3884,
          "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.199,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.295,
        "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.2385,
          "after": 0.199,
          "delta": -0.0395,
          "percent_delta": -0.1656,
          "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.3069,
          "after": 0.295,
          "delta": -0.0119,
          "percent_delta": -0.0388,
          "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.3835,
          "after": 0.357,
          "delta": -0.0265,
          "percent_delta": -0.0691,
          "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": 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": 1.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SO": 3.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": 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": 3.0,
          "delta": 2.0,
          "percent_delta": 2.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_SO",
          "before": 1.0,
          "after": 3.0,
          "delta": 2.0,
          "percent_delta": 2.0,
          "direction": "boost",
          "projection_effect": "worse",
          "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.2385,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.3069,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.3835,
        "predicted_SO": 3.0,
        "predicted_SS": 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.199,
          "after": 0.2385,
          "delta": 0.0395,
          "percent_delta": 0.1984,
          "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.295,
          "after": 0.3069,
          "delta": 0.0119,
          "percent_delta": 0.0403,
          "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.357,
          "after": 0.3835,
          "delta": 0.0265,
          "percent_delta": 0.0742,
          "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_AVG",
          "before": 0.199,
          "after": 0.2385,
          "delta": 0.0395,
          "percent_delta": 0.1984,
          "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.18,
        "after": 1.0,
        "delta": 0.82,
        "percent_delta": 4.5556,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_3B",
        "before": 0.033,
        "after": 0.0,
        "delta": -0.033,
        "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.241,
        "after": 0.2385,
        "delta": -0.0025,
        "percent_delta": -0.0104,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_BB",
        "before": 0.427,
        "after": 0.0,
        "delta": -0.427,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.98,
        "after": 1.0,
        "delta": 0.02,
        "percent_delta": 0.0204,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "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.31,
        "after": 0.3069,
        "delta": -0.0031,
        "percent_delta": -0.01,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_R",
        "before": 0.56,
        "after": 1.0,
        "delta": 0.44,
        "percent_delta": 0.7857,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.33,
        "after": 1.0,
        "delta": 0.67,
        "percent_delta": 2.0303,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.405,
        "after": 0.3835,
        "delta": -0.0215,
        "percent_delta": -0.0531,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.98,
        "after": 3.0,
        "delta": 2.02,
        "percent_delta": 2.0612,
        "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_SO",
        "before": 0.98,
        "after": 3.0,
        "delta": 2.02,
        "percent_delta": 2.0612,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_BB",
        "before": 0.427,
        "after": 0.0,
        "delta": -0.427,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.180-
predicted_3B0.033-
predicted_AB4.070-
predicted_AVG0.241-
predicted_BB0.427-
predicted_H0.980-
predicted_HR0.120-
predicted_OBP0.310-
predicted_R0.560-
predicted_RBI0.330-
predicted_SLG0.405-
predicted_SO0.980-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.1830.004
predicted_3B0.027-0.006
predicted_AB4.022-0.048
predicted_AVG0.239-0.002
predicted_BB0.397-0.030
predicted_H0.960-0.020
predicted_HBP0.096-
predicted_HR0.116-0.004
predicted_OBP0.3110.001
predicted_R0.516-0.044
predicted_RBI0.299-0.031
predicted_SLG0.393-0.012
predicted_SO1.0380.058
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1830.000
predicted_3B0.0270.000
predicted_AB4.0220.000
predicted_AVG0.238-0.000
predicted_BB0.3970.000
predicted_H0.959-0.001
predicted_HBP0.0960.000
predicted_HR0.115-0.001
predicted_OBP0.307-0.005
predicted_R0.516-0.000
predicted_RBI0.2990.000
predicted_SLG0.384-0.009
predicted_SO1.037-0.000
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 4 (raw=4.07), rates preserved: AVG=0.208 HR/AB=0.028

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB4.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO1.000-
6. bvp_blend

Sample-size BvP blend (BvP AB=5.0, weight=0.057, BvP AVG=0.200)

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
H1.0000.000
HR0.0000.000
RBI0.0000.000
SO1.0000.000
7. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R1.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
8. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1590.159
3B0.0190.019
BB0.4730.473
H0.746-0.254
HR0.1310.131
RBI0.3880.388
SO0.957-0.043
9. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.159
3B0.000-0.019
AB4.0000.000
BB1.0000.527
H1.0000.254
HR0.000-0.131
R1.0000.000
RBI0.000-0.388
SO1.0000.043
10. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.183
predicted_3B0.000-0.027
predicted_AB4.000-0.022
predicted_AVG0.199-0.039
predicted_BB0.000-0.397
predicted_H1.0000.041
predicted_HR0.000-0.115
predicted_OBP0.295-0.012
predicted_R1.0000.484
predicted_RBI0.000-0.299
predicted_SLG0.357-0.027
predicted_SO1.000-0.037
11. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B1.0001.000
3B0.0000.000
AB4.0000.000
BB0.000-1.000
CS0.0000.000
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R1.0000.000
RBI1.0001.000
SB0.0000.000
SF0.0000.000
SO3.0002.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 150
Reference playing time: 4.070
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-21.0005.0001.0000.0000.0000.0001.0000.0008.0000.23810.27270.28570.23810.00000.00000.00000.3810
last_100.2010-37.00010.0002.0000.0001.0001.0004.0005.00011.0000.27030.37210.40540.27030.02700.02700.13510.2973
season0.60150-597.000133.00027.0005.00022.00057.00084.00064.000147.0000.22280.30760.39530.22280.03690.09550.10720.2462
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1880
predicted_3B0.0200
predicted_AB3.9610
predicted_AVG0.2359
predicted_BB0.3580
predicted_H0.9340
predicted_HBP0.0960
predicted_HR0.1100
predicted_OBP0.3132
predicted_R0.4600
predicted_RBI0.2590
predicted_SLG0.3768
predicted_SO1.1120
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.18000.18800.1835model_form_blend
predicted_3B0.03300.02000.0273model_form_blend
predicted_AB4.07003.96104.0223model_form_blend
predicted_AVG0.24100.23590.2388model_form_blend
predicted_BB0.42700.35800.3968model_form_blend
predicted_H0.98000.93400.9599model_form_blend
predicted_HBP-0.09600.0960form_only
predicted_HR0.12000.11000.1156model_form_blend
predicted_OBP0.31000.31320.3114model_form_blend
predicted_R0.56000.46000.5162model_form_blend
predicted_RBI0.33000.25900.2989model_form_blend
predicted_SLG0.40500.37680.3927model_form_blend
predicted_SO0.98001.11201.0378model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date672
Season rows before report date672
Report year2026
Profile rows used150
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA4
AB4
H1
2B1
3B0
HR0
R1
RBI1
BB0
SO3
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB3
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP1
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO2
Hitting_TB0
Hitting_battingOrder3
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedSS
gameID20260920_MIL@BAL
game_typefull
mlbID683002
playerID683002
playerNameGunnar Henderson
posSS
startedTrue
startingPositionSS
teamBAL
teamID3
game_date2026-09-20
sl_k_percent21.8
sl_bb_percent9.5
sl_woba0.311
sl_xwoba0.32
sl_xba0.246
sl_xslg0.398
sl_sweet_spot_percent32.5
sl_barrel_batted_rate7.4
sl_hard_hit_percent43.1
sl_exit_velocity_avg89.2
sl_launch_angle_avg12.2
sl_whiff_percent23.1
sl_swing_percent47.4
Pete Alonso (624413) · BATTER · 1B · Team BAL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 662
All-history rows before 20260921: 662
System season_avg: 0.2650
Data season_avg (2026 season-to-date): 0.2713
Diff (system - data): -0.0063
System opponent_avg: 0.1320

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1500.0000.000Hitting_2B0.1690.000-0.1690.000
predicted_3B0.0000.0000.000Hitting_3B0.0000.0000.0000.000
predicted_AB4.0303.0004.000Hitting_AB3.7924.000-0.792-1.000
predicted_AVG0.2110.0000.250Hitting_AVG0.2710.000-0.2710.000
predicted_BB0.4971.0001.000Hitting_BB0.5170.0000.4831.000
predicted_CS-0.0000.000BaseRunning_CS0.0080.000-0.0080.000
predicted_H0.8500.0001.000Hitting_H1.0290.000-1.0290.000
predicted_HR0.2900.0000.000Hitting_HR0.2390.000-0.2390.000
predicted_OBP0.3130.2500.400Hitting_OBP0.3660.000-0.1160.250
predicted_R0.5820.0001.000Hitting_R0.6040.000-0.6040.000
predicted_RBI0.7300.0001.000Hitting_RBI0.6870.000-0.6870.000
predicted_SLG0.4780.0000.250Hitting_SLG0.5050.000-0.5050.000
predicted_SO1.0651.0001.000Hitting_SO1.0650.000-0.0651.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics11
Boosted Metrics3
Deboosted Metrics8
Better Metrics4
Worse Metrics7
Biggest Boostpredicted_BB: 0.4970 -> 1.0000 (boost 0.5030, better)
Biggest Deboostpredicted_AB: 4.0300 -> 3.0000 (deboost -1.0300, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend43131predicted_SLG: 0.4780 -> 0.4964 (boost 0.0184, better)predicted_AB: 4.0300 -> 3.9408 (deboost -0.0892, 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.
3team_form_snapshot20202-predicted_OBP: 0.3184 -> 0.3037 (deboost -0.0147, worse)Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling84453predicted_BB: 0.4775 -> 1.0000 (boost 0.5225, better)predicted_HR: 0.3087 -> 0.0000 (deboost -0.3087, worse)AB rounded to 4 (raw=4.03), rates preserved: AVG=0.189 HR/AB=0.077
6bvp_blend10101-predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse)Sample-size BvP blend (BvP AB=5.0, weight=0.057, BvP AVG=0.000)
7consistency_constraints11010predicted_R: 0.5753 -> 1.0000 (boost 0.4247, better)-Enforced H<=AB, HR<=H, safety nets, derived R
8hitter_rate_engine64233predicted_BB: 0.0000 -> 0.5497 (boost 0.5497, better)predicted_RBI: 1.0000 -> 0.5732 (deboost -0.4268, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
9lineup_integer_allocation63342predicted_BB: 0.5497 -> 1.0000 (boost 0.4503, better)predicted_HR: 0.2026 -> 0.0000 (deboost -0.2026, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
10embedded_savant_player_context41313predicted_OBP: 0.3037 -> 0.3160 (boost 0.0123, 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
11simulation_box_score_reference51414predicted_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
12current_json_final32121predicted_SLG: 0.4170 -> 0.4866 (boost 0.0696, better)predicted_OBP: 0.3160 -> 0.3037 (deboost -0.0123, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "624413",
  "player_name": "Pete Alonso",
  "position": "1B",
  "team": "BAL",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "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": 4.03,
        "predicted_AVG": 0.211,
        "predicted_BB": 0.497,
        "predicted_H": 0.85,
        "predicted_HR": 0.29,
        "predicted_OBP": 0.313,
        "predicted_R": 0.582,
        "predicted_RBI": 0.73,
        "predicted_SLG": 0.478,
        "predicted_SO": 1.065
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.1264,
        "predicted_3B": 0.0004,
        "predicted_AB": 3.9408,
        "predicted_AVG": 0.2197,
        "predicted_BB": 0.4773,
        "predicted_H": 0.8649,
        "predicted_HBP": 0.099,
        "predicted_HR": 0.3101,
        "predicted_OBP": 0.3184,
        "predicted_R": 0.5754,
        "predicted_RBI": 0.7418,
        "predicted_SLG": 0.4964,
        "predicted_SO": 1.0834
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.15,
          "after": 0.1264,
          "delta": -0.0236,
          "percent_delta": -0.1573,
          "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.03,
          "after": 3.9408,
          "delta": -0.0892,
          "percent_delta": -0.0221,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.211,
          "after": 0.2197,
          "delta": 0.0087,
          "percent_delta": 0.0412,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.497,
          "after": 0.4773,
          "delta": -0.0197,
          "percent_delta": -0.0396,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.85,
          "after": 0.8649,
          "delta": 0.0149,
          "percent_delta": 0.0175,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.29,
          "after": 0.3101,
          "delta": 0.0201,
          "percent_delta": 0.0693,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.313,
          "after": 0.3184,
          "delta": 0.0054,
          "percent_delta": 0.0173,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.582,
          "after": 0.5754,
          "delta": -0.0066,
          "percent_delta": -0.0113,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.73,
          "after": 0.7418,
          "delta": 0.0118,
          "percent_delta": 0.0162,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.478,
          "after": 0.4964,
          "delta": 0.0184,
          "percent_delta": 0.0385,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.065,
          "after": 1.0834,
          "delta": 0.0184,
          "percent_delta": 0.0173,
          "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.478,
          "after": 0.4964,
          "delta": 0.0184,
          "percent_delta": 0.0385,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 4.03,
          "after": 3.9408,
          "delta": -0.0892,
          "percent_delta": -0.0221,
          "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.1264,
        "predicted_3B": 0.0004,
        "predicted_AB": 3.9408,
        "predicted_AVG": 0.2193,
        "predicted_BB": 0.4775,
        "predicted_H": 0.8643,
        "predicted_HBP": 0.099,
        "predicted_HR": 0.3087,
        "predicted_OBP": 0.3037,
        "predicted_R": 0.5753,
        "predicted_RBI": 0.7417,
        "predicted_SLG": 0.4866,
        "predicted_SO": 1.0829
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1264,
          "after": 0.1264,
          "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.9408,
          "after": 3.9408,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2197,
          "after": 0.2193,
          "delta": -0.0004,
          "percent_delta": -0.0018,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.4773,
          "after": 0.4775,
          "delta": 0.0002,
          "percent_delta": 0.0004,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.8649,
          "after": 0.8643,
          "delta": -0.0006,
          "percent_delta": -0.0007,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HBP",
          "before": 0.099,
          "after": 0.099,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.3101,
          "after": 0.3087,
          "delta": -0.0014,
          "percent_delta": -0.0045,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3184,
          "after": 0.3037,
          "delta": -0.0147,
          "percent_delta": -0.0462,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.5754,
          "after": 0.5753,
          "delta": -0.0001,
          "percent_delta": -0.0002,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.7418,
          "after": 0.7417,
          "delta": -0.0001,
          "percent_delta": -0.0001,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4964,
          "after": 0.4866,
          "delta": -0.0098,
          "percent_delta": -0.0197,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0834,
          "after": 1.0829,
          "delta": -0.0005,
          "percent_delta": -0.0005,
          "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.3184,
          "after": 0.3037,
          "delta": -0.0147,
          "percent_delta": -0.0462,
          "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.03), rates preserved: AVG=0.189 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": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1264,
          "after": 0.0,
          "delta": -0.1264,
          "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.9408,
          "after": 4.0,
          "delta": 0.0592,
          "percent_delta": 0.015,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.4775,
          "after": 1.0,
          "delta": 0.5225,
          "percent_delta": 1.0942,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8643,
          "after": 1.0,
          "delta": 0.1357,
          "percent_delta": 0.157,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HBP",
          "before": 0.099,
          "after": 0.0,
          "delta": -0.099,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.3087,
          "after": 0.0,
          "delta": -0.3087,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.7417,
          "after": 1.0,
          "delta": 0.2583,
          "percent_delta": 0.3483,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0829,
          "after": 1.0,
          "delta": -0.0829,
          "percent_delta": -0.0766,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 8,
        "boosted_metrics": 4,
        "deboosted_metrics": 4,
        "better_metrics": 5,
        "worse_metrics": 3,
        "biggest_boost": {
          "metric": "predicted_BB",
          "before": 0.4775,
          "after": 1.0,
          "delta": 0.5225,
          "percent_delta": 1.0942,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_HR",
          "before": 0.3087,
          "after": 0.0,
          "delta": -0.3087,
          "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.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": 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.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.5753,
          "after": 1.0,
          "delta": 0.4247,
          "percent_delta": 0.7382,
          "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.5753,
          "after": 1.0,
          "delta": 0.4247,
          "percent_delta": 0.7382,
          "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.15,
        "predicted_3B": 0.0074,
        "predicted_BB": 0.5497,
        "predicted_H": 0.7771,
        "predicted_HR": 0.2026,
        "predicted_RBI": 0.5732,
        "predicted_SO": 1.089
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.15,
          "delta": 0.15,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0074,
          "delta": 0.0074,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.5497,
          "delta": 0.5497,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7771,
          "delta": -0.2229,
          "percent_delta": -0.2229,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.2026,
          "delta": 0.2026,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.5732,
          "delta": -0.4268,
          "percent_delta": -0.4268,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 1.089,
          "delta": 0.089,
          "percent_delta": 0.089,
          "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.5497,
          "delta": 0.5497,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.5732,
          "delta": -0.4268,
          "percent_delta": -0.4268,
          "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.15,
          "after": 0.0,
          "delta": -0.15,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0074,
          "after": 0.0,
          "delta": -0.0074,
          "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.5497,
          "after": 1.0,
          "delta": 0.4503,
          "percent_delta": 0.8192,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.7771,
          "after": 1.0,
          "delta": 0.2229,
          "percent_delta": 0.2868,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.2026,
          "after": 0.0,
          "delta": -0.2026,
          "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.5732,
          "after": 1.0,
          "delta": 0.4268,
          "percent_delta": 0.7446,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.089,
          "after": 1.0,
          "delta": -0.089,
          "percent_delta": -0.0817,
          "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.5497,
          "after": 1.0,
          "delta": 0.4503,
          "percent_delta": 0.8192,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_HR",
          "before": 0.2026,
          "after": 0.0,
          "delta": -0.2026,
          "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.209,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.316,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.417,
        "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.2193,
          "after": 0.209,
          "delta": -0.0103,
          "percent_delta": -0.047,
          "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.3037,
          "after": 0.316,
          "delta": 0.0123,
          "percent_delta": 0.0405,
          "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.4866,
          "after": 0.417,
          "delta": -0.0696,
          "percent_delta": -0.143,
          "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_OBP",
          "before": 0.3037,
          "after": 0.316,
          "delta": 0.0123,
          "percent_delta": 0.0405,
          "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": 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": 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": 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_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.2193,
        "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.3037,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.4866,
        "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.209,
          "after": 0.2193,
          "delta": 0.0103,
          "percent_delta": 0.0494,
          "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.316,
          "after": 0.3037,
          "delta": -0.0123,
          "percent_delta": -0.0389,
          "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.417,
          "after": 0.4866,
          "delta": 0.0696,
          "percent_delta": 0.1669,
          "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.417,
          "after": 0.4866,
          "delta": 0.0696,
          "percent_delta": 0.1669,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_OBP",
          "before": 0.316,
          "after": 0.3037,
          "delta": -0.0123,
          "percent_delta": -0.0389,
          "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.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": 4.03,
        "after": 3.0,
        "delta": -1.03,
        "percent_delta": -0.2556,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.211,
        "after": 0.2193,
        "delta": 0.0083,
        "percent_delta": 0.0393,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.497,
        "after": 1.0,
        "delta": 0.503,
        "percent_delta": 1.0121,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.85,
        "after": 0.0,
        "delta": -0.85,
        "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.313,
        "after": 0.3037,
        "delta": -0.0093,
        "percent_delta": -0.0297,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.582,
        "after": 0.0,
        "delta": -0.582,
        "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.478,
        "after": 0.4866,
        "delta": 0.0086,
        "percent_delta": 0.018,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 1.065,
        "after": 1.0,
        "delta": -0.065,
        "percent_delta": -0.061,
        "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_BB",
        "before": 0.497,
        "after": 1.0,
        "delta": 0.503,
        "percent_delta": 1.0121,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_AB",
        "before": 4.03,
        "after": 3.0,
        "delta": -1.03,
        "percent_delta": -0.2556,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.150-
predicted_3B0.000-
predicted_AB4.030-
predicted_AVG0.211-
predicted_BB0.497-
predicted_H0.850-
predicted_HR0.290-
predicted_OBP0.313-
predicted_R0.582-
predicted_RBI0.730-
predicted_SLG0.478-
predicted_SO1.065-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.126-0.024
predicted_3B0.0000.000
predicted_AB3.941-0.089
predicted_AVG0.2200.009
predicted_BB0.477-0.020
predicted_H0.8650.015
predicted_HBP0.099-
predicted_HR0.3100.020
predicted_OBP0.3180.005
predicted_R0.575-0.007
predicted_RBI0.7420.012
predicted_SLG0.4960.018
predicted_SO1.0830.018
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1260.000
predicted_3B0.0000.000
predicted_AB3.9410.000
predicted_AVG0.219-0.000
predicted_BB0.4770.000
predicted_H0.864-0.001
predicted_HBP0.0990.000
predicted_HR0.309-0.001
predicted_OBP0.304-0.015
predicted_R0.575-0.000
predicted_RBI0.742-0.000
predicted_SLG0.487-0.010
predicted_SO1.083-0.000
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 4 (raw=4.03), rates preserved: AVG=0.189 HR/AB=0.077

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB4.000-
BB1.000-
H1.000-
HBP0.000-
HR0.000-
RBI1.000-
SB0.000-
SO1.000-
6. bvp_blend

Sample-size BvP blend (BvP AB=5.0, weight=0.057, BvP AVG=0.000)

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.000-1.000
H1.0000.000
HR0.0000.000
RBI1.0000.000
SO1.0000.000
7. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R1.000-
RBI1.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
8. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1500.150
3B0.0070.007
BB0.5500.550
H0.777-0.223
HR0.2030.203
RBI0.573-0.427
SO1.0890.089
9. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.150
3B0.000-0.007
AB4.0000.000
BB1.0000.450
H1.0000.223
HR0.000-0.203
R1.0000.000
RBI1.0000.427
SO1.000-0.089
10. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.126
predicted_3B0.000-0.000
predicted_AB4.0000.059
predicted_AVG0.209-0.010
predicted_BB0.000-0.477
predicted_H1.0000.136
predicted_HR0.000-0.309
predicted_OBP0.3160.012
predicted_R1.0000.425
predicted_RBI1.0000.258
predicted_SLG0.417-0.070
predicted_SO1.000-0.083
11. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.000-1.000
BB1.0000.000
CS0.0000.000
H0.000-1.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R0.000-1.000
RBI0.000-1.000
SB0.0000.000
SF0.0000.000
SO1.0000.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 153
Reference playing time: 4.030
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-20.0003.0000.0000.0003.0005.0003.0001.0006.0000.15000.22730.60000.15000.15000.25000.05000.3000
last_100.2010-39.0008.0000.0000.0004.0008.0005.0006.00012.0000.20510.32610.51280.20510.10260.20510.15380.3077
season0.60153-573.000152.00023.0000.00038.000105.00089.00076.000163.0000.26530.35940.50440.26530.06630.18320.13260.2845
Weighted Prediction From Real Data
MetricValue
predicted_2B0.0960
predicted_3B0.0010
predicted_AB3.8260
predicted_AVG0.2310
predicted_BB0.4520
predicted_H0.8840
predicted_HBP0.0990
predicted_HR0.3360
predicted_OBP0.3254
predicted_R0.5670
predicted_RBI0.7570
predicted_SLG0.5201
predicted_SO1.1070
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.15000.09600.1264model_form_blend
predicted_3B0.00000.00100.0004model_form_blend
predicted_AB4.03003.82603.9408model_form_blend
predicted_AVG0.21100.23100.2197model_form_blend
predicted_BB0.49700.45200.4773model_form_blend
predicted_H0.85000.88400.8649model_form_blend
predicted_HBP-0.09900.0990form_only
predicted_HR0.29000.33600.3101model_form_blend
predicted_OBP0.31300.32540.3184model_form_blend
predicted_R0.58200.56700.5754model_form_blend
predicted_RBI0.73000.75700.7418model_form_blend
predicted_SLG0.47800.52010.4964model_form_blend
predicted_SO1.06501.10701.0834model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date662
Season rows before report date662
Report year2026
Profile rows used153
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA4
AB3
H0
2B0
3B0
HR0
R0
RBI0
BB1
SO1
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB4
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB0
Hitting_battingOrder2
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayed1B
gameID20260920_MIL@BAL
game_typefull
mlbID624413
playerID624413
playerNamePete Alonso
pos1B
startedTrue
startingPosition1B
teamBAL
teamID3
game_date2026-09-20
sl_k_percent24.2
sl_bb_percent11.6
sl_woba0.372
sl_xwoba0.396
sl_xba0.283
sl_xslg0.548
sl_sweet_spot_percent36.0
sl_barrel_batted_rate14.5
sl_hard_hit_percent56.2
sl_exit_velocity_avg94.0
sl_launch_angle_avg14.8
sl_whiff_percent26.8
sl_swing_percent45.1
José Barrero (676480) · BATTER · 2B · Team BAL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 0
All-history rows before 20260921: 0
System season_avg: 0.2482
Data season_avg (2026 season-to-date): -
Diff (system - data): -
System opponent_avg: 0.2482

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1570.0000.000Hitting_2B----
predicted_3B0.0140.0000.000Hitting_3B----
predicted_AB3.3692.0003.000Hitting_AB----
predicted_AVG0.2480.5000.333Hitting_AVG----
predicted_BB0.3101.0000.000Hitting_BB----
predicted_CS-0.0000.000BaseRunning_CS----
predicted_H0.8351.0001.000Hitting_H----
predicted_HR0.0890.0000.000Hitting_HR----
predicted_OBP0.3110.6670.333Hitting_OBP----
predicted_R0.4321.0000.000Hitting_R----
predicted_RBI0.3920.0000.000Hitting_RBI----
predicted_SB-0.0000.000BaseRunning_SB----
predicted_SLG0.3820.5000.333Hitting_SLG----
predicted_SO0.7350.0001.000Hitting_SO----

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectdeboosted
Changed Metrics8
Boosted Metrics3
Deboosted Metrics5
Better Metrics4
Worse Metrics4
Biggest Boostpredicted_BB: 0.3100 -> 1.0000 (boost 0.6900, better)
Biggest Deboostpredicted_AB: 3.3690 -> 2.0000 (deboost -1.3690, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend11010predicted_AB: 3.3690 -> 3.4374 (boost 0.0684, 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.
3team_form_snapshot00000--Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling72516predicted_SO: 0.7526 -> 1.0000 (boost 0.2474, worse)predicted_AB: 3.4374 -> 3.0000 (deboost -0.4374, worse)AB rounded to 3 (raw=3.44), rates preserved: AVG=0.218 HR/AB=0.028
6consistency_constraints10101-predicted_R: 0.4427 -> 0.0000 (deboost -0.4427, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine64251predicted_RBI: 0.0000 -> 0.4045 (boost 0.4045, better)predicted_H: 1.0000 -> 0.6892 (deboost -0.3108, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation62415predicted_H: 0.6892 -> 1.0000 (boost 0.3108, better)predicted_RBI: 0.4045 -> 0.0000 (deboost -0.4045, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context30303-predicted_AVG: 0.2477 -> 0.2110 (deboost -0.0367, worse)Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10simulation_box_score_reference42231predicted_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
11current_json_final33030predicted_AVG: 0.2110 -> 0.2477 (boost 0.0367, better)-Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "676480",
  "player_name": "José Barrero",
  "position": "2B",
  "team": "BAL",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.157,
        "predicted_3B": 0.014,
        "predicted_AB": 3.369,
        "predicted_AVG": 0.248,
        "predicted_BB": 0.31,
        "predicted_H": 0.835,
        "predicted_HR": 0.089,
        "predicted_OBP": 0.311,
        "predicted_R": 0.432,
        "predicted_RBI": 0.392,
        "predicted_SLG": 0.382,
        "predicted_SO": 0.735
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.1603,
        "predicted_3B": 0.0143,
        "predicted_AB": 3.4374,
        "predicted_AVG": 0.248,
        "predicted_BB": 0.3028,
        "predicted_H": 0.8522,
        "predicted_HBP": 0.033,
        "predicted_HR": 0.0959,
        "predicted_OBP": 0.3101,
        "predicted_R": 0.4427,
        "predicted_RBI": 0.4062,
        "predicted_SLG": 0.386,
        "predicted_SO": 0.753
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.157,
          "after": 0.1603,
          "delta": 0.0033,
          "percent_delta": 0.021,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.014,
          "after": 0.0143,
          "delta": 0.0003,
          "percent_delta": 0.0214,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 3.369,
          "after": 3.4374,
          "delta": 0.0684,
          "percent_delta": 0.0203,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.248,
          "after": 0.248,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.31,
          "after": 0.3028,
          "delta": -0.0072,
          "percent_delta": -0.0232,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.835,
          "after": 0.8522,
          "delta": 0.0172,
          "percent_delta": 0.0206,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.089,
          "after": 0.0959,
          "delta": 0.0069,
          "percent_delta": 0.0775,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.311,
          "after": 0.3101,
          "delta": -0.0009,
          "percent_delta": -0.0029,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.432,
          "after": 0.4427,
          "delta": 0.0107,
          "percent_delta": 0.0248,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.392,
          "after": 0.4062,
          "delta": 0.0142,
          "percent_delta": 0.0362,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.382,
          "after": 0.386,
          "delta": 0.004,
          "percent_delta": 0.0105,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.735,
          "after": 0.753,
          "delta": 0.018,
          "percent_delta": 0.0245,
          "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.369,
          "after": 3.4374,
          "delta": 0.0684,
          "percent_delta": 0.0203,
          "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": 0,
        "last_10": 0,
        "season": 0
      }
    },
    {
      "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.1603,
        "predicted_3B": 0.0143,
        "predicted_AB": 3.4374,
        "predicted_AVG": 0.2477,
        "predicted_BB": 0.303,
        "predicted_H": 0.8516,
        "predicted_HBP": 0.033,
        "predicted_HR": 0.0955,
        "predicted_OBP": 0.3087,
        "predicted_R": 0.4427,
        "predicted_RBI": 0.4062,
        "predicted_SLG": 0.386,
        "predicted_SO": 0.7526
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1603,
          "after": 0.1603,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.0143,
          "after": 0.0143,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 3.4374,
          "after": 3.4374,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.248,
          "after": 0.2477,
          "delta": -0.0003,
          "percent_delta": -0.0012,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.3028,
          "after": 0.303,
          "delta": 0.0002,
          "percent_delta": 0.0007,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.8522,
          "after": 0.8516,
          "delta": -0.0006,
          "percent_delta": -0.0007,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HBP",
          "before": 0.033,
          "after": 0.033,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.0959,
          "after": 0.0955,
          "delta": -0.0004,
          "percent_delta": -0.0042,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3101,
          "after": 0.3087,
          "delta": -0.0014,
          "percent_delta": -0.0045,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.4427,
          "after": 0.4427,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4062,
          "after": 0.4062,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.386,
          "after": 0.386,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.753,
          "after": 0.7526,
          "delta": -0.0004,
          "percent_delta": -0.0005,
          "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.44), rates preserved: AVG=0.218 HR/AB=0.028",
      "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.1603,
          "after": 0.0,
          "delta": -0.1603,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0143,
          "after": 0.0,
          "delta": -0.0143,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 3.4374,
          "after": 3.0,
          "delta": -0.4374,
          "percent_delta": -0.1272,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.303,
          "after": 0.0,
          "delta": -0.303,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8516,
          "after": 1.0,
          "delta": 0.1484,
          "percent_delta": 0.1743,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HBP",
          "before": 0.033,
          "after": 0.0,
          "delta": -0.033,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.0955,
          "after": 0.0,
          "delta": -0.0955,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4062,
          "after": 0.0,
          "delta": -0.4062,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.7526,
          "after": 1.0,
          "delta": 0.2474,
          "percent_delta": 0.3287,
          "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.7526,
          "after": 1.0,
          "delta": 0.2474,
          "percent_delta": 0.3287,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 3.4374,
          "after": 3.0,
          "delta": -0.4374,
          "percent_delta": -0.1272,
          "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.4427,
          "after": 0.0,
          "delta": -0.4427,
          "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.4427,
          "after": 0.0,
          "delta": -0.4427,
          "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.1458,
        "predicted_3B": 0.0119,
        "predicted_BB": 0.3819,
        "predicted_H": 0.6892,
        "predicted_HR": 0.1131,
        "predicted_RBI": 0.4045,
        "predicted_SO": 0.8553
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1458,
          "delta": 0.1458,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0119,
          "delta": 0.0119,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.3819,
          "delta": 0.3819,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.6892,
          "delta": -0.3108,
          "percent_delta": -0.3108,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1131,
          "delta": 0.1131,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.4045,
          "delta": 0.4045,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.8553,
          "delta": -0.1447,
          "percent_delta": -0.1447,
          "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.4045,
          "delta": 0.4045,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.6892,
          "delta": -0.3108,
          "percent_delta": -0.3108,
          "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.1458,
          "after": 0.0,
          "delta": -0.1458,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0119,
          "after": 0.0,
          "delta": -0.0119,
          "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.3819,
          "after": 0.0,
          "delta": -0.3819,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.6892,
          "after": 1.0,
          "delta": 0.3108,
          "percent_delta": 0.451,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1131,
          "after": 0.0,
          "delta": -0.1131,
          "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.4045,
          "after": 0.0,
          "delta": -0.4045,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.8553,
          "after": 1.0,
          "delta": 0.1447,
          "percent_delta": 0.1692,
          "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.6892,
          "after": 1.0,
          "delta": 0.3108,
          "percent_delta": 0.451,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.4045,
          "after": 0.0,
          "delta": -0.4045,
          "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.3,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.368,
        "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.2477,
          "after": 0.211,
          "delta": -0.0367,
          "percent_delta": -0.1482,
          "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.3087,
          "after": 0.3,
          "delta": -0.0087,
          "percent_delta": -0.0282,
          "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.386,
          "after": 0.368,
          "delta": -0.018,
          "percent_delta": -0.0466,
          "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.2477,
          "after": 0.211,
          "delta": -0.0367,
          "percent_delta": -0.1482,
          "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": 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": 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": 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": 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.2477,
        "predicted_BB": 1.0,
        "predicted_CS": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.3087,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.386,
        "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": 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.211,
          "after": 0.2477,
          "delta": 0.0367,
          "percent_delta": 0.1742,
          "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.3,
          "after": 0.3087,
          "delta": 0.0087,
          "percent_delta": 0.0289,
          "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.368,
          "after": 0.386,
          "delta": 0.018,
          "percent_delta": 0.0489,
          "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.211,
          "after": 0.2477,
          "delta": 0.0367,
          "percent_delta": 0.1742,
          "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.157,
        "after": 0.0,
        "delta": -0.157,
        "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.369,
        "after": 2.0,
        "delta": -1.369,
        "percent_delta": -0.4064,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.248,
        "after": 0.2477,
        "delta": -0.0003,
        "percent_delta": -0.0012,
        "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.835,
        "after": 1.0,
        "delta": 0.165,
        "percent_delta": 0.1976,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.089,
        "after": 0.0,
        "delta": -0.089,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.311,
        "after": 0.3087,
        "delta": -0.0023,
        "percent_delta": -0.0074,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_R",
        "before": 0.432,
        "after": 1.0,
        "delta": 0.568,
        "percent_delta": 1.3148,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.392,
        "after": 0.0,
        "delta": -0.392,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.382,
        "after": 0.386,
        "delta": 0.004,
        "percent_delta": 0.0105,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_SO",
        "before": 0.735,
        "after": 0.0,
        "delta": -0.735,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 8,
      "boosted_metrics": 3,
      "deboosted_metrics": 5,
      "better_metrics": 4,
      "worse_metrics": 4,
      "biggest_boost": {
        "metric": "predicted_BB",
        "before": 0.31,
        "after": 1.0,
        "delta": 0.69,
        "percent_delta": 2.2258,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_AB",
        "before": 3.369,
        "after": 2.0,
        "delta": -1.369,
        "percent_delta": -0.4064,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "deboosted"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.157-
predicted_3B0.014-
predicted_AB3.369-
predicted_AVG0.248-
predicted_BB0.310-
predicted_H0.835-
predicted_HR0.089-
predicted_OBP0.311-
predicted_R0.432-
predicted_RBI0.392-
predicted_SLG0.382-
predicted_SO0.735-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.1600.003
predicted_3B0.0140.000
predicted_AB3.4370.068
predicted_AVG0.2480.000
predicted_BB0.303-0.007
predicted_H0.8520.017
predicted_HBP0.033-
predicted_HR0.0960.007
predicted_OBP0.310-0.001
predicted_R0.4430.011
predicted_RBI0.4060.014
predicted_SLG0.3860.004
predicted_SO0.7530.018
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1600.000
predicted_3B0.0140.000
predicted_AB3.4370.000
predicted_AVG0.248-0.000
predicted_BB0.3030.000
predicted_H0.852-0.001
predicted_HBP0.0330.000
predicted_HR0.096-0.000
predicted_OBP0.309-0.001
predicted_R0.4430.000
predicted_RBI0.4060.000
predicted_SLG0.3860.000
predicted_SO0.753-0.000
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 3 (raw=3.44), rates preserved: AVG=0.218 HR/AB=0.028

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB3.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1460.146
3B0.0120.012
BB0.3820.382
H0.689-0.311
HR0.1130.113
RBI0.4050.405
SO0.855-0.145
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.146
3B0.000-0.012
AB3.0000.000
BB0.000-0.382
H1.0000.311
HR0.000-0.113
R0.0000.000
RBI0.000-0.405
SO1.0000.145
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.160
predicted_3B0.000-0.014
predicted_AB3.000-0.437
predicted_AVG0.211-0.037
predicted_BB0.000-0.303
predicted_H1.0000.148
predicted_HR0.000-0.096
predicted_OBP0.300-0.009
predicted_R0.000-0.443
predicted_RBI0.000-0.406
predicted_SLG0.368-0.018
predicted_SO1.0000.247
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB2.000-1.000
BB1.0001.000
CS0.0000.000
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA3.000-
R1.0001.000
RBI0.0000.000
SB0.0000.000
SF0.0000.000
SO0.000-1.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 0
Reference playing time: 3.803
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.200-0.0000.0000.0000.0000.0000.0000.0000.0000.000--------
last_100.200-0.0000.0000.0000.0000.0000.0000.0000.0000.000--------
season0.600-0.0000.0000.0000.0000.0000.0000.0000.0000.000--------
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1780
predicted_3B0.0160
predicted_AB3.8030
predicted_AVG0.2482
predicted_BB0.2640
predicted_H0.9440
predicted_HBP0.0330
predicted_HR0.1330
predicted_OBP0.3055
predicted_R0.5000
predicted_RBI0.4820
predicted_SLG0.4077
predicted_SO0.8490
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.15700.17800.1603model_form_blend
predicted_3B0.01400.01600.0143model_form_blend
predicted_AB3.36903.80303.4374model_form_blend
predicted_AVG0.24800.24820.2480model_form_blend
predicted_BB0.31000.26400.3028model_form_blend
predicted_H0.83500.94400.8522model_form_blend
predicted_HBP-0.03300.0330form_only
predicted_HR0.08900.13300.0959model_form_blend
predicted_OBP0.31100.30550.3101model_form_blend
predicted_R0.43200.50000.4427model_form_blend
predicted_RBI0.39200.48200.4062model_form_blend
predicted_SLG0.38200.40770.3860model_form_blend
predicted_SO0.73500.84900.7530model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date0
Season rows before report date0
Report year2026
Profile rows used0
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA3
AB2
H1
2B0
3B0
HR0
R1
RBI0
BB1
SO0
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

No historical data found for this player before report date.

Rece Hinds (677956) · BATTER · RF · Team BAL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 20
All-history rows before 20260921: 20
System season_avg: 0.1640
Data season_avg (2026 season-to-date): 0.3333
Diff (system - data): -0.1693
System opponent_avg: 0.1640
System season_avg diverges from 2026 season-to-date by -0.1693. This usually means mixed-season window logic.

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.2270.0000.000Hitting_2B0.2001.000-0.200-1.000
predicted_3B0.0000.0000.000Hitting_3B0.0000.0000.0000.000
predicted_AB2.5004.0003.000Hitting_AB2.4003.0001.6001.000
predicted_AVG0.2010.0000.000Hitting_AVG0.3330.333-0.333-0.333
predicted_BB0.1820.0000.000Hitting_BB0.5001.000-0.500-1.000
predicted_CS-0.0000.000BaseRunning_CS0.0000.0000.0000.000
predicted_H0.4300.0000.000Hitting_H0.8001.000-0.800-1.000
predicted_HR0.0300.0000.000Hitting_HR0.0000.0000.0000.000
predicted_OBP0.2580.0000.000Hitting_OBP0.4260.500-0.426-0.500
predicted_R0.0910.0000.000Hitting_R0.0000.0000.0000.000
predicted_RBI0.1800.0000.000Hitting_RBI0.1500.000-0.1500.000
predicted_SLG0.3060.0000.000Hitting_SLG0.4170.667-0.417-0.667
predicted_SO1.2270.0002.000Hitting_SO0.8501.000-0.850-1.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics9
Boosted Metrics1
Deboosted Metrics8
Better Metrics2
Worse Metrics7
Biggest Boostpredicted_AB: 2.5000 -> 4.0000 (boost 1.5000, better)
Biggest Deboostpredicted_SO: 1.2270 -> 0.0000 (deboost -1.2270, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend32130predicted_AB: 2.5000 -> 2.6316 (boost 0.1316, better)predicted_SO: 1.2270 -> 1.1699 (deboost -0.0571, 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.
3team_form_snapshot20202-predicted_OBP: 0.2600 -> 0.2407 (deboost -0.0193, worse)Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling62433predicted_H: 0.4811 -> 1.0000 (boost 0.5189, better)predicted_2B: 0.2235 -> 0.0000 (deboost -0.2235, worse)AB rounded to 3 (raw=2.63), rates preserved: AVG=0.161 HR/AB=0.012
6consistency_constraints10101-predicted_R: 0.1172 -> 0.0000 (deboost -0.1172, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine65142predicted_RBI: 0.0000 -> 0.3862 (boost 0.3862, better)predicted_H: 1.0000 -> 0.6580 (deboost -0.3420, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation61506predicted_SO: 1.2794 -> 2.0000 (boost 0.7206, worse)predicted_H: 0.6580 -> 0.0000 (deboost -0.6580, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context54150predicted_H: 0.0000 -> 1.0000 (boost 1.0000, 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
10simulation_box_score_reference31221predicted_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
11current_json_final30303-predicted_OBP: 0.2870 -> 0.2407 (deboost -0.0463, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "677956",
  "player_name": "Rece Hinds",
  "position": "RF",
  "team": "BAL",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.227,
        "predicted_3B": 0.0,
        "predicted_AB": 2.5,
        "predicted_AVG": 0.201,
        "predicted_BB": 0.182,
        "predicted_H": 0.43,
        "predicted_HR": 0.03,
        "predicted_OBP": 0.258,
        "predicted_R": 0.091,
        "predicted_RBI": 0.18,
        "predicted_SLG": 0.306,
        "predicted_SO": 1.227
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.2235,
        "predicted_3B": 0.0014,
        "predicted_AB": 2.6316,
        "predicted_AVG": 0.2007,
        "predicted_BB": 0.2004,
        "predicted_H": 0.4814,
        "predicted_HBP": 0.029,
        "predicted_HR": 0.0311,
        "predicted_OBP": 0.26,
        "predicted_R": 0.1172,
        "predicted_RBI": 0.2094,
        "predicted_SLG": 0.3083,
        "predicted_SO": 1.1699
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.227,
          "after": 0.2235,
          "delta": -0.0035,
          "percent_delta": -0.0154,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0014,
          "delta": 0.0014,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 2.5,
          "after": 2.6316,
          "delta": 0.1316,
          "percent_delta": 0.0526,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.201,
          "after": 0.2007,
          "delta": -0.0003,
          "percent_delta": -0.0015,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.182,
          "after": 0.2004,
          "delta": 0.0184,
          "percent_delta": 0.1011,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.43,
          "after": 0.4814,
          "delta": 0.0514,
          "percent_delta": 0.1195,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.03,
          "after": 0.0311,
          "delta": 0.0011,
          "percent_delta": 0.0367,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.258,
          "after": 0.26,
          "delta": 0.002,
          "percent_delta": 0.0078,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.091,
          "after": 0.1172,
          "delta": 0.0262,
          "percent_delta": 0.2879,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.18,
          "after": 0.2094,
          "delta": 0.0294,
          "percent_delta": 0.1633,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.306,
          "after": 0.3083,
          "delta": 0.0023,
          "percent_delta": 0.0075,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 1.227,
          "after": 1.1699,
          "delta": -0.0571,
          "percent_delta": -0.0465,
          "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_AB",
          "before": 2.5,
          "after": 2.6316,
          "delta": 0.1316,
          "percent_delta": 0.0526,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.227,
          "after": 1.1699,
          "delta": -0.0571,
          "percent_delta": -0.0465,
          "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": 22
      }
    },
    {
      "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.2235,
        "predicted_3B": 0.0014,
        "predicted_AB": 2.6316,
        "predicted_AVG": 0.1828,
        "predicted_BB": 0.2005,
        "predicted_H": 0.4811,
        "predicted_HBP": 0.029,
        "predicted_HR": 0.031,
        "predicted_OBP": 0.2407,
        "predicted_R": 0.1172,
        "predicted_RBI": 0.2094,
        "predicted_SLG": 0.3041,
        "predicted_SO": 1.1693
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.2235,
          "after": 0.2235,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.0014,
          "after": 0.0014,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 2.6316,
          "after": 2.6316,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2007,
          "after": 0.1828,
          "delta": -0.0179,
          "percent_delta": -0.0892,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.2004,
          "after": 0.2005,
          "delta": 0.0001,
          "percent_delta": 0.0005,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.4814,
          "after": 0.4811,
          "delta": -0.0003,
          "percent_delta": -0.0006,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HBP",
          "before": 0.029,
          "after": 0.029,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.0311,
          "after": 0.031,
          "delta": -0.0001,
          "percent_delta": -0.0032,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.26,
          "after": 0.2407,
          "delta": -0.0193,
          "percent_delta": -0.0742,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.1172,
          "after": 0.1172,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.2094,
          "after": 0.2094,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3083,
          "after": 0.3041,
          "delta": -0.0042,
          "percent_delta": -0.0136,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 1.1699,
          "after": 1.1693,
          "delta": -0.0006,
          "percent_delta": -0.0005,
          "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.26,
          "after": 0.2407,
          "delta": -0.0193,
          "percent_delta": -0.0742,
          "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.63), rates preserved: AVG=0.161 HR/AB=0.012",
      "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.2235,
          "after": 0.0,
          "delta": -0.2235,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0014,
          "after": 0.0,
          "delta": -0.0014,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 2.6316,
          "after": 3.0,
          "delta": 0.3684,
          "percent_delta": 0.14,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.2005,
          "after": 0.0,
          "delta": -0.2005,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.4811,
          "after": 1.0,
          "delta": 0.5189,
          "percent_delta": 1.0786,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HBP",
          "before": 0.029,
          "after": 0.0,
          "delta": -0.029,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.031,
          "after": 0.0,
          "delta": -0.031,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.2094,
          "after": 0.0,
          "delta": -0.2094,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.1693,
          "after": 1.0,
          "delta": -0.1693,
          "percent_delta": -0.1448,
          "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_H",
          "before": 0.4811,
          "after": 1.0,
          "delta": 0.5189,
          "percent_delta": 1.0786,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_2B",
          "before": 0.2235,
          "after": 0.0,
          "delta": -0.2235,
          "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.1172,
          "after": 0.0,
          "delta": -0.1172,
          "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.1172,
          "after": 0.0,
          "delta": -0.1172,
          "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.1521,
        "predicted_3B": 0.011,
        "predicted_BB": 0.3437,
        "predicted_H": 0.658,
        "predicted_HR": 0.0898,
        "predicted_RBI": 0.3862,
        "predicted_SO": 1.2794
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1521,
          "delta": 0.1521,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.011,
          "delta": 0.011,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.3437,
          "delta": 0.3437,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.658,
          "delta": -0.342,
          "percent_delta": -0.342,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.0898,
          "delta": 0.0898,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.3862,
          "delta": 0.3862,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 1.2794,
          "delta": 0.2794,
          "percent_delta": 0.2794,
          "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.3862,
          "delta": 0.3862,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.658,
          "delta": -0.342,
          "percent_delta": -0.342,
          "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": 2.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1521,
          "after": 0.0,
          "delta": -0.1521,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.011,
          "after": 0.0,
          "delta": -0.011,
          "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.3437,
          "after": 0.0,
          "delta": -0.3437,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.658,
          "after": 0.0,
          "delta": -0.658,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0898,
          "after": 0.0,
          "delta": -0.0898,
          "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.3862,
          "after": 0.0,
          "delta": -0.3862,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.2794,
          "after": 2.0,
          "delta": 0.7206,
          "percent_delta": 0.5632,
          "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": 1.2794,
          "after": 2.0,
          "delta": 0.7206,
          "percent_delta": 0.5632,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 0.658,
          "after": 0.0,
          "delta": -0.658,
          "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.205,
        "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.343,
        "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.1828,
          "after": 0.205,
          "delta": 0.0222,
          "percent_delta": 0.1214,
          "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.2407,
          "after": 0.287,
          "delta": 0.0463,
          "percent_delta": 0.1924,
          "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.3041,
          "after": 0.343,
          "delta": 0.0389,
          "percent_delta": 0.1279,
          "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": 4,
        "deboosted_metrics": 1,
        "better_metrics": 5,
        "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": {
          "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": 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": 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": 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_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.1828,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 0.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.2407,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_RF": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.3041,
        "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.205,
          "after": 0.1828,
          "delta": -0.0222,
          "percent_delta": -0.1083,
          "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.2407,
          "delta": -0.0463,
          "percent_delta": -0.1615,
          "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.343,
          "after": 0.3041,
          "delta": -0.0389,
          "percent_delta": -0.1135,
          "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_OBP",
          "before": 0.287,
          "after": 0.2407,
          "delta": -0.0463,
          "percent_delta": -0.1615,
          "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.227,
        "after": 0.0,
        "delta": -0.227,
        "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": 4.0,
        "delta": 1.5,
        "percent_delta": 0.6,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.201,
        "after": 0.1828,
        "delta": -0.0182,
        "percent_delta": -0.0905,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.182,
        "after": 0.0,
        "delta": -0.182,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.43,
        "after": 0.0,
        "delta": -0.43,
        "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.258,
        "after": 0.2407,
        "delta": -0.0173,
        "percent_delta": -0.0671,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.091,
        "after": 0.0,
        "delta": -0.091,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.18,
        "after": 0.0,
        "delta": -0.18,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.306,
        "after": 0.3041,
        "delta": -0.0019,
        "percent_delta": -0.0062,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_SO",
        "before": 1.227,
        "after": 0.0,
        "delta": -1.227,
        "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_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_SO",
        "before": 1.227,
        "after": 0.0,
        "delta": -1.227,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.227-
predicted_3B0.000-
predicted_AB2.500-
predicted_AVG0.201-
predicted_BB0.182-
predicted_H0.430-
predicted_HR0.030-
predicted_OBP0.258-
predicted_R0.091-
predicted_RBI0.180-
predicted_SLG0.306-
predicted_SO1.227-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.224-0.004
predicted_3B0.0010.001
predicted_AB2.6320.132
predicted_AVG0.201-0.000
predicted_BB0.2000.018
predicted_H0.4810.051
predicted_HBP0.029-
predicted_HR0.0310.001
predicted_OBP0.2600.002
predicted_R0.1170.026
predicted_RBI0.2090.029
predicted_SLG0.3080.002
predicted_SO1.170-0.057
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.2240.000
predicted_3B0.0010.000
predicted_AB2.6320.000
predicted_AVG0.183-0.018
predicted_BB0.2010.000
predicted_H0.481-0.000
predicted_HBP0.0290.000
predicted_HR0.031-0.000
predicted_OBP0.241-0.019
predicted_R0.1170.000
predicted_RBI0.2090.000
predicted_SLG0.304-0.004
predicted_SO1.169-0.001
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 3 (raw=2.63), rates preserved: AVG=0.161 HR/AB=0.012

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB3.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1520.152
3B0.0110.011
BB0.3440.344
H0.658-0.342
HR0.0900.090
RBI0.3860.386
SO1.2790.279
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.152
3B0.000-0.011
AB3.0000.000
BB0.000-0.344
H0.000-0.658
HR0.000-0.090
R0.0000.000
RBI0.000-0.386
SO2.0000.721
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.224
predicted_3B0.000-0.001
predicted_AB3.0000.368
predicted_AVG0.2050.022
predicted_BB0.000-0.201
predicted_H1.0000.519
predicted_HR0.000-0.031
predicted_OBP0.2870.046
predicted_R0.000-0.117
predicted_RBI0.000-0.209
predicted_SLG0.3430.039
predicted_SO1.000-0.169
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0001.000
BB0.0000.000
CS0.0000.000
H0.0000.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R0.0000.000
RBI0.0000.000
SB0.0000.000
SF0.0000.000
SO0.000-2.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 22
Reference playing time: 3.803
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-12.0002.0001.0000.0000.0000.0000.0001.0004.0000.16670.23080.25000.16670.00000.00000.08330.3333
last_100.2010-22.0005.0002.0000.0000.0001.0000.0003.0009.0000.22730.30770.31820.22730.00000.04540.13640.4091
season0.6022-55.0009.0005.0000.0000.0006.0002.0004.00027.0000.16360.22580.25450.16360.00000.10910.07270.4909
Weighted Prediction From Real Data
MetricValue
predicted_2B0.2170
predicted_3B0.0040
predicted_AB2.8710
predicted_AVG0.2002
predicted_BB0.2340
predicted_H0.5750
predicted_HBP0.0290
predicted_HR0.0330
predicted_OBP0.2635
predicted_R0.1650
predicted_RBI0.2630
predicted_SLG0.3125
predicted_SO1.0660
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.22700.21700.2235model_form_blend
predicted_3B0.00000.00400.0014model_form_blend
predicted_AB2.50002.87102.6316model_form_blend
predicted_AVG0.20100.20020.2007model_form_blend
predicted_BB0.18200.23400.2004model_form_blend
predicted_H0.43000.57500.4814model_form_blend
predicted_HBP-0.02900.0290form_only
predicted_HR0.03000.03300.0311model_form_blend
predicted_OBP0.25800.26350.2600model_form_blend
predicted_R0.09100.16500.1172model_form_blend
predicted_RBI0.18000.26300.2094model_form_blend
predicted_SLG0.30600.31250.3083model_form_blend
predicted_SO1.22701.06601.1699model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date20
Season rows before report date20
Report year2026
Profile rows used22
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA4
AB4
H0
2B0
3B0
HR0
R0
RBI0
BB0
SO0
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B1
Hitting_3B0
Hitting_AB3
Hitting_AVG0.333
Hitting_BB1
Hitting_GIDP0
Hitting_H1
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO1
Hitting_TB2
Hitting_battingOrder6
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedRF
gameID20260919_MIL@BAL
game_typefull
mlbID677956
playerID677956
playerNameRece Hinds
posRF
startedTrue
startingPositionRF
teamBAL
teamID3
game_date2026-09-19
sl_k_percent42.9
sl_bb_percent7.9
sl_woba0.224
sl_xwoba0.196
sl_xba0.14
sl_xslg0.183
sl_sweet_spot_percent26.7
sl_barrel_batted_rate0.0
sl_hard_hit_percent40.0
sl_exit_velocity_avg88.9
sl_launch_angle_avg18.8
sl_whiff_percent43.4
sl_swing_percent52.5
Samuel Basallo (694212) · BATTER · C · Team BAL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 385
All-history rows before 20260921: 385
System season_avg: 0.2240
Data season_avg (2026 season-to-date): 0.2326
Diff (system - data): -0.0086
System opponent_avg: 0.2730

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.0930.0000.000Hitting_2B0.1040.000-0.1040.000
predicted_3B0.0090.0000.000Hitting_3B0.0100.000-0.0100.000
predicted_AB3.5004.0004.000Hitting_AB3.5513.0000.4491.000
predicted_AVG0.2140.2500.250Hitting_AVG0.2330.0000.0170.250
predicted_BB0.2780.0000.000Hitting_BB0.3381.000-0.338-1.000
predicted_CS-0.0000.000BaseRunning_CS0.0000.0000.0000.000
predicted_H0.7501.0001.000Hitting_H0.8260.0000.1741.000
predicted_HR0.1600.0000.000Hitting_HR0.1870.000-0.1870.000
predicted_OBP0.2680.2500.250Hitting_OBP0.3050.250-0.0550.000
predicted_R0.3700.0000.000Hitting_R0.4290.000-0.4290.000
predicted_RBI0.5100.0000.000Hitting_RBI0.5480.000-0.5480.000
predicted_SLG0.3880.2500.250Hitting_SLG0.4260.000-0.1760.250
predicted_SO0.9631.0001.000Hitting_SO1.0651.000-0.0650.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics8
Boosted Metrics2
Deboosted Metrics6
Better Metrics2
Worse Metrics6
Biggest Boostpredicted_AB: 3.5000 -> 4.0000 (boost 0.5000, better)
Biggest Deboostpredicted_RBI: 0.5100 -> 0.0000 (deboost -0.5100, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend10101-predicted_AB: 3.5000 -> 3.3987 (deboost -0.1013, 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.
3team_form_snapshot00000--Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling74334predicted_AB: 3.3987 -> 4.0000 (boost 0.6013, better)predicted_BB: 0.2648 -> 0.0000 (deboost -0.2648, worse)AB rounded to 4 (raw=3.50), rates preserved: AVG=0.183 HR/AB=0.045
6consistency_constraints10101-predicted_R: 0.3627 -> 0.0000 (deboost -0.3627, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine64233predicted_BB: 0.0000 -> 0.3708 (boost 0.3708, better)predicted_RBI: 1.0000 -> 0.4901 (deboost -0.5099, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation61524predicted_H: 0.7195 -> 1.0000 (boost 0.2805, better)predicted_RBI: 0.4901 -> 0.0000 (deboost -0.4901, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context43131predicted_RBI: 0.0000 -> 1.0000 (boost 1.0000, better)predicted_AVG: 0.2142 -> 0.2060 (deboost -0.0082, worse)Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10simulation_box_score_reference10101-predicted_RBI: 1.0000 -> 0.0000 (deboost -1.0000, worse)Attached simulation box score without overwriting model prediction
11current_json_final31212predicted_AVG: 0.2060 -> 0.2142 (boost 0.0082, better)predicted_OBP: 0.2870 -> 0.2710 (deboost -0.0160, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "694212",
  "player_name": "Samuel Basallo",
  "position": "C",
  "team": "BAL",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.093,
        "predicted_3B": 0.009,
        "predicted_AB": 3.5,
        "predicted_AVG": 0.214,
        "predicted_BB": 0.278,
        "predicted_H": 0.75,
        "predicted_HR": 0.16,
        "predicted_OBP": 0.268,
        "predicted_R": 0.37,
        "predicted_RBI": 0.51,
        "predicted_SLG": 0.388,
        "predicted_SO": 0.963
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.0797,
        "predicted_3B": 0.0077,
        "predicted_AB": 3.3987,
        "predicted_AVG": 0.2142,
        "predicted_BB": 0.2647,
        "predicted_H": 0.7285,
        "predicted_HBP": 0.043,
        "predicted_HR": 0.1591,
        "predicted_OBP": 0.2703,
        "predicted_R": 0.3627,
        "predicted_RBI": 0.5053,
        "predicted_SLG": 0.3856,
        "predicted_SO": 0.9424
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.093,
          "after": 0.0797,
          "delta": -0.0133,
          "percent_delta": -0.143,
          "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.5,
          "after": 3.3987,
          "delta": -0.1013,
          "percent_delta": -0.0289,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.214,
          "after": 0.2142,
          "delta": 0.0002,
          "percent_delta": 0.0009,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.278,
          "after": 0.2647,
          "delta": -0.0133,
          "percent_delta": -0.0478,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.75,
          "after": 0.7285,
          "delta": -0.0215,
          "percent_delta": -0.0287,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.16,
          "after": 0.1591,
          "delta": -0.0009,
          "percent_delta": -0.0056,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.268,
          "after": 0.2703,
          "delta": 0.0023,
          "percent_delta": 0.0086,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.37,
          "after": 0.3627,
          "delta": -0.0073,
          "percent_delta": -0.0197,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.51,
          "after": 0.5053,
          "delta": -0.0047,
          "percent_delta": -0.0092,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.388,
          "after": 0.3856,
          "delta": -0.0024,
          "percent_delta": -0.0062,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.963,
          "after": 0.9424,
          "delta": -0.0206,
          "percent_delta": -0.0214,
          "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_AB",
          "before": 3.5,
          "after": 3.3987,
          "delta": -0.1013,
          "percent_delta": -0.0289,
          "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": 108
      }
    },
    {
      "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.0797,
        "predicted_3B": 0.0077,
        "predicted_AB": 3.3987,
        "predicted_AVG": 0.2142,
        "predicted_BB": 0.2648,
        "predicted_H": 0.728,
        "predicted_HBP": 0.043,
        "predicted_HR": 0.1584,
        "predicted_OBP": 0.271,
        "predicted_R": 0.3627,
        "predicted_RBI": 0.5052,
        "predicted_SLG": 0.382,
        "predicted_SO": 0.9419
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0797,
          "after": 0.0797,
          "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.3987,
          "after": 3.3987,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2142,
          "after": 0.2142,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.2647,
          "after": 0.2648,
          "delta": 0.0001,
          "percent_delta": 0.0004,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.7285,
          "after": 0.728,
          "delta": -0.0005,
          "percent_delta": -0.0007,
          "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.1591,
          "after": 0.1584,
          "delta": -0.0007,
          "percent_delta": -0.0044,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2703,
          "after": 0.271,
          "delta": 0.0007,
          "percent_delta": 0.0026,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.3627,
          "after": 0.3627,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5053,
          "after": 0.5052,
          "delta": -0.0001,
          "percent_delta": -0.0002,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3856,
          "after": 0.382,
          "delta": -0.0036,
          "percent_delta": -0.0093,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.9424,
          "after": 0.9419,
          "delta": -0.0005,
          "percent_delta": -0.0005,
          "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.50), rates preserved: AVG=0.183 HR/AB=0.045",
      "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.0797,
          "after": 0.0,
          "delta": -0.0797,
          "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.3987,
          "after": 4.0,
          "delta": 0.6013,
          "percent_delta": 0.1769,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.2648,
          "after": 0.0,
          "delta": -0.2648,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.728,
          "after": 1.0,
          "delta": 0.272,
          "percent_delta": 0.3736,
          "direction": "boost",
          "projection_effect": "better",
          "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.1584,
          "after": 0.0,
          "delta": -0.1584,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5052,
          "after": 1.0,
          "delta": 0.4948,
          "percent_delta": 0.9794,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.9419,
          "after": 1.0,
          "delta": 0.0581,
          "percent_delta": 0.0617,
          "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.3987,
          "after": 4.0,
          "delta": 0.6013,
          "percent_delta": 0.1769,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.2648,
          "after": 0.0,
          "delta": -0.2648,
          "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.3627,
          "after": 0.0,
          "delta": -0.3627,
          "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.3627,
          "after": 0.0,
          "delta": -0.3627,
          "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.139,
        "predicted_3B": 0.0116,
        "predicted_BB": 0.3708,
        "predicted_H": 0.7195,
        "predicted_HR": 0.1578,
        "predicted_RBI": 0.4901,
        "predicted_SO": 1.0695
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.139,
          "delta": 0.139,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0116,
          "delta": 0.0116,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.3708,
          "delta": 0.3708,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7195,
          "delta": -0.2805,
          "percent_delta": -0.2805,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1578,
          "delta": 0.1578,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.4901,
          "delta": -0.5099,
          "percent_delta": -0.5099,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 1.0695,
          "delta": 0.0695,
          "percent_delta": 0.0695,
          "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.3708,
          "delta": 0.3708,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.4901,
          "delta": -0.5099,
          "percent_delta": -0.5099,
          "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.139,
          "after": 0.0,
          "delta": -0.139,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0116,
          "after": 0.0,
          "delta": -0.0116,
          "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.3708,
          "after": 0.0,
          "delta": -0.3708,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.7195,
          "after": 1.0,
          "delta": 0.2805,
          "percent_delta": 0.3899,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1578,
          "after": 0.0,
          "delta": -0.1578,
          "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.4901,
          "after": 0.0,
          "delta": -0.4901,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0695,
          "after": 1.0,
          "delta": -0.0695,
          "percent_delta": -0.065,
          "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.7195,
          "after": 1.0,
          "delta": 0.2805,
          "percent_delta": 0.3899,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.4901,
          "after": 0.0,
          "delta": -0.4901,
          "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.287,
        "predicted_R": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.387,
        "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.2142,
          "after": 0.206,
          "delta": -0.0082,
          "percent_delta": -0.0383,
          "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.271,
          "after": 0.287,
          "delta": 0.016,
          "percent_delta": 0.059,
          "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": 1.0,
          "delta": 1.0,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.382,
          "after": 0.387,
          "delta": 0.005,
          "percent_delta": 0.0131,
          "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_AVG",
          "before": 0.2142,
          "after": 0.206,
          "delta": -0.0082,
          "percent_delta": -0.0383,
          "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": 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": 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": 1,
        "boosted_metrics": 0,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 1,
        "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": 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.2142,
        "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.271,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 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.206,
          "after": 0.2142,
          "delta": 0.0082,
          "percent_delta": 0.0398,
          "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.287,
          "after": 0.271,
          "delta": -0.016,
          "percent_delta": -0.0557,
          "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.387,
          "after": 0.382,
          "delta": -0.005,
          "percent_delta": -0.013,
          "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_AVG",
          "before": 0.206,
          "after": 0.2142,
          "delta": 0.0082,
          "percent_delta": 0.0398,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_OBP",
          "before": 0.287,
          "after": 0.271,
          "delta": -0.016,
          "percent_delta": -0.0557,
          "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.093,
        "after": 0.0,
        "delta": -0.093,
        "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.5,
        "after": 4.0,
        "delta": 0.5,
        "percent_delta": 0.1429,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.214,
        "after": 0.2142,
        "delta": 0.0002,
        "percent_delta": 0.0009,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_BB",
        "before": 0.278,
        "after": 0.0,
        "delta": -0.278,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.75,
        "after": 1.0,
        "delta": 0.25,
        "percent_delta": 0.3333,
        "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.268,
        "after": 0.271,
        "delta": 0.003,
        "percent_delta": 0.0112,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_R",
        "before": 0.37,
        "after": 0.0,
        "delta": -0.37,
        "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.388,
        "after": 0.382,
        "delta": -0.006,
        "percent_delta": -0.0155,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.963,
        "after": 1.0,
        "delta": 0.037,
        "percent_delta": 0.0384,
        "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.5,
        "after": 4.0,
        "delta": 0.5,
        "percent_delta": 0.1429,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_RBI",
        "before": 0.51,
        "after": 0.0,
        "delta": -0.51,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.093-
predicted_3B0.009-
predicted_AB3.500-
predicted_AVG0.214-
predicted_BB0.278-
predicted_H0.750-
predicted_HR0.160-
predicted_OBP0.268-
predicted_R0.370-
predicted_RBI0.510-
predicted_SLG0.388-
predicted_SO0.963-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.080-0.013
predicted_3B0.008-0.001
predicted_AB3.399-0.101
predicted_AVG0.2140.000
predicted_BB0.265-0.013
predicted_H0.729-0.021
predicted_HBP0.043-
predicted_HR0.159-0.001
predicted_OBP0.2700.002
predicted_R0.363-0.007
predicted_RBI0.505-0.005
predicted_SLG0.386-0.002
predicted_SO0.942-0.021
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.0800.000
predicted_3B0.0080.000
predicted_AB3.3990.000
predicted_AVG0.2140.000
predicted_BB0.2650.000
predicted_H0.728-0.001
predicted_HBP0.0430.000
predicted_HR0.158-0.001
predicted_OBP0.2710.001
predicted_R0.3630.000
predicted_RBI0.505-0.000
predicted_SLG0.382-0.004
predicted_SO0.942-0.001
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 4 (raw=3.50), rates preserved: AVG=0.183 HR/AB=0.045

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB4.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI1.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI1.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1390.139
3B0.0120.012
BB0.3710.371
H0.720-0.280
HR0.1580.158
RBI0.490-0.510
SO1.0690.069
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.139
3B0.000-0.012
AB4.0000.000
BB0.000-0.371
H1.0000.280
HR0.000-0.158
R0.0000.000
RBI0.000-0.490
SO1.000-0.069
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.080
predicted_3B0.000-0.008
predicted_AB4.0000.601
predicted_AVG0.206-0.008
predicted_BB0.000-0.265
predicted_H1.0000.272
predicted_HR0.000-0.158
predicted_OBP0.2870.016
predicted_R0.000-0.363
predicted_RBI1.0000.495
predicted_SLG0.3870.005
predicted_SO1.0000.058
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.0000.000
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R0.0000.000
RBI0.0000.000
SB0.0000.000
SF0.0000.000
SO1.0000.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 108
Reference playing time: 3.803
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-16.0003.0000.0000.0001.0003.0001.0001.0004.0000.18750.22220.37500.18750.06250.18750.06250.2500
last_100.2010-30.0006.0000.0000.0001.0004.0004.0002.0009.0000.20000.26470.30000.20000.03330.13330.06670.3000
season0.60108-357.00080.00010.0001.00018.00054.00040.00030.000104.0000.22410.28930.40900.22410.05040.15130.08400.2913
Weighted Prediction From Real Data
MetricValue
predicted_2B0.0620
predicted_3B0.0060
predicted_AB3.2640
predicted_AVG0.2145
predicted_BB0.2470
predicted_H0.7000
predicted_HBP0.0430
predicted_HR0.1580
predicted_OBP0.2734
predicted_R0.3530
predicted_RBI0.4990
predicted_SLG0.3823
predicted_SO0.9150
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.09300.06200.0797model_form_blend
predicted_3B0.00900.00600.0077model_form_blend
predicted_AB3.50003.26403.3987model_form_blend
predicted_AVG0.21400.21450.2142model_form_blend
predicted_BB0.27800.24700.2647model_form_blend
predicted_H0.75000.70000.7285model_form_blend
predicted_HBP-0.04300.0430form_only
predicted_HR0.16000.15800.1591model_form_blend
predicted_OBP0.26800.27340.2703model_form_blend
predicted_R0.37000.35300.3627model_form_blend
predicted_RBI0.51000.49900.5053model_form_blend
predicted_SLG0.38800.38230.3856model_form_blend
predicted_SO0.96300.91500.9424model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date385
Season rows before report date385
Report year2026
Profile rows used108
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA4
AB4
H1
2B0
3B0
HR0
R0
RBI0
BB0
SO1
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB3
Hitting_AVG0.0
Hitting_BB1
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO1
Hitting_TB0
Hitting_battingOrder5
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedDH
gameID20260920_MIL@BAL
game_typefull
mlbID694212
playerID694212
playerNameSamuel Basallo
posC
startedTrue
startingPositionDH
teamBAL
teamID3
game_date2026-09-20
sl_k_percent26.2
sl_bb_percent7.9
sl_woba0.306
sl_xwoba0.321
sl_xba0.237
sl_xslg0.445
sl_sweet_spot_percent31.0
sl_barrel_batted_rate12.2
sl_hard_hit_percent43.1
sl_exit_velocity_avg90.5
sl_launch_angle_avg11.3
sl_whiff_percent31.6
sl_swing_percent53.1
Colton Cowser (681297) · BATTER · CF · Team BAL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 381
All-history rows before 20260921: 381
System season_avg: 0.2260
Data season_avg (2026 season-to-date): 0.2243
Diff (system - data): 0.0017
System opponent_avg: 0.3930

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.0660.0000.000Hitting_2B0.0580.000-0.0580.000
predicted_3B0.0000.0000.000Hitting_3B0.0000.0000.0000.000
predicted_AB2.6693.0003.000Hitting_AB2.8904.0000.110-1.000
predicted_AVG0.2720.3330.000Hitting_AVG0.2240.5000.109-0.167
predicted_BB0.3220.0001.000Hitting_BB0.4120.000-0.4120.000
predicted_CS-0.0000.000BaseRunning_CS0.0340.000-0.0340.000
predicted_H0.7101.0000.000Hitting_H0.6482.0000.352-1.000
predicted_HR0.0801.0000.000Hitting_HR0.1230.0000.8771.000
predicted_OBP0.3330.3330.250Hitting_OBP0.3200.5000.013-0.167
predicted_R0.2981.0000.000Hitting_R0.3570.0000.6431.000
predicted_RBI0.2701.0000.000Hitting_RBI0.3700.0000.6301.000
predicted_SLG0.3731.3330.000Hitting_SLG0.3720.5000.9610.833
predicted_SO0.9670.0001.000Hitting_SO1.0342.000-1.034-2.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics9
Boosted Metrics6
Deboosted Metrics3
Better Metrics7
Worse Metrics2
Biggest Boostpredicted_HR: 0.0800 -> 1.0000 (boost 0.9200, better)
Biggest Deboostpredicted_SO: 0.9670 -> 0.0000 (deboost -0.9670, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend22011predicted_AB: 2.6690 -> 2.8136 (boost 0.1446, 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.
3team_form_snapshot11010predicted_OBP: 0.3349 -> 0.3410 (boost 0.0061, better)-Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling62424predicted_H: 0.7527 -> 1.0000 (boost 0.2473, better)predicted_BB: 0.3136 -> 0.0000 (deboost -0.3136, worse)AB rounded to 3 (raw=2.81), rates preserved: AVG=0.236 HR/AB=0.027
6consistency_constraints10101-predicted_R: 0.2706 -> 0.0000 (deboost -0.2706, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine65142predicted_BB: 0.0000 -> 0.4454 (boost 0.4454, better)predicted_H: 1.0000 -> 0.6659 (deboost -0.3341, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation61524predicted_BB: 0.4454 -> 1.0000 (boost 0.5546, better)predicted_H: 0.6659 -> 0.0000 (deboost -0.6659, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context51414predicted_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
10simulation_box_score_reference43140predicted_HR: 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
11current_json_final33030predicted_AVG: 0.2050 -> 0.2675 (boost 0.0625, better)-Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "681297",
  "player_name": "Colton Cowser",
  "position": "CF",
  "team": "BAL",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.066,
        "predicted_3B": 0.0,
        "predicted_AB": 2.669,
        "predicted_AVG": 0.272,
        "predicted_BB": 0.322,
        "predicted_H": 0.71,
        "predicted_HR": 0.08,
        "predicted_OBP": 0.333,
        "predicted_R": 0.298,
        "predicted_RBI": 0.27,
        "predicted_SLG": 0.373,
        "predicted_SO": 0.967
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.0677,
        "predicted_3B": 0.0004,
        "predicted_AB": 2.8136,
        "predicted_AVG": 0.271,
        "predicted_BB": 0.3134,
        "predicted_H": 0.7532,
        "predicted_HBP": 0.007,
        "predicted_HR": 0.0757,
        "predicted_OBP": 0.3349,
        "predicted_R": 0.2706,
        "predicted_RBI": 0.2619,
        "predicted_SLG": 0.3689,
        "predicted_SO": 1.0278
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.066,
          "after": 0.0677,
          "delta": 0.0017,
          "percent_delta": 0.0258,
          "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.669,
          "after": 2.8136,
          "delta": 0.1446,
          "percent_delta": 0.0542,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.272,
          "after": 0.271,
          "delta": -0.001,
          "percent_delta": -0.0037,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.322,
          "after": 0.3134,
          "delta": -0.0086,
          "percent_delta": -0.0267,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.71,
          "after": 0.7532,
          "delta": 0.0432,
          "percent_delta": 0.0608,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.08,
          "after": 0.0757,
          "delta": -0.0043,
          "percent_delta": -0.0537,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.333,
          "after": 0.3349,
          "delta": 0.0019,
          "percent_delta": 0.0057,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.298,
          "after": 0.2706,
          "delta": -0.0274,
          "percent_delta": -0.0919,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.27,
          "after": 0.2619,
          "delta": -0.0081,
          "percent_delta": -0.03,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.373,
          "after": 0.3689,
          "delta": -0.0041,
          "percent_delta": -0.011,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.967,
          "after": 1.0278,
          "delta": 0.0608,
          "percent_delta": 0.0629,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 2,
        "boosted_metrics": 2,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 1,
        "biggest_boost": {
          "metric": "predicted_AB",
          "before": 2.669,
          "after": 2.8136,
          "delta": 0.1446,
          "percent_delta": 0.0542,
          "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": 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.0677,
        "predicted_3B": 0.0004,
        "predicted_AB": 2.8136,
        "predicted_AVG": 0.2675,
        "predicted_BB": 0.3136,
        "predicted_H": 0.7527,
        "predicted_HBP": 0.007,
        "predicted_HR": 0.0754,
        "predicted_OBP": 0.341,
        "predicted_R": 0.2706,
        "predicted_RBI": 0.2619,
        "predicted_SLG": 0.3722,
        "predicted_SO": 1.0273
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0677,
          "after": 0.0677,
          "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.8136,
          "after": 2.8136,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.271,
          "after": 0.2675,
          "delta": -0.0035,
          "percent_delta": -0.0129,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.3134,
          "after": 0.3136,
          "delta": 0.0002,
          "percent_delta": 0.0006,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.7532,
          "after": 0.7527,
          "delta": -0.0005,
          "percent_delta": -0.0007,
          "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.0757,
          "after": 0.0754,
          "delta": -0.0003,
          "percent_delta": -0.004,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3349,
          "after": 0.341,
          "delta": 0.0061,
          "percent_delta": 0.0182,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.2706,
          "after": 0.2706,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.2619,
          "after": 0.2619,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3689,
          "after": 0.3722,
          "delta": 0.0033,
          "percent_delta": 0.0089,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 1.0278,
          "after": 1.0273,
          "delta": -0.0005,
          "percent_delta": -0.0005,
          "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.3349,
          "after": 0.341,
          "delta": 0.0061,
          "percent_delta": 0.0182,
          "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=2.81), rates preserved: AVG=0.236 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.0677,
          "after": 0.0,
          "delta": -0.0677,
          "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.8136,
          "after": 3.0,
          "delta": 0.1864,
          "percent_delta": 0.0662,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3136,
          "after": 0.0,
          "delta": -0.3136,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.7527,
          "after": 1.0,
          "delta": 0.2473,
          "percent_delta": 0.3286,
          "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.0754,
          "after": 0.0,
          "delta": -0.0754,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.2619,
          "after": 0.0,
          "delta": -0.2619,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0273,
          "after": 1.0,
          "delta": -0.0273,
          "percent_delta": -0.0266,
          "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.7527,
          "after": 1.0,
          "delta": 0.2473,
          "percent_delta": 0.3286,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.3136,
          "after": 0.0,
          "delta": -0.3136,
          "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.2706,
          "after": 0.0,
          "delta": -0.2706,
          "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.2706,
          "after": 0.0,
          "delta": -0.2706,
          "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.1267,
        "predicted_3B": 0.0083,
        "predicted_BB": 0.4454,
        "predicted_H": 0.6659,
        "predicted_HR": 0.1178,
        "predicted_RBI": 0.3708,
        "predicted_SO": 1.1808
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1267,
          "delta": 0.1267,
          "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.4454,
          "delta": 0.4454,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.6659,
          "delta": -0.3341,
          "percent_delta": -0.3341,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1178,
          "delta": 0.1178,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.3708,
          "delta": 0.3708,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 1.1808,
          "delta": 0.1808,
          "percent_delta": 0.1808,
          "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.4454,
          "delta": 0.4454,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.6659,
          "delta": -0.3341,
          "percent_delta": -0.3341,
          "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.1267,
          "after": 0.0,
          "delta": -0.1267,
          "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": 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.4454,
          "after": 1.0,
          "delta": 0.5546,
          "percent_delta": 1.2452,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.6659,
          "after": 0.0,
          "delta": -0.6659,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1178,
          "after": 0.0,
          "delta": -0.1178,
          "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.3708,
          "after": 0.0,
          "delta": -0.3708,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.1808,
          "after": 1.0,
          "delta": -0.1808,
          "percent_delta": -0.1531,
          "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.4454,
          "after": 1.0,
          "delta": 0.5546,
          "percent_delta": 1.2452,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 0.6659,
          "after": 0.0,
          "delta": -0.6659,
          "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.205,
        "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.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": 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.2675,
          "after": 0.205,
          "delta": -0.0625,
          "percent_delta": -0.2336,
          "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.341,
          "after": 0.306,
          "delta": -0.035,
          "percent_delta": -0.1026,
          "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.3722,
          "after": 0.357,
          "delta": -0.0152,
          "percent_delta": -0.0408,
          "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_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": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 1.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": 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": 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_HR",
          "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.2675,
        "predicted_BB": 0.0,
        "predicted_CF": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 1.0,
        "predicted_OBP": 0.341,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.3722,
        "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.205,
          "after": 0.2675,
          "delta": 0.0625,
          "percent_delta": 0.3049,
          "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.306,
          "after": 0.341,
          "delta": 0.035,
          "percent_delta": 0.1142,
          "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.357,
          "after": 0.3722,
          "delta": 0.0152,
          "percent_delta": 0.0426,
          "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.205,
          "after": 0.2675,
          "delta": 0.0625,
          "percent_delta": 0.3049,
          "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.066,
        "after": 0.0,
        "delta": -0.066,
        "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.669,
        "after": 3.0,
        "delta": 0.331,
        "percent_delta": 0.124,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.272,
        "after": 0.2675,
        "delta": -0.0045,
        "percent_delta": -0.0165,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_BB",
        "before": 0.322,
        "after": 0.0,
        "delta": -0.322,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.71,
        "after": 1.0,
        "delta": 0.29,
        "percent_delta": 0.4085,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.08,
        "after": 1.0,
        "delta": 0.92,
        "percent_delta": 11.5,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.333,
        "after": 0.341,
        "delta": 0.008,
        "percent_delta": 0.024,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.298,
        "after": 1.0,
        "delta": 0.702,
        "percent_delta": 2.3557,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.27,
        "after": 1.0,
        "delta": 0.73,
        "percent_delta": 2.7037,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.373,
        "after": 0.3722,
        "delta": -0.0008,
        "percent_delta": -0.0021,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_SO",
        "before": 0.967,
        "after": 0.0,
        "delta": -0.967,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 9,
      "boosted_metrics": 6,
      "deboosted_metrics": 3,
      "better_metrics": 7,
      "worse_metrics": 2,
      "biggest_boost": {
        "metric": "predicted_HR",
        "before": 0.08,
        "after": 1.0,
        "delta": 0.92,
        "percent_delta": 11.5,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_SO",
        "before": 0.967,
        "after": 0.0,
        "delta": -0.967,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "better"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.066-
predicted_3B0.000-
predicted_AB2.669-
predicted_AVG0.272-
predicted_BB0.322-
predicted_H0.710-
predicted_HR0.080-
predicted_OBP0.333-
predicted_R0.298-
predicted_RBI0.270-
predicted_SLG0.373-
predicted_SO0.967-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.0680.002
predicted_3B0.0000.000
predicted_AB2.8140.145
predicted_AVG0.271-0.001
predicted_BB0.313-0.009
predicted_H0.7530.043
predicted_HBP0.007-
predicted_HR0.076-0.004
predicted_OBP0.3350.002
predicted_R0.271-0.027
predicted_RBI0.262-0.008
predicted_SLG0.369-0.004
predicted_SO1.0280.061
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.0680.000
predicted_3B0.0000.000
predicted_AB2.8140.000
predicted_AVG0.268-0.004
predicted_BB0.3140.000
predicted_H0.753-0.000
predicted_HBP0.0070.000
predicted_HR0.075-0.000
predicted_OBP0.3410.006
predicted_R0.2710.000
predicted_RBI0.2620.000
predicted_SLG0.3720.003
predicted_SO1.027-0.000
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 3 (raw=2.81), rates preserved: AVG=0.236 HR/AB=0.027

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB3.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1270.127
3B0.0080.008
BB0.4450.445
H0.666-0.334
HR0.1180.118
RBI0.3710.371
SO1.1810.181
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.127
3B0.000-0.008
AB3.0000.000
BB1.0000.555
H0.000-0.666
HR0.000-0.118
R0.0000.000
RBI0.000-0.371
SO1.000-0.181
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.068
predicted_3B0.000-0.000
predicted_AB3.0000.186
predicted_AVG0.205-0.063
predicted_BB0.000-0.314
predicted_H1.0000.247
predicted_HR0.000-0.075
predicted_OBP0.306-0.035
predicted_R0.000-0.271
predicted_RBI0.000-0.262
predicted_SLG0.357-0.015
predicted_SO1.000-0.027
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB0.000-1.000
CS0.0000.000
H1.0001.000
HBP0.0000.000
HR1.0001.000
PA3.000-
R1.0001.000
RBI1.0001.000
SB0.0000.000
SF0.0000.000
SO0.000-1.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 121
Reference playing time: 3.803
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-18.0007.0000.0000.0000.0000.0000.0001.0006.0000.38890.42110.38890.38890.00000.00000.05560.3333
last_100.2010-31.0009.0001.0000.0000.0002.0001.0003.00015.0000.29030.35290.32260.29030.00000.06450.09680.4839
season0.60121-323.00073.0008.0000.00012.00036.00036.00039.000117.0000.22600.30870.36220.22600.03720.11150.12070.3622
Weighted Prediction From Real Data
MetricValue
predicted_2B0.0700
predicted_3B0.0010
predicted_AB3.0070
predicted_AVG0.2697
predicted_BB0.3020
predicted_H0.8110
predicted_HBP0.0070
predicted_HR0.0700
predicted_OBP0.3374
predicted_R0.2340
predicted_RBI0.2510
predicted_SLG0.3633
predicted_SO1.1090
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.06600.07000.0677model_form_blend
predicted_3B0.00000.00100.0004model_form_blend
predicted_AB2.66903.00702.8136model_form_blend
predicted_AVG0.27200.26970.2710model_form_blend
predicted_BB0.32200.30200.3134model_form_blend
predicted_H0.71000.81100.7532model_form_blend
predicted_HBP-0.00700.0070form_only
predicted_HR0.08000.07000.0757model_form_blend
predicted_OBP0.33300.33740.3349model_form_blend
predicted_R0.29800.23400.2706model_form_blend
predicted_RBI0.27000.25100.2619model_form_blend
predicted_SLG0.37300.36330.3689model_form_blend
predicted_SO0.96701.10901.0278model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date381
Season rows before report date381
Report year2026
Profile rows used121
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA3
AB3
H1
2B0
3B0
HR1
R1
RBI1
BB0
SO0
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB4
Hitting_AVG0.5
Hitting_BB0
Hitting_GIDP0
Hitting_H2
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO2
Hitting_TB2
Hitting_battingOrder7
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedCF
gameID20260920_MIL@BAL
game_typefull
mlbID681297
playerID681297
playerNameColton Cowser
posCF
startedTrue
startingPositionCF
teamBAL
teamID3
game_date2026-09-20
sl_k_percent31.0
sl_bb_percent11.5
sl_woba0.303
sl_xwoba0.315
sl_xba0.219
sl_xslg0.404
sl_sweet_spot_percent33.2
sl_barrel_batted_rate9.8
sl_hard_hit_percent40.7
sl_exit_velocity_avg87.9
sl_launch_angle_avg12.8
sl_whiff_percent32.8
sl_swing_percent44.6
Shane Baz (669358) · PITCHER · Starter · Team BAL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 30
All-history rows before 20260921: 30

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB2.0002.0002.000Pitching_BB2.0002.0000.0000.000
predicted_ER4.0004.0004.000Pitching_ER2.6333.0001.3671.000
predicted_H7.0007.0007.000Pitching_H5.8007.0001.2000.000
predicted_IP5.2005.2005.200Pitching_InningsPitched5.5804.000-0.3801.200
predicted_SO4.0004.0004.000Pitching_SO5.0672.000-1.0672.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_form_blend
Tocurrent_json_final
Dominant Effectworse
Changed Metrics1
Boosted Metrics0
Deboosted Metrics1
Better Metrics0
Worse Metrics1
Biggest Boost-
Biggest Deboostpredicted_IP: 5.6667 -> 5.2000 (deboost -0.4667, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
2current_json_final10101-predicted_IP: 5.6667 -> 5.2000 (deboost -0.4667, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "pitcher",
  "player_id": "669358",
  "player_name": "Shane Baz",
  "position": "Starter",
  "team": "BAL",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 2.0,
        "predicted_ER": 4.0,
        "predicted_H": 7.0,
        "predicted_HR": 1.0,
        "predicted_IP": 5.6667,
        "predicted_SO": 4.0
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      },
      "weights": {},
      "window_games": {}
    },
    {
      "index": 2,
      "step": "current_json_final",
      "description": "Final player values currently stored in the game JSON",
      "stats": {
        "predicted_BB": 2.0,
        "predicted_ER": 4.0,
        "predicted_H": 7.0,
        "predicted_HR": 1.0,
        "predicted_IP": 5.2,
        "predicted_R": 4.0,
        "predicted_SO": 4.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_BB",
          "before": 2.0,
          "after": 2.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_ER",
          "before": 4.0,
          "after": 4.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 7.0,
          "after": 7.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 1.0,
          "after": 1.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_IP",
          "before": 5.6667,
          "after": 5.2,
          "delta": -0.4667,
          "percent_delta": -0.0824,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 4.0,
          "after": 4.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 0,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 1,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_IP",
          "before": 5.6667,
          "after": 5.2,
          "delta": -0.4667,
          "percent_delta": -0.0824,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      },
      "weights": {},
      "window_games": {}
    }
  ],
  "total_change": {
    "from_step": "pitcher_form_blend",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_BB",
        "before": 2.0,
        "after": 2.0,
        "delta": 0.0,
        "percent_delta": 0.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_ER",
        "before": 4.0,
        "after": 4.0,
        "delta": 0.0,
        "percent_delta": 0.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_H",
        "before": 7.0,
        "after": 7.0,
        "delta": 0.0,
        "percent_delta": 0.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_HR",
        "before": 1.0,
        "after": 1.0,
        "delta": 0.0,
        "percent_delta": 0.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_IP",
        "before": 5.6667,
        "after": 5.2,
        "delta": -0.4667,
        "percent_delta": -0.0824,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 4.0,
        "after": 4.0,
        "delta": 0.0,
        "percent_delta": 0.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      }
    ],
    "summary": {
      "changed_metrics": 1,
      "boosted_metrics": 0,
      "deboosted_metrics": 1,
      "better_metrics": 0,
      "worse_metrics": 1,
      "biggest_boost": null,
      "biggest_deboost": {
        "metric": "predicted_IP",
        "before": 5.6667,
        "after": 5.2,
        "delta": -0.4667,
        "percent_delta": -0.0824,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_form_blend

Pitcher model/profile expectation with Bayesian recent-form shrinkage

MetricValueDelta vs Prev Step
predicted_BB2.000-
predicted_ER4.000-
predicted_H7.000-
predicted_HR1.000-
predicted_IP5.667-
predicted_SO4.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 30
Reference playing time: 5.667
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.45527.10014.00027.00011.00020.0004.0004.60981.39020.51220.98780.40240.73170.1463
last_100.351055.10026.00055.00018.00047.0006.0004.22891.31930.46990.99400.32530.84940.1084
season0.2030173.00079.000174.00060.000152.00015.0004.10981.35260.45671.00580.34680.87860.0867
Weighted Prediction From Real Data
MetricValue
predicted_BB2.0270
predicted_ER2.7110
predicted_ERA4.4064
predicted_H5.4920
predicted_HR0.6930
predicted_IP5.2000
predicted_SO4.5500
predicted_WHIP1.3577
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB2.00002.02702.0159model_form_blend
predicted_ER4.00002.71103.2400model_form_blend
predicted_ERA-4.40644.4064form_only
predicted_H7.00005.49206.1108model_form_blend
predicted_HR1.00000.69300.8190model_form_blend
predicted_IP5.20005.20005.2000model_form_blend
predicted_SO4.00004.55004.3243model_form_blend
predicted_WHIP-1.35771.3577form_only

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula45% last 5 + 35% last 10 + 20% season
Active form weightslast_5=45%, last_10=35%, season=20%
Model calibration35% raw model + 65% weighted form
Rows before report date30
Season rows before report date30
Report year2026
Profile rows used30
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP5.2
H7
R4
ER4
BB2
SO4
HR1
BF26
Pitches109

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB0
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB0
Hitting_battingOrder0
Hitting_substitutionOrder0
Pitching_BB2
Pitching_Balk0
Pitching_Batters Faced21
Pitching_ER3
Pitching_ERA4.11
Pitching_Flyouts4
Pitching_Groundouts3
Pitching_H7
Pitching_HBP0
Pitching_HR1
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched4.0
Pitching_Pitches68
Pitching_R3
Pitching_SO2
Pitching_Strikes43
Pitching_Wild Pitch0
Pitching_pitchingOrder1
allPositionsPlayedP
gameID20260915_BAL@NYM
game_typefull
mlbID669358
playerID669358
playerNameShane Baz
posP
startedTrue
startingPositionP
teamBAL
teamID3
game_date2026-09-15
sl_k_percent20.5
sl_bb_percent8.1
sl_woba0.318
sl_xwoba0.315
sl_sweet_spot_percent35.5
sl_barrel_batted_rate6.9
sl_hard_hit_percent42.0
sl_whiff_percent21.9
sl_swing_percent48.2
sl_avg_best_speed80.276112231
sl_avg_hyper_speed94.462396243
Andrew Kittredge (552640) · PITCHER · Closer · Team BAL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 54
All-history rows before 20260921: 54

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB0.0000.0000.000Pitching_BB0.2040.000-0.2040.000
predicted_ER0.0000.0000.000Pitching_ER0.3520.000-0.3520.000
predicted_H1.0001.0001.000Pitching_H1.0000.0000.0001.000
predicted_IP1.0001.0001.000Pitching_InningsPitched0.7810.2000.2190.800
predicted_SO1.0001.0001.000Pitching_SO0.7221.0000.2780.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_form_blend
Tocurrent_json_final
Dominant Effectneutral
Changed Metrics0
Boosted Metrics0
Deboosted Metrics0
Better Metrics0
Worse Metrics0
Biggest Boost-
Biggest Deboost-
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
2current_json_final00000--Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "pitcher",
  "player_id": "552640",
  "player_name": "Andrew Kittredge",
  "position": "Closer",
  "team": "BAL",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 0.0,
        "predicted_ER": 0.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": 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": 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": 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": 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"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_form_blend

Pitcher model/profile expectation with Bayesian recent-form shrinkage

MetricValueDelta vs Prev Step
predicted_BB0.000-
predicted_ER0.000-
predicted_H1.000-
predicted_HR0.000-
predicted_IP1.000-
predicted_SO1.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 54
Reference playing time: 1.000
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.4554.0004.0006.0000.0003.0001.0009.00001.50001.00001.50000.00000.75000.2500
last_100.35109.0004.00012.0001.0006.0001.0004.00001.44440.44441.33330.11110.66670.1111
season0.205447.10019.00054.00011.00039.0006.0003.61271.37320.40141.14080.23240.82390.1268
Weighted Prediction From Real Data
MetricValue
predicted_BB0.1670
predicted_ER0.5640
predicted_ERA5.6301
predicted_H1.1150
predicted_HR0.1510
predicted_IP1.0000
predicted_SO0.7250
predicted_WHIP1.4214
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB0.00000.16700.0844model_form_blend
predicted_ER0.00000.56400.2851model_form_blend
predicted_ERA-5.63015.6301form_only
predicted_H1.00001.11501.0581model_form_blend
predicted_HR0.00000.15100.0763model_form_blend
predicted_IP1.00001.00001.0000model_form_blend
predicted_SO1.00000.72500.8610model_form_blend
predicted_WHIP-1.42141.4214form_only

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula45% last 5 + 35% last 10 + 20% season
Active form weightslast_5=45%, last_10=35%, season=20%
Model calibration35% raw model + 65% weighted form
Rows before report date54
Season rows before report date54
Report year2026
Profile rows used54
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP1.0
H1
R0
ER0
BB0
SO1
HR0
BF4
Pitches16

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB0
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB0
Hitting_battingOrder0
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced2
Pitching_ER0
Pitching_ERA3.61
Pitching_Flyouts0
Pitching_Groundouts1
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners1
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.2
Pitching_Pitches8
Pitching_R0
Pitching_SO1
Pitching_Strikes4
Pitching_Wild Pitch0
Pitching_pitchingOrder8
allPositionsPlayedP
gameID20260918_MIL@BAL
game_typefull
mlbID552640
playerID552640
playerNameAndrew Kittredge
posP
startedFalse
startingPositionP
teamBAL
teamID3
game_date2026-09-18
sl_k_percent18.5
sl_bb_percent5.7
sl_woba0.316
sl_xwoba0.312
sl_sweet_spot_percent38.1
sl_barrel_batted_rate6.3
sl_hard_hit_percent37.5
sl_whiff_percent23.0
sl_swing_percent53.6
sl_avg_best_speed76.97190859
sl_avg_hyper_speed93.89609141
Rico Garcia (670329) · PITCHER · Setup Man · Team BAL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 73
All-history rows before 20260921: 73

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB0.0000.0000.000Pitching_BB0.3011.000-0.301-1.000
predicted_ER0.0000.0000.000Pitching_ER0.3152.000-0.315-2.000
predicted_H0.0000.0000.000Pitching_H0.5892.000-0.589-2.000
predicted_IP1.2001.2001.200Pitching_InningsPitched0.7560.2000.4441.000
predicted_SO1.0001.0001.000Pitching_SO0.9041.0000.0960.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_form_blend
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics1
Boosted Metrics1
Deboosted Metrics0
Better Metrics1
Worse Metrics0
Biggest Boostpredicted_IP: 1.0000 -> 1.2000 (boost 0.2000, better)
Biggest Deboost-
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
2current_json_final11010predicted_IP: 1.0000 -> 1.2000 (boost 0.2000, better)-Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "pitcher",
  "player_id": "670329",
  "player_name": "Rico Garcia",
  "position": "Setup Man",
  "team": "BAL",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 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": "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": 1.0,
          "after": 1.2,
          "delta": 0.2,
          "percent_delta": 0.2,
          "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": 1.0,
          "after": 1.2,
          "delta": 0.2,
          "percent_delta": 0.2,
          "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": 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.2,
        "delta": 0.2,
        "percent_delta": 0.2,
        "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": 1.0,
        "after": 1.2,
        "delta": 0.2,
        "percent_delta": 0.2,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": null,
      "has_material_change": true,
      "dominant_effect": "better"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_form_blend

Pitcher model/profile expectation with Bayesian recent-form shrinkage

MetricValueDelta vs Prev Step
predicted_BB0.000-
predicted_ER0.000-
predicted_H0.000-
predicted_HR0.000-
predicted_IP1.000-
predicted_SO1.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 72
Reference playing time: 1.000
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.4554.1002.0005.0002.0004.0000.0004.15381.61540.46151.15390.46150.92310.0000
last_100.35107.1002.0009.0003.0007.0000.0002.45451.63640.27271.22730.40910.95460.0000
season0.207265.00019.00040.00021.00066.0009.0002.63080.93850.29230.61540.32311.01540.1385
Weighted Prediction From Real Data
MetricValue
predicted_BB0.3710
predicted_ER0.3680
predicted_ERA3.6198
predicted_H0.9580
predicted_HR0.0560
predicted_IP1.0000
predicted_SO0.8680
predicted_WHIP1.4515
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB0.00000.37100.1981model_form_blend
predicted_ER0.00000.36800.1965model_form_blend
predicted_ERA-3.61983.6198form_only
predicted_H0.00000.95800.5116model_form_blend
predicted_HR0.00000.05600.0299model_form_blend
predicted_IP1.00001.00001.0000model_form_blend
predicted_SO1.00000.86800.9295model_form_blend
predicted_WHIP-1.45151.4515form_only

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula45% last 5 + 35% last 10 + 20% season
Active form weightslast_5=45%, last_10=35%, season=20%
Model calibration35% raw model + 65% weighted form
Rows before report date73
Season rows before report date73
Report year2026
Profile rows used72
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP1.2
H0
R0
ER0
BB0
SO1
HR0
BF5
Pitches21

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB0
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB0
Hitting_battingOrder0
Hitting_substitutionOrder0
Pitching_BB1
Pitching_Balk0
Pitching_Batters Faced5
Pitching_ER2
Pitching_ERA3.18
Pitching_Flyouts1
Pitching_Groundouts0
Pitching_H2
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners2
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.2
Pitching_Pitches21
Pitching_R2
Pitching_SO1
Pitching_Strikes11
Pitching_Wild Pitch0
Pitching_pitchingOrder6
allPositionsPlayedP
gameID20260918_MIL@BAL
game_typefull
mlbID670329
playerID670329
playerNameRico Garcia
posP
startedFalse
startingPositionP
teamBAL
teamID3
game_date2026-09-18
sl_k_percent25.5
sl_bb_percent8.5
sl_woba0.264
sl_xwoba0.269
sl_sweet_spot_percent24.9
sl_barrel_batted_rate5.3
sl_hard_hit_percent34.9
sl_whiff_percent31.8
sl_swing_percent49.1
sl_avg_best_speed75.157492289
sl_avg_hyper_speed93.252175758
Yennier Cano (666974) · PITCHER · Middle Reliever (High Leverage) · Team BAL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 66
All-history rows before 20260921: 66

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB0.0000.0000.000Pitching_BB0.1821.000-0.182-1.000
predicted_ER1.0001.0001.000Pitching_ER0.2420.0000.7581.000
predicted_H1.0001.0001.000Pitching_H0.5910.0000.4091.000
predicted_IP0.2000.2000.200Pitching_InningsPitched0.5791.000-0.379-0.800
predicted_SO1.0001.0001.000Pitching_SO0.6521.0000.3480.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_form_blend
Tocurrent_json_final
Dominant Effectworse
Changed Metrics1
Boosted Metrics0
Deboosted Metrics1
Better Metrics0
Worse Metrics1
Biggest Boost-
Biggest Deboostpredicted_IP: 0.6667 -> 0.2000 (deboost -0.4667, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
2current_json_final10101-predicted_IP: 0.6667 -> 0.2000 (deboost -0.4667, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "pitcher",
  "player_id": "666974",
  "player_name": "Yennier Cano",
  "position": "Middle Reliever (High Leverage)",
  "team": "BAL",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 0.0,
        "predicted_ER": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 1.0,
        "predicted_IP": 0.6667,
        "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": 0.2,
        "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": 0.6667,
          "after": 0.2,
          "delta": -0.4667,
          "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.6667,
          "after": 0.2,
          "delta": -0.4667,
          "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": 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": 0.6667,
        "after": 0.2,
        "delta": -0.4667,
        "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.6667,
        "after": 0.2,
        "delta": -0.4667,
        "percent_delta": -0.7,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_form_blend

Pitcher model/profile expectation with Bayesian recent-form shrinkage

MetricValueDelta vs Prev Step
predicted_BB0.000-
predicted_ER1.000-
predicted_H1.000-
predicted_HR1.000-
predicted_IP0.667-
predicted_SO1.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 64
Reference playing time: 0.667
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.4553.1000.0002.0002.0002.0000.0000.00001.20000.00000.60000.60000.60000.0000
last_100.35106.0001.0003.0002.0005.0001.0001.50000.83330.16670.50000.33330.83330.1667
season0.206448.00012.00033.00011.00043.0002.0002.25000.91670.25000.68750.22920.89580.0417
Weighted Prediction From Real Data
MetricValue
predicted_BB0.2760
predicted_ER0.1630
predicted_ERA2.1981
predicted_H0.4780
predicted_HR0.0630
predicted_IP0.2000
predicted_SO0.5380
predicted_WHIP1.1307
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB0.00000.27600.1399model_form_blend
predicted_ER1.00000.16300.5757model_form_blend
predicted_ERA-2.19812.1981form_only
predicted_H1.00000.47800.7354model_form_blend
predicted_HR1.00000.06300.5250model_form_blend
predicted_IP0.20000.20000.2000model_form_blend
predicted_SO1.00000.53800.7658model_form_blend
predicted_WHIP-1.13071.1307form_only

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula45% last 5 + 35% last 10 + 20% season
Active form weightslast_5=45%, last_10=35%, season=20%
Model calibration35% raw model + 65% weighted form
Rows before report date66
Season rows before report date66
Report year2026
Profile rows used64
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP0.2
H1
R1
ER1
BB0
SO1
HR1
BF3
Pitches11

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB0
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB0
Hitting_battingOrder0
Hitting_substitutionOrder0
Pitching_BB1
Pitching_Balk0
Pitching_Batters Faced4
Pitching_ER0
Pitching_ERA3.00
Pitching_Flyouts0
Pitching_Groundouts2
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched1.0
Pitching_Pitches14
Pitching_R0
Pitching_SO1
Pitching_Strikes6
Pitching_Wild Pitch0
Pitching_pitchingOrder4
allPositionsPlayedP
gameID20260918_MIL@BAL
game_typefull
mlbID666974
playerID666974
playerNameYennier Cano
posP
startedFalse
startingPositionP
teamBAL
teamID3
game_date2026-09-18
sl_k_percent21.8
sl_bb_percent5.6
sl_woba0.249
sl_xwoba0.282
sl_sweet_spot_percent25.7
sl_barrel_batted_rate5.9
sl_hard_hit_percent39.3
sl_whiff_percent26.5
sl_swing_percent44.9
sl_avg_best_speed78.285974118
sl_avg_hyper_speed94.209573015

20260921_WAS@DET

Prediction Method: enhanced_ml_pitcher_opponent_strength
Team Recent Window (Home): 10 games
Team Recent Window (Away): 10 games
Team Recent Period: Latest 10 games from dataset
Enhanced Prediction Target: {"away_runs": 4, "home_runs": 5, "confidence": 0.5358090975, "home_win_probability": 0.5358090975, "away_win_probability": 0.46419090249999995, "predicted_score_text": "WAS 4 - 5 DET", "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": "WAS", "original_runs": 4, "run_delta": -0.3465, "adjusted_runs": 4, "lineup": {"players_used": 9, "total_weight": 32.0, "quality": -0.0717285074822441, "contact": -0.12068109422273657, "power": -0.04969804004675321, "discipline": -0.0721361712279237, "xwoba": 0.30628125, "recent_xwoba": 0.30628125, "barrel": 7.1625000000000005, "ab_hard_contact": -0.050984610458875174, "ab_bat_speed": 70.02521396031365, "ab_strikeout_rate": 0.21195219736664042, "available_players": 9, "top_players": [{"player_id": "683083", "player_name": "Nasim Nuñez", "position": "DH_683083", "weight": 3.0, "quality": -0.9736180619762874, "contact": -1.0665517400819182, "power": -1.484346835836528, "discipline": 0.3650416379112034, "xwoba": 0.268, "recent_xwoba": 0.268, "barrel": 0.9, "ab_hard_contact": -0.9901748119686631, "ab_bat_speed": 65.29158651423532, "ab_strikeout_rate": 0.1917989417989418, "available": 1.0}, {"player_id": "678391", "player_name": "Jorbit Vivas", "position": "DH_678391", "weight": 3.0, "quality": -0.733127756761818, "contact": -0.7602243902380349, "power": -1.2651606937656583, "discipline": 0.8459140109518009, "xwoba": 0.293, "recent_xwoba": 0.293, "barrel": 3.2, "ab_hard_contact": -0.6765472086464965, "ab_bat_speed": 68.01787342767295, "ab_strikeout_rate": 0.16635514018691588, "available": 1.0}, {"player_id": "691781", "player_name": "Brady House", "position": "DH_691781", "weight": 4.0, "quality": 0.5071693121591476, "contact": 0.5552747880737886, "power": 0.7072990118397335, "discipline": -0.45894513457556896, "xwoba": 0.335, "recent_xwoba": 0.335, "barrel": 10.1, "ab_hard_contact": 0.6275040463184783, "ab_bat_speed": 72.34679161942555, "ab_strikeout_rate": 0.26785714285714285, "available": 1.0}, {"player_id": "695734", "player_name": "Daylen Lile", "position": "DH_695734", "weight": 3.0, "quality": 0.2565625477227963, "contact": 0.2232510588738307, "power": 0.4265890107696444, "discipline": -0.15012011060624972, "xwoba": 0.326, "recent_xwoba": 0.326, "barrel": 9.4, "ab_hard_contact": 0.24263735825003546, "ab_bat_speed": 70.30436582507723, "ab_strikeout_rate": 0.20124640460210932, "available": 1.0}, {"player_id": "682928", "player_name": "CJ Abrams", "position": "DH_682928", "weight": 4.0, "quality": 0.20607413889937148, "contact": 0.19553855183093455, "power": 0.49428287592880826, "discipline": -0.26117249876067977, "xwoba": 0.329, "recent_xwoba": 0.329, "barrel": 9.9, "ab_hard_contact": 0.24870513762377905, "ab_bat_speed": 71.30243939097548, "ab_strikeout_rate": 0.2533702213279678, "available": 1.0}]}, "opposing_starter": {"available": false, "player_id": "689981", "player_name": "River Ryan", "quality": 0.0, "contact": 0.0, "command": 0.0, "movement": 0.0, "xwoba": 0.0, "whiff": 0.0, "faced_est_woba": 0.0, "faced_launch_speed": 0.0, "faced_strikeout_rate": 0.0, "faced_run_exp": 0.0}}, "home": {"team": "DET", "original_runs": 5, "run_delta": -0.0752, "adjusted_runs": 5, "lineup": {"players_used": 9, "total_weight": 33.0, "quality": 0.23693147436052991, "contact": 0.23729275361696384, "power": 0.29074868991196023, "discipline": 0.13248093432312671, "xwoba": 0.3306060606060606, "recent_xwoba": 0.3306060606060606, "barrel": 8.796969696969697, "ab_hard_contact": 0.17762892089432497, "ab_bat_speed": 70.98014141226683, "ab_strikeout_rate": 0.241727610754984, "available_players": 9, "top_players": [{"player_id": "682985", "player_name": "Riley Greene", "position": "DH_682985", "weight": 4.0, "quality": 0.9289987999087416, "contact": 0.8661755022974988, "power": 1.4088681903279918, "discipline": 0.035523615424430874, "xwoba": 0.374, "recent_xwoba": 0.374, "barrel": 15.2, "ab_hard_contact": 0.6143161875122112, "ab_bat_speed": 74.47799649677579, "ab_strikeout_rate": 0.2623883928571429, "available": 1.0}, {"player_id": "805808", "player_name": "Kevin McGonigle", "position": "DH", "weight": 4.0, "quality": 0.55782862750095, "contact": 0.7059359003423066, "power": 0.2695038439730112, "discipline": 1.242657709339775, "xwoba": 0.361, "recent_xwoba": 0.361, "barrel": 7.2, "ab_hard_contact": 0.18398164136498565, "ab_bat_speed": 70.07709372244268, "ab_strikeout_rate": 0.13889715608465608, "available": 1.0}, {"player_id": "693307", "player_name": "Dillon Dingler", "position": "DH_693307", "weight": 4.0, "quality": 0.3898865280030454, "contact": 0.4251705239014529, "power": 0.5878579194778504, "discipline": -0.3440725855559612, "xwoba": 0.339, "recent_xwoba": 0.339, "barrel": 9.7, "ab_hard_contact": 0.35487267527129385, "ab_bat_speed": 70.93011192810457, "ab_strikeout_rate": 0.23469887955182073, "available": 1.0}, {"player_id": "690993", "player_name": "Colt Keith", "position": "DH_690993", "weight": 3.0, "quality": 0.3666224073919155, "contact": 0.5388202505557509, "power": 0.29389979030412705, "discipline": 0.03532470669427215, "xwoba": 0.335, "recent_xwoba": 0.335, "barrel": 7.7, "ab_hard_contact": 0.2418053298920681, "ab_bat_speed": 70.9689631043257, "ab_strikeout_rate": 0.20694444444444443, "available": 1.0}, {"player_id": "703601", "player_name": "Max Clark", "position": "DH_703601", "weight": 4.0, "quality": -0.11729268713554719, "contact": 0.2063068163354994, "power": -0.6155458961920506, "discipline": 0.3218318689087516, "xwoba": 0.315, "recent_xwoba": 0.315, "barrel": 1.7, "ab_hard_contact": -0.08425125717434216, "ab_bat_speed": 71.70756571815718, "ab_strikeout_rate": 0.21036585365853658, "available": 1.0}]}, "opposing_starter": {"available": false, "player_id": "687792", "player_name": "DJ Herz", "quality": 0.0, "contact": 0.0, "command": 0.0, "movement": 0.0, "xwoba": 0.0, "whiff": 0.0, "faced_est_woba": 0.0, "faced_launch_speed": 0.0, "faced_strikeout_rate": 0.0, "faced_run_exp": 0.0}}}, "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.2823, "recent_form_edge_home_minus_away": 0.14, "pitcher_matchup_edge_home_minus_away": 0.0, "composite_home_edge": 0.3703, "existing_home_win_probability": 0.5766, "refreshed_home_win_probability": 0.6771, "winner_support_before_review": 0.3703}, "reasons": ["target direction already matched refreshed fundamentals or margin was not fragile"]}, "uncapped_home_win_probability": 0.576597, "uncapped_away_win_probability": 0.423403, "confidence_shrinkage": {"policy": "starter_quality_shrinkage_v3", "staged_confidence": 0.576597, "discount_factor": 0.4675, "published_confidence": 0.535809, "guardrail_confidence_cap": null, "guardrail_cap_enforced": false, "applied_discounts": [{"reason": "winner_starter_has_no_reliable_baseline", "factor": 0.55}, {"reason": "projected_margin_is_one_run", "factor": 0.85}]}, "score_probability_reconciliation": {"policy": "published_probability_follows_published_score_v1", "incoming_home_win_probability": 0.677112, "incoming_favoured_side": "home", "score_winner_side": "home", "published_home_win_probability": 0.535809, "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: winner_starter_has_no_reliable_baseline x0.55, projected_margin_is_one_run x0.85.", "pre_simulation_target": {"away_runs": 4, "home_runs": 5, "predicted_score_text": "WAS 4 - 5 DET", "confidence": 0.5358090975, "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": "WAS 4 - 5 DET", "winner": "DET"}, "final_simulation_score": {"away_runs": 4, "home_runs": 5, "score_text": "WAS 4 - 5 DET", "winner": "DET"}, "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.0, "recent_form_edge_home_minus_away": 0.14, "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": "DET", "model_winner": "DET", "simulation_winner": "DET", "simulation_winner_agrees": true, "simulation_agreement_scope": "selected_draw_only", "simulation_distribution_agreement": {"available": true, "draw_count": 2, "published_winner": "DET", "published_winner_draw_share": 1.0, "draw_majority_team": "DET", "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": 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.2823, "winner": "DET", "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": "DET", "display_confidence": 0.5358, "internal_signal_score": 0.5863, "internal_signal_status": "ranking_signal_not_a_calibrated_fair_probability", "model_pick_probability": 0.5358, "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": 1, "winner_quality_edge": 0.2823, "winner_recent_form_edge": 0.14, "winner_pitcher_matchup_edge": 0.0, "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": 9, "median": 10, "max": 10, "range": 1}}, "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."}}
Factors Considered: Historical team performance, Season-to-date run differential, Recent form (latest 10 games), Head-to-head matchup history, Player-level statistics, Baseball Savant hitter xwOBA/xBA/xSLG/contact quality, Baseball Savant pitcher xwOBA/contact/whiff quality, Pitcher splits versus opponent batting strength, Recent-form versus season-quality arbitration, Recent 10-game performance trends, Pitcher recent form analysis, Team hitting/pitching streaks, Low-score probability modeling, Environmental factors, Home field advantage, Game timing factors, Seasonal adjustments, Machine learning models

Game-Level Prediction Audit

LayerScoreWinnerConfidenceSource or usageSynced or matches
Shipped predictionWAS 4 - 5 DETDET0.536enhanced_prediction.pre_simulation_targetTrue
Simulation drawWAS 4 - 5 DETDET-organic_simulation_realized_targetTrue

The shipped score is reconciled to the final simulation score. The original model target remains visible as the pre-simulation audit layer.

Full Prediction Process

Optimization Roadmap Runtime Status

This table distinguishes newly generated artifacts from older files. Missing trace data is shown as legacy/unavailable, never inferred.

PriorityChangeRuntime statusEvidence
P1Empirical confidence blendappliedraw=0.6149; empirical=0.5712; weight=0.5000; final=0.5930
P1H2H margin as base featureunavailable / legacy artifacthome net=0; abs=-; home delta=0; away delta=0
P2Wider score distributionimplemented_above_requested_1.4xvariance multiplier=2.0500; floor=2.7500
P2Simulation flip controldiagnostic_only_unless_independently_supportedcandidate=False; trusted=False; published flip=False
P3Season edge + recent formimplementedwindow=10; season edge=0.3590; recent edge=0.1400; blended=-
P3Continuous calibration audittrace emittedChecked by CONFIDENCE_CALIBRATION_APPLIED and bucket_calibration_error in learning reports.
Process LayerWhat It DoesStored FieldObserved Value
1. Historical modelStarts from trained game model output.score_evolution.steps[historical_ml]-
2. Variance layerApplies bounded game variance before enhanced corrections.score_evolution.steps[variance_applied]-
3. Recent/team formUses latest team form, recent scoring, prevention, and streak state.enhanced_prediction_analysis.recent_formTrue
4. Season qualityUses season run differential and record quality guardrails.season_run_differential_adjustment, season_quality_guardrailTrue
5. Savant hittersApplies lineup-level Statcast xwOBA, xBA, xSLG, barrel, hard-hit, sweet-spot, EV, launch-angle, whiff, K and BB quality.savant_batter_quality_adjustmentTrue
6. Savant pitchersApplies starter run prevention, strikeout, walk, HR and regression factors from xwOBA, wOBA, contact quality and whiff/command.savant_pitcher_quality_adjustmentFalse
7. Low-score analysisControls unrealistic totals and preserves the pre-sync low-score expected total.low_score_analysis9.6000
8. Probability/governorsApplies win probability calibration, matchup guardrails, margin governor and confidence governor.win_probability_calibration, margin_governor, confidence_governor0.5358
9. Simulation reconciliationReconciles final shipped score with the simulation box score while retaining the pre-simulation target.simulation_reconciliationorganic_simulation_realized_target
10. Score evolution rendered7 stored score steps are rendered below.game.score_evolution.stepstrue

Score Evolution Steps

StepLayerAway RunsHome RunsConfidenceDescription
1historical_ml4.2754.493-Base ML historical model prediction
2variance_applied44-Deterministic baseline target (variance factor 1.0)
3enhanced_prediction450.5358Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by winner_starter_has_no_reliable_baseline, projected_margin_is_one_run)
4embedded_savant_run_environment45-Target score adjusted by temporal Savant lineup quality versus opposing starter quality
5fundamental_edge_target_review45-Refreshed score target and win probability after Savant/pitcher/team-strength adjustments
6capped_target45-Capped at max 12 realistic runs
7simulation_result45-Final inning-by-inning simulation result

Governors, Guardrails, and Reconciliation

Low Score Analysis
{
  "low_score_probability": 0.4730506360279032,
  "base_low_score_probability": 0.42470250307755436,
  "low_score_signal_threshold": 0.5047025030775544,
  "low_score_signal_strength": 0.04834813295034884,
  "confidence": 0.6569200000000001,
  "factors": {
    "environmental": 1.0710000000000002,
    "pitcher_form": 1.0,
    "team_form": 1.0,
    "situational": 1.04,
    "combined": 1.1138400000000002
  },
  "prediction": "normal_scoring",
  "expected_total_runs": 9,
  "score_scale_mode": "control",
  "pre_simulation_expected_total_runs": 9.6,
  "low_score_model_expected_total_runs": 9.6,
  "final_simulation_total_runs": 9,
  "score_source": "enhanced_prediction.pre_simulation_target"
}
Win Probability Calibration
{
  "method": "monotone_reliability_shrinkage",
  "policy": "shrink_toward_even_score_floor_v3",
  "sample_size": 632,
  "near_bucket_sample_size": 632,
  "medium_bucket_sample_size": 897,
  "wide_bucket_sample_size": 1003,
  "global_sample_size": 1025,
  "bucket_scope": "near_0.05",
  "sparse_bucket": false,
  "empirical_hit_rate": 0.5712,
  "bayesian_hit_rate": 0.5692,
  "prior_strength": 18.0,
  "raw_pick_probability": 0.572,
  "raw_pick_probability_unclamped": 0.572,
  "score_probability_conflict": false,
  "margin_implied_home_probability": 0.5788,
  "margin_implied_pick_probability": 0.5788,
  "score_blend_weight": 0.45,
  "blended_raw_pick_probability": 0.5751,
  "score_implied_floor_pick_probability": 0.5774,
  "max_published_pick_probability": 0.9,
  "uncapped_home_win_probability": 0.571977,
  "uncapped_away_win_probability": 0.428023,
  "calibrated_pick_probability": 0.5774,
  "predicted_side": "home",
  "reliability": 0.972308,
  "shrink_floor": 0.35,
  "empirical_penalty": 1.0,
  "shrinkage_weight": 0.982
}
Empirical Confidence Calibration
{
  "method": "empirical_hit_rate_weighted_v1",
  "applied": true,
  "reason": "raw confidence blended with verified historical bucket hit rate",
  "raw_confidence": 0.614863,
  "sample_size": 632,
  "empirical_hit_rate": 0.5712,
  "empirical_weight": 0.5,
  "blended_confidence": 0.593031,
  "published_confidence": 0.535809,
  "published_after_governors": true,
  "governor_mode": "shrinkage_not_clamp"
}
H2H Base Feature
{
  "method": "h2h_net_margin_monotonic_v1",
  "available": false,
  "sample_size": 0,
  "home_net_margin": 0.0,
  "home_average_margin": 0.0,
  "home_run_delta": 0.0,
  "away_run_delta": 0.0,
  "evidence": []
}
Season Run Differential Adjustment
{
  "applied": false,
  "home": {
    "team": "DET",
    "games": 156,
    "wins": 73,
    "losses": 83,
    "win_pct": 0.46794871794871795,
    "runs_scored": 697,
    "runs_allowed": 629,
    "run_differential": 68,
    "run_differential_per_game": 0.4358974358974359,
    "available": true
  },
  "away": {
    "team": "WAS",
    "games": 156,
    "wins": 73,
    "losses": 83,
    "win_pct": 0.46794871794871795,
    "runs_scored": 798,
    "runs_allowed": 786,
    "run_differential": 12,
    "run_differential_per_game": 0.07692307692307693,
    "available": true
  },
  "run_differential_edge_per_game": 0.359,
  "win_pct_edge": 0.0,
  "quality_edge": 0.2823,
  "season_quality_edge": 0.359,
  "recent_quality_blend": {
    "method": "season_recent_quality_blend_v2_adaptive",
    "recent_window": 10,
    "season_quality_edge": 0.359,
    "recent_quality_edge": 0.14,
    "season_weight": 0.65,
    "recent_weight": 0.35,
    "recent_reliability": 1.0,
    "alignment": "aligned",
    "blended_quality_edge": 0.2823
  },
  "margin_adjustment": 0.0,
  "reason": "season quality edge below action threshold"
}
Score Distribution Widening
{
  "most_likely": [
    {
      "home_runs": 5,
      "away_runs": 4,
      "probability": 0.017778142753951297
    },
    {
      "home_runs": 6,
      "away_runs": 4,
      "probability": 0.017492179378915416
    },
    {
      "home_runs": 5,
      "away_runs": 5,
      "probability": 0.017343436766762553
    },
    {
      "home_runs": 6,
      "away_runs": 5,
      "probability": 0.017064465685183036
    },
    {
      "home_runs": 4,
      "away_runs": 4,
      "probability": 0.016486560091907392
    }
  ],
  "home_distribution": {
    "0": 0.03438032775754816,
    "1": 0.0534886425455253,
    "2": 0.07593016331054381,
    "3": 0.098348623408862,
    "4": 0.11623138981615555,
    "5": 0.12533713698445068,
    "6": 0.12332107539660893,
    "7": 0.11071234005962208,
    "8": 0.09068927942400415,
    "9": 0.06778241935131715,
    "10": 0.046225261289494175,
    "11": 0.028763575935247233,
    "12": 0.01633080427210783,
    "13": 0.008460060408091842,
    "14": 0.003998900040421264
  },
  "away_distribution": {
    "0": 0.05013488082535613,
    "1": 0.07713604660213688,
    "2": 0.10590284121591835,
    "3": 0.12974501858338477,
    "4": 0.14184257899681285,
    "5": 0.13837428541960536,
    "6": 0.12045837740860073,
    "7": 0.09357319796426258,
    "8": 0.0648632613196429,
    "9": 0.04012166392462314,
    "10": 0.022145828684952296,
    "11": 0.010907815458949659,
    "12": 0.004794203595754079
  },
  "model": "overdispersed_score_distribution",
  "variance_multiplier": 2.05,
  "variance_floor": 2.75,
  "roadmap_status": "implemented_above_requested_1.4x"
}
Matchup Recency Guardrail
{
  "applied": false,
  "confidence_cap": null,
  "winner_flipped": false,
  "reasons": [],
  "signals": {
    "predicted_team": "DET",
    "opponent_team": "WAS",
    "prediction_memory": {
      "available": false,
      "reason": "no_verified_prior_matchup_predictions",
      "verification_policy": "pregame_artifact_matched_to_one_official_final",
      "verified_outcome_count": 0,
      "consecutive_same_pick_count": 0,
      "same_pick_actual_loss_count": 0,
      "same_pick_blowout_loss_count": 0,
      "prior_predictions": []
    },
    "guardrail_predicted_team": "DET",
    "guardrail_opponent_team": "WAS",
    "output_pre_simulation_winner": "DET",
    "output_opponent_team": "WAS",
    "simulation_score_winner": "DET",
    "final_score_winner": "DET",
    "pre_simulation_winner": "DET",
    "winner_flipped_by_simulation": false,
    "simulation_would_flip_winner": false
  },
  "final_prediction_sync": {
    "pre_simulation_score": {
      "away_runs": 4,
      "home_runs": 5,
      "score_text": "WAS 4 - 5 DET",
      "winner": "DET"
    },
    "final_simulation_score": {
      "away_runs": 4,
      "home_runs": 5,
      "score_text": "WAS 4 - 5 DET",
      "winner": "DET"
    },
    "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.0,
      "recent_form_edge_home_minus_away": 0.14,
      "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": "DET",
      "model_winner": "DET",
      "simulation_winner": "DET",
      "simulation_winner_agrees": true,
      "simulation_agreement_scope": "selected_draw_only",
      "simulation_distribution_agreement": {
        "available": true,
        "draw_count": 2,
        "published_winner": "DET",
        "published_winner_draw_share": 1.0,
        "draw_majority_team": "DET",
        "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": 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.2823,
      "winner": "DET",
      "score_reviewed": {
        "away_runs": 4,
        "home_runs": 5,
        "source": "enhanced_prediction.pre_simulation_target"
      },
      "reason": "published margin is directionally supported or within review threshold"
    }
  }
}
Season Quality Guardrail
{
  "applied": false,
  "confidence_cap": null,
  "winner_flipped": false,
  "hard_flip_suppressed": false,
  "policy": "recency_uncertainty_shrinkage_v2",
  "reasons": [],
  "signals": {
    "home": {
      "team": "DET",
      "games": 156,
      "wins": 73,
      "losses": 83,
      "win_pct": 0.46794871794871795,
      "runs_scored": 697,
      "runs_allowed": 629,
      "run_differential": 68,
      "run_differential_per_game": 0.4358974358974359,
      "available": true
    },
    "away": {
      "team": "WAS",
      "games": 156,
      "wins": 73,
      "losses": 83,
      "win_pct": 0.46794871794871795,
      "runs_scored": 798,
      "runs_allowed": 786,
      "run_differential": 12,
      "run_differential_per_game": 0.07692307692307693,
      "available": true
    }
  }
}
Margin Governor
{
  "applied": false,
  "raw_margin": 1.0404,
  "final_margin": 1.0404,
  "margin_cap": 1.5,
  "season_quality_edge": 0.2823,
  "reason": "raw target margin within supported range"
}
Confidence Governor
{
  "applied": true,
  "policy": "align_to_calibrated_probability_v2",
  "raw_confidence": 0.593031,
  "final_confidence": 0.5774,
  "calibrated_pick_probability": 0.5774,
  "shrinkage_weight": 0.982,
  "hard_maximum": 0.9,
  "confidence_floor": 0.505,
  "score_gap": 1.0404,
  "calibration_sample_size": 632,
  "calibration_empirical_hit_rate": 0.5712,
  "calibration_bayesian_hit_rate": 0.5692,
  "calibration_sparse_bucket": false,
  "season_quality_edge": 0.2823,
  "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.577399,
    "margin_implied_home_probability": 0.575796,
    "shrinkage_weight": 0.982,
    "side_flipped": false,
    "applied": true,
    "probability_after": 0.576597,
    "aligned_pick_probability": 0.576597
  },
  "starter_experience": {
    "applied": false
  }
}
Simulation Reconciliation
{
  "pre_simulation_score": {
    "away_runs": 4,
    "home_runs": 5,
    "score_text": "WAS 4 - 5 DET",
    "winner": "DET"
  },
  "final_simulation_score": {
    "away_runs": 4,
    "home_runs": 5,
    "score_text": "WAS 4 - 5 DET",
    "winner": "DET"
  },
  "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.0,
    "recent_form_edge_home_minus_away": 0.14,
    "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": "DET",
    "model_winner": "DET",
    "simulation_winner": "DET",
    "simulation_winner_agrees": true,
    "simulation_agreement_scope": "selected_draw_only",
    "simulation_distribution_agreement": {
      "available": true,
      "draw_count": 2,
      "published_winner": "DET",
      "published_winner_draw_share": 1.0,
      "draw_majority_team": "DET",
      "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": 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.2823,
    "winner": "DET",
    "score_reviewed": {
      "away_runs": 4,
      "home_runs": 5,
      "source": "enhanced_prediction.pre_simulation_target"
    },
    "reason": "published margin is directionally supported or within review threshold"
  }
}
Enhanced Prediction Target
{
  "away_runs": 4,
  "home_runs": 5,
  "confidence": 0.5358090975,
  "home_win_probability": 0.5358090975,
  "away_win_probability": 0.46419090249999995,
  "predicted_score_text": "WAS 4 - 5 DET",
  "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": "WAS",
      "original_runs": 4,
      "run_delta": -0.3465,
      "adjusted_runs": 4,
      "lineup": {
        "players_used": 9,
        "total_weight": 32.0,
        "quality": -0.0717285074822441,
        "contact": -0.12068109422273657,
        "power": -0.04969804004675321,
        "discipline": -0.0721361712279237,
        "xwoba": 0.30628125,
        "recent_xwoba": 0.30628125,
        "barrel": 7.1625000000000005,
        "ab_hard_contact": -0.050984610458875174,
        "ab_bat_speed": 70.02521396031365,
        "ab_strikeout_rate": 0.21195219736664042,
        "available_players": 9,
        "top_players": [
          {
            "player_id": "683083",
            "player_name": "Nasim Nuñez",
            "position": "DH_683083",
            "weight": 3.0,
            "quality": -0.9736180619762874,
            "contact": -1.0665517400819182,
            "power": -1.484346835836528,
            "discipline": 0.3650416379112034,
            "xwoba": 0.268,
            "recent_xwoba": 0.268,
            "barrel": 0.9,
            "ab_hard_contact": -0.9901748119686631,
            "ab_bat_speed": 65.29158651423532,
            "ab_strikeout_rate": 0.1917989417989418,
            "available": 1.0
          },
          {
            "player_id": "678391",
            "player_name": "Jorbit Vivas",
            "position": "DH_678391",
            "weight": 3.0,
            "quality": -0.733127756761818,
            "contact": -0.7602243902380349,
            "power": -1.2651606937656583,
            "discipline": 0.8459140109518009,
            "xwoba": 0.293,
            "recent_xwoba": 0.293,
            "barrel": 3.2,
            "ab_hard_contact": -0.6765472086464965,
            "ab_bat_speed": 68.01787342767295,
            "ab_strikeout_rate": 0.16635514018691588,
            "available": 1.0
          },
          {
            "player_id": "691781",
            "player_name": "Brady House",
            "position": "DH_691781",
            "weight": 4.0,
            "quality": 0.5071693121591476,
            "contact": 0.5552747880737886,
            "power": 0.7072990118397335,
            "discipline": -0.45894513457556896,
            "xwoba": 0.335,
            "recent_xwoba": 0.335,
            "barrel": 10.1,
            "ab_hard_contact": 0.6275040463184783,
            "ab_bat_speed": 72.34679161942555,
            "ab_strikeout_rate": 0.26785714285714285,
            "available": 1.0
          },
          {
            "player_id": "695734",
            "player_name": "Daylen Lile",
            "position": "DH_695734",
            "weight": 3.0,
            "quality": 0.2565625477227963,
            "contact": 0.2232510588738307,
            "power": 0.4265890107696444,
            "discipline": -0.15012011060624972,
            "xwoba": 0.326,
            "recent_xwoba": 0.326,
            "barrel": 9.4,
            "ab_hard_contact": 0.24263735825003546,
            "ab_bat_speed": 70.30436582507723,
            "ab_strikeout_rate": 0.20124640460210932,
            "available": 1.0
          },
          {
            "player_id": "682928",
            "player_name": "CJ Abrams",
            "position": "DH_682928",
            "weight": 4.0,
            "quality": 0.20607413889937148,
            "contact": 0.19553855183093455,
            "power": 0.49428287592880826,
            "discipline": -0.26117249876067977,
            "xwoba": 0.329,
            "recent_xwoba": 0.329,
            "barrel": 9.9,
            "ab_hard_contact": 0.24870513762377905,
            "ab_bat_speed": 71.30243939097548,
            "ab_strikeout_rate": 0.2533702213279678,
            "available": 1.0
          }
        ]
      },
      "opposing_starter": {
        "available": false,
        "player_id": "689981",
        "player_name": "River Ryan",
        "quality": 0.0,
        "contact": 0.0,
        "command": 0.0,
        "movement": 0.0,
        "xwoba": 0.0,
        "whiff": 0.0,
        "faced_est_woba": 0.0,
        "faced_launch_speed": 0.0,
        "faced_strikeout_rate": 0.0,
        "faced_run_exp": 0.0
      }
    },
    "home": {
      "team": "DET",
      "original_runs": 5,
      "run_delta": -0.0752,
      "adjusted_runs": 5,
      "lineup": {
        "players_used": 9,
        "total_weight": 33.0,
        "quality": 0.23693147436052991,
        "contact": 0.23729275361696384,
        "power": 0.29074868991196023,
        "discipline": 0.13248093432312671,
        "xwoba": 0.3306060606060606,
        "recent_xwoba": 0.3306060606060606,
        "barrel": 8.796969696969697,
        "ab_hard_contact": 0.17762892089432497,
        "ab_bat_speed": 70.98014141226683,
        "ab_strikeout_rate": 0.241727610754984,
        "available_players": 9,
        "top_players": [
          {
            "player_id": "682985",
            "player_name": "Riley Greene",
            "position": "DH_682985",
            "weight": 4.0,
            "quality": 0.9289987999087416,
            "contact": 0.8661755022974988,
            "power": 1.4088681903279918,
            "discipline": 0.035523615424430874,
            "xwoba": 0.374,
            "recent_xwoba": 0.374,
            "barrel": 15.2,
            "ab_hard_contact": 0.6143161875122112,
            "ab_bat_speed": 74.47799649677579,
            "ab_strikeout_rate": 0.2623883928571429,
            "available": 1.0
          },
          {
            "player_id": "805808",
            "player_name": "Kevin McGonigle",
            "position": "DH",
            "weight": 4.0,
            "quality": 0.55782862750095,
            "contact": 0.7059359003423066,
            "power": 0.2695038439730112,
            "discipline": 1.242657709339775,
            "xwoba": 0.361,
            "recent_xwoba": 0.361,
            "barrel": 7.2,
            "ab_hard_contact": 0.18398164136498565,
            "ab_bat_speed": 70.07709372244268,
            "ab_strikeout_rate": 0.13889715608465608,
            "available": 1.0
          },
          {
            "player_id": "693307",
            "player_name": "Dillon Dingler",
            "position": "DH_693307",
            "weight": 4.0,
            "quality": 0.3898865280030454,
            "contact": 0.4251705239014529,
            "power": 0.5878579194778504,
            "discipline": -0.3440725855559612,
            "xwoba": 0.339,
            "recent_xwoba": 0.339,
            "barrel": 9.7,
            "ab_hard_contact": 0.35487267527129385,
            "ab_bat_speed": 70.93011192810457,
            "ab_strikeout_rate": 0.23469887955182073,
            "available": 1.0
          },
          {
            "player_id": "690993",
            "player_name": "Colt Keith",
            "position": "DH_690993",
            "weight": 3.0,
            "quality": 0.3666224073919155,
            "contact": 0.5388202505557509,
            "power": 0.29389979030412705,
            "discipline": 0.03532470669427215,
            "xwoba": 0.335,
            "recent_xwoba": 0.335,
            "barrel": 7.7,
            "ab_hard_contact": 0.2418053298920681,
            "ab_bat_speed": 70.9689631043257,
            "ab_strikeout_rate": 0.20694444444444443,
            "available": 1.0
          },
          {
            "player_id": "703601",
            "player_name": "Max Clark",
            "position": "DH_703601",
            "weight": 4.0,
            "quality": -0.11729268713554719,
            "contact": 0.2063068163354994,
            "power": -0.6155458961920506,
            "discipline": 0.3218318689087516,
            "xwoba": 0.315,
            "recent_xwoba": 0.315,
            "barrel": 1.7,
            "ab_hard_contact": -0.08425125717434216,
            "ab_bat_speed": 71.70756571815718,
            "ab_strikeout_rate": 0.21036585365853658,
            "available": 1.0
          }
        ]
      },
      "opposing_starter": {
        "available": false,
        "player_id": "687792",
        "player_name": "DJ Herz",
        "quality": 0.0,
        "contact": 0.0,
        "command": 0.0,
        "movement": 0.0,
        "xwoba": 0.0,
        "whiff": 0.0,
        "faced_est_woba": 0.0,
        "faced_launch_speed": 0.0,
        "faced_strikeout_rate": 0.0,
        "faced_run_exp": 0.0
      }
    }
  },
  "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.2823,
      "recent_form_edge_home_minus_away": 0.14,
      "pitcher_matchup_edge_home_minus_away": 0.0,
      "composite_home_edge": 0.3703,
      "existing_home_win_probability": 0.5766,
      "refreshed_home_win_probability": 0.6771,
      "winner_support_before_review": 0.3703
    },
    "reasons": [
      "target direction already matched refreshed fundamentals or margin was not fragile"
    ]
  },
  "uncapped_home_win_probability": 0.576597,
  "uncapped_away_win_probability": 0.423403,
  "confidence_shrinkage": {
    "policy": "starter_quality_shrinkage_v3",
    "staged_confidence": 0.576597,
    "discount_factor": 0.4675,
    "published_confidence": 0.535809,
    "guardrail_confidence_cap": null,
    "guardrail_cap_enforced": false,
    "applied_discounts": [
      {
        "reason": "winner_starter_has_no_reliable_baseline",
        "factor": 0.55
      },
      {
        "reason": "projected_margin_is_one_run",
        "factor": 0.85
      }
    ]
  },
  "score_probability_reconciliation": {
    "policy": "published_probability_follows_published_score_v1",
    "incoming_home_win_probability": 0.677112,
    "incoming_favoured_side": "home",
    "score_winner_side": "home",
    "published_home_win_probability": 0.535809,
    "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: winner_starter_has_no_reliable_baseline x0.55, projected_margin_is_one_run x0.85.",
  "pre_simulation_target": {
    "away_runs": 4,
    "home_runs": 5,
    "predicted_score_text": "WAS 4 - 5 DET",
    "confidence": 0.5358090975,
    "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": "WAS 4 - 5 DET",
      "winner": "DET"
    },
    "final_simulation_score": {
      "away_runs": 4,
      "home_runs": 5,
      "score_text": "WAS 4 - 5 DET",
      "winner": "DET"
    },
    "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.0,
      "recent_form_edge_home_minus_away": 0.14,
      "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": "DET",
      "model_winner": "DET",
      "simulation_winner": "DET",
      "simulation_winner_agrees": true,
      "simulation_agreement_scope": "selected_draw_only",
      "simulation_distribution_agreement": {
        "available": true,
        "draw_count": 2,
        "published_winner": "DET",
        "published_winner_draw_share": 1.0,
        "draw_majority_team": "DET",
        "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": 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.2823,
      "winner": "DET",
      "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": "DET",
    "display_confidence": 0.5358,
    "internal_signal_score": 0.5863,
    "internal_signal_status": "ranking_signal_not_a_calibrated_fair_probability",
    "model_pick_probability": 0.5358,
    "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": 1,
      "winner_quality_edge": 0.2823,
      "winner_recent_form_edge": 0.14,
      "winner_pitcher_matchup_edge": 0.0,
      "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": 9,
        "median": 10,
        "max": 10,
        "range": 1
      }
    },
    "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."
  }
}

Savant Batter Quality

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.

TeamAppliedOffense FactorRaw Avg FactorCoverage WeightCoveredMissing
Away WASTrue1.00821.0082190
Home DETTrue1.03851.0385190

Away Batter Inputs

PosPlayerESPN RankOff FactorQualityRegressionxwOBAxBAxSLGBarrel%HardHit%EVLAWhiff%K%BB%Regression Edge
DHJacob Young-1.01370.1822neutral0.31600.25700.38305.7030.4087.701220.8016.607.300.0857
DH_682928CJ Abrams-1.03380.4511neutral0.32900.24700.42809.9041.2089.7017.8029.3024.308.50-0.8000
DH_683083Nasim Nuñez-0.9406-0.7920neutral0.26800.22200.27600.9021.60858.7021.3020.30100.4857
DH_694673Abimelec Ortiz-1.00210.0280neutral0.28200.21700.39808.4039.8089.7013.602427.405.600.3429
DH_691781Brady House-1.06400.8539neutral0.33500.26800.443010.1048.20909.5029.8025.907.500.8286
DH_660688Keibert Ruiz-0.9797-0.2709negative_batter_regression0.28900.24500.3750536.808816.9014.3010.704.80-1.4286
DH_686611Dylan Crews-1.03410.4553neutral0.31300.23700.41609.5043.1090.3013.403024.406.600.4857
DH_695734Daylen Lile-1.04420.5891neutral0.32600.25700.44409.4037.9088.6018.7023.6019.406.400.2286
DH_678391Jorbit Vivas-0.9614-0.5142neutral0.29300.23400.30803.2021.7082.8011.4018.2014.5011.60-0.2857

Home Batter Inputs

PosPlayerESPN RankOff FactorQualityRegressionxwOBAxBAxSLGBarrel%HardHit%EVLAWhiff%K%BB%Regression Edge
DHKevin McGonigle-1.06690.8924neutral0.36100.26800.45007.2037.40882016.2013.5013.800.0857
DH_650402Gleyber Torres-1.01820.2431neutral0.32600.25300.37106.3033.1086.408.9022.201913.30-0.1714
DH_703601Max Clark-0.9983-0.0231negative_batter_regression0.31500.26800.35501.7038.8087.3015.8016.4020.508.50-0.9429
DH_679529Spencer Torkelson-1.02550.3402neutral0.31400.21500.398012.2041.8089.4019.9031.8031.2011.30-0.4286
DH_693307Dillon Dingler-1.06010.8017neutral0.33900.26100.46009.704288.5017.7022.30235.500.3714
DH_701678Hao-Yu Lee-1.01050.1397neutral0.30300.23400.401094189.5013.4027.7023.908-0.6857
DH_682985Riley Greene-1.10901.4531neutral0.37400.26700.509015.2047.5090.4017.6030.1026.9011.700.1429
DH_690993Colt Keith-1.05280.7038neutral0.33500.27400.42607.7042.3088.801322.1019.807.600.3429
DH_814430Brett Callahan-1.00530.0704neutral0.29700.21400.377011.4042.9089.3017.7027.6034.907.900.3714
Raw Savant Batter Quality JSON
{
  "home": {
    "applied": true,
    "offense_factor": 1.0385,
    "raw_average_factor": 1.0385,
    "team_espn_average_rank": null,
    "coverage_weight": 1.0,
    "covered_batters": 9,
    "missing_batters": 0,
    "players": [
      {
        "position": "DH",
        "player_id": "805808",
        "player_name": "Kevin McGonigle",
        "offense_factor": 1.0669,
        "quality_score": 0.8924,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "805808",
          "espn_rank": null
        },
        "metrics": {
          "pa": 657.0,
          "k_percent": 13.5,
          "bb_percent": 13.8,
          "woba": 0.358,
          "xwoba": 0.361,
          "xba": 0.268,
          "xslg": 0.45,
          "sweet_spot_percent": 36.6,
          "barrel_batted_rate": 7.2,
          "hard_hit_percent": 37.4,
          "exit_velocity_avg": 88.0,
          "launch_angle_avg": 20.0,
          "whiff_percent": 16.2,
          "swing_percent": 42.7
        },
        "components": {
          "expected_quality": 1.0237,
          "regression_edge": 0.0857,
          "xwoba_edge": 1.7714,
          "xba_edge": 0.9286,
          "xslg_edge": 1.2143,
          "barrel_edge": 0.1111,
          "hard_hit_edge": -0.0571,
          "exit_velocity_edge": -0.16,
          "sweet_spot_edge": 0.55,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "DH_650402",
        "player_id": "650402",
        "player_name": "Gleyber Torres",
        "offense_factor": 1.0182,
        "quality_score": 0.2431,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "650402",
          "espn_rank": null
        },
        "metrics": {
          "pa": 392.0,
          "k_percent": 19.0,
          "bb_percent": 13.3,
          "woba": 0.332,
          "xwoba": 0.326,
          "xba": 0.253,
          "xslg": 0.371,
          "sweet_spot_percent": 37.5,
          "barrel_batted_rate": 6.3,
          "hard_hit_percent": 33.1,
          "exit_velocity_avg": 86.4,
          "launch_angle_avg": 8.9,
          "whiff_percent": 22.2,
          "swing_percent": 42.3
        },
        "components": {
          "expected_quality": 0.3106,
          "regression_edge": -0.1714,
          "xwoba_edge": 0.7714,
          "xba_edge": 0.5,
          "xslg_edge": 0.0857,
          "barrel_edge": -0.0889,
          "hard_hit_edge": -0.6714,
          "exit_velocity_edge": -0.8,
          "sweet_spot_edge": 0.7,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "DH_703601",
        "player_id": "703601",
        "player_name": "Max Clark",
        "offense_factor": 0.9983,
        "quality_score": -0.0231,
        "regression_flag": "negative_batter_regression",
        "espn_rank": {
          "available": false,
          "player_id": "703601",
          "espn_rank": null
        },
        "metrics": {
          "pa": 163.0,
          "k_percent": 20.5,
          "bb_percent": 8.5,
          "woba": 0.348,
          "xwoba": 0.315,
          "xba": 0.268,
          "xslg": 0.355,
          "sweet_spot_percent": 35.5,
          "barrel_batted_rate": 1.7,
          "hard_hit_percent": 38.8,
          "exit_velocity_avg": 87.3,
          "launch_angle_avg": 15.8,
          "whiff_percent": 16.4,
          "swing_percent": 47.6
        },
        "components": {
          "expected_quality": 0.1172,
          "regression_edge": -0.9429,
          "xwoba_edge": 0.4571,
          "xba_edge": 0.9286,
          "xslg_edge": -0.1429,
          "barrel_edge": -1.1111,
          "hard_hit_edge": 0.1429,
          "exit_velocity_edge": -0.44,
          "sweet_spot_edge": 0.3667,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "DH_679529",
        "player_id": "679529",
        "player_name": "Spencer Torkelson",
        "offense_factor": 1.0255,
        "quality_score": 0.3402,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "679529",
          "espn_rank": null
        },
        "metrics": {
          "pa": 572.0,
          "k_percent": 31.2,
          "bb_percent": 11.3,
          "woba": 0.329,
          "xwoba": 0.314,
          "xba": 0.215,
          "xslg": 0.398,
          "sweet_spot_percent": 41.2,
          "barrel_batted_rate": 12.2,
          "hard_hit_percent": 41.8,
          "exit_velocity_avg": 89.4,
          "launch_angle_avg": 19.9,
          "whiff_percent": 31.8,
          "swing_percent": 42.8
        },
        "components": {
          "expected_quality": 0.4653,
          "regression_edge": -0.4286,
          "xwoba_edge": 0.4286,
          "xba_edge": -0.5857,
          "xslg_edge": 0.4714,
          "barrel_edge": 1.2222,
          "hard_hit_edge": 0.5714,
          "exit_velocity_edge": 0.4,
          "sweet_spot_edge": 1.3167,
          "launch_angle_hr_bonus": 0.2
        }
      },
      {
        "position": "DH_693307",
        "player_id": "693307",
        "player_name": "Dillon Dingler",
        "offense_factor": 1.0601,
        "quality_score": 0.8017,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "693307",
          "espn_rank": null
        },
        "metrics": {
          "pa": 576.0,
          "k_percent": 23.0,
          "bb_percent": 5.5,
          "woba": 0.326,
          "xwoba": 0.339,
          "xba": 0.261,
          "xslg": 0.46,
          "sweet_spot_percent": 39.1,
          "barrel_batted_rate": 9.7,
          "hard_hit_percent": 42.0,
          "exit_velocity_avg": 88.5,
          "launch_angle_avg": 17.7,
          "whiff_percent": 22.3,
          "swing_percent": 48.2
        },
        "components": {
          "expected_quality": 0.8718,
          "regression_edge": 0.3714,
          "xwoba_edge": 1.1429,
          "xba_edge": 0.7286,
          "xslg_edge": 1.3571,
          "barrel_edge": 0.6667,
          "hard_hit_edge": 0.6,
          "exit_velocity_edge": 0.04,
          "sweet_spot_edge": 0.9667,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "DH_701678",
        "player_id": "701678",
        "player_name": "Hao-Yu  Lee",
        "offense_factor": 1.0105,
        "quality_score": 0.1397,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "701678",
          "espn_rank": null
        },
        "metrics": {
          "pa": 309.0,
          "k_percent": 23.9,
          "bb_percent": 8.0,
          "woba": 0.327,
          "xwoba": 0.303,
          "xba": 0.234,
          "xslg": 0.401,
          "sweet_spot_percent": 34.7,
          "barrel_batted_rate": 9.0,
          "hard_hit_percent": 41.0,
          "exit_velocity_avg": 89.5,
          "launch_angle_avg": 13.4,
          "whiff_percent": 27.7,
          "swing_percent": 46.9
        },
        "components": {
          "expected_quality": 0.274,
          "regression_edge": -0.6857,
          "xwoba_edge": 0.1143,
          "xba_edge": -0.0429,
          "xslg_edge": 0.5143,
          "barrel_edge": 0.5111,
          "hard_hit_edge": 0.4571,
          "exit_velocity_edge": 0.44,
          "sweet_spot_edge": 0.2333,
          "launch_angle_hr_bonus": 0.2
        }
      },
      {
        "position": "DH_682985",
        "player_id": "682985",
        "player_name": "Riley Greene",
        "offense_factor": 1.109,
        "quality_score": 1.4531,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "682985",
          "espn_rank": null
        },
        "metrics": {
          "pa": 543.0,
          "k_percent": 26.9,
          "bb_percent": 11.7,
          "woba": 0.369,
          "xwoba": 0.374,
          "xba": 0.267,
          "xslg": 0.509,
          "sweet_spot_percent": 40.2,
          "barrel_batted_rate": 15.2,
          "hard_hit_percent": 47.5,
          "exit_velocity_avg": 90.4,
          "launch_angle_avg": 17.6,
          "whiff_percent": 30.1,
          "swing_percent": 46.4
        },
        "components": {
          "expected_quality": 1.6663,
          "regression_edge": 0.1429,
          "xwoba_edge": 2.1429,
          "xba_edge": 0.9,
          "xslg_edge": 2.0571,
          "barrel_edge": 1.8889,
          "hard_hit_edge": 1.3857,
          "exit_velocity_edge": 0.8,
          "sweet_spot_edge": 1.15,
          "launch_angle_hr_bonus": 0.2
        }
      },
      {
        "position": "DH_690993",
        "player_id": "690993",
        "player_name": "Colt Keith",
        "offense_factor": 1.0528,
        "quality_score": 0.7038,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "690993",
          "espn_rank": null
        },
        "metrics": {
          "pa": 406.0,
          "k_percent": 19.8,
          "bb_percent": 7.6,
          "woba": 0.323,
          "xwoba": 0.335,
          "xba": 0.274,
          "xslg": 0.426,
          "sweet_spot_percent": 38.3,
          "barrel_batted_rate": 7.7,
          "hard_hit_percent": 42.3,
          "exit_velocity_avg": 88.8,
          "launch_angle_avg": 13.0,
          "whiff_percent": 22.1,
          "swing_percent": 43.8
        },
        "components": {
          "expected_quality": 0.7625,
          "regression_edge": 0.3429,
          "xwoba_edge": 1.0286,
          "xba_edge": 1.1,
          "xslg_edge": 0.8714,
          "barrel_edge": 0.2222,
          "hard_hit_edge": 0.6429,
          "exit_velocity_edge": 0.16,
          "sweet_spot_edge": 0.8333,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "DH_814430",
        "player_id": "814430",
        "player_name": "Brett Callahan",
        "offense_factor": 1.0053,
        "quality_score": 0.0704,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "814430",
          "espn_rank": null
        },
        "metrics": {
          "pa": 61.0,
          "k_percent": 34.9,
          "bb_percent": 7.9,
          "woba": 0.284,
          "xwoba": 0.297,
          "xba": 0.214,
          "xslg": 0.377,
          "sweet_spot_percent": 31.4,
          "barrel_batted_rate": 11.4,
          "hard_hit_percent": 42.9,
          "exit_velocity_avg": 89.3,
          "launch_angle_avg": 17.7,
          "whiff_percent": 27.6,
          "swing_percent": 60.4
        },
        "components": {
          "expected_quality": 0.1213,
          "regression_edge": 0.3714,
          "xwoba_edge": -0.0571,
          "xba_edge": -0.6143,
          "xslg_edge": 0.1714,
          "barrel_edge": 1.0444,
          "hard_hit_edge": 0.7286,
          "exit_velocity_edge": 0.36,
          "sweet_spot_edge": -0.3167,
          "launch_angle_hr_bonus": 0.2
        }
      }
    ],
    "source": "all_players_stats.csv embedded Savant batter features"
  },
  "away": {
    "applied": true,
    "offense_factor": 1.0082,
    "raw_average_factor": 1.0082,
    "team_espn_average_rank": null,
    "coverage_weight": 1.0,
    "covered_batters": 9,
    "missing_batters": 0,
    "players": [
      {
        "position": "DH",
        "player_id": "696285",
        "player_name": "Jacob Young",
        "offense_factor": 1.0137,
        "quality_score": 0.1822,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "696285",
          "espn_rank": null
        },
        "metrics": {
          "pa": 428.0,
          "k_percent": 16.6,
          "bb_percent": 7.3,
          "woba": 0.313,
          "xwoba": 0.316,
          "xba": 0.257,
          "xslg": 0.383,
          "sweet_spot_percent": 37.0,
          "barrel_batted_rate": 5.7,
          "hard_hit_percent": 30.4,
          "exit_velocity_avg": 87.7,
          "launch_angle_avg": 12.0,
          "whiff_percent": 20.8,
          "swing_percent": 43.9
        },
        "components": {
          "expected_quality": 0.1979,
          "regression_edge": 0.0857,
          "xwoba_edge": 0.4857,
          "xba_edge": 0.6143,
          "xslg_edge": 0.2571,
          "barrel_edge": -0.2222,
          "hard_hit_edge": -1.0571,
          "exit_velocity_edge": -0.28,
          "sweet_spot_edge": 0.6167,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "DH_682928",
        "player_id": "682928",
        "player_name": "CJ Abrams",
        "offense_factor": 1.0338,
        "quality_score": 0.4511,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "682928",
          "espn_rank": null
        },
        "metrics": {
          "pa": 609.0,
          "k_percent": 24.3,
          "bb_percent": 8.5,
          "woba": 0.357,
          "xwoba": 0.329,
          "xba": 0.247,
          "xslg": 0.428,
          "sweet_spot_percent": 33.3,
          "barrel_batted_rate": 9.9,
          "hard_hit_percent": 41.2,
          "exit_velocity_avg": 89.7,
          "launch_angle_avg": 17.8,
          "whiff_percent": 29.3,
          "swing_percent": 51.1
        },
        "components": {
          "expected_quality": 0.6548,
          "regression_edge": -0.8,
          "xwoba_edge": 0.8571,
          "xba_edge": 0.3286,
          "xslg_edge": 0.9,
          "barrel_edge": 0.7111,
          "hard_hit_edge": 0.4857,
          "exit_velocity_edge": 0.52,
          "sweet_spot_edge": 0.0,
          "launch_angle_hr_bonus": 0.2
        }
      },
      {
        "position": "DH_683083",
        "player_id": "683083",
        "player_name": "Nasim Nuñez",
        "offense_factor": 0.9406,
        "quality_score": -0.792,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "683083",
          "espn_rank": null
        },
        "metrics": {
          "pa": 454.0,
          "k_percent": 20.3,
          "bb_percent": 10.0,
          "woba": 0.251,
          "xwoba": 0.268,
          "xba": 0.222,
          "xslg": 0.276,
          "sweet_spot_percent": 29.0,
          "barrel_batted_rate": 0.9,
          "hard_hit_percent": 21.6,
          "exit_velocity_avg": 85.0,
          "launch_angle_avg": 8.7,
          "whiff_percent": 21.3,
          "swing_percent": 47.6
        },
        "components": {
          "expected_quality": -1.0,
          "regression_edge": 0.4857,
          "xwoba_edge": -0.8857,
          "xba_edge": -0.3857,
          "xslg_edge": -1.2714,
          "barrel_edge": -1.2889,
          "hard_hit_edge": -2.3143,
          "exit_velocity_edge": -1.36,
          "sweet_spot_edge": -0.7167,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "DH_694673",
        "player_id": "694673",
        "player_name": "Abimelec Ortiz",
        "offense_factor": 1.0021,
        "quality_score": 0.028,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "694673",
          "espn_rank": null
        },
        "metrics": {
          "pa": 122.0,
          "k_percent": 27.4,
          "bb_percent": 5.6,
          "woba": 0.27,
          "xwoba": 0.282,
          "xba": 0.217,
          "xslg": 0.398,
          "sweet_spot_percent": 39.8,
          "barrel_batted_rate": 8.4,
          "hard_hit_percent": 39.8,
          "exit_velocity_avg": 89.7,
          "launch_angle_avg": 13.6,
          "whiff_percent": 24.0,
          "swing_percent": 50.4
        },
        "components": {
          "expected_quality": 0.0029,
          "regression_edge": 0.3429,
          "xwoba_edge": -0.4857,
          "xba_edge": -0.5286,
          "xslg_edge": 0.4714,
          "barrel_edge": 0.3778,
          "hard_hit_edge": 0.2857,
          "exit_velocity_edge": 0.52,
          "sweet_spot_edge": 1.0833,
          "launch_angle_hr_bonus": 0.2
        }
      },
      {
        "position": "DH_691781",
        "player_id": "691781",
        "player_name": "Brady House",
        "offense_factor": 1.064,
        "quality_score": 0.8539,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "691781",
          "espn_rank": null
        },
        "metrics": {
          "pa": 322.0,
          "k_percent": 25.9,
          "bb_percent": 7.5,
          "woba": 0.306,
          "xwoba": 0.335,
          "xba": 0.268,
          "xslg": 0.443,
          "sweet_spot_percent": 30.7,
          "barrel_batted_rate": 10.1,
          "hard_hit_percent": 48.2,
          "exit_velocity_avg": 90.0,
          "launch_angle_avg": 9.5,
          "whiff_percent": 29.8,
          "swing_percent": 51.3
        },
        "components": {
          "expected_quality": 0.858,
          "regression_edge": 0.8286,
          "xwoba_edge": 1.0286,
          "xba_edge": 0.9286,
          "xslg_edge": 1.1143,
          "barrel_edge": 0.7556,
          "hard_hit_edge": 1.4857,
          "exit_velocity_edge": 0.64,
          "sweet_spot_edge": -0.4333,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "DH_660688",
        "player_id": "660688",
        "player_name": "Keibert Ruiz",
        "offense_factor": 0.9797,
        "quality_score": -0.2709,
        "regression_flag": "negative_batter_regression",
        "espn_rank": {
          "available": false,
          "player_id": "660688",
          "espn_rank": null
        },
        "metrics": {
          "pa": 331.0,
          "k_percent": 10.7,
          "bb_percent": 4.8,
          "woba": 0.339,
          "xwoba": 0.289,
          "xba": 0.245,
          "xslg": 0.375,
          "sweet_spot_percent": 33.6,
          "barrel_batted_rate": 5.0,
          "hard_hit_percent": 36.8,
          "exit_velocity_avg": 88.0,
          "launch_angle_avg": 16.9,
          "whiff_percent": 14.3,
          "swing_percent": 52.6
        },
        "components": {
          "expected_quality": -0.0824,
          "regression_edge": -1.4286,
          "xwoba_edge": -0.2857,
          "xba_edge": 0.2714,
          "xslg_edge": 0.1429,
          "barrel_edge": -0.3778,
          "hard_hit_edge": -0.1429,
          "exit_velocity_edge": -0.16,
          "sweet_spot_edge": 0.05,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "DH_686611",
        "player_id": "686611",
        "player_name": "Dylan Crews",
        "offense_factor": 1.0341,
        "quality_score": 0.4553,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "686611",
          "espn_rank": null
        },
        "metrics": {
          "pa": 394.0,
          "k_percent": 24.4,
          "bb_percent": 6.6,
          "woba": 0.296,
          "xwoba": 0.313,
          "xba": 0.237,
          "xslg": 0.416,
          "sweet_spot_percent": 33.6,
          "barrel_batted_rate": 9.5,
          "hard_hit_percent": 43.1,
          "exit_velocity_avg": 90.3,
          "launch_angle_avg": 13.4,
          "whiff_percent": 30.0,
          "swing_percent": 51.7
        },
        "components": {
          "expected_quality": 0.4503,
          "regression_edge": 0.4857,
          "xwoba_edge": 0.4,
          "xba_edge": 0.0429,
          "xslg_edge": 0.7286,
          "barrel_edge": 0.6222,
          "hard_hit_edge": 0.7571,
          "exit_velocity_edge": 0.76,
          "sweet_spot_edge": 0.05,
          "launch_angle_hr_bonus": 0.2
        }
      },
      {
        "position": "DH_695734",
        "player_id": "695734",
        "player_name": "Daylen Lile",
        "offense_factor": 1.0442,
        "quality_score": 0.5891,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "695734",
          "espn_rank": null
        },
        "metrics": {
          "pa": 608.0,
          "k_percent": 19.4,
          "bb_percent": 6.4,
          "woba": 0.318,
          "xwoba": 0.326,
          "xba": 0.257,
          "xslg": 0.444,
          "sweet_spot_percent": 38.1,
          "barrel_batted_rate": 9.4,
          "hard_hit_percent": 37.9,
          "exit_velocity_avg": 88.6,
          "launch_angle_avg": 18.7,
          "whiff_percent": 23.6,
          "swing_percent": 55.4
        },
        "components": {
          "expected_quality": 0.6478,
          "regression_edge": 0.2286,
          "xwoba_edge": 0.7714,
          "xba_edge": 0.6143,
          "xslg_edge": 1.1286,
          "barrel_edge": 0.6,
          "hard_hit_edge": 0.0143,
          "exit_velocity_edge": 0.08,
          "sweet_spot_edge": 0.8,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "DH_678391",
        "player_id": "678391",
        "player_name": "Jorbit Vivas",
        "offense_factor": 0.9614,
        "quality_score": -0.5142,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "678391",
          "espn_rank": null
        },
        "metrics": {
          "pa": 330.0,
          "k_percent": 14.5,
          "bb_percent": 11.6,
          "woba": 0.303,
          "xwoba": 0.293,
          "xba": 0.234,
          "xslg": 0.308,
          "sweet_spot_percent": 34.1,
          "barrel_batted_rate": 3.2,
          "hard_hit_percent": 21.7,
          "exit_velocity_avg": 82.8,
          "launch_angle_avg": 11.4,
          "whiff_percent": 18.2,
          "swing_percent": 49.4
        },
        "components": {
          "expected_quality": -0.5515,
          "regression_edge": -0.2857,
          "xwoba_edge": -0.1714,
          "xba_edge": -0.0429,
          "xslg_edge": -0.8143,
          "barrel_edge": -0.7778,
          "hard_hit_edge": -2.3,
          "exit_velocity_edge": -2.24,
          "sweet_spot_edge": 0.1333,
          "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"
}

Savant Pitcher Quality

Source: data/all_players_stats.csv embedded Savant pitcher and movement features. Starter quality modifies opposing run scoring and pitcher strikeout/walk/homer expectations.

TeamPitcherAvailableESPN RankQualitySample WtRun PrevK FactorBB FactorHR FactorRegressionxwOBAwOBAK%BB%Whiff%Barrel%HardHit%
Away WAS687792False-------pitcher_not_in_embedded_savant_pitcher_profile-------
Home DET689981False-------pitcher_not_in_embedded_savant_pitcher_profile-------

Pitch Movement And Arsenal

TeamPitcherMovement AvailablePrimary PitchPitchesVeloSpinAxisHBIVBDropRel XRel ZExtensionArm AngleMovement Score
Away WAS687792--------------
Home DET689981--------------
Run FactorValue
--
Raw Savant Pitcher Quality JSON
{
  "applied": false,
  "home_pitcher": {
    "available": false,
    "pitcher_id": "689981",
    "reason": "pitcher_not_in_embedded_savant_pitcher_profile"
  },
  "away_pitcher": {
    "available": false,
    "pitcher_id": "687792",
    "reason": "pitcher_not_in_embedded_savant_pitcher_profile"
  },
  "run_factors": {},
  "score_before": {},
  "score_after": {},
  "reason": "no cached Savant metrics for scheduled starters"
}

Team Form Snapshot

TeamLast-10 W-LWin %R/GRA/GRun DiffStreakOffenseDefense
Away WAS6-40.6004.804.4041Laverageaverage
Home DET6-40.6005.604.30132Lhotaverage

Season Run Differential

TeamRecordWin %Run DiffRD/GameAvailable
Away WAS73-830.468120.077True
Home DET73-830.468680.436True
Signal--0.3590.282applied=False

Recent Head-to-Head

DateMatchupScoreWinnerMarginType
------

Player/Game Reconciliation

LayerABHRHRRBIBBSO
Game target WAS--4----
Game target DET--5----
Player finalized WAS32841437
Player finalized DET33851438
Player model fractional WAS30.307.384.140.914.022.446.69
Player model fractional DET30.588.154.351.004.303.467.90
Simulation box WAS35840449
Simulation box DET35951539

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.

Pitching Snapshot

TeamRolePitcherPre IPPre ERPre SOPre HPre BBWeighted ERAWeighted WHIPBox Sync
Away WASStarterDJ Herz2.1017404.591.36True
Away WASCloserErik Tolman3.1041324.601.47True
Away WASSetup ManBrad Lord1.1000005.521.53True
Away WASMiddle Reliever (High Leverage)Luis Perales101215.771.62True
Home DETStarterRiver Ryan0.2012524.591.36True
Home DETMiddle Reliever (High Leverage)Jacob Waguespack3.2003012.561.00True
Home DETMiddle Reliever (High Leverage)Drew Sommers1.1002012.921.15True
Home DETCloserKenley Jansen1.2001002.040.89True
Home DETSetup ManTyler Holton1.2031302.201.00True
Market-line comparison is not rendered because no local odds or sportsbook line CSV was found in data/. Add a real odds source before using market deltas as a model feature.

Player Boost/Deboost Impact Summary

SideTeamRolePosPlayerDominantChangedBoostedDeboostedBetterWorseLargest MetricLargest DeltaDirectionEffect
awayWASbatter2BAbimelec Ortizbetter108273predicted_RBI3.6750boostbetter
homeDETpitcherStarterRiver Ryanneutral21111predicted_SO-3.0000deboostworse
homeDETpitcherMiddle Reliever (High Leverage)Jacob Waguespackneutral21111predicted_SO3.0000boostbetter
homeDETbatterLFRiley Greenebetter118374predicted_RBI2.4320boostbetter
homeDETbatterSSHao-Yu Leebetter116574predicted_H2.2000boostbetter
awayWASpitcherStarterDJ Herzbetter11010predicted_IP2.0000boostbetter
homeDETbatter1BMax Clarkworse125748predicted_AB1.5000boostbetter
homeDETbatterRFBrett Callahanbetter75252predicted_AB1.5000boostbetter
homeDETbatterCFColt Keithworse104637predicted_SO1.3780boostworse
awayWASbatterRFJorbit Vivasworse105546predicted_AB1.2910boostbetter
homeDETbatter2BSpencer Torkelsonworse114756predicted_SO-1.2070deboostbetter
awayWASbatterDHJacob Youngworse95445predicted_H1.1800boostbetter
awayWASbatterCCJ Abramsworse81717predicted_AB1.1720boostbetter
homeDETbatter3BDillon Dinglerworse1129110predicted_SO1.0290boostworse
homeDETbatterCGleyber Torresworse103746predicted_H1.0110boostbetter
awayWASbatter3BBrady Houseworse113847predicted_SO-1.0000deboostbetter
awayWASbatterLFDylan Crewsworse104637predicted_SO0.9900boostworse
awayWASbatterSSKeibert Ruizworse104637predicted_H-0.9480deboostworse
awayWASbatter1BNasim Nuñezbetter75243predicted_BB0.6310boostbetter
homeDETbatterDHKevin McGoniglebetter117483predicted_SO-0.6010deboostbetter
awayWASbatterCFDaylen Lileworse104637predicted_RBI-0.5750deboostworse
awayWASpitcherSetup ManBrad Lordworse10101predicted_IP-0.2333deboostworse
homeDETpitcherMiddle Reliever (High Leverage)Drew Sommersworse10101predicted_IP-0.2333deboostworse
homeDETpitcherCloserKenley Jansenworse10101predicted_IP-0.1333deboostworse
homeDETpitcherSetup ManTyler Holtonworse10101predicted_IP-0.1333deboostworse
awayWASpitcherCloserErik Tolmanbetter11010predicted_IP0.1000boostbetter

This table ranks players whose JSON evolution changed materially. Boost/deboost is numeric movement; better/worse is role-aware.

Away Team: WAS

Away Pitcher Deep Analysis

FieldValue
PitcherDJ Herz
RoleStarter
Projection Sourceleague_average_stable_fallback
Savant Quality Score-
ESPN Rank-
Movement Available-
Primary Pitch-
Movement Score-
Avg Velo-
Avg Spin-
HB Inches-
IVB Inches-
Release Extension-
Pre IP2.1000
Pre ER1
Pre H4
Pre BB0
Pre SO7
Season ERA-
Season WHIP-
Role Avg IP-
Recent Avg IP-
Last Start IP-
Team Form Snapshot
{
  "method": "team_form_snapshot",
  "role": "pitcher",
  "team": {
    "team": "WAS",
    "games": 156,
    "wins": 73,
    "losses": 83,
    "win_pct": 0.4679,
    "runs_scored": 798.0,
    "runs_allowed": 786.0,
    "run_differential": 12.0,
    "run_differential_per_game": 0.0769,
    "avg_runs_scored": 5.1154,
    "avg_runs_allowed": 5.0385,
    "offense_index": 1.1355,
    "defense_index": 0.8941,
    "current_streak": "L1",
    "recent": {
      "games": 10,
      "wins": 6,
      "losses": 4,
      "win_pct": 0.6,
      "avg_runs_scored": 4.8,
      "avg_runs_allowed": 4.4,
      "run_differential": 4.0
    },
    "available": true,
    "quality_score": 0.0171
  },
  "opponent": {
    "team": "DET",
    "games": 156,
    "wins": 73,
    "losses": 83,
    "win_pct": 0.4679,
    "runs_scored": 697.0,
    "runs_allowed": 629.0,
    "run_differential": 68.0,
    "run_differential_per_game": 0.4359,
    "avg_runs_scored": 4.4679,
    "avg_runs_allowed": 4.0321,
    "offense_index": 0.9917,
    "defense_index": 1.1173,
    "current_streak": "L2",
    "recent": {
      "games": 10,
      "wins": 6,
      "losses": 4,
      "win_pct": 0.6,
      "avg_runs_scored": 5.6,
      "avg_runs_allowed": 4.3,
      "run_differential": 13.0
    },
    "available": true,
    "quality_score": 0.0609
  },
  "edges": {
    "quality_edge": -0.0438,
    "offense_edge": 0.1355,
    "opponent_offense_edge": -0.0083,
    "defense_strength": -0.1059,
    "opponent_defense_weakness": -0.1173,
    "recent_win_pct_edge": 0.0
  },
  "player_factors": {
    "ip": 0.9954,
    "run_prevention": 1.0115,
    "strikeout": 0.9993
  }
}
Recent Form Pitching
{
  "available": false,
  "reason": "No pitcher-specific recent-form block was stored for this row.",
  "display_fallback": "Use Player Form Blend windows for last-5, last-10, and season pitcher form."
}
Savant Pitch Movement Profile
{}
Player Form Blend
{
  "form_version": "player_form_v3_5_10_season",
  "method": "weighted_recent_form",
  "description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
  "weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "effective_weights": {},
  "shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 0.0,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.0,
    "prior_weight": 1.0
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "687792",
  "report_date": "20260921",
  "season_year": 2026,
  "rows_used": 0,
  "reference_playing_time": 0.1,
  "windows": {
    "last_5": {
      "games": 0,
      "totals": {
        "IP": 0.0,
        "ER": 0.0,
        "R": 0.0,
        "H": 0.0,
        "BB": 0.0,
        "SO": 0.0,
        "HR": 0.0,
        "BF": 0.0,
        "Pitches": 0.0
      },
      "per_game": {
        "IP": 0.0,
        "ER": 0.0,
        "R": 0.0,
        "H": 0.0,
        "BB": 0.0,
        "SO": 0.0,
        "HR": 0.0,
        "BF": 0.0,
        "Pitches": 0.0
      },
      "rates": {
        "ERA": null,
        "WHIP": null,
        "ER_per_IP": null,
        "H_per_IP": null,
        "BB_per_IP": null,
        "SO_per_IP": null,
        "HR_per_IP": null
      }
    },
    "last_10": {
      "games": 0,
      "totals": {
        "IP": 0.0,
        "ER": 0.0,
        "R": 0.0,
        "H": 0.0,
        "BB": 0.0,
        "SO": 0.0,
        "HR": 0.0,
        "BF": 0.0,
        "Pitches": 0.0
      },
      "per_game": {
        "IP": 0.0,
        "ER": 0.0,
        "R": 0.0,
        "H": 0.0,
        "BB": 0.0,
        "SO": 0.0,
        "HR": 0.0,
        "BF": 0.0,
        "Pitches": 0.0
      },
      "rates": {
        "ERA": null,
        "WHIP": null,
        "ER_per_IP": null,
        "H_per_IP": null,
        "BB_per_IP": null,
        "SO_per_IP": null,
        "HR_per_IP": null
      }
    },
    "season": {
      "games": 0,
      "totals": {
        "IP": 0.0,
        "ER": 0.0,
        "R": 0.0,
        "H": 0.0,
        "BB": 0.0,
        "SO": 0.0,
        "HR": 0.0,
        "BF": 0.0,
        "Pitches": 0.0
      },
      "per_game": {
        "IP": 0.0,
        "ER": 0.0,
        "R": 0.0,
        "H": 0.0,
        "BB": 0.0,
        "SO": 0.0,
        "HR": 0.0,
        "BF": 0.0,
        "Pitches": 0.0
      },
      "rates": {
        "ERA": null,
        "WHIP": null,
        "ER_per_IP": null,
        "H_per_IP": null,
        "BB_per_IP": null,
        "SO_per_IP": null,
        "HR_per_IP": null
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 0.1,
    "predicted_ER": 0.17,
    "predicted_H": 0.327,
    "predicted_BB": 0.125,
    "predicted_SO": 0.312,
    "predicted_HR": 0.05,
    "predicted_ERA": 4.5933,
    "predicted_WHIP": 1.3576
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.7725,
  "form_weight": 0.2275,
  "form_reliability": 0.0,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 0.0,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.0,
    "prior_weight": 1.0
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 0.1,
      "form": 0.1,
      "final": 0.1,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 1.0,
      "form": 0.17,
      "final": 0.8112,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 4.0,
      "form": 0.327,
      "final": 3.1644,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 0.0,
      "form": 0.125,
      "final": 0.0284,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 7.0,
      "form": 0.312,
      "final": 5.4785,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 0.0,
      "form": 0.05,
      "final": 0.0114,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 4.5933,
      "final": 4.5933,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 1.3576,
      "final": 1.3576,
      "source": "form_only"
    }
  }
}
Inning Pitch Details
{
  "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."
}
FieldValue
PitcherErik Tolman
RoleCloser
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score0.4208
ESPN Rank-
Movement AvailableTrue
Primary Pitch-
Movement Score0.1184
Avg Velo91.9660
Avg Spin2002.8840
HB Inches0
IVB Inches0
Release Extension0
Pre IP3.1000
Pre ER4
Pre H3
Pre BB2
Pre SO1
Season ERA3.0857
Season WHIP1.3714
Role Avg IP1.0610
Recent Avg IP0.8670
Last Start IP0
Team Form Snapshot
{
  "method": "team_form_snapshot",
  "role": "pitcher",
  "team": {
    "team": "WAS",
    "games": 156,
    "wins": 73,
    "losses": 83,
    "win_pct": 0.4679,
    "runs_scored": 798.0,
    "runs_allowed": 786.0,
    "run_differential": 12.0,
    "run_differential_per_game": 0.0769,
    "avg_runs_scored": 5.1154,
    "avg_runs_allowed": 5.0385,
    "offense_index": 1.1355,
    "defense_index": 0.8941,
    "current_streak": "L1",
    "recent": {
      "games": 10,
      "wins": 6,
      "losses": 4,
      "win_pct": 0.6,
      "avg_runs_scored": 4.8,
      "avg_runs_allowed": 4.4,
      "run_differential": 4.0
    },
    "available": true,
    "quality_score": 0.0171
  },
  "opponent": {
    "team": "DET",
    "games": 156,
    "wins": 73,
    "losses": 83,
    "win_pct": 0.4679,
    "runs_scored": 697.0,
    "runs_allowed": 629.0,
    "run_differential": 68.0,
    "run_differential_per_game": 0.4359,
    "avg_runs_scored": 4.4679,
    "avg_runs_allowed": 4.0321,
    "offense_index": 0.9917,
    "defense_index": 1.1173,
    "current_streak": "L2",
    "recent": {
      "games": 10,
      "wins": 6,
      "losses": 4,
      "win_pct": 0.6,
      "avg_runs_scored": 5.6,
      "avg_runs_allowed": 4.3,
      "run_differential": 13.0
    },
    "available": true,
    "quality_score": 0.0609
  },
  "edges": {
    "quality_edge": -0.0438,
    "offense_edge": 0.1355,
    "opponent_offense_edge": -0.0083,
    "defense_strength": -0.1059,
    "opponent_defense_weakness": -0.1173,
    "recent_win_pct_edge": 0.0
  },
  "player_factors": {
    "ip": 0.9954,
    "run_prevention": 1.0115,
    "strikeout": 0.9993
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "680899",
    "profile": {
      "available": true,
      "pitcher_id": "680899",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 43.0,
        "k_percent": 23.9,
        "bb_percent": 10.9,
        "woba": 0.239,
        "xwoba": 0.253,
        "sweet_spot_percent": 16.7,
        "barrel_batted_rate": 3.3,
        "hard_hit_percent": 23.3,
        "avg_best_speed": 71.7219,
        "avg_hyper_speed": 92.6396,
        "whiff_percent": 28.0,
        "swing_percent": 53.8
      },
      "league_medians": {
        "pa": 135.0,
        "k_percent": 22.0,
        "bb_percent": 9.1,
        "woba": 0.316,
        "xwoba": 0.3117,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6659,
        "avg_hyper_speed": 93.9097,
        "whiff_percent": 25.0,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": 1.6398,
        "command_and_miss": 0.1821,
        "regression_edge": -0.4,
        "xwoba_edge": 1.6786,
        "barrel_edge": 0.8667,
        "hard_hit_edge": 2.0857,
        "whiff_edge": 0.4286,
        "bb_edge": -0.45,
        "pitch_design_score": 0.1184
      },
      "pitch_movement_profile": {
        "available": true,
        "pitcher_id": "680899",
        "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": 91.96600089595971,
          "release_spin_rate": 2002.8839859007421,
          "spin_axis": null,
          "horizontal_break_inches": 0.0,
          "induced_vertical_break_inches": 0.0,
          "vertical_break_with_gravity_inches": null,
          "release_pos_x": null,
          "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": 91.96600089595971,
            "release_spin_rate": 2002.8839859007421,
            "spin_axis": null,
            "horizontal_break_inches": 0.0,
            "induced_vertical_break_inches": 0.0,
            "vertical_break_with_gravity_inches": null,
            "release_pos_x": null,
            "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.966,
          "release_spin_rate": 2002.884,
          "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.1184,
          "horizontal_break_edge": 0.0,
          "induced_vertical_break_edge": 0.0,
          "extension_edge": 0.0,
          "velocity_edge": 0.846,
          "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.4208,
      "sample_weight": 0.45,
      "run_prevention_factor": 0.9642,
      "strikeout_factor": 1.0126,
      "walk_factor": 1.0162,
      "homer_factor": 0.9086,
      "woba_minus_xwoba": -0.014,
      "regression_flag": "neutral",
      "espn_rank": {
        "available": false,
        "player_id": "680899",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 0.0,
        "factor": 0.9839,
        "adjusted": 0
      },
      "predicted_H": {
        "original": 1.0,
        "factor": 0.9839,
        "adjusted": 1
      },
      "predicted_BB": {
        "original": 0.0,
        "factor": 1.0073,
        "adjusted": 0
      },
      "predicted_HR": {
        "original": 0.0,
        "factor": 0.9589,
        "adjusted": 0
      },
      "predicted_SO": {
        "original": 2.0,
        "factor": 1.0057,
        "adjusted": 2
      }
    }
  }
}
Recent Form Pitching
{
  "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": 4,
    "H": 10,
    "BB": 5,
    "SO": 11,
    "HR": 0,
    "ERA": 3.375,
    "WHIP": 1.40625,
    "K9": 9.28125,
    "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-19T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": true,
  "pitcher_id": "680899",
  "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": 91.96600089595971,
    "release_spin_rate": 2002.8839859007421,
    "spin_axis": null,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": null,
    "release_pos_x": null,
    "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": 91.96600089595971,
      "release_spin_rate": 2002.8839859007421,
      "spin_axis": null,
      "horizontal_break_inches": 0.0,
      "induced_vertical_break_inches": 0.0,
      "vertical_break_with_gravity_inches": null,
      "release_pos_x": null,
      "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.966,
    "release_spin_rate": 2002.884,
    "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.1184,
    "horizontal_break_edge": 0.0,
    "induced_vertical_break_edge": 0.0,
    "extension_edge": 0.0,
    "velocity_edge": 0.846,
    "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."
}
Player Form Blend
{
  "form_version": "player_form_v3_5_10_season",
  "method": "weighted_recent_form",
  "description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
  "weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "effective_weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 2.371,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.3217,
    "prior_weight": 0.6783
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "680899",
  "report_date": "20260921",
  "season_year": 2026,
  "rows_used": 11,
  "reference_playing_time": 3.0,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 4.1,
        "ER": 3.0,
        "R": 4.0,
        "H": 7.0,
        "BB": 2.0,
        "SO": 3.0,
        "HR": 0.0,
        "BF": 23.0,
        "Pitches": 100.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.6,
        "R": 0.8,
        "H": 1.4,
        "BB": 0.4,
        "SO": 0.6,
        "HR": 0.0,
        "BF": 4.6,
        "Pitches": 20.0
      },
      "rates": {
        "ERA": 6.2308,
        "WHIP": 2.0769,
        "ER_per_IP": 0.69231,
        "H_per_IP": 1.61538,
        "BB_per_IP": 0.46154,
        "SO_per_IP": 0.69231,
        "HR_per_IP": 0.0
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 10.2,
        "ER": 4.0,
        "R": 5.0,
        "H": 10.0,
        "BB": 5.0,
        "SO": 11.0,
        "HR": 0.0,
        "BF": 46.0,
        "Pitches": 197.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.4,
        "R": 0.5,
        "H": 1.0,
        "BB": 0.5,
        "SO": 1.1,
        "HR": 0.0,
        "BF": 4.6,
        "Pitches": 19.7
      },
      "rates": {
        "ERA": 3.375,
        "WHIP": 1.4062,
        "ER_per_IP": 0.375,
        "H_per_IP": 0.9375,
        "BB_per_IP": 0.46875,
        "SO_per_IP": 1.03125,
        "HR_per_IP": 0.0
      }
    },
    "season": {
      "games": 11,
      "totals": {
        "IP": 11.2,
        "ER": 4.0,
        "R": 5.0,
        "H": 11.0,
        "BB": 5.0,
        "SO": 12.0,
        "HR": 0.0,
        "BF": 50.0,
        "Pitches": 213.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.3636,
        "R": 0.4545,
        "H": 1.0,
        "BB": 0.4545,
        "SO": 1.0909,
        "HR": 0.0,
        "BF": 4.5455,
        "Pitches": 19.3636
      },
      "rates": {
        "ERA": 3.0857,
        "WHIP": 1.3714,
        "ER_per_IP": 0.34286,
        "H_per_IP": 0.94286,
        "BB_per_IP": 0.42857,
        "SO_per_IP": 1.02857,
        "HR_per_IP": 0.0
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 2.1,
    "predicted_ER": 1.203,
    "predicted_H": 2.512,
    "predicted_BB": 0.947,
    "predicted_SO": 2.16,
    "predicted_HR": 0.239,
    "predicted_ERA": 4.5962,
    "predicted_WHIP": 1.4681
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.6366,
  "form_weight": 0.3634,
  "form_reliability": 0.3217,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 2.371,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.3217,
    "prior_weight": 0.6783
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 3.0,
      "form": 2.1,
      "final": 2.2,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 4.0,
      "form": 1.203,
      "final": 2.9835,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 3.0,
      "form": 2.512,
      "final": 2.8227,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 2.0,
      "form": 0.947,
      "final": 1.6173,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 1.0,
      "form": 2.16,
      "final": 1.4216,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 1.0,
      "form": 0.239,
      "final": 0.7234,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 4.5962,
      "final": 4.5962,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 1.4681,
      "final": 1.4681,
      "source": "form_only"
    }
  }
}
Inning Pitch Details
{
  "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."
}
FieldValue
PitcherBrad Lord
RoleSetup Man
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score0.0724
ESPN Rank-
Movement AvailableTrue
Primary Pitch-
Movement Score0.0510
Avg Velo90.7608
Avg Spin2458.7640
HB Inches0
IVB Inches0
Release Extension0
Pre IP1.1000
Pre ER0
Pre H0
Pre BB0
Pre SO0
Season ERA3.9375
Season WHIP1.2375
Role Avg IP2.0100
Recent Avg IP1.4000
Last Start IP0
Team Form Snapshot
{
  "method": "team_form_snapshot",
  "role": "pitcher",
  "team": {
    "team": "WAS",
    "games": 156,
    "wins": 73,
    "losses": 83,
    "win_pct": 0.4679,
    "runs_scored": 798.0,
    "runs_allowed": 786.0,
    "run_differential": 12.0,
    "run_differential_per_game": 0.0769,
    "avg_runs_scored": 5.1154,
    "avg_runs_allowed": 5.0385,
    "offense_index": 1.1355,
    "defense_index": 0.8941,
    "current_streak": "L1",
    "recent": {
      "games": 10,
      "wins": 6,
      "losses": 4,
      "win_pct": 0.6,
      "avg_runs_scored": 4.8,
      "avg_runs_allowed": 4.4,
      "run_differential": 4.0
    },
    "available": true,
    "quality_score": 0.0171
  },
  "opponent": {
    "team": "DET",
    "games": 156,
    "wins": 73,
    "losses": 83,
    "win_pct": 0.4679,
    "runs_scored": 697.0,
    "runs_allowed": 629.0,
    "run_differential": 68.0,
    "run_differential_per_game": 0.4359,
    "avg_runs_scored": 4.4679,
    "avg_runs_allowed": 4.0321,
    "offense_index": 0.9917,
    "defense_index": 1.1173,
    "current_streak": "L2",
    "recent": {
      "games": 10,
      "wins": 6,
      "losses": 4,
      "win_pct": 0.6,
      "avg_runs_scored": 5.6,
      "avg_runs_allowed": 4.3,
      "run_differential": 13.0
    },
    "available": true,
    "quality_score": 0.0609
  },
  "edges": {
    "quality_edge": -0.0438,
    "offense_edge": 0.1355,
    "opponent_offense_edge": -0.0083,
    "defense_strength": -0.1059,
    "opponent_defense_weakness": -0.1173,
    "recent_win_pct_edge": 0.0
  },
  "player_factors": {
    "ip": 0.9954,
    "run_prevention": 1.0115,
    "strikeout": 0.9993
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "695418",
    "profile": {
      "available": true,
      "pitcher_id": "695418",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 329.0,
        "k_percent": 21.4,
        "bb_percent": 9.0,
        "woba": 0.298,
        "xwoba": 0.306,
        "sweet_spot_percent": 27.7,
        "barrel_batted_rate": 6.1,
        "hard_hit_percent": 36.8,
        "avg_best_speed": 75.907,
        "avg_hyper_speed": 93.7899,
        "whiff_percent": 19.4,
        "swing_percent": 49.9
      },
      "league_medians": {
        "pa": 135.0,
        "k_percent": 22.0,
        "bb_percent": 9.1,
        "woba": 0.316,
        "xwoba": 0.3117,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6659,
        "avg_hyper_speed": 93.9097,
        "whiff_percent": 25.0,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": 0.3084,
        "command_and_miss": -0.3136,
        "regression_edge": -0.2286,
        "xwoba_edge": 0.1643,
        "barrel_edge": 0.2444,
        "hard_hit_edge": 0.1571,
        "whiff_edge": -0.8,
        "bb_edge": 0.025,
        "pitch_design_score": 0.051
      },
      "pitch_movement_profile": {
        "available": true,
        "pitcher_id": "695418",
        "player_name": null,
        "source": "all_players_stats.csv embedded Savant pitcher movement features",
        "total_pitches": 36,
        "primary_pitch": {
          "pitch_type": null,
          "pitch_name": null,
          "pitches": 36,
          "pitch_usage": 0.0,
          "release_speed": 90.76079528906351,
          "release_spin_rate": 2458.7640149280383,
          "spin_axis": null,
          "horizontal_break_inches": 0.0,
          "induced_vertical_break_inches": 0.0,
          "vertical_break_with_gravity_inches": null,
          "release_pos_x": null,
          "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": 36,
            "pitch_usage": 0.0,
            "release_speed": 90.76079528906351,
            "release_spin_rate": 2458.7640149280383,
            "spin_axis": null,
            "horizontal_break_inches": 0.0,
            "induced_vertical_break_inches": 0.0,
            "vertical_break_with_gravity_inches": null,
            "release_pos_x": null,
            "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.7608,
          "release_spin_rate": 2458.764,
          "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.051,
          "horizontal_break_edge": 0.0,
          "induced_vertical_break_edge": 0.0,
          "extension_edge": 0.0,
          "velocity_edge": 0.3639,
          "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.0724,
      "sample_weight": 1.0,
      "run_prevention_factor": 0.9938,
      "strikeout_factor": 0.9646,
      "walk_factor": 0.998,
      "homer_factor": 0.9692,
      "woba_minus_xwoba": -0.008,
      "regression_flag": "neutral",
      "espn_rank": {
        "available": false,
        "player_id": "695418",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 1.0,
        "factor": 0.9938,
        "adjusted": 1
      },
      "predicted_H": {
        "original": 2.0,
        "factor": 0.9938,
        "adjusted": 2
      },
      "predicted_BB": {
        "original": 1.0,
        "factor": 0.998,
        "adjusted": 1
      },
      "predicted_HR": {
        "original": 0.0,
        "factor": 0.9692,
        "adjusted": 0
      },
      "predicted_SO": {
        "original": 2.0,
        "factor": 0.9646,
        "adjusted": 2
      }
    }
  }
}
Recent Form Pitching
{
  "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.1,
    "ER": 9,
    "H": 16,
    "BB": 10,
    "SO": 18,
    "HR": 3,
    "ERA": 4.418181818181818,
    "WHIP": 1.418181818181818,
    "K9": 8.836363636363636,
    "HR9": 1.4727272727272724,
    "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"
}
Savant Pitch Movement Profile
{
  "available": true,
  "pitcher_id": "695418",
  "player_name": null,
  "source": "all_players_stats.csv embedded Savant pitcher movement features",
  "total_pitches": 36,
  "primary_pitch": {
    "pitch_type": null,
    "pitch_name": null,
    "pitches": 36,
    "pitch_usage": 0.0,
    "release_speed": 90.76079528906351,
    "release_spin_rate": 2458.7640149280383,
    "spin_axis": null,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": null,
    "release_pos_x": null,
    "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": 36,
      "pitch_usage": 0.0,
      "release_speed": 90.76079528906351,
      "release_spin_rate": 2458.7640149280383,
      "spin_axis": null,
      "horizontal_break_inches": 0.0,
      "induced_vertical_break_inches": 0.0,
      "vertical_break_with_gravity_inches": null,
      "release_pos_x": null,
      "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.7608,
    "release_spin_rate": 2458.764,
    "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.051,
    "horizontal_break_edge": 0.0,
    "induced_vertical_break_edge": 0.0,
    "extension_edge": 0.0,
    "velocity_edge": 0.3639,
    "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."
}
Player Form Blend
{
  "form_version": "player_form_v3_5_10_season",
  "method": "weighted_recent_form",
  "description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
  "weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "effective_weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 16.26,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.7648,
    "prior_weight": 0.2352
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "695418",
  "report_date": "20260921",
  "season_year": 2026,
  "rows_used": 39,
  "reference_playing_time": 1.333,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 7.0,
        "ER": 6.0,
        "R": 6.0,
        "H": 11.0,
        "BB": 2.0,
        "SO": 4.0,
        "HR": 2.0,
        "BF": 34.0,
        "Pitches": 126.0
      },
      "per_game": {
        "IP": 1.1,
        "ER": 1.2,
        "R": 1.2,
        "H": 2.2,
        "BB": 0.4,
        "SO": 0.8,
        "HR": 0.4,
        "BF": 6.8,
        "Pitches": 25.2
      },
      "rates": {
        "ERA": 7.7143,
        "WHIP": 1.8571,
        "ER_per_IP": 0.85714,
        "H_per_IP": 1.57143,
        "BB_per_IP": 0.28571,
        "SO_per_IP": 0.57143,
        "HR_per_IP": 0.28571
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 18.1,
        "ER": 9.0,
        "R": 9.0,
        "H": 16.0,
        "BB": 10.0,
        "SO": 18.0,
        "HR": 3.0,
        "BF": 83.0,
        "Pitches": 327.0
      },
      "per_game": {
        "IP": 2.0,
        "ER": 0.9,
        "R": 0.9,
        "H": 1.6,
        "BB": 1.0,
        "SO": 1.8,
        "HR": 0.3,
        "BF": 8.3,
        "Pitches": 32.7
      },
      "rates": {
        "ERA": 4.4182,
        "WHIP": 1.4182,
        "ER_per_IP": 0.49091,
        "H_per_IP": 0.87273,
        "BB_per_IP": 0.54545,
        "SO_per_IP": 0.98182,
        "HR_per_IP": 0.16364
      }
    },
    "season": {
      "games": 39,
      "totals": {
        "IP": 80.0,
        "ER": 35.0,
        "R": 36.0,
        "H": 68.0,
        "BB": 31.0,
        "SO": 74.0,
        "HR": 10.0,
        "BF": 345.0,
        "Pitches": 1418.0
      },
      "per_game": {
        "IP": 2.0,
        "ER": 0.8974,
        "R": 0.9231,
        "H": 1.7436,
        "BB": 0.7949,
        "SO": 1.8974,
        "HR": 0.2564,
        "BF": 8.8462,
        "Pitches": 36.359
      },
      "rates": {
        "ERA": 3.9375,
        "WHIP": 1.2375,
        "ER_per_IP": 0.4375,
        "H_per_IP": 0.85,
        "BB_per_IP": 0.3875,
        "SO_per_IP": 0.925,
        "HR_per_IP": 0.125
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 1.2,
    "predicted_ER": 0.99,
    "predicted_H": 1.832,
    "predicted_BB": 0.633,
    "predicted_SO": 1.325,
    "predicted_HR": 0.317,
    "predicted_ERA": 5.5202,
    "predicted_WHIP": 1.5273
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.4494,
  "form_weight": 0.5506,
  "form_reliability": 0.7648,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 16.26,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.7648,
    "prior_weight": 0.2352
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 1.1,
      "form": 1.2,
      "final": 1.2,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 0.0,
      "form": 0.99,
      "final": 0.5451,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 0.0,
      "form": 1.832,
      "final": 1.0088,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 0.0,
      "form": 0.633,
      "final": 0.3485,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 0.0,
      "form": 1.325,
      "final": 0.7296,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 0.0,
      "form": 0.317,
      "final": 0.1745,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 5.5202,
      "final": 5.5202,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 1.5273,
      "final": 1.5273,
      "source": "form_only"
    }
  }
}
Inning Pitch Details
{
  "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."
}
FieldValue
PitcherLuis Perales
RoleMiddle Reliever (High Leverage)
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score-0.3649
ESPN Rank-
Movement AvailableTrue
Primary Pitch-
Movement Score0.1377
Avg Velo92.3103
Avg Spin1985.2390
HB Inches0
IVB Inches0
Release Extension0
Pre IP1
Pre ER0
Pre H2
Pre BB1
Pre SO1
Season ERA9
Season WHIP2.3333
Role Avg IP1.8000
Recent Avg IP1.8000
Last Start IP0
Team Form Snapshot
{
  "method": "team_form_snapshot",
  "role": "pitcher",
  "team": {
    "team": "WAS",
    "games": 156,
    "wins": 73,
    "losses": 83,
    "win_pct": 0.4679,
    "runs_scored": 798.0,
    "runs_allowed": 786.0,
    "run_differential": 12.0,
    "run_differential_per_game": 0.0769,
    "avg_runs_scored": 5.1154,
    "avg_runs_allowed": 5.0385,
    "offense_index": 1.1355,
    "defense_index": 0.8941,
    "current_streak": "L1",
    "recent": {
      "games": 10,
      "wins": 6,
      "losses": 4,
      "win_pct": 0.6,
      "avg_runs_scored": 4.8,
      "avg_runs_allowed": 4.4,
      "run_differential": 4.0
    },
    "available": true,
    "quality_score": 0.0171
  },
  "opponent": {
    "team": "DET",
    "games": 156,
    "wins": 73,
    "losses": 83,
    "win_pct": 0.4679,
    "runs_scored": 697.0,
    "runs_allowed": 629.0,
    "run_differential": 68.0,
    "run_differential_per_game": 0.4359,
    "avg_runs_scored": 4.4679,
    "avg_runs_allowed": 4.0321,
    "offense_index": 0.9917,
    "defense_index": 1.1173,
    "current_streak": "L2",
    "recent": {
      "games": 10,
      "wins": 6,
      "losses": 4,
      "win_pct": 0.6,
      "avg_runs_scored": 5.6,
      "avg_runs_allowed": 4.3,
      "run_differential": 13.0
    },
    "available": true,
    "quality_score": 0.0609
  },
  "edges": {
    "quality_edge": -0.0438,
    "offense_edge": 0.1355,
    "opponent_offense_edge": -0.0083,
    "defense_strength": -0.1059,
    "opponent_defense_weakness": -0.1173,
    "recent_win_pct_edge": 0.0
  },
  "player_factors": {
    "ip": 0.9954,
    "run_prevention": 1.0115,
    "strikeout": 0.9993
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "691384",
    "profile": {
      "available": true,
      "pitcher_id": "691384",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 37.0,
        "k_percent": 23.4,
        "bb_percent": 23.4,
        "woba": 0.427,
        "xwoba": 0.391,
        "sweet_spot_percent": 40.0,
        "barrel_batted_rate": 12.0,
        "hard_hit_percent": 44.0,
        "avg_best_speed": 78.1308,
        "avg_hyper_speed": 94.4161,
        "whiff_percent": 35.0,
        "swing_percent": 50.7
      },
      "league_medians": {
        "pa": 135.0,
        "k_percent": 22.0,
        "bb_percent": 9.1,
        "woba": 0.316,
        "xwoba": 0.3117,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6659,
        "avg_hyper_speed": 93.9097,
        "whiff_percent": 25.0,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": -1.6932,
        "command_and_miss": 0.09,
        "regression_edge": 1.0286,
        "xwoba_edge": -2.2643,
        "barrel_edge": -1.0667,
        "hard_hit_edge": -0.8714,
        "whiff_edge": 1.4286,
        "bb_edge": -2.5,
        "pitch_design_score": 0.1377
      },
      "pitch_movement_profile": {
        "available": true,
        "pitcher_id": "691384",
        "player_name": null,
        "source": "all_players_stats.csv embedded Savant pitcher movement features",
        "total_pitches": 38,
        "primary_pitch": {
          "pitch_type": null,
          "pitch_name": null,
          "pitches": 38,
          "pitch_usage": 0.0,
          "release_speed": 92.3102784965456,
          "release_spin_rate": 1985.2389630599937,
          "spin_axis": null,
          "horizontal_break_inches": 0.0,
          "induced_vertical_break_inches": 0.0,
          "vertical_break_with_gravity_inches": null,
          "release_pos_x": null,
          "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": 38,
            "pitch_usage": 0.0,
            "release_speed": 92.3102784965456,
            "release_spin_rate": 1985.2389630599937,
            "spin_axis": null,
            "horizontal_break_inches": 0.0,
            "induced_vertical_break_inches": 0.0,
            "vertical_break_with_gravity_inches": null,
            "release_pos_x": null,
            "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.3103,
          "release_spin_rate": 1985.239,
          "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.1377,
          "horizontal_break_edge": 0.0,
          "induced_vertical_break_edge": 0.0,
          "extension_edge": 0.0,
          "velocity_edge": 0.9837,
          "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.3649,
      "sample_weight": 0.45,
      "run_prevention_factor": 1.031,
      "strikeout_factor": 1.0293,
      "walk_factor": 1.09,
      "homer_factor": 1.0847,
      "woba_minus_xwoba": 0.036,
      "regression_flag": "positive_pitcher_regression",
      "espn_rank": {
        "available": false,
        "player_id": "691384",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 2.0,
        "factor": 1.0139,
        "adjusted": 2
      },
      "predicted_H": {
        "original": 2.0,
        "factor": 1.0139,
        "adjusted": 2
      },
      "predicted_BB": {
        "original": 2.0,
        "factor": 1.0405,
        "adjusted": 2
      },
      "predicted_HR": {
        "original": 1.0,
        "factor": 1.0381,
        "adjusted": 1
      },
      "predicted_SO": {
        "original": 3.0,
        "factor": 1.0132,
        "adjusted": 3
      }
    }
  }
}
Recent Form Pitching
{
  "hitting": {
    "AB": 0,
    "H": 0,
    "HR": 0,
    "RBI": 0,
    "R": 0,
    "BB": 0,
    "SO": 0,
    "2B": 0,
    "3B": 0,
    "AVG": 0,
    "OBP": 0,
    "SLG": 0,
    "OPS": 0,
    "games_played": 0,
    "hot_streak": false,
    "cold_streak": true,
    "trend": "insufficient_data"
  },
  "pitching": {
    "IP": 9.0,
    "ER": 9,
    "H": 10,
    "BB": 11,
    "SO": 11,
    "HR": 3,
    "ERA": 9.0,
    "WHIP": 2.3333333333333335,
    "K9": 11.0,
    "HR9": 3.0,
    "games_pitched": 5,
    "quality_starts": 0,
    "dominant_form": false,
    "struggling_form": true
  },
  "fielding": {
    "errors": 0,
    "assists": 0,
    "games_fielded": 5,
    "error_prone": false
  },
  "games_count": 5,
  "latest_game_date": "2026-09-16T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": true,
  "pitcher_id": "691384",
  "player_name": null,
  "source": "all_players_stats.csv embedded Savant pitcher movement features",
  "total_pitches": 38,
  "primary_pitch": {
    "pitch_type": null,
    "pitch_name": null,
    "pitches": 38,
    "pitch_usage": 0.0,
    "release_speed": 92.3102784965456,
    "release_spin_rate": 1985.2389630599937,
    "spin_axis": null,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": null,
    "release_pos_x": null,
    "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": 38,
      "pitch_usage": 0.0,
      "release_speed": 92.3102784965456,
      "release_spin_rate": 1985.2389630599937,
      "spin_axis": null,
      "horizontal_break_inches": 0.0,
      "induced_vertical_break_inches": 0.0,
      "vertical_break_with_gravity_inches": null,
      "release_pos_x": null,
      "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.3103,
    "release_spin_rate": 1985.239,
    "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.1377,
    "horizontal_break_edge": 0.0,
    "induced_vertical_break_edge": 0.0,
    "extension_edge": 0.0,
    "velocity_edge": 0.9837,
    "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."
}
Player Form Blend
{
  "form_version": "player_form_v3_5_10_season",
  "method": "weighted_recent_form",
  "description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
  "weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "effective_weights": {
    "last_5": 1.0
  },
  "shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 1.829,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.2679,
    "prior_weight": 0.7321
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "691384",
  "report_date": "20260921",
  "season_year": 2026,
  "rows_used": 5,
  "reference_playing_time": 1.0,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 9.0,
        "ER": 9.0,
        "R": 9.0,
        "H": 10.0,
        "BB": 11.0,
        "SO": 11.0,
        "HR": 3.0,
        "BF": 47.0,
        "Pitches": 203.0
      },
      "per_game": {
        "IP": 1.2,
        "ER": 1.8,
        "R": 1.8,
        "H": 2.0,
        "BB": 2.2,
        "SO": 2.2,
        "HR": 0.6,
        "BF": 9.4,
        "Pitches": 40.6
      },
      "rates": {
        "ERA": 9.0,
        "WHIP": 2.3333,
        "ER_per_IP": 1.0,
        "H_per_IP": 1.11111,
        "BB_per_IP": 1.22222,
        "SO_per_IP": 1.22222,
        "HR_per_IP": 0.33333
      }
    },
    "last_10": {
      "games": 5,
      "totals": {
        "IP": 9.0,
        "ER": 9.0,
        "R": 9.0,
        "H": 10.0,
        "BB": 11.0,
        "SO": 11.0,
        "HR": 3.0,
        "BF": 47.0,
        "Pitches": 203.0
      },
      "per_game": {
        "IP": 1.2,
        "ER": 1.8,
        "R": 1.8,
        "H": 2.0,
        "BB": 2.2,
        "SO": 2.2,
        "HR": 0.6,
        "BF": 9.4,
        "Pitches": 40.6
      },
      "rates": {
        "ERA": 9.0,
        "WHIP": 2.3333,
        "ER_per_IP": 1.0,
        "H_per_IP": 1.11111,
        "BB_per_IP": 1.22222,
        "SO_per_IP": 1.22222,
        "HR_per_IP": 0.33333
      }
    },
    "season": {
      "games": 5,
      "totals": {
        "IP": 9.0,
        "ER": 9.0,
        "R": 9.0,
        "H": 10.0,
        "BB": 11.0,
        "SO": 11.0,
        "HR": 3.0,
        "BF": 47.0,
        "Pitches": 203.0
      },
      "per_game": {
        "IP": 1.2,
        "ER": 1.8,
        "R": 1.8,
        "H": 2.0,
        "BB": 2.2,
        "SO": 2.2,
        "HR": 0.6,
        "BF": 9.4,
        "Pitches": 40.6
      },
      "rates": {
        "ERA": 9.0,
        "WHIP": 2.3333,
        "ER_per_IP": 1.0,
        "H_per_IP": 1.11111,
        "BB_per_IP": 1.22222,
        "SO_per_IP": 1.22222,
        "HR_per_IP": 0.33333
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 1.1,
    "predicted_ER": 0.756,
    "predicted_H": 1.198,
    "predicted_BB": 0.71,
    "predicted_SO": 1.193,
    "predicted_HR": 0.234,
    "predicted_ERA": 5.7739,
    "predicted_WHIP": 1.619
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.6593,
  "form_weight": 0.3407,
  "form_reliability": 0.2679,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 1.829,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.2679,
    "prior_weight": 0.7321
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 1.0,
      "form": 1.1,
      "final": 1.1,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 0.0,
      "form": 0.756,
      "final": 0.2576,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 2.0,
      "form": 1.198,
      "final": 1.7268,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 1.0,
      "form": 0.71,
      "final": 0.9012,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 1.0,
      "form": 1.193,
      "final": 1.0658,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 0.0,
      "form": 0.234,
      "final": 0.0797,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 5.7739,
      "final": 5.7739,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 1.619,
      "final": 1.619,
      "source": "form_only"
    }
  }
}
Inning Pitch Details
{
  "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."
}
Jacob Young (696285) · BATTER · DH · Team WAS
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 457
All-history rows before 20260921: 457
System season_avg: 0.2480
Data season_avg (2026 season-to-date): 0.2560
Diff (system - data): -0.0080
System opponent_avg: 0.2480

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1720.0000.000Hitting_2B0.1660.000-0.1660.000
predicted_3B0.0250.0000.000Hitting_3B0.0240.000-0.0240.000
predicted_AB3.3114.0003.000Hitting_AB3.3852.0000.6152.000
predicted_AVG0.2480.5000.333Hitting_AVG0.2560.5000.2440.000
predicted_BB0.2301.0000.000Hitting_BB0.2980.0000.7021.000
predicted_CS-0.0000.000BaseRunning_CS0.0261.000-0.026-1.000
predicted_H0.8202.0001.000Hitting_H0.8671.0001.1331.000
predicted_HR0.0820.0000.000Hitting_HR0.0770.000-0.0770.000
predicted_OBP0.2960.6000.333Hitting_OBP0.3260.3330.2740.267
predicted_R0.4511.0001.000Hitting_R0.5030.0000.4971.000
predicted_RBI0.3690.0000.000Hitting_RBI0.3961.000-0.396-1.000
predicted_SLG0.3890.5000.333Hitting_SLG0.3870.5000.1130.000
predicted_SO0.6151.0001.000Hitting_SO0.6080.0000.3921.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics9
Boosted Metrics5
Deboosted Metrics4
Better Metrics4
Worse Metrics5
Biggest Boostpredicted_H: 0.8200 -> 2.0000 (boost 1.1800, better)
Biggest Deboostpredicted_RBI: 0.3690 -> 0.0000 (deboost -0.3690, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend10101-predicted_SLG: 0.3890 -> 0.3804 (deboost -0.0086, 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.
3team_form_snapshot10101-predicted_OBP: 0.3004 -> 0.2931 (deboost -0.0073, worse)Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling82617predicted_SO: 0.6078 -> 1.0000 (boost 0.3922, worse)predicted_RBI: 0.3791 -> 0.0000 (deboost -0.3791, worse)AB rounded to 3 (raw=3.31), rates preserved: AVG=0.243 HR/AB=0.021
6consistency_constraints10101-predicted_R: 0.4897 -> 0.0000 (deboost -0.4897, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine64251predicted_RBI: 0.0000 -> 0.3865 (boost 0.3865, better)predicted_SO: 1.0000 -> 0.6778 (deboost -0.3222, better)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation73425predicted_R: 0.0000 -> 1.0000 (boost 1.0000, better)predicted_RBI: 0.3865 -> 0.0000 (deboost -0.3865, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context31212predicted_OBP: 0.2931 -> 0.2990 (boost 0.0059, better)predicted_R: 1.0000 -> 0.0000 (deboost -1.0000, worse)Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10simulation_box_score_reference44040predicted_AB: 3.0000 -> 4.0000 (boost 1.0000, better)-Attached simulation box score without overwriting model prediction
11current_json_final21111predicted_AVG: 0.2400 -> 0.2460 (boost 0.0060, better)predicted_OBP: 0.2990 -> 0.2931 (deboost -0.0059, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "696285",
  "player_name": "Jacob Young",
  "position": "DH",
  "team": "WAS",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.172,
        "predicted_3B": 0.025,
        "predicted_AB": 3.311,
        "predicted_AVG": 0.248,
        "predicted_BB": 0.23,
        "predicted_H": 0.82,
        "predicted_HR": 0.082,
        "predicted_OBP": 0.296,
        "predicted_R": 0.451,
        "predicted_RBI": 0.369,
        "predicted_SLG": 0.389,
        "predicted_SO": 0.615
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.0203,
        "predicted_AB": 3.2743,
        "predicted_AVG": 0.2455,
        "predicted_BB": 0.2171,
        "predicted_H": 0.8036,
        "predicted_HBP": 0.098,
        "predicted_HR": 0.0691,
        "predicted_OBP": 0.3004,
        "predicted_R": 0.4877,
        "predicted_RBI": 0.3776,
        "predicted_SLG": 0.3804,
        "predicted_SO": 0.6103
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.172,
          "after": 0.1949,
          "delta": 0.0229,
          "percent_delta": 0.1331,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.025,
          "after": 0.0203,
          "delta": -0.0047,
          "percent_delta": -0.188,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 3.311,
          "after": 3.2743,
          "delta": -0.0367,
          "percent_delta": -0.0111,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.248,
          "after": 0.2455,
          "delta": -0.0025,
          "percent_delta": -0.0101,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.23,
          "after": 0.2171,
          "delta": -0.0129,
          "percent_delta": -0.0561,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.82,
          "after": 0.8036,
          "delta": -0.0164,
          "percent_delta": -0.02,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.082,
          "after": 0.0691,
          "delta": -0.0129,
          "percent_delta": -0.1573,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.296,
          "after": 0.3004,
          "delta": 0.0044,
          "percent_delta": 0.0149,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.451,
          "after": 0.4877,
          "delta": 0.0367,
          "percent_delta": 0.0814,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.369,
          "after": 0.3776,
          "delta": 0.0086,
          "percent_delta": 0.0233,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.389,
          "after": 0.3804,
          "delta": -0.0086,
          "percent_delta": -0.0221,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.615,
          "after": 0.6103,
          "delta": -0.0047,
          "percent_delta": -0.0076,
          "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.389,
          "after": 0.3804,
          "delta": -0.0086,
          "percent_delta": -0.0221,
          "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": 122
      }
    },
    {
      "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.0203,
        "predicted_AB": 3.2743,
        "predicted_AVG": 0.246,
        "predicted_BB": 0.218,
        "predicted_H": 0.8055,
        "predicted_HBP": 0.098,
        "predicted_HR": 0.0693,
        "predicted_OBP": 0.2931,
        "predicted_R": 0.4897,
        "predicted_RBI": 0.3791,
        "predicted_SLG": 0.3814,
        "predicted_SO": 0.6078
      },
      "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.0203,
          "after": 0.0203,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 3.2743,
          "after": 3.2743,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2455,
          "after": 0.246,
          "delta": 0.0005,
          "percent_delta": 0.002,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.2171,
          "after": 0.218,
          "delta": 0.0009,
          "percent_delta": 0.0041,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.8036,
          "after": 0.8055,
          "delta": 0.0019,
          "percent_delta": 0.0024,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HBP",
          "before": 0.098,
          "after": 0.098,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.0691,
          "after": 0.0693,
          "delta": 0.0002,
          "percent_delta": 0.0029,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3004,
          "after": 0.2931,
          "delta": -0.0073,
          "percent_delta": -0.0243,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.4877,
          "after": 0.4897,
          "delta": 0.002,
          "percent_delta": 0.0041,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3776,
          "after": 0.3791,
          "delta": 0.0015,
          "percent_delta": 0.004,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3804,
          "after": 0.3814,
          "delta": 0.001,
          "percent_delta": 0.0026,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.6103,
          "after": 0.6078,
          "delta": -0.0025,
          "percent_delta": -0.0041,
          "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.3004,
          "after": 0.2931,
          "delta": -0.0073,
          "percent_delta": -0.0243,
          "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.31), rates preserved: AVG=0.243 HR/AB=0.021",
      "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.1949,
          "after": 0.0,
          "delta": -0.1949,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0203,
          "after": 0.0,
          "delta": -0.0203,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 3.2743,
          "after": 3.0,
          "delta": -0.2743,
          "percent_delta": -0.0838,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.218,
          "after": 0.0,
          "delta": -0.218,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8055,
          "after": 1.0,
          "delta": 0.1945,
          "percent_delta": 0.2415,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HBP",
          "before": 0.098,
          "after": 0.0,
          "delta": -0.098,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0693,
          "after": 0.0,
          "delta": -0.0693,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3791,
          "after": 0.0,
          "delta": -0.3791,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.6078,
          "after": 1.0,
          "delta": 0.3922,
          "percent_delta": 0.6453,
          "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.6078,
          "after": 1.0,
          "delta": 0.3922,
          "percent_delta": 0.6453,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.3791,
          "after": 0.0,
          "delta": -0.3791,
          "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.4897,
          "after": 0.0,
          "delta": -0.4897,
          "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.4897,
          "after": 0.0,
          "delta": -0.4897,
          "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.1576,
        "predicted_3B": 0.0267,
        "predicted_BB": 0.2619,
        "predicted_H": 0.83,
        "predicted_HR": 0.092,
        "predicted_RBI": 0.3865,
        "predicted_SO": 0.6778
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1576,
          "delta": 0.1576,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0267,
          "delta": 0.0267,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.2619,
          "delta": 0.2619,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.83,
          "delta": -0.17,
          "percent_delta": -0.17,
          "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.3865,
          "delta": 0.3865,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.6778,
          "delta": -0.3222,
          "percent_delta": -0.3222,
          "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.3865,
          "delta": 0.3865,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.6778,
          "delta": -0.3222,
          "percent_delta": -0.3222,
          "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.1576,
          "after": 0.0,
          "delta": -0.1576,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0267,
          "after": 0.0,
          "delta": -0.0267,
          "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.2619,
          "after": 0.0,
          "delta": -0.2619,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.83,
          "after": 1.0,
          "delta": 0.17,
          "percent_delta": 0.2048,
          "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": 1.0,
          "delta": 1.0,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3865,
          "after": 0.0,
          "delta": -0.3865,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.6778,
          "after": 1.0,
          "delta": 0.3222,
          "percent_delta": 0.4754,
          "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.3865,
          "after": 0.0,
          "delta": -0.3865,
          "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.24,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.299,
        "predicted_R": 0.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.246,
          "after": 0.24,
          "delta": -0.006,
          "percent_delta": -0.0244,
          "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.2931,
          "after": 0.299,
          "delta": 0.0059,
          "percent_delta": 0.0201,
          "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": 0.0,
          "after": 0.0,
          "delta": 0.0,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3814,
          "after": 0.381,
          "delta": -0.0004,
          "percent_delta": -0.001,
          "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_OBP",
          "before": 0.2931,
          "after": 0.299,
          "delta": 0.0059,
          "percent_delta": 0.0201,
          "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": "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": 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": 4.0,
          "delta": 1.0,
          "percent_delta": 0.3333,
          "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_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": 4,
        "boosted_metrics": 4,
        "deboosted_metrics": 0,
        "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": 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.246,
        "predicted_BB": 1.0,
        "predicted_CS": 0.0,
        "predicted_DH": 0.0,
        "predicted_H": 2.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.2931,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.3814,
        "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.24,
          "after": 0.246,
          "delta": 0.006,
          "percent_delta": 0.0251,
          "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.299,
          "after": 0.2931,
          "delta": -0.0059,
          "percent_delta": -0.0198,
          "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.381,
          "after": 0.3814,
          "delta": 0.0004,
          "percent_delta": 0.001,
          "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.24,
          "after": 0.246,
          "delta": 0.006,
          "percent_delta": 0.0251,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_OBP",
          "before": 0.299,
          "after": 0.2931,
          "delta": -0.0059,
          "percent_delta": -0.0198,
          "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.172,
        "after": 0.0,
        "delta": -0.172,
        "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.311,
        "after": 4.0,
        "delta": 0.689,
        "percent_delta": 0.2081,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.248,
        "after": 0.246,
        "delta": -0.002,
        "percent_delta": -0.0081,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_BB",
        "before": 0.23,
        "after": 1.0,
        "delta": 0.77,
        "percent_delta": 3.3478,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.82,
        "after": 2.0,
        "delta": 1.18,
        "percent_delta": 1.439,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.082,
        "after": 0.0,
        "delta": -0.082,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.296,
        "after": 0.2931,
        "delta": -0.0029,
        "percent_delta": -0.0098,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_R",
        "before": 0.451,
        "after": 1.0,
        "delta": 0.549,
        "percent_delta": 1.2173,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.369,
        "after": 0.0,
        "delta": -0.369,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.389,
        "after": 0.3814,
        "delta": -0.0076,
        "percent_delta": -0.0195,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.615,
        "after": 1.0,
        "delta": 0.385,
        "percent_delta": 0.626,
        "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_H",
        "before": 0.82,
        "after": 2.0,
        "delta": 1.18,
        "percent_delta": 1.439,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_RBI",
        "before": 0.369,
        "after": 0.0,
        "delta": -0.369,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.172-
predicted_3B0.025-
predicted_AB3.311-
predicted_AVG0.248-
predicted_BB0.230-
predicted_H0.820-
predicted_HR0.082-
predicted_OBP0.296-
predicted_R0.451-
predicted_RBI0.369-
predicted_SLG0.389-
predicted_SO0.615-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.1950.023
predicted_3B0.020-0.005
predicted_AB3.274-0.037
predicted_AVG0.245-0.003
predicted_BB0.217-0.013
predicted_H0.804-0.016
predicted_HBP0.098-
predicted_HR0.069-0.013
predicted_OBP0.3000.004
predicted_R0.4880.037
predicted_RBI0.3780.009
predicted_SLG0.380-0.009
predicted_SO0.610-0.005
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1950.000
predicted_3B0.0200.000
predicted_AB3.2740.000
predicted_AVG0.2460.001
predicted_BB0.2180.001
predicted_H0.8050.002
predicted_HBP0.0980.000
predicted_HR0.0690.000
predicted_OBP0.293-0.007
predicted_R0.4900.002
predicted_RBI0.3790.002
predicted_SLG0.3810.001
predicted_SO0.608-0.002
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 3 (raw=3.31), rates preserved: AVG=0.243 HR/AB=0.021

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB3.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1580.158
3B0.0270.027
BB0.2620.262
H0.830-0.170
HR0.0920.092
RBI0.3870.387
SO0.678-0.322
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.158
3B0.000-0.027
AB3.0000.000
BB0.000-0.262
H1.0000.170
HR0.000-0.092
R1.0001.000
RBI0.000-0.387
SO1.0000.322
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.195
predicted_3B0.000-0.020
predicted_AB3.000-0.274
predicted_AVG0.240-0.006
predicted_BB0.000-0.218
predicted_H1.0000.195
predicted_HR0.000-0.069
predicted_OBP0.2990.006
predicted_R0.000-0.490
predicted_RBI0.000-0.379
predicted_SLG0.381-0.000
predicted_SO1.0000.392
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0001.000
BB1.0001.000
CS0.0000.000
H2.0001.000
HBP0.0000.000
HR0.0000.000
PA5.000-
R1.0000.000
RBI0.0000.000
SB0.0000.000
SF0.0000.000
SO1.0000.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 122
Reference playing time: 3.804
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-15.0003.0002.0000.0000.0002.0004.0001.0003.0000.20000.29410.33330.20000.00000.13330.06670.2000
last_100.2010-30.0008.0002.0000.0000.0004.0005.0001.0005.0000.26670.31250.33330.26670.00000.13330.03330.1667
season0.60122-404.000100.00021.0003.00010.00045.00055.00028.00075.0000.24750.30840.38860.24750.02480.11140.06930.1856
Weighted Prediction From Real Data
MetricValue
predicted_2B0.2250
predicted_3B0.0140
predicted_AB3.2260
predicted_AVG0.2423
predicted_BB0.2000
predicted_H0.7820
predicted_HBP0.0980
predicted_HR0.0520
predicted_OBP0.3063
predicted_R0.5360
predicted_RBI0.3890
predicted_SLG0.3691
predicted_SO0.6040
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.17200.22500.1949model_form_blend
predicted_3B0.02500.01400.0203model_form_blend
predicted_AB3.31103.22603.2743model_form_blend
predicted_AVG0.24800.24230.2455model_form_blend
predicted_BB0.23000.20000.2171model_form_blend
predicted_H0.82000.78200.8036model_form_blend
predicted_HBP-0.09800.0980form_only
predicted_HR0.08200.05200.0691model_form_blend
predicted_OBP0.29600.30630.3004model_form_blend
predicted_R0.45100.53600.4877model_form_blend
predicted_RBI0.36900.38900.3776model_form_blend
predicted_SLG0.38900.36910.3804model_form_blend
predicted_SO0.61500.60400.6103model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date457
Season rows before report date457
Report year2026
Profile rows used122
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA5
AB4
H2
2B0
3B0
HR0
R1
RBI0
BB1
SO1
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS1
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB2
Hitting_AVG0.5
Hitting_BB0
Hitting_GIDP0
Hitting_H1
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI1
Hitting_SAC0
Hitting_SF1
Hitting_SO0
Hitting_TB1
Hitting_battingOrder8
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedCF
gameID20260920_WAS@STL
game_typefull
mlbID696285
playerID696285
playerNameJacob Young
posCF
startedTrue
startingPositionCF
teamWAS
teamID30
game_date2026-09-20
sl_k_percent16.6
sl_bb_percent7.3
sl_woba0.313
sl_xwoba0.316
sl_xba0.257
sl_xslg0.383
sl_sweet_spot_percent37.0
sl_barrel_batted_rate5.7
sl_hard_hit_percent30.4
sl_exit_velocity_avg87.7
sl_launch_angle_avg12.0
sl_whiff_percent21.0
sl_swing_percent43.9
CJ Abrams (682928) · BATTER · C · Team WAS
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 619
All-history rows before 20260921: 619
System season_avg: 0.2610
Data season_avg (2026 season-to-date): 0.2707
Diff (system - data): -0.0097
System opponent_avg: 0.2610

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.2070.0000.000Hitting_2B0.2210.000-0.2210.000
predicted_3B0.0210.0000.000Hitting_3B0.0260.000-0.0260.000
predicted_AB3.8285.0004.000Hitting_AB3.9144.0001.0861.000
predicted_AVG0.2610.2000.250Hitting_AVG0.2710.250-0.071-0.050
predicted_BB0.3720.0001.000Hitting_BB0.3970.000-0.3970.000
predicted_CS-0.0000.000BaseRunning_CS0.0420.000-0.0420.000
predicted_H1.0001.0001.000Hitting_H1.0601.000-0.0600.000
predicted_HR0.2070.0001.000Hitting_HR0.2151.000-0.215-1.000
predicted_OBP0.3270.2000.400Hitting_OBP0.3470.250-0.147-0.050
predicted_R0.6140.0001.000Hitting_R0.6431.000-0.643-1.000
predicted_RBI0.6690.0001.000Hitting_RBI0.7082.000-0.708-2.000
predicted_SLG0.4880.2001.000Hitting_SLG0.5051.000-0.305-0.800
predicted_SO1.0411.0001.000Hitting_SO1.0691.000-0.0690.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics8
Boosted Metrics1
Deboosted Metrics7
Better Metrics1
Worse Metrics7
Biggest Boostpredicted_AB: 3.8280 -> 5.0000 (boost 1.1720, better)
Biggest Deboostpredicted_RBI: 0.6690 -> 0.0000 (deboost -0.6690, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend41322predicted_AB: 3.8280 -> 3.8979 (boost 0.0699, better)predicted_SO: 1.0410 -> 0.9637 (deboost -0.0773, 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.
3team_form_snapshot00000--Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling62424predicted_RBI: 0.6182 -> 1.0000 (boost 0.3818, better)predicted_BB: 0.3529 -> 0.0000 (deboost -0.3529, worse)AB rounded to 4 (raw=3.90), rates preserved: AVG=0.259 HR/AB=0.047
6consistency_constraints11010predicted_R: 0.6126 -> 1.0000 (boost 0.3874, better)-Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine54132predicted_BB: 0.0000 -> 0.3772 (boost 0.3772, better)predicted_RBI: 1.0000 -> 0.5997 (deboost -0.4003, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation53241predicted_HR: 0.1767 -> 1.0000 (boost 0.8233, better)predicted_2B: 0.1831 -> 0.0000 (deboost -0.1831, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context50505-predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse)Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10simulation_box_score_reference31212predicted_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
11current_json_final33030predicted_SLG: 0.4370 -> 0.4724 (boost 0.0354, better)-Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "682928",
  "player_name": "CJ Abrams",
  "position": "C",
  "team": "WAS",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.207,
        "predicted_3B": 0.021,
        "predicted_AB": 3.828,
        "predicted_AVG": 0.261,
        "predicted_BB": 0.372,
        "predicted_H": 1.0,
        "predicted_HR": 0.207,
        "predicted_OBP": 0.327,
        "predicted_R": 0.614,
        "predicted_RBI": 0.669,
        "predicted_SLG": 0.488,
        "predicted_SO": 1.041
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.252,
        "predicted_3B": 0.0175,
        "predicted_AB": 3.8979,
        "predicted_AVG": 0.2583,
        "predicted_BB": 0.3515,
        "predicted_H": 1.007,
        "predicted_HBP": 0.051,
        "predicted_HR": 0.1812,
        "predicted_OBP": 0.3225,
        "predicted_R": 0.6101,
        "predicted_RBI": 0.6157,
        "predicted_SLG": 0.4718,
        "predicted_SO": 0.9637
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.207,
          "after": 0.252,
          "delta": 0.045,
          "percent_delta": 0.2174,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.021,
          "after": 0.0175,
          "delta": -0.0035,
          "percent_delta": -0.1667,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 3.828,
          "after": 3.8979,
          "delta": 0.0699,
          "percent_delta": 0.0183,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.261,
          "after": 0.2583,
          "delta": -0.0027,
          "percent_delta": -0.0103,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.372,
          "after": 0.3515,
          "delta": -0.0205,
          "percent_delta": -0.0551,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 1.007,
          "delta": 0.007,
          "percent_delta": 0.007,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.207,
          "after": 0.1812,
          "delta": -0.0258,
          "percent_delta": -0.1246,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.327,
          "after": 0.3225,
          "delta": -0.0045,
          "percent_delta": -0.0138,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.614,
          "after": 0.6101,
          "delta": -0.0039,
          "percent_delta": -0.0064,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.669,
          "after": 0.6157,
          "delta": -0.0533,
          "percent_delta": -0.0797,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.488,
          "after": 0.4718,
          "delta": -0.0162,
          "percent_delta": -0.0332,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.041,
          "after": 0.9637,
          "delta": -0.0773,
          "percent_delta": -0.0743,
          "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_AB",
          "before": 3.828,
          "after": 3.8979,
          "delta": 0.0699,
          "percent_delta": 0.0183,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.041,
          "after": 0.9637,
          "delta": -0.0773,
          "percent_delta": -0.0743,
          "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": 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.252,
        "predicted_3B": 0.0175,
        "predicted_AB": 3.8979,
        "predicted_AVG": 0.259,
        "predicted_BB": 0.3529,
        "predicted_H": 1.0094,
        "predicted_HBP": 0.051,
        "predicted_HR": 0.1816,
        "predicted_OBP": 0.3205,
        "predicted_R": 0.6126,
        "predicted_RBI": 0.6182,
        "predicted_SLG": 0.4724,
        "predicted_SO": 0.9597
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.252,
          "after": 0.252,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.0175,
          "after": 0.0175,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 3.8979,
          "after": 3.8979,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2583,
          "after": 0.259,
          "delta": 0.0007,
          "percent_delta": 0.0027,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.3515,
          "after": 0.3529,
          "delta": 0.0014,
          "percent_delta": 0.004,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 1.007,
          "after": 1.0094,
          "delta": 0.0024,
          "percent_delta": 0.0024,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HBP",
          "before": 0.051,
          "after": 0.051,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.1812,
          "after": 0.1816,
          "delta": 0.0004,
          "percent_delta": 0.0022,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3225,
          "after": 0.3205,
          "delta": -0.002,
          "percent_delta": -0.0062,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.6101,
          "after": 0.6126,
          "delta": 0.0025,
          "percent_delta": 0.0041,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.6157,
          "after": 0.6182,
          "delta": 0.0025,
          "percent_delta": 0.0041,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4718,
          "after": 0.4724,
          "delta": 0.0006,
          "percent_delta": 0.0013,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.9637,
          "after": 0.9597,
          "delta": -0.004,
          "percent_delta": -0.0042,
          "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.259 HR/AB=0.047",
      "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.252,
          "after": 0.0,
          "delta": -0.252,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0175,
          "after": 0.0,
          "delta": -0.0175,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 3.8979,
          "after": 4.0,
          "delta": 0.1021,
          "percent_delta": 0.0262,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3529,
          "after": 0.0,
          "delta": -0.3529,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0094,
          "after": 1.0,
          "delta": -0.0094,
          "percent_delta": -0.0093,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HBP",
          "before": 0.051,
          "after": 0.0,
          "delta": -0.051,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1816,
          "after": 0.0,
          "delta": -0.1816,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.6182,
          "after": 1.0,
          "delta": 0.3818,
          "percent_delta": 0.6176,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.9597,
          "after": 1.0,
          "delta": 0.0403,
          "percent_delta": 0.042,
          "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_RBI",
          "before": 0.6182,
          "after": 1.0,
          "delta": 0.3818,
          "percent_delta": 0.6176,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.3529,
          "after": 0.0,
          "delta": -0.3529,
          "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.6126,
          "after": 1.0,
          "delta": 0.3874,
          "percent_delta": 0.6324,
          "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.6126,
          "after": 1.0,
          "delta": 0.3874,
          "percent_delta": 0.6324,
          "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.1831,
        "predicted_3B": 0.0268,
        "predicted_BB": 0.3772,
        "predicted_H": 0.9639,
        "predicted_HR": 0.1767,
        "predicted_RBI": 0.5997,
        "predicted_SO": 1.0586
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1831,
          "delta": 0.1831,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0268,
          "delta": 0.0268,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.3772,
          "delta": 0.3772,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.9639,
          "delta": -0.0361,
          "percent_delta": -0.0361,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1767,
          "delta": 0.1767,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.5997,
          "delta": -0.4003,
          "percent_delta": -0.4003,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 1.0586,
          "delta": 0.0586,
          "percent_delta": 0.0586,
          "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.3772,
          "delta": 0.3772,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.5997,
          "delta": -0.4003,
          "percent_delta": -0.4003,
          "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.1831,
          "after": 0.0,
          "delta": -0.1831,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0268,
          "after": 0.0,
          "delta": -0.0268,
          "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.3772,
          "after": 1.0,
          "delta": 0.6228,
          "percent_delta": 1.6511,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.9639,
          "after": 1.0,
          "delta": 0.0361,
          "percent_delta": 0.0375,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.1767,
          "after": 1.0,
          "delta": 0.8233,
          "percent_delta": 4.6593,
          "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.5997,
          "after": 1.0,
          "delta": 0.4003,
          "percent_delta": 0.6675,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0586,
          "after": 1.0,
          "delta": -0.0586,
          "percent_delta": -0.0554,
          "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_HR",
          "before": 0.1767,
          "after": 1.0,
          "delta": 0.8233,
          "percent_delta": 4.6593,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_2B",
          "before": 0.1831,
          "after": 0.0,
          "delta": -0.1831,
          "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.243,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.314,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.437,
        "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.243,
          "delta": -0.016,
          "percent_delta": -0.0618,
          "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.3205,
          "after": 0.314,
          "delta": -0.0065,
          "percent_delta": -0.0203,
          "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.4724,
          "after": 0.437,
          "delta": -0.0354,
          "percent_delta": -0.0749,
          "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": 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.259,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_DH": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.3205,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.4724,
        "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.243,
          "after": 0.259,
          "delta": 0.016,
          "percent_delta": 0.0657,
          "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.3205,
          "delta": 0.0065,
          "percent_delta": 0.0207,
          "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.437,
          "after": 0.4724,
          "delta": 0.0354,
          "percent_delta": 0.0809,
          "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.437,
          "after": 0.4724,
          "delta": 0.0354,
          "percent_delta": 0.0809,
          "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.021,
        "after": 0.0,
        "delta": -0.021,
        "percent_delta": -1.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_AB",
        "before": 3.828,
        "after": 5.0,
        "delta": 1.172,
        "percent_delta": 0.3062,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.261,
        "after": 0.259,
        "delta": -0.002,
        "percent_delta": -0.0077,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_BB",
        "before": 0.372,
        "after": 0.0,
        "delta": -0.372,
        "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.207,
        "after": 0.0,
        "delta": -0.207,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.327,
        "after": 0.3205,
        "delta": -0.0065,
        "percent_delta": -0.0199,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.614,
        "after": 0.0,
        "delta": -0.614,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.669,
        "after": 0.0,
        "delta": -0.669,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.488,
        "after": 0.4724,
        "delta": -0.0156,
        "percent_delta": -0.032,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 1.041,
        "after": 1.0,
        "delta": -0.041,
        "percent_delta": -0.0394,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      }
    ],
    "summary": {
      "changed_metrics": 8,
      "boosted_metrics": 1,
      "deboosted_metrics": 7,
      "better_metrics": 1,
      "worse_metrics": 7,
      "biggest_boost": {
        "metric": "predicted_AB",
        "before": 3.828,
        "after": 5.0,
        "delta": 1.172,
        "percent_delta": 0.3062,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_RBI",
        "before": 0.669,
        "after": 0.0,
        "delta": -0.669,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.207-
predicted_3B0.021-
predicted_AB3.828-
predicted_AVG0.261-
predicted_BB0.372-
predicted_H1.000-
predicted_HR0.207-
predicted_OBP0.327-
predicted_R0.614-
predicted_RBI0.669-
predicted_SLG0.488-
predicted_SO1.041-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.2520.045
predicted_3B0.018-0.003
predicted_AB3.8980.070
predicted_AVG0.258-0.003
predicted_BB0.351-0.021
predicted_H1.0070.007
predicted_HBP0.051-
predicted_HR0.181-0.026
predicted_OBP0.323-0.005
predicted_R0.610-0.004
predicted_RBI0.616-0.053
predicted_SLG0.472-0.016
predicted_SO0.964-0.077
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.2520.000
predicted_3B0.0180.000
predicted_AB3.8980.000
predicted_AVG0.2590.001
predicted_BB0.3530.001
predicted_H1.0090.002
predicted_HBP0.0510.000
predicted_HR0.1820.000
predicted_OBP0.321-0.002
predicted_R0.6130.003
predicted_RBI0.6180.002
predicted_SLG0.4720.001
predicted_SO0.960-0.004
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 4 (raw=3.90), rates preserved: AVG=0.259 HR/AB=0.047

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB4.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI1.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R1.000-
RBI1.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1830.183
3B0.0270.027
BB0.3770.377
H0.964-0.036
HR0.1770.177
RBI0.600-0.400
SO1.0590.059
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.183
3B0.000-0.027
AB4.0000.000
BB1.0000.623
H1.0000.036
HR1.0000.823
R1.0000.000
RBI1.0000.400
SO1.000-0.059
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.252
predicted_3B0.000-0.018
predicted_AB4.0000.102
predicted_AVG0.243-0.016
predicted_BB0.000-0.353
predicted_H1.000-0.009
predicted_HR0.000-0.182
predicted_OBP0.314-0.007
predicted_R1.0000.387
predicted_RBI1.0000.382
predicted_SLG0.437-0.035
predicted_SO1.0000.040
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB5.0001.000
BB0.000-1.000
CS0.0000.000
H1.0000.000
HBP0.0000.000
HR0.000-1.000
PA5.000-
R0.000-1.000
RBI0.000-1.000
SB0.0000.000
SF0.0000.000
SO1.0000.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 145
Reference playing time: 3.828
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-22.0006.0003.0000.0000.0002.0003.0001.0001.0000.27270.30430.40910.27270.00000.09090.04540.0454
last_100.2010-41.0009.0004.0000.0001.0003.0006.0003.0009.0000.21950.27270.39020.21950.02440.07320.07320.2195
season0.60145-555.000145.00030.0003.00030.00097.00089.00054.000151.0000.26130.33650.48830.26130.05410.17480.09730.2721
Weighted Prediction From Real Data
MetricValue
predicted_2B0.3100
predicted_3B0.0130
predicted_AB3.9880
predicted_AVG0.2549
predicted_BB0.3250
predicted_H1.0160
predicted_HBP0.0510
predicted_HR0.1480
predicted_OBP0.3168
predicted_R0.6050
predicted_RBI0.5470
predicted_SLG0.4508
predicted_SO0.8640
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.20700.31000.2520model_form_blend
predicted_3B0.02100.01300.0175model_form_blend
predicted_AB3.82803.98803.8979model_form_blend
predicted_AVG0.26100.25490.2583model_form_blend
predicted_BB0.37200.32500.3515model_form_blend
predicted_H1.00001.01601.0070model_form_blend
predicted_HBP-0.05100.0510form_only
predicted_HR0.20700.14800.1812model_form_blend
predicted_OBP0.32700.31680.3225model_form_blend
predicted_R0.61400.60500.6101model_form_blend
predicted_RBI0.66900.54700.6157model_form_blend
predicted_SLG0.48800.45080.4718model_form_blend
predicted_SO1.04100.86400.9637model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date619
Season rows before report date619
Report year2026
Profile rows used145
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA5
AB5
H1
2B0
3B0
HR0
R0
RBI0
BB0
SO1
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB1
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB4
Hitting_AVG0.25
Hitting_BB0
Hitting_GIDP0
Hitting_H1
Hitting_HBP0
Hitting_HR1
Hitting_IBB0
Hitting_R1
Hitting_RBI2
Hitting_SAC0
Hitting_SF0
Hitting_SO1
Hitting_TB4
Hitting_battingOrder4
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayed2B
gameID20260920_WAS@STL
game_typefull
mlbID682928
playerID682928
playerNameCJ Abrams
posSS
startedTrue
startingPosition2B
teamWAS
teamID30
game_date2026-09-20
sl_k_percent24.1
sl_bb_percent8.6
sl_woba0.354
sl_xwoba0.328
sl_xba0.247
sl_xslg0.427
sl_sweet_spot_percent33.7
sl_barrel_batted_rate9.8
sl_hard_hit_percent40.7
sl_exit_velocity_avg89.6
sl_launch_angle_avg17.6
sl_whiff_percent29.2
sl_swing_percent51.1
Nasim Nuñez (683083) · BATTER · 1B · Team WAS
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 479
All-history rows before 20260921: 479
System season_avg: 0.2110
Data season_avg (2026 season-to-date): 0.2139
Diff (system - data): -0.0029
System opponent_avg: 0.2110

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.0380.0000.000Hitting_2B0.0400.000-0.0400.000
predicted_3B0.0230.0000.000Hitting_3B0.0250.000-0.0250.000
predicted_AB3.2083.0003.000Hitting_AB3.3383.000-0.3380.000
predicted_AVG0.2110.3330.333Hitting_AVG0.2140.0000.1190.333
predicted_BB0.3691.0001.000Hitting_BB0.3900.0000.6101.000
predicted_CS-0.0000.000BaseRunning_CS0.0650.000-0.0650.000
predicted_H0.6771.0001.000Hitting_H0.7140.0000.2861.000
predicted_HR0.0080.0000.000Hitting_HR0.0100.000-0.0100.000
predicted_OBP0.2920.6000.500Hitting_OBP0.2970.0000.3030.600
predicted_R0.3851.0000.000Hitting_R0.4300.0000.5701.000
predicted_RBI0.2770.0000.000Hitting_RBI0.2990.000-0.2990.000
predicted_SLG0.2450.3330.333Hitting_SLG0.2500.0000.0830.333
predicted_SO0.7461.0001.000Hitting_SO0.8120.0000.1881.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics7
Boosted Metrics5
Deboosted Metrics2
Better Metrics4
Worse Metrics3
Biggest Boostpredicted_BB: 0.3690 -> 1.0000 (boost 0.6310, better)
Biggest Deboostpredicted_RBI: 0.2770 -> 0.0000 (deboost -0.2770, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend31221predicted_OBP: 0.2920 -> 0.2993 (boost 0.0073, better)predicted_AB: 3.2080 -> 3.0515 (deboost -0.1565, 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.
3team_form_snapshot00000--Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling52314predicted_H: 0.6392 -> 1.0000 (boost 0.3608, better)predicted_BB: 0.4009 -> 0.0000 (deboost -0.4009, worse)AB rounded to 3 (raw=3.21), rates preserved: AVG=0.199 HR/AB=0.003
6consistency_constraints10101-predicted_R: 0.3922 -> 0.0000 (deboost -0.3922, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine53241predicted_BB: 0.0000 -> 0.3746 (boost 0.3746, better)predicted_H: 1.0000 -> 0.7587 (deboost -0.2413, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation53223predicted_BB: 0.3746 -> 1.0000 (boost 0.6254, better)predicted_RBI: 0.3210 -> 0.0000 (deboost -0.3210, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context32121predicted_SLG: 0.2442 -> 0.3080 (boost 0.0638, 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
10simulation_box_score_reference33030predicted_BB: 0.0000 -> 1.0000 (boost 1.0000, better)-Attached simulation box score without overwriting model prediction
11current_json_final20202-predicted_SLG: 0.3080 -> 0.2442 (deboost -0.0638, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "683083",
  "player_name": "Nasim Nuñez",
  "position": "1B",
  "team": "WAS",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.038,
        "predicted_3B": 0.023,
        "predicted_AB": 3.208,
        "predicted_AVG": 0.211,
        "predicted_BB": 0.369,
        "predicted_H": 0.677,
        "predicted_HR": 0.008,
        "predicted_OBP": 0.292,
        "predicted_R": 0.385,
        "predicted_RBI": 0.277,
        "predicted_SLG": 0.245,
        "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.0428,
        "predicted_3B": 0.0182,
        "predicted_AB": 3.0515,
        "predicted_AVG": 0.2088,
        "predicted_BB": 0.3993,
        "predicted_H": 0.6377,
        "predicted_HBP": 0.005,
        "predicted_HR": 0.0089,
        "predicted_OBP": 0.2993,
        "predicted_R": 0.3906,
        "predicted_RBI": 0.2709,
        "predicted_SLG": 0.2436,
        "predicted_SO": 0.6734
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.038,
          "after": 0.0428,
          "delta": 0.0048,
          "percent_delta": 0.1263,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.023,
          "after": 0.0182,
          "delta": -0.0048,
          "percent_delta": -0.2087,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 3.208,
          "after": 3.0515,
          "delta": -0.1565,
          "percent_delta": -0.0488,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.211,
          "after": 0.2088,
          "delta": -0.0022,
          "percent_delta": -0.0104,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.369,
          "after": 0.3993,
          "delta": 0.0303,
          "percent_delta": 0.0821,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.677,
          "after": 0.6377,
          "delta": -0.0393,
          "percent_delta": -0.0581,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.008,
          "after": 0.0089,
          "delta": 0.0009,
          "percent_delta": 0.1125,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.292,
          "after": 0.2993,
          "delta": 0.0073,
          "percent_delta": 0.025,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.385,
          "after": 0.3906,
          "delta": 0.0056,
          "percent_delta": 0.0145,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.277,
          "after": 0.2709,
          "delta": -0.0061,
          "percent_delta": -0.022,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.245,
          "after": 0.2436,
          "delta": -0.0014,
          "percent_delta": -0.0057,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.746,
          "after": 0.6734,
          "delta": -0.0726,
          "percent_delta": -0.0973,
          "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_OBP",
          "before": 0.292,
          "after": 0.2993,
          "delta": 0.0073,
          "percent_delta": 0.025,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 3.208,
          "after": 3.0515,
          "delta": -0.1565,
          "percent_delta": -0.0488,
          "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": 130
      }
    },
    {
      "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.0428,
        "predicted_3B": 0.0182,
        "predicted_AB": 3.0515,
        "predicted_AVG": 0.2095,
        "predicted_BB": 0.4009,
        "predicted_H": 0.6392,
        "predicted_HBP": 0.005,
        "predicted_HR": 0.0089,
        "predicted_OBP": 0.3013,
        "predicted_R": 0.3922,
        "predicted_RBI": 0.272,
        "predicted_SLG": 0.2442,
        "predicted_SO": 0.6706
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0428,
          "after": 0.0428,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.0182,
          "after": 0.0182,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 3.0515,
          "after": 3.0515,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2088,
          "after": 0.2095,
          "delta": 0.0007,
          "percent_delta": 0.0034,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.3993,
          "after": 0.4009,
          "delta": 0.0016,
          "percent_delta": 0.004,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.6377,
          "after": 0.6392,
          "delta": 0.0015,
          "percent_delta": 0.0024,
          "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.0089,
          "after": 0.0089,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2993,
          "after": 0.3013,
          "delta": 0.002,
          "percent_delta": 0.0067,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.3906,
          "after": 0.3922,
          "delta": 0.0016,
          "percent_delta": 0.0041,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.2709,
          "after": 0.272,
          "delta": 0.0011,
          "percent_delta": 0.0041,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.2436,
          "after": 0.2442,
          "delta": 0.0006,
          "percent_delta": 0.0025,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.6734,
          "after": 0.6706,
          "delta": -0.0028,
          "percent_delta": -0.0042,
          "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.21), rates preserved: AVG=0.199 HR/AB=0.003",
      "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.0428,
          "after": 0.0,
          "delta": -0.0428,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "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.0515,
          "after": 3.0,
          "delta": -0.0515,
          "percent_delta": -0.0169,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.4009,
          "after": 0.0,
          "delta": -0.4009,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.6392,
          "after": 1.0,
          "delta": 0.3608,
          "percent_delta": 0.5645,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "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.0089,
          "after": 0.0,
          "delta": -0.0089,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.272,
          "after": 0.0,
          "delta": -0.272,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.6706,
          "after": 1.0,
          "delta": 0.3294,
          "percent_delta": 0.4912,
          "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_H",
          "before": 0.6392,
          "after": 1.0,
          "delta": 0.3608,
          "percent_delta": 0.5645,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.4009,
          "after": 0.0,
          "delta": -0.4009,
          "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.3922,
          "after": 0.0,
          "delta": -0.3922,
          "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.3922,
          "after": 0.0,
          "delta": -0.3922,
          "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.1121,
        "predicted_3B": 0.0259,
        "predicted_BB": 0.3746,
        "predicted_H": 0.7587,
        "predicted_HR": 0.0432,
        "predicted_RBI": 0.321,
        "predicted_SO": 0.7964
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1121,
          "delta": 0.1121,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0259,
          "delta": 0.0259,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.3746,
          "delta": 0.3746,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7587,
          "delta": -0.2413,
          "percent_delta": -0.2413,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.0432,
          "delta": 0.0432,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.321,
          "delta": 0.321,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.7964,
          "delta": -0.2036,
          "percent_delta": -0.2036,
          "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_BB",
          "before": 0.0,
          "after": 0.3746,
          "delta": 0.3746,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7587,
          "delta": -0.2413,
          "percent_delta": -0.2413,
          "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": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1121,
          "after": 0.0,
          "delta": -0.1121,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0259,
          "after": 0.0,
          "delta": -0.0259,
          "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.3746,
          "after": 1.0,
          "delta": 0.6254,
          "percent_delta": 1.6695,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.7587,
          "after": 1.0,
          "delta": 0.2413,
          "percent_delta": 0.318,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0432,
          "after": 0.0,
          "delta": -0.0432,
          "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.321,
          "after": 0.0,
          "delta": -0.321,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.7964,
          "after": 1.0,
          "delta": 0.2036,
          "percent_delta": 0.2557,
          "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.3746,
          "after": 1.0,
          "delta": 0.6254,
          "percent_delta": 1.6695,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.321,
          "after": 0.0,
          "delta": -0.321,
          "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.222,
        "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.308,
        "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.2095,
          "after": 0.222,
          "delta": 0.0125,
          "percent_delta": 0.0597,
          "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.3013,
          "after": 0.304,
          "delta": 0.0027,
          "percent_delta": 0.009,
          "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.2442,
          "after": 0.308,
          "delta": 0.0638,
          "percent_delta": 0.2613,
          "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.2442,
          "after": 0.308,
          "delta": 0.0638,
          "percent_delta": 0.2613,
          "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": 1.0,
        "predicted_HBP": 1.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": 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": 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_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_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": 3.0,
        "predicted_AVG": 0.2095,
        "predicted_BB": 1.0,
        "predicted_CS": 0.0,
        "predicted_DH": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.3013,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.2442,
        "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.222,
          "after": 0.2095,
          "delta": -0.0125,
          "percent_delta": -0.0564,
          "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": 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.304,
          "after": 0.3013,
          "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.308,
          "after": 0.2442,
          "delta": -0.0638,
          "percent_delta": -0.2071,
          "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.308,
          "after": 0.2442,
          "delta": -0.0638,
          "percent_delta": -0.2071,
          "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.038,
        "after": 0.0,
        "delta": -0.038,
        "percent_delta": -1.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "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": 3.208,
        "after": 3.0,
        "delta": -0.208,
        "percent_delta": -0.0648,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.211,
        "after": 0.2095,
        "delta": -0.0015,
        "percent_delta": -0.0071,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_BB",
        "before": 0.369,
        "after": 1.0,
        "delta": 0.631,
        "percent_delta": 1.71,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.677,
        "after": 1.0,
        "delta": 0.323,
        "percent_delta": 0.4771,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.008,
        "after": 0.0,
        "delta": -0.008,
        "percent_delta": -1.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_OBP",
        "before": 0.292,
        "after": 0.3013,
        "delta": 0.0093,
        "percent_delta": 0.0318,
        "direction": "boost",
        "projection_effect": "better",
        "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.277,
        "after": 0.0,
        "delta": -0.277,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.245,
        "after": 0.2442,
        "delta": -0.0008,
        "percent_delta": -0.0033,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_SO",
        "before": 0.746,
        "after": 1.0,
        "delta": 0.254,
        "percent_delta": 0.3405,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 7,
      "boosted_metrics": 5,
      "deboosted_metrics": 2,
      "better_metrics": 4,
      "worse_metrics": 3,
      "biggest_boost": {
        "metric": "predicted_BB",
        "before": 0.369,
        "after": 1.0,
        "delta": 0.631,
        "percent_delta": 1.71,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_RBI",
        "before": 0.277,
        "after": 0.0,
        "delta": -0.277,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "better"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.038-
predicted_3B0.023-
predicted_AB3.208-
predicted_AVG0.211-
predicted_BB0.369-
predicted_H0.677-
predicted_HR0.008-
predicted_OBP0.292-
predicted_R0.385-
predicted_RBI0.277-
predicted_SLG0.245-
predicted_SO0.746-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.0430.005
predicted_3B0.018-0.005
predicted_AB3.051-0.157
predicted_AVG0.209-0.002
predicted_BB0.3990.030
predicted_H0.638-0.039
predicted_HBP0.005-
predicted_HR0.0090.001
predicted_OBP0.2990.007
predicted_R0.3910.006
predicted_RBI0.271-0.006
predicted_SLG0.244-0.001
predicted_SO0.673-0.073
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.0430.000
predicted_3B0.0180.000
predicted_AB3.0510.000
predicted_AVG0.2090.001
predicted_BB0.4010.002
predicted_H0.6390.001
predicted_HBP0.0050.000
predicted_HR0.0090.000
predicted_OBP0.3010.002
predicted_R0.3920.002
predicted_RBI0.2720.001
predicted_SLG0.2440.001
predicted_SO0.671-0.003
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 3 (raw=3.21), rates preserved: AVG=0.199 HR/AB=0.003

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB3.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1120.112
3B0.0260.026
BB0.3750.375
H0.759-0.241
HR0.0430.043
RBI0.3210.321
SO0.796-0.204
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.112
3B0.000-0.026
AB3.0000.000
BB1.0000.625
H1.0000.241
HR0.000-0.043
R0.0000.000
RBI0.000-0.321
SO1.0000.204
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.043
predicted_3B0.000-0.018
predicted_AB3.000-0.051
predicted_AVG0.2220.013
predicted_BB0.000-0.401
predicted_H1.0000.361
predicted_HR0.000-0.009
predicted_OBP0.3040.003
predicted_R0.000-0.392
predicted_RBI0.000-0.272
predicted_SLG0.3080.064
predicted_SO1.0000.329
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB1.0000.000
CS0.0000.000
H1.0000.000
HBP1.0001.000
HR0.0000.000
PA5.000-
R1.0001.000
RBI0.0000.000
SB0.0000.000
SF0.0000.000
SO1.0000.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 130
Reference playing time: 3.804
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-9.0002.0000.0000.0000.0001.0002.0003.0001.0000.22220.41670.22220.22220.00000.11110.33330.1111
last_100.2010-25.0004.0001.0000.0000.0002.0003.0003.0005.0000.16000.25000.20000.16000.00000.08000.12000.2000
season0.60130-417.00088.0005.0003.0001.00036.00050.00048.00097.0000.21100.29270.24460.21100.00240.08630.11510.2326
Weighted Prediction From Real Data
MetricValue
predicted_2B0.0490
predicted_3B0.0120
predicted_AB2.8460
predicted_AVG0.2058
predicted_BB0.4390
predicted_H0.5860
predicted_HBP0.0050
predicted_HR0.0100
predicted_OBP0.3088
predicted_R0.3980
predicted_RBI0.2630
predicted_SLG0.2418
predicted_SO0.5780
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.03800.04900.0428model_form_blend
predicted_3B0.02300.01200.0182model_form_blend
predicted_AB3.20802.84603.0515model_form_blend
predicted_AVG0.21100.20580.2088model_form_blend
predicted_BB0.36900.43900.3993model_form_blend
predicted_H0.67700.58600.6377model_form_blend
predicted_HBP-0.00500.0050form_only
predicted_HR0.00800.01000.0089model_form_blend
predicted_OBP0.29200.30880.2993model_form_blend
predicted_R0.38500.39800.3906model_form_blend
predicted_RBI0.27700.26300.2709model_form_blend
predicted_SLG0.24500.24180.2436model_form_blend
predicted_SO0.74600.57800.6734model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date479
Season rows before report date479
Report year2026
Profile rows used130
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA5
AB3
H1
2B0
3B0
HR0
R1
RBI0
BB1
SO1
SF0
HBP1
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E1
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB3
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB0
Hitting_battingOrder9
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedSS
gameID20260920_WAS@STL
game_typefull
mlbID683083
playerID683083
playerNameNasim Nuñez
pos2B
startedTrue
startingPositionSS
teamWAS
teamID30
game_date2026-09-20
sl_k_percent20.3
sl_bb_percent10.1
sl_woba0.252
sl_xwoba0.267
sl_xba0.221
sl_xslg0.274
sl_sweet_spot_percent28.7
sl_barrel_batted_rate0.9
sl_hard_hit_percent21.5
sl_exit_velocity_avg84.9
sl_launch_angle_avg8.3
sl_whiff_percent21.6
sl_swing_percent47.4
Abimelec Ortiz (694673) · BATTER · 2B · Team WAS
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 127
All-history rows before 20260921: 127
System season_avg: 0.2000
Data season_avg (2026 season-to-date): 0.1899
Diff (system - data): 0.0101
System opponent_avg: 0.2000

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1252.0000.000Hitting_2B0.1340.0001.8662.000
predicted_3B0.0000.0000.000Hitting_3B0.0000.0000.0000.000
predicted_AB3.0004.0004.000Hitting_AB3.4411.0000.5593.000
predicted_AVG0.2000.5000.250Hitting_AVG0.1900.0000.3100.500
predicted_BB0.1751.0000.000Hitting_BB0.2280.0000.7721.000
predicted_CS-0.0000.000BaseRunning_CS0.0000.0000.0000.000
predicted_H0.6002.0001.000Hitting_H0.6540.0001.3462.000
predicted_HR0.1250.0000.000Hitting_HR0.1260.000-0.1260.000
predicted_OBP0.2440.6000.250Hitting_OBP0.2400.0000.3600.600
predicted_R0.4001.0000.000Hitting_R0.4650.0000.5351.000
predicted_RBI0.3254.0000.000Hitting_RBI0.3700.0003.6304.000
predicted_SLG0.3671.0000.250Hitting_SLG0.3390.0000.6611.000
predicted_SO0.8501.0001.000Hitting_SO1.0000.0000.0001.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics10
Boosted Metrics8
Deboosted Metrics2
Better Metrics7
Worse Metrics3
Biggest Boostpredicted_RBI: 0.3250 -> 4.0000 (boost 3.6750, better)
Biggest Deboostpredicted_HR: 0.1250 -> 0.0000 (deboost -0.1250, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend21111predicted_OBP: 0.2440 -> 0.2505 (boost 0.0065, better)predicted_SLG: 0.3670 -> 0.3551 (deboost -0.0119, 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.
3team_form_snapshot00000--Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling73425predicted_AB: 2.9838 -> 4.0000 (boost 1.0162, better)predicted_RBI: 0.3351 -> 0.0000 (deboost -0.3351, worse)AB rounded to 4 (raw=3.00), rates preserved: AVG=0.199 HR/AB=0.036
6consistency_constraints10101-predicted_R: 0.3882 -> 0.0000 (deboost -0.3882, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine54141predicted_RBI: 0.0000 -> 0.4120 (boost 0.4120, better)predicted_H: 1.0000 -> 0.8220 (deboost -0.1780, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation51414predicted_H: 0.8220 -> 1.0000 (boost 0.1780, better)predicted_RBI: 0.4120 -> 0.0000 (deboost -0.4120, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context33030predicted_OBP: 0.2507 -> 0.2920 (boost 0.0413, better)-Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10simulation_box_score_reference55050predicted_RBI: 0.0000 -> 4.0000 (boost 4.0000, better)-Attached simulation box score without overwriting model prediction
11current_json_final30303-predicted_OBP: 0.2920 -> 0.2507 (deboost -0.0413, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "694673",
  "player_name": "Abimelec Ortiz",
  "position": "2B",
  "team": "WAS",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.125,
        "predicted_3B": 0.0,
        "predicted_AB": 3.0,
        "predicted_AVG": 0.2,
        "predicted_BB": 0.175,
        "predicted_H": 0.6,
        "predicted_HR": 0.125,
        "predicted_OBP": 0.244,
        "predicted_R": 0.4,
        "predicted_RBI": 0.325,
        "predicted_SLG": 0.367,
        "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.1412,
        "predicted_3B": 0.0008,
        "predicted_AB": 2.9838,
        "predicted_AVG": 0.1994,
        "predicted_BB": 0.2018,
        "predicted_H": 0.5949,
        "predicted_HBP": 0.005,
        "predicted_HR": 0.1073,
        "predicted_OBP": 0.2505,
        "predicted_R": 0.3866,
        "predicted_RBI": 0.3337,
        "predicted_SLG": 0.3551,
        "predicted_SO": 0.8666
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.125,
          "after": 0.1412,
          "delta": 0.0162,
          "percent_delta": 0.1296,
          "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.0,
          "after": 2.9838,
          "delta": -0.0162,
          "percent_delta": -0.0054,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2,
          "after": 0.1994,
          "delta": -0.0006,
          "percent_delta": -0.003,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.175,
          "after": 0.2018,
          "delta": 0.0268,
          "percent_delta": 0.1531,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.6,
          "after": 0.5949,
          "delta": -0.0051,
          "percent_delta": -0.0085,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.125,
          "after": 0.1073,
          "delta": -0.0177,
          "percent_delta": -0.1416,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.244,
          "after": 0.2505,
          "delta": 0.0065,
          "percent_delta": 0.0266,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.4,
          "after": 0.3866,
          "delta": -0.0134,
          "percent_delta": -0.0335,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.325,
          "after": 0.3337,
          "delta": 0.0087,
          "percent_delta": 0.0268,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.367,
          "after": 0.3551,
          "delta": -0.0119,
          "percent_delta": -0.0324,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.85,
          "after": 0.8666,
          "delta": 0.0166,
          "percent_delta": 0.0195,
          "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.244,
          "after": 0.2505,
          "delta": 0.0065,
          "percent_delta": 0.0266,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SLG",
          "before": 0.367,
          "after": 0.3551,
          "delta": -0.0119,
          "percent_delta": -0.0324,
          "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.1412,
        "predicted_3B": 0.0008,
        "predicted_AB": 2.9838,
        "predicted_AVG": 0.1999,
        "predicted_BB": 0.2026,
        "predicted_H": 0.5963,
        "predicted_HBP": 0.005,
        "predicted_HR": 0.1075,
        "predicted_OBP": 0.2507,
        "predicted_R": 0.3882,
        "predicted_RBI": 0.3351,
        "predicted_SLG": 0.3558,
        "predicted_SO": 0.863
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1412,
          "after": 0.1412,
          "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": 2.9838,
          "after": 2.9838,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.1994,
          "after": 0.1999,
          "delta": 0.0005,
          "percent_delta": 0.0025,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.2018,
          "after": 0.2026,
          "delta": 0.0008,
          "percent_delta": 0.004,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.5949,
          "after": 0.5963,
          "delta": 0.0014,
          "percent_delta": 0.0024,
          "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.1073,
          "after": 0.1075,
          "delta": 0.0002,
          "percent_delta": 0.0019,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2505,
          "after": 0.2507,
          "delta": 0.0002,
          "percent_delta": 0.0008,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.3866,
          "after": 0.3882,
          "delta": 0.0016,
          "percent_delta": 0.0041,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3337,
          "after": 0.3351,
          "delta": 0.0014,
          "percent_delta": 0.0042,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3551,
          "after": 0.3558,
          "delta": 0.0007,
          "percent_delta": 0.002,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.8666,
          "after": 0.863,
          "delta": -0.0036,
          "percent_delta": -0.0042,
          "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.00), rates preserved: AVG=0.199 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": 0.0,
        "predicted_SB": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1412,
          "after": 0.0,
          "delta": -0.1412,
          "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": 2.9838,
          "after": 4.0,
          "delta": 1.0162,
          "percent_delta": 0.3406,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.2026,
          "after": 0.0,
          "delta": -0.2026,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.5963,
          "after": 1.0,
          "delta": 0.4037,
          "percent_delta": 0.677,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "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.1075,
          "after": 0.0,
          "delta": -0.1075,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3351,
          "after": 0.0,
          "delta": -0.3351,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.863,
          "after": 1.0,
          "delta": 0.137,
          "percent_delta": 0.1587,
          "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": 2.9838,
          "after": 4.0,
          "delta": 1.0162,
          "percent_delta": 0.3406,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.3351,
          "after": 0.0,
          "delta": -0.3351,
          "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.3882,
          "after": 0.0,
          "delta": -0.3882,
          "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.3882,
          "after": 0.0,
          "delta": -0.3882,
          "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.1539,
        "predicted_3B": 0.0186,
        "predicted_BB": 0.2785,
        "predicted_H": 0.822,
        "predicted_HR": 0.1241,
        "predicted_RBI": 0.412,
        "predicted_SO": 1.0114
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1539,
          "delta": 0.1539,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0186,
          "delta": 0.0186,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.2785,
          "delta": 0.2785,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.822,
          "delta": -0.178,
          "percent_delta": -0.178,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1241,
          "delta": 0.1241,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.412,
          "delta": 0.412,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 1.0114,
          "delta": 0.0114,
          "percent_delta": 0.0114,
          "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.412,
          "delta": 0.412,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.822,
          "delta": -0.178,
          "percent_delta": -0.178,
          "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.1539,
          "after": 0.0,
          "delta": -0.1539,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0186,
          "after": 0.0,
          "delta": -0.0186,
          "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.2785,
          "after": 0.0,
          "delta": -0.2785,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.822,
          "after": 1.0,
          "delta": 0.178,
          "percent_delta": 0.2165,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1241,
          "after": 0.0,
          "delta": -0.1241,
          "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.412,
          "after": 0.0,
          "delta": -0.412,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0114,
          "after": 1.0,
          "delta": -0.0114,
          "percent_delta": -0.0113,
          "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.822,
          "after": 1.0,
          "delta": 0.178,
          "percent_delta": 0.2165,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.412,
          "after": 0.0,
          "delta": -0.412,
          "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.231,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.292,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.389,
        "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.1999,
          "after": 0.231,
          "delta": 0.0311,
          "percent_delta": 0.1556,
          "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.2507,
          "after": 0.292,
          "delta": 0.0413,
          "percent_delta": 0.1647,
          "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.3558,
          "after": 0.389,
          "delta": 0.0332,
          "percent_delta": 0.0933,
          "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.2507,
          "after": 0.292,
          "delta": 0.0413,
          "percent_delta": 0.1647,
          "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": 2.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": 4.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SO": 1.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": 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": 4.0,
          "delta": 4.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": 5,
        "boosted_metrics": 5,
        "deboosted_metrics": 0,
        "better_metrics": 5,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 4.0,
          "delta": 4.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": 2.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.1999,
        "predicted_BB": 1.0,
        "predicted_CS": 0.0,
        "predicted_DH": 0.0,
        "predicted_H": 2.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.2507,
        "predicted_R": 1.0,
        "predicted_RBI": 4.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.3558,
        "predicted_SO": 1.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.231,
          "after": 0.1999,
          "delta": -0.0311,
          "percent_delta": -0.1348,
          "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": 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.292,
          "after": 0.2507,
          "delta": -0.0413,
          "percent_delta": -0.1413,
          "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": 4.0,
          "after": 4.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.389,
          "after": 0.3558,
          "delta": -0.0332,
          "percent_delta": -0.0852,
          "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.292,
          "after": 0.2507,
          "delta": -0.0413,
          "percent_delta": -0.1413,
          "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.125,
        "after": 2.0,
        "delta": 1.875,
        "percent_delta": 15.0,
        "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_AVG",
        "before": 0.2,
        "after": 0.1999,
        "delta": -0.0001,
        "percent_delta": -0.0005,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_BB",
        "before": 0.175,
        "after": 1.0,
        "delta": 0.825,
        "percent_delta": 4.7143,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.6,
        "after": 2.0,
        "delta": 1.4,
        "percent_delta": 2.3333,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.125,
        "after": 0.0,
        "delta": -0.125,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.244,
        "after": 0.2507,
        "delta": 0.0067,
        "percent_delta": 0.0275,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.4,
        "after": 1.0,
        "delta": 0.6,
        "percent_delta": 1.5,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.325,
        "after": 4.0,
        "delta": 3.675,
        "percent_delta": 11.3077,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.367,
        "after": 0.3558,
        "delta": -0.0112,
        "percent_delta": -0.0305,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.85,
        "after": 1.0,
        "delta": 0.15,
        "percent_delta": 0.1765,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 10,
      "boosted_metrics": 8,
      "deboosted_metrics": 2,
      "better_metrics": 7,
      "worse_metrics": 3,
      "biggest_boost": {
        "metric": "predicted_RBI",
        "before": 0.325,
        "after": 4.0,
        "delta": 3.675,
        "percent_delta": 11.3077,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_HR",
        "before": 0.125,
        "after": 0.0,
        "delta": -0.125,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "better"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.125-
predicted_3B0.000-
predicted_AB3.000-
predicted_AVG0.200-
predicted_BB0.175-
predicted_H0.600-
predicted_HR0.125-
predicted_OBP0.244-
predicted_R0.400-
predicted_RBI0.325-
predicted_SLG0.367-
predicted_SO0.850-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.1410.016
predicted_3B0.0010.001
predicted_AB2.984-0.016
predicted_AVG0.199-0.001
predicted_BB0.2020.027
predicted_H0.595-0.005
predicted_HBP0.005-
predicted_HR0.107-0.018
predicted_OBP0.2510.007
predicted_R0.387-0.013
predicted_RBI0.3340.009
predicted_SLG0.355-0.012
predicted_SO0.8670.017
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1410.000
predicted_3B0.0010.000
predicted_AB2.9840.000
predicted_AVG0.2000.001
predicted_BB0.2030.001
predicted_H0.5960.001
predicted_HBP0.0050.000
predicted_HR0.1070.000
predicted_OBP0.2510.000
predicted_R0.3880.002
predicted_RBI0.3350.001
predicted_SLG0.3560.001
predicted_SO0.863-0.004
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 4 (raw=3.00), rates preserved: AVG=0.199 HR/AB=0.036

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB4.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1540.154
3B0.0190.019
BB0.2790.279
H0.822-0.178
HR0.1240.124
RBI0.4120.412
SO1.0110.011
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.154
3B0.000-0.019
AB4.0000.000
BB0.000-0.279
H1.0000.178
HR0.000-0.124
R0.0000.000
RBI0.000-0.412
SO1.000-0.011
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.141
predicted_3B0.000-0.001
predicted_AB4.0001.016
predicted_AVG0.2310.031
predicted_BB0.000-0.203
predicted_H1.0000.404
predicted_HR0.000-0.107
predicted_OBP0.2920.041
predicted_R0.000-0.388
predicted_RBI0.000-0.335
predicted_SLG0.3890.033
predicted_SO1.0000.137
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B2.0002.000
3B0.0000.000
AB4.0000.000
BB1.0001.000
CS0.0000.000
H2.0001.000
HBP0.0000.000
HR0.0000.000
PA5.000-
R1.0001.000
RBI4.0004.000
SB0.0000.000
SF0.0000.000
SO1.0000.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 40
Reference playing time: 3.804
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-12.0002.0001.0000.0000.0002.0001.0002.0004.0000.16670.28570.25000.16670.00000.16670.16670.3333
last_100.2010-24.0004.0002.0000.0000.0002.0003.0002.00010.0000.16670.23080.25000.16670.00000.08330.08330.4167
season0.6040-120.00024.0005.0000.0005.00013.00016.0007.00034.0000.20000.24410.36670.20000.04170.10830.05830.2833
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1660
predicted_3B0.0020
predicted_AB2.9590
predicted_AVG0.1985
predicted_BB0.2430
predicted_H0.5870
predicted_HBP0.0050
predicted_HR0.0800
predicted_OBP0.2605
predicted_R0.3660
predicted_RBI0.3470
predicted_SLG0.3368
predicted_SO0.8920
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.12500.16600.1412model_form_blend
predicted_3B0.00000.00200.0008model_form_blend
predicted_AB3.00002.95902.9838model_form_blend
predicted_AVG0.20000.19850.1994model_form_blend
predicted_BB0.17500.24300.2018model_form_blend
predicted_H0.60000.58700.5949model_form_blend
predicted_HBP-0.00500.0050form_only
predicted_HR0.12500.08000.1073model_form_blend
predicted_OBP0.24400.26050.2505model_form_blend
predicted_R0.40000.36600.3866model_form_blend
predicted_RBI0.32500.34700.3337model_form_blend
predicted_SLG0.36700.33680.3551model_form_blend
predicted_SO0.85000.89200.8666model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date127
Season rows before report date127
Report year2026
Profile rows used40
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA5
AB4
H2
2B2
3B0
HR0
R1
RBI4
BB1
SO1
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB1
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB0
Hitting_battingOrder2
Hitting_substitutionOrder1
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedPH
gameID20260920_WAS@STL
game_typeph
mlbID694673
noteFlied out for Chaparro in the 8th.
playerID694673
playerNameAbimelec Ortiz
pos1B
startedFalse
startingPositionPH
teamWAS
teamID30
game_date2026-09-20
sl_k_percent26.8
sl_bb_percent5.5
sl_woba0.264
sl_xwoba0.277
sl_xba0.214
sl_xslg0.39
sl_sweet_spot_percent38.4
sl_barrel_batted_rate8.1
sl_hard_hit_percent38.4
sl_exit_velocity_avg89.5
sl_launch_angle_avg14.4
sl_whiff_percent24.0
sl_swing_percent50.6
Brady House (691781) · BATTER · 3B · Team WAS
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 329
All-history rows before 20260921: 329
System season_avg: 0.2390
Data season_avg (2026 season-to-date): 0.2452
Diff (system - data): -0.0062
System opponent_avg: 0.2390

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1980.0000.000Hitting_2B0.2100.000-0.2100.000
predicted_3B0.0000.0000.000Hitting_3B0.0000.0000.0000.000
predicted_AB3.5003.0004.000Hitting_AB3.7812.000-0.7811.000
predicted_AVG0.2390.3330.250Hitting_AVG0.2451.0000.088-0.667
predicted_BB0.2791.0000.000Hitting_BB0.3161.0000.6840.000
predicted_CS-0.0000.000BaseRunning_CS0.0000.0000.0000.000
predicted_H0.8371.0001.000Hitting_H0.9272.0000.073-1.000
predicted_HR0.1160.0000.000Hitting_HR0.1340.000-0.1340.000
predicted_OBP0.2950.5000.250Hitting_OBP0.3051.0000.195-0.500
predicted_R0.4531.0000.000Hitting_R0.5051.0000.4950.000
predicted_RBI0.5230.0001.000Hitting_RBI0.5810.000-0.5810.000
predicted_SLG0.3950.3330.250Hitting_SLG0.4071.000-0.073-0.667
predicted_SO1.0000.0001.000Hitting_SO1.0640.000-1.0640.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics11
Boosted Metrics3
Deboosted Metrics8
Better Metrics4
Worse Metrics7
Biggest Boostpredicted_BB: 0.2790 -> 1.0000 (boost 0.7210, better)
Biggest Deboostpredicted_SO: 1.0000 -> 0.0000 (deboost -1.0000, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend60615-predicted_AB: 3.5000 -> 3.4093 (deboost -0.0907, 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.
3team_form_snapshot00000--Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling74334predicted_AB: 3.4093 -> 4.0000 (boost 0.5907, better)predicted_BB: 0.2758 -> 0.0000 (deboost -0.2758, worse)AB rounded to 4 (raw=3.50), rates preserved: AVG=0.222 HR/AB=0.028
6consistency_constraints10101-predicted_R: 0.4403 -> 0.0000 (deboost -0.4403, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine53232predicted_BB: 0.0000 -> 0.2973 (boost 0.2973, better)predicted_RBI: 1.0000 -> 0.4709 (deboost -0.5291, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation52323predicted_RBI: 0.4709 -> 1.0000 (boost 0.5291, better)predicted_BB: 0.2973 -> 0.0000 (deboost -0.2973, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context33030predicted_OBP: 0.2855 -> 0.3010 (boost 0.0155, better)-Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10simulation_box_score_reference52332predicted_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
11current_json_final30303-predicted_OBP: 0.3010 -> 0.2855 (deboost -0.0155, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "691781",
  "player_name": "Brady House",
  "position": "3B",
  "team": "WAS",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.198,
        "predicted_3B": 0.0,
        "predicted_AB": 3.5,
        "predicted_AVG": 0.239,
        "predicted_BB": 0.279,
        "predicted_H": 0.837,
        "predicted_HR": 0.116,
        "predicted_OBP": 0.295,
        "predicted_R": 0.453,
        "predicted_RBI": 0.523,
        "predicted_SLG": 0.395,
        "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.2257,
        "predicted_3B": 0.0004,
        "predicted_AB": 3.4093,
        "predicted_AVG": 0.2267,
        "predicted_BB": 0.2747,
        "predicted_H": 0.7744,
        "predicted_HBP": 0.02,
        "predicted_HR": 0.0964,
        "predicted_OBP": 0.2854,
        "predicted_R": 0.4385,
        "predicted_RBI": 0.5021,
        "predicted_SLG": 0.3777,
        "predicted_SO": 0.9281
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.198,
          "after": 0.2257,
          "delta": 0.0277,
          "percent_delta": 0.1399,
          "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.5,
          "after": 3.4093,
          "delta": -0.0907,
          "percent_delta": -0.0259,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.239,
          "after": 0.2267,
          "delta": -0.0123,
          "percent_delta": -0.0515,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.279,
          "after": 0.2747,
          "delta": -0.0043,
          "percent_delta": -0.0154,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.837,
          "after": 0.7744,
          "delta": -0.0626,
          "percent_delta": -0.0748,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.116,
          "after": 0.0964,
          "delta": -0.0196,
          "percent_delta": -0.169,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.295,
          "after": 0.2854,
          "delta": -0.0096,
          "percent_delta": -0.0325,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.453,
          "after": 0.4385,
          "delta": -0.0145,
          "percent_delta": -0.032,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.523,
          "after": 0.5021,
          "delta": -0.0209,
          "percent_delta": -0.04,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.395,
          "after": 0.3777,
          "delta": -0.0173,
          "percent_delta": -0.0438,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.9281,
          "delta": -0.0719,
          "percent_delta": -0.0719,
          "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_AB",
          "before": 3.5,
          "after": 3.4093,
          "delta": -0.0907,
          "percent_delta": -0.0259,
          "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": 86
      }
    },
    {
      "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.2257,
        "predicted_3B": 0.0004,
        "predicted_AB": 3.4093,
        "predicted_AVG": 0.2277,
        "predicted_BB": 0.2758,
        "predicted_H": 0.7763,
        "predicted_HBP": 0.02,
        "predicted_HR": 0.0966,
        "predicted_OBP": 0.2855,
        "predicted_R": 0.4403,
        "predicted_RBI": 0.5042,
        "predicted_SLG": 0.3791,
        "predicted_SO": 0.9243
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.2257,
          "after": 0.2257,
          "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.4093,
          "after": 3.4093,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2267,
          "after": 0.2277,
          "delta": 0.001,
          "percent_delta": 0.0044,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.2747,
          "after": 0.2758,
          "delta": 0.0011,
          "percent_delta": 0.004,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.7744,
          "after": 0.7763,
          "delta": 0.0019,
          "percent_delta": 0.0025,
          "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.0964,
          "after": 0.0966,
          "delta": 0.0002,
          "percent_delta": 0.0021,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2854,
          "after": 0.2855,
          "delta": 0.0001,
          "percent_delta": 0.0004,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.4385,
          "after": 0.4403,
          "delta": 0.0018,
          "percent_delta": 0.0041,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5021,
          "after": 0.5042,
          "delta": 0.0021,
          "percent_delta": 0.0042,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3777,
          "after": 0.3791,
          "delta": 0.0014,
          "percent_delta": 0.0037,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.9281,
          "after": 0.9243,
          "delta": -0.0038,
          "percent_delta": -0.0041,
          "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.50), rates preserved: AVG=0.222 HR/AB=0.028",
      "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.2257,
          "after": 0.0,
          "delta": -0.2257,
          "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.4093,
          "after": 4.0,
          "delta": 0.5907,
          "percent_delta": 0.1733,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.2758,
          "after": 0.0,
          "delta": -0.2758,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.7763,
          "after": 1.0,
          "delta": 0.2237,
          "percent_delta": 0.2882,
          "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.0966,
          "after": 0.0,
          "delta": -0.0966,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5042,
          "after": 1.0,
          "delta": 0.4958,
          "percent_delta": 0.9833,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.9243,
          "after": 1.0,
          "delta": 0.0757,
          "percent_delta": 0.0819,
          "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.4093,
          "after": 4.0,
          "delta": 0.5907,
          "percent_delta": 0.1733,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.2758,
          "after": 0.0,
          "delta": -0.2758,
          "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.4403,
          "after": 0.0,
          "delta": -0.4403,
          "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.4403,
          "after": 0.0,
          "delta": -0.4403,
          "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.1628,
        "predicted_3B": 0.0153,
        "predicted_BB": 0.2973,
        "predicted_H": 0.8314,
        "predicted_HR": 0.1113,
        "predicted_RBI": 0.4709,
        "predicted_SO": 1.0017
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1628,
          "delta": 0.1628,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0153,
          "delta": 0.0153,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.2973,
          "delta": 0.2973,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8314,
          "delta": -0.1686,
          "percent_delta": -0.1686,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1113,
          "delta": 0.1113,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.4709,
          "delta": -0.5291,
          "percent_delta": -0.5291,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 1.0017,
          "delta": 0.0017,
          "percent_delta": 0.0017,
          "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.2973,
          "delta": 0.2973,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.4709,
          "delta": -0.5291,
          "percent_delta": -0.5291,
          "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.1628,
          "after": 0.0,
          "delta": -0.1628,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0153,
          "after": 0.0,
          "delta": -0.0153,
          "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.2973,
          "after": 0.0,
          "delta": -0.2973,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8314,
          "after": 1.0,
          "delta": 0.1686,
          "percent_delta": 0.2028,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1113,
          "after": 0.0,
          "delta": -0.1113,
          "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.4709,
          "after": 1.0,
          "delta": 0.5291,
          "percent_delta": 1.1236,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0017,
          "after": 1.0,
          "delta": -0.0017,
          "percent_delta": -0.0017,
          "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_RBI",
          "before": 0.4709,
          "after": 1.0,
          "delta": 0.5291,
          "percent_delta": 1.1236,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.2973,
          "after": 0.0,
          "delta": -0.2973,
          "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.236,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.301,
        "predicted_R": 0.0,
        "predicted_RBI": 1.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": 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.2277,
          "after": 0.236,
          "delta": 0.0083,
          "percent_delta": 0.0365,
          "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.2855,
          "after": 0.301,
          "delta": 0.0155,
          "percent_delta": 0.0543,
          "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.3791,
          "after": 0.385,
          "delta": 0.0059,
          "percent_delta": 0.0156,
          "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.2855,
          "after": 0.301,
          "delta": 0.0155,
          "percent_delta": 0.0543,
          "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": 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": 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_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.2277,
        "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.2855,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.3791,
        "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.236,
          "after": 0.2277,
          "delta": -0.0083,
          "percent_delta": -0.0352,
          "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.301,
          "after": 0.2855,
          "delta": -0.0155,
          "percent_delta": -0.0515,
          "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.385,
          "after": 0.3791,
          "delta": -0.0059,
          "percent_delta": -0.0152,
          "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_OBP",
          "before": 0.301,
          "after": 0.2855,
          "delta": -0.0155,
          "percent_delta": -0.0515,
          "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.198,
        "after": 0.0,
        "delta": -0.198,
        "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.5,
        "after": 3.0,
        "delta": -0.5,
        "percent_delta": -0.1429,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.239,
        "after": 0.2277,
        "delta": -0.0113,
        "percent_delta": -0.0473,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.279,
        "after": 1.0,
        "delta": 0.721,
        "percent_delta": 2.5842,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.837,
        "after": 1.0,
        "delta": 0.163,
        "percent_delta": 0.1947,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.116,
        "after": 0.0,
        "delta": -0.116,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.295,
        "after": 0.2855,
        "delta": -0.0095,
        "percent_delta": -0.0322,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.453,
        "after": 1.0,
        "delta": 0.547,
        "percent_delta": 1.2075,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.523,
        "after": 0.0,
        "delta": -0.523,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.395,
        "after": 0.3791,
        "delta": -0.0159,
        "percent_delta": -0.0403,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "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": 11,
      "boosted_metrics": 3,
      "deboosted_metrics": 8,
      "better_metrics": 4,
      "worse_metrics": 7,
      "biggest_boost": {
        "metric": "predicted_BB",
        "before": 0.279,
        "after": 1.0,
        "delta": 0.721,
        "percent_delta": 2.5842,
        "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
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.198-
predicted_3B0.000-
predicted_AB3.500-
predicted_AVG0.239-
predicted_BB0.279-
predicted_H0.837-
predicted_HR0.116-
predicted_OBP0.295-
predicted_R0.453-
predicted_RBI0.523-
predicted_SLG0.395-
predicted_SO1.000-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.2260.028
predicted_3B0.0000.000
predicted_AB3.409-0.091
predicted_AVG0.227-0.012
predicted_BB0.275-0.004
predicted_H0.774-0.063
predicted_HBP0.020-
predicted_HR0.096-0.020
predicted_OBP0.285-0.010
predicted_R0.439-0.015
predicted_RBI0.502-0.021
predicted_SLG0.378-0.017
predicted_SO0.928-0.072
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.2260.000
predicted_3B0.0000.000
predicted_AB3.4090.000
predicted_AVG0.2280.001
predicted_BB0.2760.001
predicted_H0.7760.002
predicted_HBP0.0200.000
predicted_HR0.0970.000
predicted_OBP0.2850.000
predicted_R0.4400.002
predicted_RBI0.5040.002
predicted_SLG0.3790.001
predicted_SO0.924-0.004
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 4 (raw=3.50), rates preserved: AVG=0.222 HR/AB=0.028

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB4.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI1.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI1.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1630.163
3B0.0150.015
BB0.2970.297
H0.831-0.169
HR0.1110.111
RBI0.471-0.529
SO1.0020.002
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.163
3B0.000-0.015
AB4.0000.000
BB0.000-0.297
H1.0000.169
HR0.000-0.111
R0.0000.000
RBI1.0000.529
SO1.000-0.002
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.226
predicted_3B0.000-0.000
predicted_AB4.0000.591
predicted_AVG0.2360.008
predicted_BB0.000-0.276
predicted_H1.0000.224
predicted_HR0.000-0.097
predicted_OBP0.3010.016
predicted_R0.000-0.440
predicted_RBI1.0000.496
predicted_SLG0.3850.006
predicted_SO1.0000.076
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.000-1.000
BB1.0001.000
CS0.0000.000
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R1.0001.000
RBI0.000-1.000
SB0.0000.000
SF0.0000.000
SO0.000-1.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 86
Reference playing time: 3.804
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-14.0002.0002.0000.0000.0002.0002.0001.0003.0000.14290.20000.28570.14290.00000.14290.07140.2143
last_100.2010-29.0005.0003.0000.0000.0004.0003.0003.0006.0000.17240.25000.27590.17240.00000.13790.10350.2069
season0.6086-301.00072.00017.0000.00010.00045.00039.00024.00086.0000.23920.29910.39530.23920.03320.14950.07970.2857
Weighted Prediction From Real Data
MetricValue
predicted_2B0.2630
predicted_3B0.0010
predicted_AB3.2870
predicted_AVG0.2101
predicted_BB0.2690
predicted_H0.6900
predicted_HBP0.0200
predicted_HR0.0700
predicted_OBP0.2725
predicted_R0.4190
predicted_RBI0.4740
predicted_SLG0.3544
predicted_SO0.8310
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.19800.26300.2257model_form_blend
predicted_3B0.00000.00100.0004model_form_blend
predicted_AB3.50003.28703.4093model_form_blend
predicted_AVG0.23900.21010.2267model_form_blend
predicted_BB0.27900.26900.2747model_form_blend
predicted_H0.83700.69000.7744model_form_blend
predicted_HBP-0.02000.0200form_only
predicted_HR0.11600.07000.0964model_form_blend
predicted_OBP0.29500.27250.2854model_form_blend
predicted_R0.45300.41900.4385model_form_blend
predicted_RBI0.52300.47400.5021model_form_blend
predicted_SLG0.39500.35440.3777model_form_blend
predicted_SO1.00000.83100.9281model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date329
Season rows before report date329
Report year2026
Profile rows used86
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA4
AB3
H1
2B0
3B0
HR0
R1
RBI0
BB1
SO0
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB2
Hitting_AVG1.0
Hitting_BB1
Hitting_GIDP0
Hitting_H2
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R1
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB2
Hitting_battingOrder3
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayed3B
gameID20260920_WAS@STL
game_typefull
mlbID691781
playerID691781
playerNameBrady House
pos3B
startedTrue
startingPosition3B
teamWAS
teamID30
game_date2026-09-20
sl_k_percent25.8
sl_bb_percent7.8
sl_woba0.307
sl_xwoba0.336
sl_xba0.268
sl_xslg0.443
sl_sweet_spot_percent30.7
sl_barrel_batted_rate10.1
sl_hard_hit_percent48.2
sl_exit_velocity_avg90.0
sl_launch_angle_avg9.5
sl_whiff_percent29.8
sl_swing_percent51.2
Keibert Ruiz (660688) · BATTER · SS · Team WAS
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 340
All-history rows before 20260921: 340
System season_avg: 0.2860
Data season_avg (2026 season-to-date): 0.2909
Diff (system - data): -0.0049
System opponent_avg: 0.2860

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.2500.0001.000Hitting_2B0.2650.000-0.2650.000
predicted_3B0.0000.0000.000Hitting_3B0.0000.0000.0000.000
predicted_AB3.3124.0004.000Hitting_AB3.4681.0000.5323.000
predicted_AVG0.2860.0000.250Hitting_AVG0.2910.000-0.2910.000
predicted_BB0.1670.0000.000Hitting_BB0.1880.000-0.1880.000
predicted_CS-0.0000.000BaseRunning_CS0.0120.000-0.0120.000
predicted_H0.9480.0001.000Hitting_H1.0090.000-1.0090.000
predicted_HR0.1040.0000.000Hitting_HR0.1240.000-0.1240.000
predicted_OBP0.3200.0000.250Hitting_OBP0.3310.000-0.3310.000
predicted_R0.4580.0000.000Hitting_R0.5090.000-0.5090.000
predicted_RBI0.4900.0001.000Hitting_RBI0.5260.000-0.5260.000
predicted_SLG0.4560.0000.500Hitting_SLG0.4740.000-0.4740.000
predicted_SO0.3751.0000.000Hitting_SO0.4180.0000.5821.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics10
Boosted Metrics4
Deboosted Metrics6
Better Metrics3
Worse Metrics7
Biggest Boostpredicted_AB: 3.3120 -> 4.0000 (boost 0.6880, better)
Biggest Deboostpredicted_H: 0.9480 -> 0.0000 (deboost -0.9480, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend33030predicted_SLG: 0.4560 -> 0.4644 (boost 0.0084, 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.
3team_form_snapshot00000--Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling71625predicted_AB: 3.3508 -> 4.0000 (boost 0.6492, better)predicted_RBI: 0.4470 -> 0.0000 (deboost -0.4470, worse)AB rounded to 4 (raw=3.35), rates preserved: AVG=0.293 HR/AB=0.033
6consistency_constraints10101-predicted_R: 0.4445 -> 0.0000 (deboost -0.4445, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine65142predicted_SO: 0.0000 -> 0.4799 (boost 0.4799, worse)predicted_H: 1.0000 -> 0.9041 (deboost -0.0959, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation63342predicted_2B: 0.1827 -> 1.0000 (boost 0.8173, better)predicted_SO: 0.4799 -> 0.0000 (deboost -0.4799, better)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context50505-predicted_2B: 1.0000 -> 0.0000 (deboost -1.0000, worse)Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10simulation_box_score_reference21102predicted_SO: 0.0000 -> 1.0000 (boost 1.0000, worse)predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse)Attached simulation box score without overwriting model prediction
11current_json_final33030predicted_SLG: 0.4090 -> 0.4652 (boost 0.0562, better)-Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "660688",
  "player_name": "Keibert Ruiz",
  "position": "SS",
  "team": "WAS",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.25,
        "predicted_3B": 0.0,
        "predicted_AB": 3.312,
        "predicted_AVG": 0.286,
        "predicted_BB": 0.167,
        "predicted_H": 0.948,
        "predicted_HR": 0.104,
        "predicted_OBP": 0.32,
        "predicted_R": 0.458,
        "predicted_RBI": 0.49,
        "predicted_SLG": 0.456,
        "predicted_SO": 0.375
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.2402,
        "predicted_3B": 0.0004,
        "predicted_AB": 3.3508,
        "predicted_AVG": 0.2921,
        "predicted_BB": 0.1444,
        "predicted_H": 0.9795,
        "predicted_HBP": 0.074,
        "predicted_HR": 0.1117,
        "predicted_OBP": 0.3267,
        "predicted_R": 0.4427,
        "predicted_RBI": 0.4452,
        "predicted_SLG": 0.4644,
        "predicted_SO": 0.3562
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.25,
          "after": 0.2402,
          "delta": -0.0098,
          "percent_delta": -0.0392,
          "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.312,
          "after": 3.3508,
          "delta": 0.0388,
          "percent_delta": 0.0117,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.286,
          "after": 0.2921,
          "delta": 0.0061,
          "percent_delta": 0.0213,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.167,
          "after": 0.1444,
          "delta": -0.0226,
          "percent_delta": -0.1353,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.948,
          "after": 0.9795,
          "delta": 0.0315,
          "percent_delta": 0.0332,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.104,
          "after": 0.1117,
          "delta": 0.0077,
          "percent_delta": 0.074,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.32,
          "after": 0.3267,
          "delta": 0.0067,
          "percent_delta": 0.0209,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.458,
          "after": 0.4427,
          "delta": -0.0153,
          "percent_delta": -0.0334,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.49,
          "after": 0.4452,
          "delta": -0.0448,
          "percent_delta": -0.0914,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.456,
          "after": 0.4644,
          "delta": 0.0084,
          "percent_delta": 0.0184,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.375,
          "after": 0.3562,
          "delta": -0.0188,
          "percent_delta": -0.0501,
          "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.456,
          "after": 0.4644,
          "delta": 0.0084,
          "percent_delta": 0.0184,
          "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": 96
      }
    },
    {
      "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.2402,
        "predicted_3B": 0.0004,
        "predicted_AB": 3.3508,
        "predicted_AVG": 0.293,
        "predicted_BB": 0.145,
        "predicted_H": 0.9819,
        "predicted_HBP": 0.074,
        "predicted_HR": 0.112,
        "predicted_OBP": 0.3223,
        "predicted_R": 0.4445,
        "predicted_RBI": 0.447,
        "predicted_SLG": 0.4652,
        "predicted_SO": 0.3547
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.2402,
          "after": 0.2402,
          "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.3508,
          "after": 3.3508,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2921,
          "after": 0.293,
          "delta": 0.0009,
          "percent_delta": 0.0031,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.1444,
          "after": 0.145,
          "delta": 0.0006,
          "percent_delta": 0.0042,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.9795,
          "after": 0.9819,
          "delta": 0.0024,
          "percent_delta": 0.0025,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HBP",
          "before": 0.074,
          "after": 0.074,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.1117,
          "after": 0.112,
          "delta": 0.0003,
          "percent_delta": 0.0027,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3267,
          "after": 0.3223,
          "delta": -0.0044,
          "percent_delta": -0.0135,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.4427,
          "after": 0.4445,
          "delta": 0.0018,
          "percent_delta": 0.0041,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4452,
          "after": 0.447,
          "delta": 0.0018,
          "percent_delta": 0.004,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4644,
          "after": 0.4652,
          "delta": 0.0008,
          "percent_delta": 0.0017,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.3562,
          "after": 0.3547,
          "delta": -0.0015,
          "percent_delta": -0.0042,
          "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.35), rates preserved: AVG=0.293 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": 0.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.2402,
          "after": 0.0,
          "delta": -0.2402,
          "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.3508,
          "after": 4.0,
          "delta": 0.6492,
          "percent_delta": 0.1937,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.145,
          "after": 0.0,
          "delta": -0.145,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.9819,
          "after": 1.0,
          "delta": 0.0181,
          "percent_delta": 0.0184,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HBP",
          "before": 0.074,
          "after": 0.0,
          "delta": -0.074,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.112,
          "after": 0.0,
          "delta": -0.112,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.447,
          "after": 0.0,
          "delta": -0.447,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.3547,
          "after": 0.0,
          "delta": -0.3547,
          "percent_delta": -1.0,
          "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.3508,
          "after": 4.0,
          "delta": 0.6492,
          "percent_delta": 0.1937,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.447,
          "after": 0.0,
          "delta": -0.447,
          "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.4445,
          "after": 0.0,
          "delta": -0.4445,
          "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.4445,
          "after": 0.0,
          "delta": -0.4445,
          "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.1827,
        "predicted_3B": 0.0153,
        "predicted_BB": 0.2254,
        "predicted_H": 0.9041,
        "predicted_HR": 0.1102,
        "predicted_RBI": 0.4788,
        "predicted_SO": 0.4799
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1827,
          "delta": 0.1827,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0153,
          "delta": 0.0153,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.2254,
          "delta": 0.2254,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.9041,
          "delta": -0.0959,
          "percent_delta": -0.0959,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1102,
          "delta": 0.1102,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.4788,
          "delta": 0.4788,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.0,
          "after": 0.4799,
          "delta": 0.4799,
          "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.4799,
          "delta": 0.4799,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.9041,
          "delta": -0.0959,
          "percent_delta": -0.0959,
          "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": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SO": 0.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1827,
          "after": 1.0,
          "delta": 0.8173,
          "percent_delta": 4.4735,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0153,
          "after": 0.0,
          "delta": -0.0153,
          "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.2254,
          "after": 0.0,
          "delta": -0.2254,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.9041,
          "after": 1.0,
          "delta": 0.0959,
          "percent_delta": 0.1061,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1102,
          "after": 0.0,
          "delta": -0.1102,
          "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.4788,
          "after": 1.0,
          "delta": 0.5212,
          "percent_delta": 1.0886,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.4799,
          "after": 0.0,
          "delta": -0.4799,
          "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.1827,
          "after": 1.0,
          "delta": 0.8173,
          "percent_delta": 4.4735,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 0.4799,
          "after": 0.0,
          "delta": -0.4799,
          "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.255,
        "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.409,
        "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.293,
          "after": 0.255,
          "delta": -0.038,
          "percent_delta": -0.1297,
          "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.3223,
          "after": 0.305,
          "delta": -0.0173,
          "percent_delta": -0.0537,
          "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": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4652,
          "after": 0.409,
          "delta": -0.0562,
          "percent_delta": -0.1208,
          "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": 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": 0.0,
          "after": 1.0,
          "delta": 1.0,
          "percent_delta": null,
          "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": 0.0,
          "after": 1.0,
          "delta": 1.0,
          "percent_delta": null,
          "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": 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.293,
        "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.3223,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.4652,
        "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.255,
          "after": 0.293,
          "delta": 0.038,
          "percent_delta": 0.1491,
          "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.305,
          "after": 0.3223,
          "delta": 0.0173,
          "percent_delta": 0.0569,
          "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.409,
          "after": 0.4652,
          "delta": 0.0562,
          "percent_delta": 0.1374,
          "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.409,
          "after": 0.4652,
          "delta": 0.0562,
          "percent_delta": 0.1374,
          "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.25,
        "after": 0.0,
        "delta": -0.25,
        "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.312,
        "after": 4.0,
        "delta": 0.688,
        "percent_delta": 0.2077,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.286,
        "after": 0.293,
        "delta": 0.007,
        "percent_delta": 0.0245,
        "direction": "boost",
        "projection_effect": "better",
        "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.948,
        "after": 0.0,
        "delta": -0.948,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.104,
        "after": 0.0,
        "delta": -0.104,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.32,
        "after": 0.3223,
        "delta": 0.0023,
        "percent_delta": 0.0072,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_R",
        "before": 0.458,
        "after": 0.0,
        "delta": -0.458,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "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_SLG",
        "before": 0.456,
        "after": 0.4652,
        "delta": 0.0092,
        "percent_delta": 0.0202,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.375,
        "after": 1.0,
        "delta": 0.625,
        "percent_delta": 1.6667,
        "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_AB",
        "before": 3.312,
        "after": 4.0,
        "delta": 0.688,
        "percent_delta": 0.2077,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_H",
        "before": 0.948,
        "after": 0.0,
        "delta": -0.948,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.250-
predicted_3B0.000-
predicted_AB3.312-
predicted_AVG0.286-
predicted_BB0.167-
predicted_H0.948-
predicted_HR0.104-
predicted_OBP0.320-
predicted_R0.458-
predicted_RBI0.490-
predicted_SLG0.456-
predicted_SO0.375-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.240-0.010
predicted_3B0.0000.000
predicted_AB3.3510.039
predicted_AVG0.2920.006
predicted_BB0.144-0.023
predicted_H0.9800.032
predicted_HBP0.074-
predicted_HR0.1120.008
predicted_OBP0.3270.007
predicted_R0.443-0.015
predicted_RBI0.445-0.045
predicted_SLG0.4640.008
predicted_SO0.356-0.019
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.2400.000
predicted_3B0.0000.000
predicted_AB3.3510.000
predicted_AVG0.2930.001
predicted_BB0.1450.001
predicted_H0.9820.002
predicted_HBP0.0740.000
predicted_HR0.1120.000
predicted_OBP0.322-0.004
predicted_R0.4450.002
predicted_RBI0.4470.002
predicted_SLG0.4650.001
predicted_SO0.355-0.002
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 4 (raw=3.35), rates preserved: AVG=0.293 HR/AB=0.033

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB4.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO0.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO0.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1830.183
3B0.0150.015
BB0.2250.225
H0.904-0.096
HR0.1100.110
RBI0.4790.479
SO0.4800.480
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B1.0000.817
3B0.000-0.015
AB4.0000.000
BB0.000-0.225
H1.0000.096
HR0.000-0.110
R0.0000.000
RBI1.0000.521
SO0.000-0.480
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.240
predicted_3B0.000-0.000
predicted_AB4.0000.649
predicted_AVG0.255-0.038
predicted_BB0.000-0.145
predicted_H1.0000.018
predicted_HR0.000-0.112
predicted_OBP0.305-0.017
predicted_R0.000-0.445
predicted_RBI0.000-0.447
predicted_SLG0.409-0.056
predicted_SO0.000-0.355
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.000-1.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.0000.000
H0.000-1.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R0.0000.000
RBI0.000-1.000
SB0.0000.000
SF0.0000.000
SO1.0001.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 96
Reference playing time: 3.804
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-18.0006.0001.0000.0001.0001.0002.0000.0000.0000.33330.36840.55560.33330.05560.05560.00000.0000
last_100.2010-33.00011.0002.0000.0001.0002.0003.0000.0003.0000.33330.35290.48480.33330.03030.06060.00000.0909
season0.6096-318.00091.00024.0000.00010.00047.00044.00016.00036.0000.28620.32350.45600.28620.03140.14780.05030.1132
Weighted Prediction From Real Data
MetricValue
predicted_2B0.2270
predicted_3B0.0010
predicted_AB3.4030
predicted_AVG0.3004
predicted_BB0.1140
predicted_H1.0220
predicted_HBP0.0740
predicted_HR0.1220
predicted_OBP0.3357
predicted_R0.4220
predicted_RBI0.3850
predicted_SLG0.4757
predicted_SO0.3310
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.25000.22700.2402model_form_blend
predicted_3B0.00000.00100.0004model_form_blend
predicted_AB3.31203.40303.3508model_form_blend
predicted_AVG0.28600.30040.2921model_form_blend
predicted_BB0.16700.11400.1444model_form_blend
predicted_H0.94801.02200.9795model_form_blend
predicted_HBP-0.07400.0740form_only
predicted_HR0.10400.12200.1117model_form_blend
predicted_OBP0.32000.33570.3267model_form_blend
predicted_R0.45800.42200.4427model_form_blend
predicted_RBI0.49000.38500.4452model_form_blend
predicted_SLG0.45600.47570.4644model_form_blend
predicted_SO0.37500.33100.3562model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date340
Season rows before report date340
Report year2026
Profile rows used96
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA4
AB4
H0
2B0
3B0
HR0
R0
RBI0
BB0
SO1
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB1
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB0
Hitting_battingOrder7
Hitting_substitutionOrder1
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedPH
gameID20260920_WAS@STL
game_typeph
mlbID660688
noteGrounded out for Ford, H in the 9th.
playerID660688
playerNameKeibert Ruiz
posC
startedFalse
startingPositionPH
teamWAS
teamID30
game_date2026-09-20
sl_k_percent10.6
sl_bb_percent4.7
sl_woba0.337
sl_xwoba0.289
sl_xba0.246
sl_xslg0.374
sl_sweet_spot_percent33.3
sl_barrel_batted_rate4.9
sl_hard_hit_percent36.5
sl_exit_velocity_avg88.0
sl_launch_angle_avg16.7
sl_whiff_percent14.2
sl_swing_percent52.5
Dylan Crews (686611) · BATTER · LF · Team WAS
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 405
All-history rows before 20260921: 405
System season_avg: 0.2240
Data season_avg (2026 season-to-date): 0.2259
Diff (system - data): -0.0019
System opponent_avg: 0.2240

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1900.0000.000Hitting_2B0.2020.000-0.2020.000
predicted_3B0.0100.0000.000Hitting_3B0.0100.000-0.0100.000
predicted_AB3.7904.0004.000Hitting_AB3.9144.0000.0860.000
predicted_AVG0.2240.0000.250Hitting_AVG0.2260.000-0.2260.000
predicted_BB0.2700.0000.000Hitting_BB0.2990.000-0.2990.000
predicted_CS-0.0000.000BaseRunning_CS0.0000.0000.0000.000
predicted_H0.8500.0001.000Hitting_H0.8840.000-0.8840.000
predicted_HR0.1200.0000.000Hitting_HR0.1160.000-0.1160.000
predicted_OBP0.2760.0000.250Hitting_OBP0.2970.000-0.2970.000
predicted_R0.5000.0001.000Hitting_R0.5260.000-0.5260.000
predicted_RBI0.4300.0000.000Hitting_RBI0.4370.000-0.4370.000
predicted_SLG0.3750.0000.250Hitting_SLG0.3720.000-0.3720.000
predicted_SO1.0102.0001.000Hitting_SO1.0370.0000.9632.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics10
Boosted Metrics4
Deboosted Metrics6
Better Metrics3
Worse Metrics7
Biggest Boostpredicted_SO: 1.0100 -> 2.0000 (boost 0.9900, worse)
Biggest Deboostpredicted_H: 0.8500 -> 0.0000 (deboost -0.8500, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend44040predicted_RBI: 0.4300 -> 0.4842 (boost 0.0542, 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.
3team_form_snapshot00000--Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling62424predicted_AB: 3.7758 -> 4.0000 (boost 0.2242, better)predicted_RBI: 0.4862 -> 0.0000 (deboost -0.4862, worse)AB rounded to 4 (raw=3.79), rates preserved: AVG=0.234 HR/AB=0.035
6consistency_constraints10101-predicted_R: 0.4856 -> 0.0000 (deboost -0.4856, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine54141predicted_RBI: 0.0000 -> 0.4187 (boost 0.4187, better)predicted_H: 1.0000 -> 0.8531 (deboost -0.1469, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation62424predicted_R: 0.0000 -> 1.0000 (boost 1.0000, better)predicted_RBI: 0.4187 -> 0.0000 (deboost -0.4187, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context31212predicted_OBP: 0.2798 -> 0.2910 (boost 0.0112, better)predicted_R: 1.0000 -> 0.0000 (deboost -1.0000, worse)Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10simulation_box_score_reference21102predicted_SO: 1.0000 -> 2.0000 (boost 1.0000, worse)predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse)Attached simulation box score without overwriting model prediction
11current_json_final32121predicted_SLG: 0.3780 -> 0.3920 (boost 0.0140, better)predicted_OBP: 0.2910 -> 0.2798 (deboost -0.0112, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "686611",
  "player_name": "Dylan Crews",
  "position": "LF",
  "team": "WAS",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.19,
        "predicted_3B": 0.01,
        "predicted_AB": 3.79,
        "predicted_AVG": 0.224,
        "predicted_BB": 0.27,
        "predicted_H": 0.85,
        "predicted_HR": 0.12,
        "predicted_OBP": 0.276,
        "predicted_R": 0.5,
        "predicted_RBI": 0.43,
        "predicted_SLG": 0.375,
        "predicted_SO": 1.01
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.1745,
        "predicted_3B": 0.0087,
        "predicted_AB": 3.7758,
        "predicted_AVG": 0.2344,
        "predicted_BB": 0.2339,
        "predicted_H": 0.8853,
        "predicted_HBP": 0.047,
        "predicted_HR": 0.1333,
        "predicted_OBP": 0.2821,
        "predicted_R": 0.4836,
        "predicted_RBI": 0.4842,
        "predicted_SLG": 0.3915,
        "predicted_SO": 0.9635
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.19,
          "after": 0.1745,
          "delta": -0.0155,
          "percent_delta": -0.0816,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.01,
          "after": 0.0087,
          "delta": -0.0013,
          "percent_delta": -0.13,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 3.79,
          "after": 3.7758,
          "delta": -0.0142,
          "percent_delta": -0.0037,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.224,
          "after": 0.2344,
          "delta": 0.0104,
          "percent_delta": 0.0464,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.27,
          "after": 0.2339,
          "delta": -0.0361,
          "percent_delta": -0.1337,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.85,
          "after": 0.8853,
          "delta": 0.0353,
          "percent_delta": 0.0415,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.12,
          "after": 0.1333,
          "delta": 0.0133,
          "percent_delta": 0.1108,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.276,
          "after": 0.2821,
          "delta": 0.0061,
          "percent_delta": 0.0221,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.5,
          "after": 0.4836,
          "delta": -0.0164,
          "percent_delta": -0.0328,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.43,
          "after": 0.4842,
          "delta": 0.0542,
          "percent_delta": 0.126,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.375,
          "after": 0.3915,
          "delta": 0.0165,
          "percent_delta": 0.044,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.01,
          "after": 0.9635,
          "delta": -0.0465,
          "percent_delta": -0.046,
          "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_RBI",
          "before": 0.43,
          "after": 0.4842,
          "delta": 0.0542,
          "percent_delta": 0.126,
          "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": 100
      }
    },
    {
      "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.1745,
        "predicted_3B": 0.0087,
        "predicted_AB": 3.7758,
        "predicted_AVG": 0.235,
        "predicted_BB": 0.2349,
        "predicted_H": 0.8874,
        "predicted_HBP": 0.047,
        "predicted_HR": 0.1336,
        "predicted_OBP": 0.2798,
        "predicted_R": 0.4856,
        "predicted_RBI": 0.4862,
        "predicted_SLG": 0.392,
        "predicted_SO": 0.9595
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1745,
          "after": 0.1745,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.0087,
          "after": 0.0087,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 3.7758,
          "after": 3.7758,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2344,
          "after": 0.235,
          "delta": 0.0006,
          "percent_delta": 0.0026,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.2339,
          "after": 0.2349,
          "delta": 0.001,
          "percent_delta": 0.0043,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.8853,
          "after": 0.8874,
          "delta": 0.0021,
          "percent_delta": 0.0024,
          "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.1333,
          "after": 0.1336,
          "delta": 0.0003,
          "percent_delta": 0.0023,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2821,
          "after": 0.2798,
          "delta": -0.0023,
          "percent_delta": -0.0082,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.4836,
          "after": 0.4856,
          "delta": 0.002,
          "percent_delta": 0.0041,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4842,
          "after": 0.4862,
          "delta": 0.002,
          "percent_delta": 0.0041,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3915,
          "after": 0.392,
          "delta": 0.0005,
          "percent_delta": 0.0013,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.9635,
          "after": 0.9595,
          "delta": -0.004,
          "percent_delta": -0.0042,
          "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.79), rates preserved: AVG=0.234 HR/AB=0.035",
      "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.1745,
          "after": 0.0,
          "delta": -0.1745,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0087,
          "after": 0.0,
          "delta": -0.0087,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 3.7758,
          "after": 4.0,
          "delta": 0.2242,
          "percent_delta": 0.0594,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.2349,
          "after": 0.0,
          "delta": -0.2349,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8874,
          "after": 1.0,
          "delta": 0.1126,
          "percent_delta": 0.1269,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "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.1336,
          "after": 0.0,
          "delta": -0.1336,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4862,
          "after": 0.0,
          "delta": -0.4862,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.9595,
          "after": 1.0,
          "delta": 0.0405,
          "percent_delta": 0.0422,
          "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": 3.7758,
          "after": 4.0,
          "delta": 0.2242,
          "percent_delta": 0.0594,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.4862,
          "after": 0.0,
          "delta": -0.4862,
          "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.4856,
          "after": 0.0,
          "delta": -0.4856,
          "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.4856,
          "after": 0.0,
          "delta": -0.4856,
          "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.1663,
        "predicted_3B": 0.0198,
        "predicted_BB": 0.2865,
        "predicted_H": 0.8531,
        "predicted_HR": 0.1139,
        "predicted_RBI": 0.4187,
        "predicted_SO": 0.9965
      },
      "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.0198,
          "delta": 0.0198,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.2865,
          "delta": 0.2865,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8531,
          "delta": -0.1469,
          "percent_delta": -0.1469,
          "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.4187,
          "delta": 0.4187,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.9965,
          "delta": -0.0035,
          "percent_delta": -0.0035,
          "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.4187,
          "delta": 0.4187,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8531,
          "delta": -0.1469,
          "percent_delta": -0.1469,
          "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.1663,
          "after": 0.0,
          "delta": -0.1663,
          "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.2865,
          "after": 0.0,
          "delta": -0.2865,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8531,
          "after": 1.0,
          "delta": 0.1469,
          "percent_delta": 0.1722,
          "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": 0.0,
          "after": 1.0,
          "delta": 1.0,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4187,
          "after": 0.0,
          "delta": -0.4187,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.9965,
          "after": 1.0,
          "delta": 0.0035,
          "percent_delta": 0.0035,
          "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_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.4187,
          "after": 0.0,
          "delta": -0.4187,
          "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.23,
        "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.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.235,
          "after": 0.23,
          "delta": -0.005,
          "percent_delta": -0.0213,
          "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.2798,
          "after": 0.291,
          "delta": 0.0112,
          "percent_delta": 0.04,
          "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": 0.0,
          "after": 0.0,
          "delta": 0.0,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.392,
          "after": 0.378,
          "delta": -0.014,
          "percent_delta": -0.0357,
          "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.2798,
          "after": 0.291,
          "delta": 0.0112,
          "percent_delta": 0.04,
          "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": "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": 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": 2.0,
          "delta": 1.0,
          "percent_delta": 1.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": 2.0,
          "delta": 1.0,
          "percent_delta": 1.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": 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.235,
        "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.2798,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.392,
        "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.23,
          "after": 0.235,
          "delta": 0.005,
          "percent_delta": 0.0219,
          "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.2798,
          "delta": -0.0112,
          "percent_delta": -0.0384,
          "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.378,
          "after": 0.392,
          "delta": 0.014,
          "percent_delta": 0.0371,
          "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.378,
          "after": 0.392,
          "delta": 0.014,
          "percent_delta": 0.0371,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_OBP",
          "before": 0.291,
          "after": 0.2798,
          "delta": -0.0112,
          "percent_delta": -0.0384,
          "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.19,
        "after": 0.0,
        "delta": -0.19,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_3B",
        "before": 0.01,
        "after": 0.0,
        "delta": -0.01,
        "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.224,
        "after": 0.235,
        "delta": 0.011,
        "percent_delta": 0.0491,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.27,
        "after": 0.0,
        "delta": -0.27,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.85,
        "after": 0.0,
        "delta": -0.85,
        "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.276,
        "after": 0.2798,
        "delta": 0.0038,
        "percent_delta": 0.0138,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_R",
        "before": 0.5,
        "after": 0.0,
        "delta": -0.5,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.43,
        "after": 0.0,
        "delta": -0.43,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.375,
        "after": 0.392,
        "delta": 0.017,
        "percent_delta": 0.0453,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 1.01,
        "after": 2.0,
        "delta": 0.99,
        "percent_delta": 0.9802,
        "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.01,
        "after": 2.0,
        "delta": 0.99,
        "percent_delta": 0.9802,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_H",
        "before": 0.85,
        "after": 0.0,
        "delta": -0.85,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.190-
predicted_3B0.010-
predicted_AB3.790-
predicted_AVG0.224-
predicted_BB0.270-
predicted_H0.850-
predicted_HR0.120-
predicted_OBP0.276-
predicted_R0.500-
predicted_RBI0.430-
predicted_SLG0.375-
predicted_SO1.010-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.174-0.016
predicted_3B0.009-0.001
predicted_AB3.776-0.014
predicted_AVG0.2340.010
predicted_BB0.234-0.036
predicted_H0.8850.035
predicted_HBP0.047-
predicted_HR0.1330.013
predicted_OBP0.2820.006
predicted_R0.484-0.016
predicted_RBI0.4840.054
predicted_SLG0.3920.017
predicted_SO0.964-0.046
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1740.000
predicted_3B0.0090.000
predicted_AB3.7760.000
predicted_AVG0.2350.001
predicted_BB0.2350.001
predicted_H0.8870.002
predicted_HBP0.0470.000
predicted_HR0.1340.000
predicted_OBP0.280-0.002
predicted_R0.4860.002
predicted_RBI0.4860.002
predicted_SLG0.3920.001
predicted_SO0.960-0.004
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 4 (raw=3.79), rates preserved: AVG=0.234 HR/AB=0.035

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB4.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1660.166
3B0.0200.020
BB0.2860.286
H0.853-0.147
HR0.1140.114
RBI0.4190.419
SO0.997-0.003
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.166
3B0.000-0.020
AB4.0000.000
BB0.000-0.286
H1.0000.147
HR0.000-0.114
R1.0001.000
RBI0.000-0.419
SO1.0000.003
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.174
predicted_3B0.000-0.009
predicted_AB4.0000.224
predicted_AVG0.230-0.005
predicted_BB0.000-0.235
predicted_H1.0000.113
predicted_HR0.000-0.134
predicted_OBP0.2910.011
predicted_R0.000-0.486
predicted_RBI0.000-0.486
predicted_SLG0.378-0.014
predicted_SO1.0000.040
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.0000.000
H0.000-1.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R0.000-1.000
RBI0.0000.000
SB0.0000.000
SF0.0000.000
SO2.0001.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 100
Reference playing time: 3.804
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-18.0005.0000.0000.0001.0004.0002.0000.0004.0000.27780.27780.44440.27780.05560.22220.00000.2222
last_100.2010-38.00011.0002.0000.0002.0007.0004.0001.0007.0000.28950.30000.50000.28950.05260.18420.02630.1842
season0.60100-379.00085.00019.0001.00012.00043.00050.00027.000101.0000.22430.28920.37470.22430.03170.11350.07120.2665
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1540
predicted_3B0.0070
predicted_AB3.7570
predicted_AVG0.2481
predicted_BB0.1860
predicted_H0.9320
predicted_HBP0.0470
predicted_HR0.1510
predicted_OBP0.2902
predicted_R0.4620
predicted_RBI0.5560
predicted_SLG0.4133
predicted_SO0.9020
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.19000.15400.1745model_form_blend
predicted_3B0.01000.00700.0087model_form_blend
predicted_AB3.79003.75703.7758model_form_blend
predicted_AVG0.22400.24810.2344model_form_blend
predicted_BB0.27000.18600.2339model_form_blend
predicted_H0.85000.93200.8853model_form_blend
predicted_HBP-0.04700.0470form_only
predicted_HR0.12000.15100.1333model_form_blend
predicted_OBP0.27600.29020.2821model_form_blend
predicted_R0.50000.46200.4836model_form_blend
predicted_RBI0.43000.55600.4842model_form_blend
predicted_SLG0.37500.41330.3915model_form_blend
predicted_SO1.01000.90200.9635model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date405
Season rows before report date405
Report year2026
Profile rows used100
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA4
AB4
H0
2B0
3B0
HR0
R0
RBI0
BB0
SO2
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB4
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB0
Hitting_battingOrder5
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedRF
gameID20260920_WAS@STL
game_typefull
mlbID686611
playerID686611
playerNameDylan Crews
posRF
startedTrue
startingPositionRF
teamWAS
teamID30
game_date2026-09-20
sl_k_percent24.3
sl_bb_percent6.5
sl_woba0.294
sl_xwoba0.315
sl_xba0.24
sl_xslg0.417
sl_sweet_spot_percent34.4
sl_barrel_batted_rate9.4
sl_hard_hit_percent43.0
sl_exit_velocity_avg90.2
sl_launch_angle_avg13.4
sl_whiff_percent30.3
sl_swing_percent51.8
Daylen Lile (695734) · BATTER · CF · Team WAS
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 622
All-history rows before 20260921: 622
System season_avg: 0.2490
Data season_avg (2026 season-to-date): 0.2581
Diff (system - data): -0.0091
System opponent_avg: 0.2490

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1760.0000.000Hitting_2B0.1951.000-0.195-1.000
predicted_3B0.0520.0000.000Hitting_3B0.0500.000-0.0500.000
predicted_AB3.7784.0003.000Hitting_AB3.9554.0000.0450.000
predicted_AVG0.2490.2500.333Hitting_AVG0.2580.500-0.008-0.250
predicted_BB0.2610.0000.000Hitting_BB0.2880.000-0.2880.000
predicted_CS-0.0000.000BaseRunning_CS0.0470.000-0.0470.000
predicted_H0.9411.0001.000Hitting_H1.0212.000-0.021-1.000
predicted_HR0.1440.0000.000Hitting_HR0.1510.000-0.1510.000
predicted_OBP0.2980.2500.333Hitting_OBP0.3130.500-0.063-0.250
predicted_R0.5230.0001.000Hitting_R0.5561.000-0.556-1.000
predicted_RBI0.5750.0001.000Hitting_RBI0.6110.000-0.6110.000
predicted_SLG0.4380.2500.333Hitting_SLG0.4470.750-0.197-0.500
predicted_SO0.8101.0001.000Hitting_SO0.8250.0000.1751.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics10
Boosted Metrics4
Deboosted Metrics6
Better Metrics3
Worse Metrics7
Biggest Boostpredicted_AB: 3.7780 -> 4.0000 (boost 0.2220, better)
Biggest Deboostpredicted_RBI: 0.5750 -> 0.0000 (deboost -0.5750, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend22020predicted_RBI: 0.5750 -> 0.6549 (boost 0.0799, 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.
3team_form_snapshot00000--Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling83526predicted_RBI: 0.6576 -> 1.0000 (boost 0.3424, better)predicted_AB: 3.7404 -> 3.0000 (deboost -0.7404, worse)AB rounded to 3 (raw=3.78), rates preserved: AVG=0.248 HR/AB=0.045
6consistency_constraints11010predicted_R: 0.5637 -> 1.0000 (boost 0.4363, better)-Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine63342predicted_BB: 0.0000 -> 0.2567 (boost 0.2567, better)predicted_RBI: 1.0000 -> 0.4831 (deboost -0.5169, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation63324predicted_RBI: 0.4831 -> 1.0000 (boost 0.5169, better)predicted_BB: 0.2567 -> 0.0000 (deboost -0.2567, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context20202-predicted_SLG: 0.4628 -> 0.4150 (deboost -0.0478, worse)Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10simulation_box_score_reference31212predicted_AB: 3.0000 -> 4.0000 (boost 1.0000, better)predicted_R: 1.0000 -> 0.0000 (deboost -1.0000, worse)Attached simulation box score without overwriting model prediction
11current_json_final22020predicted_SLG: 0.4150 -> 0.4628 (boost 0.0478, better)-Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "695734",
  "player_name": "Daylen Lile",
  "position": "CF",
  "team": "WAS",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.176,
        "predicted_3B": 0.052,
        "predicted_AB": 3.778,
        "predicted_AVG": 0.249,
        "predicted_BB": 0.261,
        "predicted_H": 0.941,
        "predicted_HR": 0.144,
        "predicted_OBP": 0.298,
        "predicted_R": 0.523,
        "predicted_RBI": 0.575,
        "predicted_SLG": 0.438,
        "predicted_SO": 0.81
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.1459,
        "predicted_3B": 0.0682,
        "predicted_AB": 3.7404,
        "predicted_AVG": 0.2496,
        "predicted_BB": 0.2505,
        "predicted_H": 0.9336,
        "predicted_HBP": 0.023,
        "predicted_HR": 0.1706,
        "predicted_OBP": 0.2961,
        "predicted_R": 0.5614,
        "predicted_RBI": 0.6549,
        "predicted_SLG": 0.4625,
        "predicted_SO": 0.827
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.176,
          "after": 0.1459,
          "delta": -0.0301,
          "percent_delta": -0.171,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.052,
          "after": 0.0682,
          "delta": 0.0162,
          "percent_delta": 0.3115,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 3.778,
          "after": 3.7404,
          "delta": -0.0376,
          "percent_delta": -0.01,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.249,
          "after": 0.2496,
          "delta": 0.0006,
          "percent_delta": 0.0024,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.261,
          "after": 0.2505,
          "delta": -0.0105,
          "percent_delta": -0.0402,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.941,
          "after": 0.9336,
          "delta": -0.0074,
          "percent_delta": -0.0079,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.144,
          "after": 0.1706,
          "delta": 0.0266,
          "percent_delta": 0.1847,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.298,
          "after": 0.2961,
          "delta": -0.0019,
          "percent_delta": -0.0064,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.523,
          "after": 0.5614,
          "delta": 0.0384,
          "percent_delta": 0.0734,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.575,
          "after": 0.6549,
          "delta": 0.0799,
          "percent_delta": 0.139,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.438,
          "after": 0.4625,
          "delta": 0.0245,
          "percent_delta": 0.0559,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.81,
          "after": 0.827,
          "delta": 0.017,
          "percent_delta": 0.021,
          "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.575,
          "after": 0.6549,
          "delta": 0.0799,
          "percent_delta": 0.139,
          "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": 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.1459,
        "predicted_3B": 0.0682,
        "predicted_AB": 3.7404,
        "predicted_AVG": 0.2502,
        "predicted_BB": 0.2515,
        "predicted_H": 0.9358,
        "predicted_HBP": 0.023,
        "predicted_HR": 0.171,
        "predicted_OBP": 0.2974,
        "predicted_R": 0.5637,
        "predicted_RBI": 0.6576,
        "predicted_SLG": 0.4628,
        "predicted_SO": 0.8236
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1459,
          "after": 0.1459,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.0682,
          "after": 0.0682,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 3.7404,
          "after": 3.7404,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2496,
          "after": 0.2502,
          "delta": 0.0006,
          "percent_delta": 0.0024,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.2505,
          "after": 0.2515,
          "delta": 0.001,
          "percent_delta": 0.004,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.9336,
          "after": 0.9358,
          "delta": 0.0022,
          "percent_delta": 0.0024,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HBP",
          "before": 0.023,
          "after": 0.023,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.1706,
          "after": 0.171,
          "delta": 0.0004,
          "percent_delta": 0.0023,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2961,
          "after": 0.2974,
          "delta": 0.0013,
          "percent_delta": 0.0044,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.5614,
          "after": 0.5637,
          "delta": 0.0023,
          "percent_delta": 0.0041,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.6549,
          "after": 0.6576,
          "delta": 0.0027,
          "percent_delta": 0.0041,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4625,
          "after": 0.4628,
          "delta": 0.0003,
          "percent_delta": 0.0006,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.827,
          "after": 0.8236,
          "delta": -0.0034,
          "percent_delta": -0.0041,
          "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.78), rates preserved: AVG=0.248 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": 1.0,
        "predicted_SB": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1459,
          "after": 0.0,
          "delta": -0.1459,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0682,
          "after": 0.0,
          "delta": -0.0682,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AB",
          "before": 3.7404,
          "after": 3.0,
          "delta": -0.7404,
          "percent_delta": -0.1979,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.2515,
          "after": 0.0,
          "delta": -0.2515,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.9358,
          "after": 1.0,
          "delta": 0.0642,
          "percent_delta": 0.0686,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HBP",
          "before": 0.023,
          "after": 0.0,
          "delta": -0.023,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.171,
          "after": 0.0,
          "delta": -0.171,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.6576,
          "after": 1.0,
          "delta": 0.3424,
          "percent_delta": 0.5207,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.8236,
          "after": 1.0,
          "delta": 0.1764,
          "percent_delta": 0.2142,
          "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.6576,
          "after": 1.0,
          "delta": 0.3424,
          "percent_delta": 0.5207,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 3.7404,
          "after": 3.0,
          "delta": -0.7404,
          "percent_delta": -0.1979,
          "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.5637,
          "after": 1.0,
          "delta": 0.4363,
          "percent_delta": 0.774,
          "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.5637,
          "after": 1.0,
          "delta": 0.4363,
          "percent_delta": 0.774,
          "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.1524,
        "predicted_3B": 0.0421,
        "predicted_BB": 0.2567,
        "predicted_H": 0.8355,
        "predicted_HR": 0.121,
        "predicted_RBI": 0.4831,
        "predicted_SO": 0.7665
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1524,
          "delta": 0.1524,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0421,
          "delta": 0.0421,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.2567,
          "delta": 0.2567,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8355,
          "delta": -0.1645,
          "percent_delta": -0.1645,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.121,
          "delta": 0.121,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.4831,
          "delta": -0.5169,
          "percent_delta": -0.5169,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.7665,
          "delta": -0.2335,
          "percent_delta": -0.2335,
          "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.2567,
          "delta": 0.2567,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.4831,
          "delta": -0.5169,
          "percent_delta": -0.5169,
          "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.1524,
          "after": 0.0,
          "delta": -0.1524,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0421,
          "after": 0.0,
          "delta": -0.0421,
          "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.2567,
          "after": 0.0,
          "delta": -0.2567,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8355,
          "after": 1.0,
          "delta": 0.1645,
          "percent_delta": 0.1969,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.121,
          "after": 0.0,
          "delta": -0.121,
          "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.4831,
          "after": 1.0,
          "delta": 0.5169,
          "percent_delta": 1.07,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.7665,
          "after": 1.0,
          "delta": 0.2335,
          "percent_delta": 0.3046,
          "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.4831,
          "after": 1.0,
          "delta": 0.5169,
          "percent_delta": 1.07,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.2567,
          "after": 0.0,
          "delta": -0.2567,
          "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.3,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.415,
        "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.2502,
          "after": 0.242,
          "delta": -0.0082,
          "percent_delta": -0.0328,
          "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.2974,
          "after": 0.3,
          "delta": 0.0026,
          "percent_delta": 0.0087,
          "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.4628,
          "after": 0.415,
          "delta": -0.0478,
          "percent_delta": -0.1033,
          "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.4628,
          "after": 0.415,
          "delta": -0.0478,
          "percent_delta": -0.1033,
          "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": 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": 3.0,
          "after": 4.0,
          "delta": 1.0,
          "percent_delta": 0.3333,
          "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": 4.0,
        "predicted_AVG": 0.2502,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_DH": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.2974,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.4628,
        "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.242,
          "after": 0.2502,
          "delta": 0.0082,
          "percent_delta": 0.0339,
          "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.3,
          "after": 0.2974,
          "delta": -0.0026,
          "percent_delta": -0.0085,
          "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.415,
          "after": 0.4628,
          "delta": 0.0478,
          "percent_delta": 0.1152,
          "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.415,
          "after": 0.4628,
          "delta": 0.0478,
          "percent_delta": 0.1152,
          "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.052,
        "after": 0.0,
        "delta": -0.052,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AB",
        "before": 3.778,
        "after": 4.0,
        "delta": 0.222,
        "percent_delta": 0.0588,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.249,
        "after": 0.2502,
        "delta": 0.0012,
        "percent_delta": 0.0048,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_BB",
        "before": 0.261,
        "after": 0.0,
        "delta": -0.261,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.941,
        "after": 1.0,
        "delta": 0.059,
        "percent_delta": 0.0627,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.144,
        "after": 0.0,
        "delta": -0.144,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.298,
        "after": 0.2974,
        "delta": -0.0006,
        "percent_delta": -0.002,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_R",
        "before": 0.523,
        "after": 0.0,
        "delta": -0.523,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.575,
        "after": 0.0,
        "delta": -0.575,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.438,
        "after": 0.4628,
        "delta": 0.0248,
        "percent_delta": 0.0566,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.81,
        "after": 1.0,
        "delta": 0.19,
        "percent_delta": 0.2346,
        "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_AB",
        "before": 3.778,
        "after": 4.0,
        "delta": 0.222,
        "percent_delta": 0.0588,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_RBI",
        "before": 0.575,
        "after": 0.0,
        "delta": -0.575,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.176-
predicted_3B0.052-
predicted_AB3.778-
predicted_AVG0.249-
predicted_BB0.261-
predicted_H0.941-
predicted_HR0.144-
predicted_OBP0.298-
predicted_R0.523-
predicted_RBI0.575-
predicted_SLG0.438-
predicted_SO0.810-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.146-0.030
predicted_3B0.0680.016
predicted_AB3.740-0.038
predicted_AVG0.2500.001
predicted_BB0.251-0.011
predicted_H0.934-0.007
predicted_HBP0.023-
predicted_HR0.1710.027
predicted_OBP0.296-0.002
predicted_R0.5610.038
predicted_RBI0.6550.080
predicted_SLG0.4630.025
predicted_SO0.8270.017
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1460.000
predicted_3B0.0680.000
predicted_AB3.7400.000
predicted_AVG0.2500.001
predicted_BB0.2520.001
predicted_H0.9360.002
predicted_HBP0.0230.000
predicted_HR0.1710.000
predicted_OBP0.2970.001
predicted_R0.5640.002
predicted_RBI0.6580.003
predicted_SLG0.4630.000
predicted_SO0.824-0.003
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 3 (raw=3.78), rates preserved: AVG=0.248 HR/AB=0.045

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB3.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI1.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R1.000-
RBI1.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1520.152
3B0.0420.042
BB0.2570.257
H0.836-0.164
HR0.1210.121
RBI0.483-0.517
SO0.766-0.234
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.152
3B0.000-0.042
AB3.0000.000
BB0.000-0.257
H1.0000.164
HR0.000-0.121
R1.0000.000
RBI1.0000.517
SO1.0000.234
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.146
predicted_3B0.000-0.068
predicted_AB3.000-0.740
predicted_AVG0.242-0.008
predicted_BB0.000-0.252
predicted_H1.0000.064
predicted_HR0.000-0.171
predicted_OBP0.3000.003
predicted_R1.0000.436
predicted_RBI1.0000.342
predicted_SLG0.415-0.048
predicted_SO1.0000.176
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0001.000
BB0.0000.000
CS0.0000.000
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R0.000-1.000
RBI0.000-1.000
SB0.0000.000
SF0.0000.000
SO1.0000.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 153
Reference playing time: 3.804
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-18.0006.0000.0001.0002.0007.0005.0001.0004.0000.33330.35000.77780.33330.11110.38890.05560.2222
last_100.2010-35.0006.0000.0001.0002.0007.0005.0002.00010.0000.17140.21050.40000.17140.05710.20000.05710.2857
season0.60153-578.000144.00027.0008.00022.00088.00080.00040.000124.0000.24910.30160.43770.24910.03810.15220.06920.2145
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1070
predicted_3B0.0890
predicted_AB3.6920
predicted_AVG0.2503
predicted_BB0.2370
predicted_H0.9240
predicted_HBP0.0230
predicted_HR0.2050
predicted_OBP0.2936
predicted_R0.6110
predicted_RBI0.7580
predicted_SLG0.4941
predicted_SO0.8490
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.17600.10700.1459model_form_blend
predicted_3B0.05200.08900.0682model_form_blend
predicted_AB3.77803.69203.7404model_form_blend
predicted_AVG0.24900.25030.2496model_form_blend
predicted_BB0.26100.23700.2505model_form_blend
predicted_H0.94100.92400.9336model_form_blend
predicted_HBP-0.02300.0230form_only
predicted_HR0.14400.20500.1706model_form_blend
predicted_OBP0.29800.29360.2961model_form_blend
predicted_R0.52300.61100.5614model_form_blend
predicted_RBI0.57500.75800.6549model_form_blend
predicted_SLG0.43800.49410.4625model_form_blend
predicted_SO0.81000.84900.8270model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date622
Season rows before report date622
Report year2026
Profile rows used153
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA4
AB4
H1
2B0
3B0
HR0
R0
RBI0
BB0
SO1
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B1
Hitting_3B0
Hitting_AB4
Hitting_AVG0.5
Hitting_BB0
Hitting_GIDP0
Hitting_H2
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R1
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB3
Hitting_battingOrder6
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedLF
gameID20260920_WAS@STL
game_typefull
mlbID695734
playerID695734
playerNameDaylen Lile
posLF
startedTrue
startingPositionLF
teamWAS
teamID30
game_date2026-09-20
sl_k_percent19.7
sl_bb_percent6.3
sl_woba0.318
sl_xwoba0.326
sl_xba0.256
sl_xslg0.446
sl_sweet_spot_percent38.3
sl_barrel_batted_rate9.6
sl_hard_hit_percent37.9
sl_exit_velocity_avg88.6
sl_launch_angle_avg18.7
sl_whiff_percent23.8
sl_swing_percent55.4
Jorbit Vivas (678391) · BATTER · RF · Team WAS
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 347
All-history rows before 20260921: 347
System season_avg: 0.2480
Data season_avg (2026 season-to-date): 0.2557
Diff (system - data): -0.0077
System opponent_avg: 0.2480

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1360.0000.000Hitting_2B0.1840.000-0.1840.000
predicted_3B0.0090.0000.000Hitting_3B0.0120.000-0.0120.000
predicted_AB2.7094.0003.000Hitting_AB3.0321.0000.9683.000
predicted_AVG0.2480.0000.000Hitting_AVG0.2560.000-0.2560.000
predicted_BB0.3550.0001.000Hitting_BB0.4350.000-0.4350.000
predicted_CS-0.0000.000BaseRunning_CS0.0140.000-0.0140.000
predicted_H0.6730.0000.000Hitting_H0.7750.000-0.7750.000
predicted_HR0.0270.0000.000Hitting_HR0.0290.000-0.0290.000
predicted_OBP0.3350.0000.250Hitting_OBP0.3530.000-0.3530.000
predicted_R0.2910.0000.000Hitting_R0.3570.000-0.3570.000
predicted_RBI0.2730.0000.000Hitting_RBI0.3260.000-0.3260.000
predicted_SLG0.3360.0000.000Hitting_SLG0.3530.000-0.3530.000
predicted_SO0.4641.0000.000Hitting_SO0.4781.0000.5220.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics10
Boosted Metrics5
Deboosted Metrics5
Better Metrics4
Worse Metrics6
Biggest Boostpredicted_AB: 2.7090 -> 4.0000 (boost 1.2910, better)
Biggest Deboostpredicted_H: 0.6730 -> 0.0000 (deboost -0.6730, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend66051predicted_AB: 2.7090 -> 2.8156 (boost 0.1066, 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.
3team_form_snapshot00000--Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling63324predicted_SO: 0.5313 -> 1.0000 (boost 0.4687, worse)predicted_BB: 0.3620 -> 0.0000 (deboost -0.3620, worse)AB rounded to 3 (raw=2.82), rates preserved: AVG=0.266 HR/AB=0.009
6consistency_constraints10101-predicted_R: 0.3222 -> 0.0000 (deboost -0.3222, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine64251predicted_BB: 0.0000 -> 0.3726 (boost 0.3726, better)predicted_SO: 1.0000 -> 0.5597 (deboost -0.4403, better)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation61524predicted_BB: 0.3726 -> 1.0000 (boost 0.6274, better)predicted_H: 0.7445 -> 0.0000 (deboost -0.7445, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context52314predicted_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
10simulation_box_score_reference21111predicted_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
11current_json_final22020predicted_AVG: 0.2350 -> 0.2656 (boost 0.0306, better)-Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "678391",
  "player_name": "Jorbit Vivas",
  "position": "RF",
  "team": "WAS",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.136,
        "predicted_3B": 0.009,
        "predicted_AB": 2.709,
        "predicted_AVG": 0.248,
        "predicted_BB": 0.355,
        "predicted_H": 0.673,
        "predicted_HR": 0.027,
        "predicted_OBP": 0.335,
        "predicted_R": 0.291,
        "predicted_RBI": 0.273,
        "predicted_SLG": 0.336,
        "predicted_SO": 0.464
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.1403,
        "predicted_3B": 0.0077,
        "predicted_AB": 2.8156,
        "predicted_AVG": 0.2639,
        "predicted_BB": 0.3605,
        "predicted_H": 0.7459,
        "predicted_HBP": 0.019,
        "predicted_HR": 0.0261,
        "predicted_OBP": 0.3484,
        "predicted_R": 0.3209,
        "predicted_RBI": 0.3203,
        "predicted_SLG": 0.348,
        "predicted_SO": 0.5335
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.136,
          "after": 0.1403,
          "delta": 0.0043,
          "percent_delta": 0.0316,
          "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": 2.709,
          "after": 2.8156,
          "delta": 0.1066,
          "percent_delta": 0.0394,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.248,
          "after": 0.2639,
          "delta": 0.0159,
          "percent_delta": 0.0641,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.355,
          "after": 0.3605,
          "delta": 0.0055,
          "percent_delta": 0.0155,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.673,
          "after": 0.7459,
          "delta": 0.0729,
          "percent_delta": 0.1083,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.027,
          "after": 0.0261,
          "delta": -0.0009,
          "percent_delta": -0.0333,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.335,
          "after": 0.3484,
          "delta": 0.0134,
          "percent_delta": 0.04,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.291,
          "after": 0.3209,
          "delta": 0.0299,
          "percent_delta": 0.1027,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.273,
          "after": 0.3203,
          "delta": 0.0473,
          "percent_delta": 0.1733,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.336,
          "after": 0.348,
          "delta": 0.012,
          "percent_delta": 0.0357,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.464,
          "after": 0.5335,
          "delta": 0.0695,
          "percent_delta": 0.1498,
          "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_AB",
          "before": 2.709,
          "after": 2.8156,
          "delta": 0.1066,
          "percent_delta": 0.0394,
          "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.1403,
        "predicted_3B": 0.0077,
        "predicted_AB": 2.8156,
        "predicted_AVG": 0.2656,
        "predicted_BB": 0.362,
        "predicted_H": 0.7477,
        "predicted_HBP": 0.019,
        "predicted_HR": 0.0262,
        "predicted_OBP": 0.3492,
        "predicted_R": 0.3222,
        "predicted_RBI": 0.3216,
        "predicted_SLG": 0.3487,
        "predicted_SO": 0.5313
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1403,
          "after": 0.1403,
          "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": 2.8156,
          "after": 2.8156,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2639,
          "after": 0.2656,
          "delta": 0.0017,
          "percent_delta": 0.0064,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.3605,
          "after": 0.362,
          "delta": 0.0015,
          "percent_delta": 0.0042,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.7459,
          "after": 0.7477,
          "delta": 0.0018,
          "percent_delta": 0.0024,
          "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.0261,
          "after": 0.0262,
          "delta": 0.0001,
          "percent_delta": 0.0038,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3484,
          "after": 0.3492,
          "delta": 0.0008,
          "percent_delta": 0.0023,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.3209,
          "after": 0.3222,
          "delta": 0.0013,
          "percent_delta": 0.0041,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3203,
          "after": 0.3216,
          "delta": 0.0013,
          "percent_delta": 0.0041,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.348,
          "after": 0.3487,
          "delta": 0.0007,
          "percent_delta": 0.002,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.5335,
          "after": 0.5313,
          "delta": -0.0022,
          "percent_delta": -0.0041,
          "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=2.82), rates preserved: AVG=0.266 HR/AB=0.009",
      "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.1403,
          "after": 0.0,
          "delta": -0.1403,
          "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": 2.8156,
          "after": 3.0,
          "delta": 0.1844,
          "percent_delta": 0.0655,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.362,
          "after": 0.0,
          "delta": -0.362,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.7477,
          "after": 1.0,
          "delta": 0.2523,
          "percent_delta": 0.3374,
          "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.0262,
          "after": 0.0,
          "delta": -0.0262,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3216,
          "after": 0.0,
          "delta": -0.3216,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.5313,
          "after": 1.0,
          "delta": 0.4687,
          "percent_delta": 0.8822,
          "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.5313,
          "after": 1.0,
          "delta": 0.4687,
          "percent_delta": 0.8822,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.362,
          "after": 0.0,
          "delta": -0.362,
          "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.3222,
          "after": 0.0,
          "delta": -0.3222,
          "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.3222,
          "after": 0.0,
          "delta": -0.3222,
          "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.1397,
        "predicted_3B": 0.0179,
        "predicted_BB": 0.3726,
        "predicted_H": 0.7445,
        "predicted_HR": 0.0594,
        "predicted_RBI": 0.3271,
        "predicted_SO": 0.5597
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1397,
          "delta": 0.1397,
          "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.3726,
          "delta": 0.3726,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7445,
          "delta": -0.2555,
          "percent_delta": -0.2555,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.0594,
          "delta": 0.0594,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.3271,
          "delta": 0.3271,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.5597,
          "delta": -0.4403,
          "percent_delta": -0.4403,
          "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.3726,
          "delta": 0.3726,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.5597,
          "delta": -0.4403,
          "percent_delta": -0.4403,
          "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": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SO": 0.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1397,
          "after": 0.0,
          "delta": -0.1397,
          "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.3726,
          "after": 1.0,
          "delta": 0.6274,
          "percent_delta": 1.6838,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.7445,
          "after": 0.0,
          "delta": -0.7445,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0594,
          "after": 0.0,
          "delta": -0.0594,
          "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.3271,
          "after": 0.0,
          "delta": -0.3271,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.5597,
          "after": 0.0,
          "delta": -0.5597,
          "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.3726,
          "after": 1.0,
          "delta": 0.6274,
          "percent_delta": 1.6838,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 0.7445,
          "after": 0.0,
          "delta": -0.7445,
          "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.235,
        "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.347,
        "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.2656,
          "after": 0.235,
          "delta": -0.0306,
          "percent_delta": -0.1152,
          "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.3492,
          "after": 0.321,
          "delta": -0.0282,
          "percent_delta": -0.0808,
          "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.3487,
          "after": 0.347,
          "delta": -0.0017,
          "percent_delta": -0.0049,
          "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": 5,
        "boosted_metrics": 2,
        "deboosted_metrics": 3,
        "better_metrics": 1,
        "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_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": 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.2656,
        "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.3492,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.3487,
        "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.235,
          "after": 0.2656,
          "delta": 0.0306,
          "percent_delta": 0.13,
          "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.321,
          "after": 0.3492,
          "delta": 0.0282,
          "percent_delta": 0.0879,
          "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.347,
          "after": 0.3487,
          "delta": 0.0017,
          "percent_delta": 0.005,
          "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_AVG",
          "before": 0.235,
          "after": 0.2656,
          "delta": 0.0306,
          "percent_delta": 0.13,
          "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.136,
        "after": 0.0,
        "delta": -0.136,
        "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": 2.709,
        "after": 4.0,
        "delta": 1.291,
        "percent_delta": 0.4766,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.248,
        "after": 0.2656,
        "delta": 0.0176,
        "percent_delta": 0.071,
        "direction": "boost",
        "projection_effect": "better",
        "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.673,
        "after": 0.0,
        "delta": -0.673,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.027,
        "after": 0.0,
        "delta": -0.027,
        "percent_delta": -1.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_OBP",
        "before": 0.335,
        "after": 0.3492,
        "delta": 0.0142,
        "percent_delta": 0.0424,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.291,
        "after": 0.0,
        "delta": -0.291,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.273,
        "after": 0.0,
        "delta": -0.273,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.336,
        "after": 0.3487,
        "delta": 0.0127,
        "percent_delta": 0.0378,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.464,
        "after": 1.0,
        "delta": 0.536,
        "percent_delta": 1.1552,
        "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_AB",
        "before": 2.709,
        "after": 4.0,
        "delta": 1.291,
        "percent_delta": 0.4766,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_H",
        "before": 0.673,
        "after": 0.0,
        "delta": -0.673,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.136-
predicted_3B0.009-
predicted_AB2.709-
predicted_AVG0.248-
predicted_BB0.355-
predicted_H0.673-
predicted_HR0.027-
predicted_OBP0.335-
predicted_R0.291-
predicted_RBI0.273-
predicted_SLG0.336-
predicted_SO0.464-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.1400.004
predicted_3B0.008-0.001
predicted_AB2.8160.107
predicted_AVG0.2640.016
predicted_BB0.3600.006
predicted_H0.7460.073
predicted_HBP0.019-
predicted_HR0.026-0.001
predicted_OBP0.3480.013
predicted_R0.3210.030
predicted_RBI0.3200.047
predicted_SLG0.3480.012
predicted_SO0.5330.069
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1400.000
predicted_3B0.0080.000
predicted_AB2.8160.000
predicted_AVG0.2660.002
predicted_BB0.3620.002
predicted_H0.7480.002
predicted_HBP0.0190.000
predicted_HR0.0260.000
predicted_OBP0.3490.001
predicted_R0.3220.001
predicted_RBI0.3220.001
predicted_SLG0.3490.001
predicted_SO0.531-0.002
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 3 (raw=2.82), rates preserved: AVG=0.266 HR/AB=0.009

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB3.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1400.140
3B0.0180.018
BB0.3730.373
H0.745-0.255
HR0.0590.059
RBI0.3270.327
SO0.560-0.440
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.140
3B0.000-0.018
AB3.0000.000
BB1.0000.627
H0.000-0.745
HR0.000-0.059
R0.0000.000
RBI0.000-0.327
SO0.000-0.560
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.140
predicted_3B0.000-0.008
predicted_AB3.0000.184
predicted_AVG0.235-0.031
predicted_BB0.000-0.362
predicted_H1.0000.252
predicted_HR0.000-0.026
predicted_OBP0.321-0.028
predicted_R0.000-0.322
predicted_RBI0.000-0.322
predicted_SLG0.347-0.002
predicted_SO1.0000.469
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0001.000
BB0.000-1.000
CS0.0000.000
H0.0000.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R0.0000.000
RBI0.0000.000
SB0.0000.000
SF0.0000.000
SO1.0001.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 110
Reference playing time: 3.804
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-16.0006.0000.0000.0000.0003.0003.0002.0004.0000.37500.44440.37500.37500.00000.18750.12500.2500
last_100.2010-31.00010.0003.0000.0000.0005.0003.0004.0009.0000.32260.40000.41940.32260.00000.16130.12900.2903
season0.60110-298.00074.00015.0001.0003.00030.00032.00039.00051.0000.24830.33820.33560.24830.01010.10070.13090.1711
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1460
predicted_3B0.0060
predicted_AB2.9590
predicted_AVG0.2853
predicted_BB0.3680
predicted_H0.8440
predicted_HBP0.0190
predicted_HR0.0250
predicted_OBP0.3665
predicted_R0.3610
predicted_RBI0.3840
predicted_SLG0.3641
predicted_SO0.6270
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.13600.14600.1403model_form_blend
predicted_3B0.00900.00600.0077model_form_blend
predicted_AB2.70902.95902.8156model_form_blend
predicted_AVG0.24800.28530.2639model_form_blend
predicted_BB0.35500.36800.3605model_form_blend
predicted_H0.67300.84400.7459model_form_blend
predicted_HBP-0.01900.0190form_only
predicted_HR0.02700.02500.0261model_form_blend
predicted_OBP0.33500.36650.3484model_form_blend
predicted_R0.29100.36100.3209model_form_blend
predicted_RBI0.27300.38400.3203model_form_blend
predicted_SLG0.33600.36410.3480model_form_blend
predicted_SO0.46400.62700.5335model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date347
Season rows before report date347
Report year2026
Profile rows used110
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA4
AB4
H0
2B0
3B0
HR0
R0
RBI0
BB0
SO1
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB1
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO1
Hitting_TB0
Hitting_battingOrder3
Hitting_substitutionOrder1
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedPH
gameID20260920_WAS@STL
game_typeph
mlbID678391
noteStruck out for House in the 8th.
playerID678391
playerNameJorbit Vivas
pos3B
startedFalse
startingPositionPH
teamWAS
teamID30
game_date2026-09-20
sl_k_percent14.6
sl_bb_percent11.4
sl_woba0.308
sl_xwoba0.296
sl_xba0.239
sl_xslg0.313
sl_sweet_spot_percent34.6
sl_barrel_batted_rate3.1
sl_hard_hit_percent21.7
sl_exit_velocity_avg82.9
sl_launch_angle_avg11.5
sl_whiff_percent18.3
sl_swing_percent49.6
DJ Herz (687792) · PITCHER · Starter · Team WAS
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 0
All-history rows before 20260921: 0

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB0.0000.0000.000Pitching_BB----
predicted_ER1.0001.0001.000Pitching_ER----
predicted_H4.0004.0004.000Pitching_H----
predicted_IP2.1002.1002.100Pitching_InningsPitched----
predicted_SO7.0007.0007.000Pitching_SO----

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_form_blend
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics1
Boosted Metrics1
Deboosted Metrics0
Better Metrics1
Worse Metrics0
Biggest Boostpredicted_IP: 0.1000 -> 2.1000 (boost 2.0000, better)
Biggest Deboost-
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
2current_json_final11010predicted_IP: 0.1000 -> 2.1000 (boost 2.0000, better)-Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "pitcher",
  "player_id": "687792",
  "player_name": "DJ Herz",
  "position": "Starter",
  "team": "WAS",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 0.0,
        "predicted_ER": 1.0,
        "predicted_H": 4.0,
        "predicted_HR": 0.0,
        "predicted_IP": 0.1,
        "predicted_SO": 7.0
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      },
      "weights": {},
      "window_games": {}
    },
    {
      "index": 2,
      "step": "current_json_final",
      "description": "Final player values currently stored in the game JSON",
      "stats": {
        "predicted_BB": 0.0,
        "predicted_ER": 1.0,
        "predicted_H": 4.0,
        "predicted_HR": 0.0,
        "predicted_IP": 2.1,
        "predicted_R": 1.0,
        "predicted_SO": 7.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.0,
          "delta": 0.0,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_ER",
          "before": 1.0,
          "after": 1.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 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": 0.1,
          "after": 2.1,
          "delta": 2.0,
          "percent_delta": 20.0,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 7.0,
          "after": 7.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 1,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_IP",
          "before": 0.1,
          "after": 2.1,
          "delta": 2.0,
          "percent_delta": 20.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": 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": 0.1,
        "after": 2.1,
        "delta": 2.0,
        "percent_delta": 20.0,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 7.0,
        "after": 7.0,
        "delta": 0.0,
        "percent_delta": 0.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      }
    ],
    "summary": {
      "changed_metrics": 1,
      "boosted_metrics": 1,
      "deboosted_metrics": 0,
      "better_metrics": 1,
      "worse_metrics": 0,
      "biggest_boost": {
        "metric": "predicted_IP",
        "before": 0.1,
        "after": 2.1,
        "delta": 2.0,
        "percent_delta": 20.0,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": null,
      "has_material_change": true,
      "dominant_effect": "better"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_form_blend

Pitcher model/profile expectation with Bayesian recent-form shrinkage

MetricValueDelta vs Prev Step
predicted_BB0.000-
predicted_ER1.000-
predicted_H4.000-
predicted_HR0.000-
predicted_IP0.100-
predicted_SO7.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 0
Reference playing time: 0.100
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.4500.0000.0000.0000.0000.0000.000-------
last_100.3500.0000.0000.0000.0000.0000.000-------
season0.2000.0000.0000.0000.0000.0000.000-------
Weighted Prediction From Real Data
MetricValue
predicted_BB0.1250
predicted_ER0.1700
predicted_ERA4.5933
predicted_H0.3270
predicted_HR0.0500
predicted_IP0.1000
predicted_SO0.3120
predicted_WHIP1.3576
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB0.00000.12500.0284model_form_blend
predicted_ER1.00000.17000.8112model_form_blend
predicted_ERA-4.59334.5933form_only
predicted_H4.00000.32703.1644model_form_blend
predicted_HR0.00000.05000.0114model_form_blend
predicted_IP0.10000.10000.1000model_form_blend
predicted_SO7.00000.31205.4785model_form_blend
predicted_WHIP-1.35761.3576form_only

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula45% last 5 + 35% last 10 + 20% season
Active form weightslast_5=45%, last_10=35%, season=20%
Model calibration35% raw model + 65% weighted form
Rows before report date0
Season rows before report date0
Report year2026
Profile rows used0
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP2.1
H4
R1
ER1
BB0
SO7
HR0
BF11
Pitches53

Latest Real Data Snapshot (before report date)

No historical data found for this player before report date.

Erik Tolman (680899) · PITCHER · Closer · Team WAS
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 12
All-history rows before 20260921: 12

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB2.0002.0002.000Pitching_BB0.4170.0001.5832.000
predicted_ER4.0004.0004.000Pitching_ER0.4171.0003.5833.000
predicted_H3.0003.0003.000Pitching_H1.0001.0002.0002.000
predicted_IP3.1003.1003.100Pitching_InningsPitched0.8920.2002.2082.900
predicted_SO1.0001.0001.000Pitching_SO1.0000.0000.0001.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_form_blend
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics1
Boosted Metrics1
Deboosted Metrics0
Better Metrics1
Worse Metrics0
Biggest Boostpredicted_IP: 3.0000 -> 3.1000 (boost 0.1000, better)
Biggest Deboost-
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
2current_json_final11010predicted_IP: 3.0000 -> 3.1000 (boost 0.1000, better)-Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "pitcher",
  "player_id": "680899",
  "player_name": "Erik Tolman",
  "position": "Closer",
  "team": "WAS",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 2.0,
        "predicted_ER": 4.0,
        "predicted_H": 3.0,
        "predicted_HR": 1.0,
        "predicted_IP": 3.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      },
      "weights": {},
      "window_games": {}
    },
    {
      "index": 2,
      "step": "current_json_final",
      "description": "Final player values currently stored in the game JSON",
      "stats": {
        "predicted_BB": 2.0,
        "predicted_ER": 4.0,
        "predicted_H": 3.0,
        "predicted_HR": 1.0,
        "predicted_IP": 3.1,
        "predicted_R": 4.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_BB",
          "before": 2.0,
          "after": 2.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_ER",
          "before": 4.0,
          "after": 4.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 3.0,
          "after": 3.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 1.0,
          "after": 1.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_IP",
          "before": 3.0,
          "after": 3.1,
          "delta": 0.1,
          "percent_delta": 0.0333,
          "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": 3.0,
          "after": 3.1,
          "delta": 0.1,
          "percent_delta": 0.0333,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      },
      "weights": {},
      "window_games": {}
    }
  ],
  "total_change": {
    "from_step": "pitcher_form_blend",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_BB",
        "before": 2.0,
        "after": 2.0,
        "delta": 0.0,
        "percent_delta": 0.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_ER",
        "before": 4.0,
        "after": 4.0,
        "delta": 0.0,
        "percent_delta": 0.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_H",
        "before": 3.0,
        "after": 3.0,
        "delta": 0.0,
        "percent_delta": 0.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_HR",
        "before": 1.0,
        "after": 1.0,
        "delta": 0.0,
        "percent_delta": 0.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_IP",
        "before": 3.0,
        "after": 3.1,
        "delta": 0.1,
        "percent_delta": 0.0333,
        "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": 3.0,
        "after": 3.1,
        "delta": 0.1,
        "percent_delta": 0.0333,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": null,
      "has_material_change": true,
      "dominant_effect": "better"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_form_blend

Pitcher model/profile expectation with Bayesian recent-form shrinkage

MetricValueDelta vs Prev Step
predicted_BB2.000-
predicted_ER4.000-
predicted_H3.000-
predicted_HR1.000-
predicted_IP3.000-
predicted_SO1.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 11
Reference playing time: 3.000
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.4554.1003.0007.0002.0003.0000.0006.23082.07690.69231.61540.46150.69230.0000
last_100.351010.2004.00010.0005.00011.0000.0003.37501.40620.37500.93750.46881.03120.0000
season0.201111.2004.00011.0005.00012.0000.0003.08571.37140.34290.94290.42861.02860.0000
Weighted Prediction From Real Data
MetricValue
predicted_BB0.9470
predicted_ER1.2030
predicted_ERA4.5962
predicted_H2.5120
predicted_HR0.2390
predicted_IP2.1000
predicted_SO2.1600
predicted_WHIP1.4681
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB2.00000.94701.6173model_form_blend
predicted_ER4.00001.20302.9835model_form_blend
predicted_ERA-4.59624.5962form_only
predicted_H3.00002.51202.8227model_form_blend
predicted_HR1.00000.23900.7234model_form_blend
predicted_IP3.00002.10002.2000model_form_blend
predicted_SO1.00002.16001.4216model_form_blend
predicted_WHIP-1.46811.4681form_only

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula45% last 5 + 35% last 10 + 20% season
Active form weightslast_5=45%, last_10=35%, season=20%
Model calibration35% raw model + 65% weighted form
Rows before report date12
Season rows before report date12
Report year2026
Profile rows used11
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP3.1
H3
R4
ER4
BB2
SO1
HR1
BF17
Pitches71

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB0
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB0
Hitting_battingOrder0
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced3
Pitching_ER1
Pitching_ERA3.65
Pitching_Flyouts0
Pitching_Groundouts2
Pitching_H1
Pitching_HBP0
Pitching_HR1
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.2
Pitching_Pitches13
Pitching_R1
Pitching_SO0
Pitching_Strikes9
Pitching_Wild Pitch0
Pitching_decisionBS
Pitching_pitchingOrder3
allPositionsPlayedP
gameID20260920_WAS@STL
game_typefull
mlbID680899
playerID680899
playerNameErik Tolman
posP
startedFalse
startingPositionP
teamWAS
teamID30
game_date2026-09-20
sl_k_percent24.0
sl_bb_percent10.0
sl_woba0.281
sl_xwoba0.255
sl_sweet_spot_percent24.2
sl_barrel_batted_rate3.0
sl_hard_hit_percent21.2
sl_whiff_percent28.4
sl_swing_percent54.5
sl_avg_best_speed70.24690125
sl_avg_hyper_speed92.269784688
Brad Lord (695418) · PITCHER · Setup Man · Team WAS
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 39
All-history rows before 20260921: 39

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB0.0000.0000.000Pitching_BB0.7950.000-0.7950.000
predicted_ER0.0000.0000.000Pitching_ER0.8970.000-0.8970.000
predicted_H0.0000.0000.000Pitching_H1.7441.000-1.744-1.000
predicted_IP1.1001.1001.100Pitching_InningsPitched1.8542.000-0.754-0.900
predicted_SO0.0000.0000.000Pitching_SO1.8973.000-1.897-3.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_form_blend
Tocurrent_json_final
Dominant Effectworse
Changed Metrics1
Boosted Metrics0
Deboosted Metrics1
Better Metrics0
Worse Metrics1
Biggest Boost-
Biggest Deboostpredicted_IP: 1.3333 -> 1.1000 (deboost -0.2333, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
2current_json_final10101-predicted_IP: 1.3333 -> 1.1000 (deboost -0.2333, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "pitcher",
  "player_id": "695418",
  "player_name": "Brad Lord",
  "position": "Setup Man",
  "team": "WAS",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 0.0,
        "predicted_ER": 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": 0.0,
        "predicted_ER": 0.0,
        "predicted_H": 0.0,
        "predicted_HR": 0.0,
        "predicted_IP": 1.1,
        "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.3333,
          "after": 1.1,
          "delta": -0.2333,
          "percent_delta": -0.175,
          "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.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": 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.1,
        "delta": -0.2333,
        "percent_delta": -0.175,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_form_blend

Pitcher model/profile expectation with Bayesian recent-form shrinkage

MetricValueDelta vs Prev Step
predicted_BB0.000-
predicted_ER0.000-
predicted_H0.000-
predicted_HR0.000-
predicted_IP1.333-
predicted_SO0.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 39
Reference playing time: 1.333
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.4557.0006.00011.0002.0004.0002.0007.71431.85710.85711.57140.28570.57140.2857
last_100.351018.1009.00016.00010.00018.0003.0004.41821.41820.49090.87270.54540.98180.1636
season0.203980.00035.00068.00031.00074.00010.0003.93751.23750.43750.85000.38750.92500.1250
Weighted Prediction From Real Data
MetricValue
predicted_BB0.6330
predicted_ER0.9900
predicted_ERA5.5202
predicted_H1.8320
predicted_HR0.3170
predicted_IP1.2000
predicted_SO1.3250
predicted_WHIP1.5273
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB0.00000.63300.3485model_form_blend
predicted_ER0.00000.99000.5451model_form_blend
predicted_ERA-5.52025.5202form_only
predicted_H0.00001.83201.0088model_form_blend
predicted_HR0.00000.31700.1745model_form_blend
predicted_IP1.10001.20001.2000model_form_blend
predicted_SO0.00001.32500.7296model_form_blend
predicted_WHIP-1.52731.5273form_only

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula45% last 5 + 35% last 10 + 20% season
Active form weightslast_5=45%, last_10=35%, season=20%
Model calibration35% raw model + 65% weighted form
Rows before report date39
Season rows before report date39
Report year2026
Profile rows used39
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP1.1
H0
R0
ER0
BB0
SO0
HR0
BF4
Pitches19

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB0
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB0
Hitting_battingOrder0
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced7
Pitching_ER0
Pitching_ERA3.94
Pitching_Flyouts0
Pitching_Groundouts1
Pitching_H1
Pitching_HBP1
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched2.0
Pitching_Pitches28
Pitching_R0
Pitching_SO3
Pitching_Strikes17
Pitching_Wild Pitch0
Pitching_pitchingOrder2
allPositionsPlayedP
gameID20260918_WAS@STL
game_typefull
mlbID695418
playerID695418
playerNameBrad Lord
posP
startedFalse
startingPositionP
teamWAS
teamID30
game_date2026-09-18
sl_k_percent21.4
sl_bb_percent9.0
sl_woba0.298
sl_xwoba0.306
sl_sweet_spot_percent27.7
sl_barrel_batted_rate6.1
sl_hard_hit_percent36.8
sl_whiff_percent19.4
sl_swing_percent49.9
sl_avg_best_speed75.906977857
sl_avg_hyper_speed93.789862455
Luis Perales (691384) · PITCHER · Middle Reliever (High Leverage) · Team WAS
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 5
All-history rows before 20260921: 5

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB1.0001.0001.000Pitching_BB2.2005.000-1.200-4.000
predicted_ER0.0000.0000.000Pitching_ER1.8000.000-1.8000.000
predicted_H2.0002.0002.000Pitching_H2.0000.0000.0002.000
predicted_IP1.0001.2001.000Pitching_InningsPitched1.8002.000-0.600-0.800
predicted_SO1.0001.0001.000Pitching_SO2.2002.000-1.200-1.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_form_blend
Tocurrent_json_final
Dominant Effectneutral
Changed Metrics0
Boosted Metrics0
Deboosted Metrics0
Better Metrics0
Worse Metrics0
Biggest Boost-
Biggest Deboost-
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
2current_json_final00000--Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "pitcher",
  "player_id": "691384",
  "player_name": "Luis Perales",
  "position": "Middle Reliever (High Leverage)",
  "team": "WAS",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 1.0,
        "predicted_ER": 0.0,
        "predicted_H": 2.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": 0.0,
        "predicted_H": 2.0,
        "predicted_HR": 0.0,
        "predicted_IP": 1.0,
        "predicted_R": 0.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": 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": 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": 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": 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"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_form_blend

Pitcher model/profile expectation with Bayesian recent-form shrinkage

MetricValueDelta vs Prev Step
predicted_BB1.000-
predicted_ER0.000-
predicted_H2.000-
predicted_HR0.000-
predicted_IP1.000-
predicted_SO1.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 5
Reference playing time: 1.000
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.4559.0009.00010.00011.00011.0003.0009.00002.33331.00001.11111.22221.22220.3333
last_100.3559.0009.00010.00011.00011.0003.0009.00002.33331.00001.11111.22221.22220.3333
season0.2059.0009.00010.00011.00011.0003.0009.00002.33331.00001.11111.22221.22220.3333
Weighted Prediction From Real Data
MetricValue
predicted_BB0.7100
predicted_ER0.7560
predicted_ERA5.7739
predicted_H1.1980
predicted_HR0.2340
predicted_IP1.1000
predicted_SO1.1930
predicted_WHIP1.6190
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB1.00000.71000.9012model_form_blend
predicted_ER0.00000.75600.2576model_form_blend
predicted_ERA-5.77395.7739form_only
predicted_H2.00001.19801.7268model_form_blend
predicted_HR0.00000.23400.0797model_form_blend
predicted_IP1.00001.10001.1000model_form_blend
predicted_SO1.00001.19301.0658model_form_blend
predicted_WHIP-1.61901.6190form_only

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula45% last 5 + 35% last 10 + 20% season
Active form weightslast_5=45%, last_10=35%, season=20%
Model calibration35% raw model + 65% weighted form
Rows before report date5
Season rows before report date5
Report year2026
Profile rows used5
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP1.2
H2
R0
ER0
BB1
SO1
HR0
BF6
Pitches23

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB0
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB0
Hitting_battingOrder0
Hitting_substitutionOrder0
Pitching_BB5
Pitching_Balk0
Pitching_Batters Faced10
Pitching_ER0
Pitching_ERA9.00
Pitching_Flyouts2
Pitching_Groundouts1
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners1
Pitching_Inherited Runners Scored0
Pitching_InningsPitched2.0
Pitching_Pitches49
Pitching_R0
Pitching_SO2
Pitching_Strikes25
Pitching_Wild Pitch0
Pitching_pitchingOrder5
allPositionsPlayedP
gameID20260916_PHI@WAS
game_typefull
mlbID691384
playerID691384
playerNameLuis Perales
posP
startedFalse
startingPositionP
teamWAS
teamID30
game_date2026-09-16
game_pk822680.0
sl_k_percent23.4
sl_bb_percent23.4
sl_woba0.427
sl_xwoba0.391
sl_sweet_spot_percent40.0
sl_barrel_batted_rate12.0
sl_hard_hit_percent44.0
sl_whiff_percent35.0
sl_swing_percent50.7
sv_pitch_count49.0
sv_outs_recorded_est6.0
sv_release_speed91.6734693877551
sv_release_spin_rate1916.244897959184
sv_effective_speed91.60204081632654
sv_launch_speed83.45555555555556
sv_launch_angle14.0
sv_woba_value3.5
sv_woba_denom10.0
sv_delta_run_exp0.374
sv_delta_home_win_exp0.041
sl_avg_best_speed78.130832308
sl_avg_hyper_speed94.4161372

Home Team: DET

Home Pitcher Deep Analysis

FieldValue
PitcherRiver Ryan
RoleStarter
Projection Sourceleague_average_stable_fallback
Savant Quality Score-
ESPN Rank-
Movement Available-
Primary Pitch-
Movement Score-
Avg Velo-
Avg Spin-
HB Inches-
IVB Inches-
Release Extension-
Pre IP0.2000
Pre ER1
Pre H5
Pre BB2
Pre SO2
Season ERA-
Season WHIP-
Role Avg IP-
Recent Avg IP-
Last Start IP-
Team Form Snapshot
{
  "method": "team_form_snapshot",
  "role": "pitcher",
  "team": {
    "team": "DET",
    "games": 156,
    "wins": 73,
    "losses": 83,
    "win_pct": 0.4679,
    "runs_scored": 697.0,
    "runs_allowed": 629.0,
    "run_differential": 68.0,
    "run_differential_per_game": 0.4359,
    "avg_runs_scored": 4.4679,
    "avg_runs_allowed": 4.0321,
    "offense_index": 0.9917,
    "defense_index": 1.1173,
    "current_streak": "L2",
    "recent": {
      "games": 10,
      "wins": 6,
      "losses": 4,
      "win_pct": 0.6,
      "avg_runs_scored": 5.6,
      "avg_runs_allowed": 4.3,
      "run_differential": 13.0
    },
    "available": true,
    "quality_score": 0.0609
  },
  "opponent": {
    "team": "WAS",
    "games": 156,
    "wins": 73,
    "losses": 83,
    "win_pct": 0.4679,
    "runs_scored": 798.0,
    "runs_allowed": 786.0,
    "run_differential": 12.0,
    "run_differential_per_game": 0.0769,
    "avg_runs_scored": 5.1154,
    "avg_runs_allowed": 5.0385,
    "offense_index": 1.1355,
    "defense_index": 0.8941,
    "current_streak": "L1",
    "recent": {
      "games": 10,
      "wins": 6,
      "losses": 4,
      "win_pct": 0.6,
      "avg_runs_scored": 4.8,
      "avg_runs_allowed": 4.4,
      "run_differential": 4.0
    },
    "available": true,
    "quality_score": 0.0171
  },
  "edges": {
    "quality_edge": 0.0438,
    "offense_edge": -0.0083,
    "opponent_offense_edge": 0.1355,
    "defense_strength": 0.1173,
    "opponent_defense_weakness": 0.1059,
    "recent_win_pct_edge": 0.0
  },
  "player_factors": {
    "ip": 0.9999,
    "run_prevention": 1.0078,
    "strikeout": 0.9905
  }
}
Recent Form Pitching
{
  "available": false,
  "reason": "No pitcher-specific recent-form block was stored for this row.",
  "display_fallback": "Use Player Form Blend windows for last-5, last-10, and season pitcher form."
}
Savant Pitch Movement Profile
{}
Player Form Blend
{
  "form_version": "player_form_v3_5_10_season",
  "method": "weighted_recent_form",
  "description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
  "weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "effective_weights": {},
  "shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 0.0,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.0,
    "prior_weight": 1.0
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "689981",
  "report_date": "20260921",
  "season_year": 2026,
  "rows_used": 0,
  "reference_playing_time": 0.1,
  "windows": {
    "last_5": {
      "games": 0,
      "totals": {
        "IP": 0.0,
        "ER": 0.0,
        "R": 0.0,
        "H": 0.0,
        "BB": 0.0,
        "SO": 0.0,
        "HR": 0.0,
        "BF": 0.0,
        "Pitches": 0.0
      },
      "per_game": {
        "IP": 0.0,
        "ER": 0.0,
        "R": 0.0,
        "H": 0.0,
        "BB": 0.0,
        "SO": 0.0,
        "HR": 0.0,
        "BF": 0.0,
        "Pitches": 0.0
      },
      "rates": {
        "ERA": null,
        "WHIP": null,
        "ER_per_IP": null,
        "H_per_IP": null,
        "BB_per_IP": null,
        "SO_per_IP": null,
        "HR_per_IP": null
      }
    },
    "last_10": {
      "games": 0,
      "totals": {
        "IP": 0.0,
        "ER": 0.0,
        "R": 0.0,
        "H": 0.0,
        "BB": 0.0,
        "SO": 0.0,
        "HR": 0.0,
        "BF": 0.0,
        "Pitches": 0.0
      },
      "per_game": {
        "IP": 0.0,
        "ER": 0.0,
        "R": 0.0,
        "H": 0.0,
        "BB": 0.0,
        "SO": 0.0,
        "HR": 0.0,
        "BF": 0.0,
        "Pitches": 0.0
      },
      "rates": {
        "ERA": null,
        "WHIP": null,
        "ER_per_IP": null,
        "H_per_IP": null,
        "BB_per_IP": null,
        "SO_per_IP": null,
        "HR_per_IP": null
      }
    },
    "season": {
      "games": 0,
      "totals": {
        "IP": 0.0,
        "ER": 0.0,
        "R": 0.0,
        "H": 0.0,
        "BB": 0.0,
        "SO": 0.0,
        "HR": 0.0,
        "BF": 0.0,
        "Pitches": 0.0
      },
      "per_game": {
        "IP": 0.0,
        "ER": 0.0,
        "R": 0.0,
        "H": 0.0,
        "BB": 0.0,
        "SO": 0.0,
        "HR": 0.0,
        "BF": 0.0,
        "Pitches": 0.0
      },
      "rates": {
        "ERA": null,
        "WHIP": null,
        "ER_per_IP": null,
        "H_per_IP": null,
        "BB_per_IP": null,
        "SO_per_IP": null,
        "HR_per_IP": null
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 0.1,
    "predicted_ER": 0.17,
    "predicted_H": 0.327,
    "predicted_BB": 0.125,
    "predicted_SO": 0.312,
    "predicted_HR": 0.05,
    "predicted_ERA": 4.5933,
    "predicted_WHIP": 1.3576
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.7725,
  "form_weight": 0.2275,
  "form_reliability": 0.0,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 0.0,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.0,
    "prior_weight": 1.0
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 0.1,
      "form": 0.1,
      "final": 0.1,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 1.0,
      "form": 0.17,
      "final": 0.8112,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 5.0,
      "form": 0.327,
      "final": 3.9369,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 2.0,
      "form": 0.125,
      "final": 1.5734,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 5.0,
      "form": 0.312,
      "final": 3.9335,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 0.0,
      "form": 0.05,
      "final": 0.0114,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 4.5933,
      "final": 4.5933,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 1.3576,
      "final": 1.3576,
      "source": "form_only"
    }
  }
}
Inning Pitch Details
{
  "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."
}
FieldValue
PitcherJacob Waguespack
RoleMiddle Reliever (High Leverage)
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score0.3071
ESPN Rank-
Movement AvailableTrue
Primary Pitch-
Movement Score-0.0684
Avg Velo88.6298
Avg Spin1978.0128
HB Inches0
IVB Inches0
Release Extension0
Pre IP3.2000
Pre ER0
Pre H0
Pre BB1
Pre SO3
Season ERA2.4733
Season WHIP0.8931
Role Avg IP1.3230
Recent Avg IP1.6000
Last Start IP0
Team Form Snapshot
{
  "method": "team_form_snapshot",
  "role": "pitcher",
  "team": {
    "team": "DET",
    "games": 156,
    "wins": 73,
    "losses": 83,
    "win_pct": 0.4679,
    "runs_scored": 697.0,
    "runs_allowed": 629.0,
    "run_differential": 68.0,
    "run_differential_per_game": 0.4359,
    "avg_runs_scored": 4.4679,
    "avg_runs_allowed": 4.0321,
    "offense_index": 0.9917,
    "defense_index": 1.1173,
    "current_streak": "L2",
    "recent": {
      "games": 10,
      "wins": 6,
      "losses": 4,
      "win_pct": 0.6,
      "avg_runs_scored": 5.6,
      "avg_runs_allowed": 4.3,
      "run_differential": 13.0
    },
    "available": true,
    "quality_score": 0.0609
  },
  "opponent": {
    "team": "WAS",
    "games": 156,
    "wins": 73,
    "losses": 83,
    "win_pct": 0.4679,
    "runs_scored": 798.0,
    "runs_allowed": 786.0,
    "run_differential": 12.0,
    "run_differential_per_game": 0.0769,
    "avg_runs_scored": 5.1154,
    "avg_runs_allowed": 5.0385,
    "offense_index": 1.1355,
    "defense_index": 0.8941,
    "current_streak": "L1",
    "recent": {
      "games": 10,
      "wins": 6,
      "losses": 4,
      "win_pct": 0.6,
      "avg_runs_scored": 4.8,
      "avg_runs_allowed": 4.4,
      "run_differential": 4.0
    },
    "available": true,
    "quality_score": 0.0171
  },
  "edges": {
    "quality_edge": 0.0438,
    "offense_edge": -0.0083,
    "opponent_offense_edge": 0.1355,
    "defense_strength": 0.1173,
    "opponent_defense_weakness": 0.1059,
    "recent_win_pct_edge": 0.0
  },
  "player_factors": {
    "ip": 0.9999,
    "run_prevention": 1.0078,
    "strikeout": 0.9905
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "621097",
    "profile": {
      "available": true,
      "pitcher_id": "621097",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 153.0,
        "k_percent": 17.2,
        "bb_percent": 9.8,
        "woba": 0.24,
        "xwoba": 0.272,
        "sweet_spot_percent": 25.4,
        "barrel_batted_rate": 4.2,
        "hard_hit_percent": 28.0,
        "avg_best_speed": 73.0624,
        "avg_hyper_speed": 92.8756,
        "whiff_percent": 24.9,
        "swing_percent": 47.0
      },
      "league_medians": {
        "pa": 135.0,
        "k_percent": 22.0,
        "bb_percent": 9.1,
        "woba": 0.316,
        "xwoba": 0.3117,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6659,
        "avg_hyper_speed": 93.9097,
        "whiff_percent": 25.0,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": 1.231,
        "command_and_miss": -0.3486,
        "regression_edge": -0.9143,
        "xwoba_edge": 1.1357,
        "barrel_edge": 0.6667,
        "hard_hit_edge": 1.4143,
        "whiff_edge": -0.0143,
        "bb_edge": -0.175,
        "pitch_design_score": -0.0684
      },
      "pitch_movement_profile": {
        "available": true,
        "pitcher_id": "621097",
        "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": 88.62978252715806,
          "release_spin_rate": 1978.012814184413,
          "spin_axis": null,
          "horizontal_break_inches": 0.0,
          "induced_vertical_break_inches": 0.0,
          "vertical_break_with_gravity_inches": null,
          "release_pos_x": null,
          "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": 88.62978252715806,
            "release_spin_rate": 1978.012814184413,
            "spin_axis": null,
            "horizontal_break_inches": 0.0,
            "induced_vertical_break_inches": 0.0,
            "vertical_break_with_gravity_inches": null,
            "release_pos_x": null,
            "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.6298,
          "release_spin_rate": 1978.0128,
          "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.0684,
          "horizontal_break_edge": 0.0,
          "induced_vertical_break_edge": 0.0,
          "extension_edge": 0.0,
          "velocity_edge": -0.4885,
          "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.3071,
      "sample_weight": 0.612,
      "run_prevention_factor": 0.9739,
      "strikeout_factor": 0.9829,
      "walk_factor": 1.0086,
      "homer_factor": 0.9119,
      "woba_minus_xwoba": -0.032,
      "regression_flag": "negative_pitcher_regression",
      "espn_rank": {
        "available": false,
        "player_id": "621097",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 0.0,
        "factor": 0.984,
        "adjusted": 0
      },
      "predicted_H": {
        "original": 1.0,
        "factor": 0.984,
        "adjusted": 1
      },
      "predicted_BB": {
        "original": 0.0,
        "factor": 1.0053,
        "adjusted": 0
      },
      "predicted_HR": {
        "original": 0.0,
        "factor": 0.9461,
        "adjusted": 0
      },
      "predicted_SO": {
        "original": 2.0,
        "factor": 0.9895,
        "adjusted": 2
      }
    }
  }
}
Recent Form Pitching
{
  "hitting": {
    "AB": 0,
    "H": 0,
    "HR": 0,
    "RBI": 0,
    "R": 0,
    "BB": 0,
    "SO": 0,
    "2B": 0,
    "3B": 0,
    "AVG": 0,
    "OBP": 0,
    "SLG": 0,
    "OPS": 0,
    "games_played": 0,
    "hot_streak": false,
    "cold_streak": true,
    "trend": "stable"
  },
  "pitching": {
    "IP": 13.2,
    "ER": 4,
    "H": 7,
    "BB": 6,
    "SO": 13,
    "HR": 1,
    "ERA": 2.6341463414634148,
    "WHIP": 0.951219512195122,
    "K9": 8.560975609756097,
    "HR9": 0.6585365853658537,
    "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-19T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": true,
  "pitcher_id": "621097",
  "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": 88.62978252715806,
    "release_spin_rate": 1978.012814184413,
    "spin_axis": null,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": null,
    "release_pos_x": null,
    "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": 88.62978252715806,
      "release_spin_rate": 1978.012814184413,
      "spin_axis": null,
      "horizontal_break_inches": 0.0,
      "induced_vertical_break_inches": 0.0,
      "vertical_break_with_gravity_inches": null,
      "release_pos_x": null,
      "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.6298,
    "release_spin_rate": 1978.0128,
    "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.0684,
    "horizontal_break_edge": 0.0,
    "induced_vertical_break_edge": 0.0,
    "extension_edge": 0.0,
    "velocity_edge": -0.4885,
    "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."
}
Player Form Blend
{
  "form_version": "player_form_v3_5_10_season",
  "method": "weighted_recent_form",
  "description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
  "weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "effective_weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 8.875,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.6396,
    "prior_weight": 0.3604
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "621097",
  "report_date": "20260921",
  "season_year": 2026,
  "rows_used": 33,
  "reference_playing_time": 3.667,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 8.0,
        "ER": 0.0,
        "R": 0.0,
        "H": 3.0,
        "BB": 2.0,
        "SO": 9.0,
        "HR": 0.0,
        "BF": 28.0,
        "Pitches": 97.0
      },
      "per_game": {
        "IP": 1.2,
        "ER": 0.0,
        "R": 0.0,
        "H": 0.6,
        "BB": 0.4,
        "SO": 1.8,
        "HR": 0.0,
        "BF": 5.6,
        "Pitches": 19.4
      },
      "rates": {
        "ERA": 0.0,
        "WHIP": 0.625,
        "ER_per_IP": 0.0,
        "H_per_IP": 0.375,
        "BB_per_IP": 0.25,
        "SO_per_IP": 1.125,
        "HR_per_IP": 0.0
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 13.2,
        "ER": 4.0,
        "R": 4.0,
        "H": 7.0,
        "BB": 6.0,
        "SO": 13.0,
        "HR": 1.0,
        "BF": 53.0,
        "Pitches": 186.0
      },
      "per_game": {
        "IP": 1.1,
        "ER": 0.4,
        "R": 0.4,
        "H": 0.7,
        "BB": 0.6,
        "SO": 1.3,
        "HR": 0.1,
        "BF": 5.3,
        "Pitches": 18.6
      },
      "rates": {
        "ERA": 2.6341,
        "WHIP": 0.9512,
        "ER_per_IP": 0.29268,
        "H_per_IP": 0.5122,
        "BB_per_IP": 0.43902,
        "SO_per_IP": 0.95122,
        "HR_per_IP": 0.07317
      }
    },
    "season": {
      "games": 33,
      "totals": {
        "IP": 43.2,
        "ER": 12.0,
        "R": 13.0,
        "H": 22.0,
        "BB": 17.0,
        "SO": 31.0,
        "HR": 6.0,
        "BF": 170.0,
        "Pitches": 620.0
      },
      "per_game": {
        "IP": 1.1,
        "ER": 0.3636,
        "R": 0.3939,
        "H": 0.6667,
        "BB": 0.5152,
        "SO": 0.9394,
        "HR": 0.1818,
        "BF": 5.1515,
        "Pitches": 18.7879
      },
      "rates": {
        "ERA": 2.4733,
        "WHIP": 0.8931,
        "ER_per_IP": 0.27481,
        "H_per_IP": 0.50382,
        "BB_per_IP": 0.38931,
        "SO_per_IP": 0.70992,
        "HR_per_IP": 0.1374
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 2.1,
    "predicted_ER": 0.646,
    "predicted_H": 1.455,
    "predicted_BB": 0.807,
    "predicted_SO": 2.19,
    "predicted_HR": 0.199,
    "predicted_ERA": 2.5615,
    "predicted_WHIP": 0.9963
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.5023,
  "form_weight": 0.4977,
  "form_reliability": 0.6396,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 8.875,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.6396,
    "prior_weight": 0.3604
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 3.2,
      "form": 2.1,
      "final": 3.0,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 0.0,
      "form": 0.646,
      "final": 0.3215,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 0.0,
      "form": 1.455,
      "final": 0.7242,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 1.0,
      "form": 0.807,
      "final": 0.9039,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 0.0,
      "form": 2.19,
      "final": 1.09,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 0.0,
      "form": 0.199,
      "final": 0.099,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 2.5615,
      "final": 2.5615,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 0.9963,
      "final": 0.9963,
      "source": "form_only"
    }
  }
}
Inning Pitch Details
{
  "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."
}
FieldValue
PitcherDrew Sommers
RoleMiddle Reliever (High Leverage)
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score0.8442
ESPN Rank-
Movement AvailableTrue
Primary Pitch-
Movement Score0.1359
Avg Velo92.2777
Avg Spin2188.8025
HB Inches0
IVB Inches0
Release Extension0
Pre IP1.1000
Pre ER0
Pre H0
Pre BB1
Pre SO2
Season ERA2.6053
Season WHIP1.0789
Role Avg IP0.9500
Recent Avg IP1.2670
Last Start IP0
Team Form Snapshot
{
  "method": "team_form_snapshot",
  "role": "pitcher",
  "team": {
    "team": "DET",
    "games": 156,
    "wins": 73,
    "losses": 83,
    "win_pct": 0.4679,
    "runs_scored": 697.0,
    "runs_allowed": 629.0,
    "run_differential": 68.0,
    "run_differential_per_game": 0.4359,
    "avg_runs_scored": 4.4679,
    "avg_runs_allowed": 4.0321,
    "offense_index": 0.9917,
    "defense_index": 1.1173,
    "current_streak": "L2",
    "recent": {
      "games": 10,
      "wins": 6,
      "losses": 4,
      "win_pct": 0.6,
      "avg_runs_scored": 5.6,
      "avg_runs_allowed": 4.3,
      "run_differential": 13.0
    },
    "available": true,
    "quality_score": 0.0609
  },
  "opponent": {
    "team": "WAS",
    "games": 156,
    "wins": 73,
    "losses": 83,
    "win_pct": 0.4679,
    "runs_scored": 798.0,
    "runs_allowed": 786.0,
    "run_differential": 12.0,
    "run_differential_per_game": 0.0769,
    "avg_runs_scored": 5.1154,
    "avg_runs_allowed": 5.0385,
    "offense_index": 1.1355,
    "defense_index": 0.8941,
    "current_streak": "L1",
    "recent": {
      "games": 10,
      "wins": 6,
      "losses": 4,
      "win_pct": 0.6,
      "avg_runs_scored": 4.8,
      "avg_runs_allowed": 4.4,
      "run_differential": 4.0
    },
    "available": true,
    "quality_score": 0.0171
  },
  "edges": {
    "quality_edge": 0.0438,
    "offense_edge": -0.0083,
    "opponent_offense_edge": 0.1355,
    "defense_strength": 0.1173,
    "opponent_defense_weakness": 0.1059,
    "recent_win_pct_edge": 0.0
  },
  "player_factors": {
    "ip": 0.9999,
    "run_prevention": 1.0078,
    "strikeout": 0.9905
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "805427",
    "profile": {
      "available": true,
      "pitcher_id": "805427",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 151.0,
        "k_percent": 36.0,
        "bb_percent": 8.1,
        "woba": 0.277,
        "xwoba": 0.227,
        "sweet_spot_percent": 25.3,
        "barrel_batted_rate": 2.3,
        "hard_hit_percent": 27.6,
        "avg_best_speed": 72.9262,
        "avg_hyper_speed": 92.33,
        "whiff_percent": 30.8,
        "swing_percent": 50.2
      },
      "league_medians": {
        "pa": 135.0,
        "k_percent": 22.0,
        "bb_percent": 9.1,
        "woba": 0.316,
        "xwoba": 0.3117,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6659,
        "avg_hyper_speed": 93.9097,
        "whiff_percent": 25.0,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": 1.6457,
        "command_and_miss": 1.24,
        "regression_edge": 1.4286,
        "xwoba_edge": 2.4214,
        "barrel_edge": 1.0889,
        "hard_hit_edge": 1.4714,
        "whiff_edge": 0.8286,
        "bb_edge": 0.25,
        "pitch_design_score": 0.1359
      },
      "pitch_movement_profile": {
        "available": true,
        "pitcher_id": "805427",
        "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": 92.27773706561672,
          "release_spin_rate": 2188.8025298396374,
          "spin_axis": null,
          "horizontal_break_inches": 0.0,
          "induced_vertical_break_inches": 0.0,
          "vertical_break_with_gravity_inches": null,
          "release_pos_x": null,
          "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": 92.27773706561672,
            "release_spin_rate": 2188.8025298396374,
            "spin_axis": null,
            "horizontal_break_inches": 0.0,
            "induced_vertical_break_inches": 0.0,
            "vertical_break_with_gravity_inches": null,
            "release_pos_x": null,
            "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.2777,
          "release_spin_rate": 2188.8025,
          "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.1359,
          "horizontal_break_edge": 0.0,
          "induced_vertical_break_edge": 0.0,
          "extension_edge": 0.0,
          "velocity_edge": 0.9707,
          "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.8442,
      "sample_weight": 0.604,
      "run_prevention_factor": 0.9282,
      "strikeout_factor": 1.0683,
      "walk_factor": 0.9879,
      "homer_factor": 0.868,
      "woba_minus_xwoba": 0.05,
      "regression_flag": "positive_pitcher_regression",
      "espn_rank": {
        "available": false,
        "player_id": "805427",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 0.0,
        "factor": 0.9566,
        "adjusted": 0
      },
      "predicted_H": {
        "original": 1.0,
        "factor": 0.9566,
        "adjusted": 1
      },
      "predicted_BB": {
        "original": 0.0,
        "factor": 0.9927,
        "adjusted": 0
      },
      "predicted_HR": {
        "original": 0.0,
        "factor": 0.9203,
        "adjusted": 0
      },
      "predicted_SO": {
        "original": 2.0,
        "factor": 1.0413,
        "adjusted": 2
      }
    }
  }
}
Recent Form Pitching
{
  "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": 5,
    "H": 11,
    "BB": 2,
    "SO": 16,
    "HR": 1,
    "ERA": 3.75,
    "WHIP": 1.0833333333333333,
    "K9": 12.0,
    "HR9": 0.75,
    "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"
}
Savant Pitch Movement Profile
{
  "available": true,
  "pitcher_id": "805427",
  "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": 92.27773706561672,
    "release_spin_rate": 2188.8025298396374,
    "spin_axis": null,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": null,
    "release_pos_x": null,
    "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": 92.27773706561672,
      "release_spin_rate": 2188.8025298396374,
      "spin_axis": null,
      "horizontal_break_inches": 0.0,
      "induced_vertical_break_inches": 0.0,
      "vertical_break_with_gravity_inches": null,
      "release_pos_x": null,
      "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.2777,
    "release_spin_rate": 2188.8025,
    "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.1359,
    "horizontal_break_edge": 0.0,
    "induced_vertical_break_edge": 0.0,
    "extension_edge": 0.0,
    "velocity_edge": 0.9707,
    "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."
}
Player Form Blend
{
  "form_version": "player_form_v3_5_10_season",
  "method": "weighted_recent_form",
  "description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
  "weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "effective_weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 7.723,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.607,
    "prior_weight": 0.393
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "805427",
  "report_date": "20260921",
  "season_year": 2026,
  "rows_used": 40,
  "reference_playing_time": 1.333,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 6.1,
        "ER": 0.0,
        "R": 2.0,
        "H": 5.0,
        "BB": 1.0,
        "SO": 8.0,
        "HR": 0.0,
        "BF": 27.0,
        "Pitches": 82.0
      },
      "per_game": {
        "IP": 1.1,
        "ER": 0.0,
        "R": 0.4,
        "H": 1.0,
        "BB": 0.2,
        "SO": 1.6,
        "HR": 0.0,
        "BF": 5.4,
        "Pitches": 16.4
      },
      "rates": {
        "ERA": 0.0,
        "WHIP": 0.9474,
        "ER_per_IP": 0.0,
        "H_per_IP": 0.78947,
        "BB_per_IP": 0.15789,
        "SO_per_IP": 1.26316,
        "HR_per_IP": 0.0
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 12.0,
        "ER": 5.0,
        "R": 7.0,
        "H": 11.0,
        "BB": 2.0,
        "SO": 16.0,
        "HR": 1.0,
        "BF": 52.0,
        "Pitches": 178.0
      },
      "per_game": {
        "IP": 1.1,
        "ER": 0.5,
        "R": 0.7,
        "H": 1.1,
        "BB": 0.2,
        "SO": 1.6,
        "HR": 0.1,
        "BF": 5.2,
        "Pitches": 17.8
      },
      "rates": {
        "ERA": 3.75,
        "WHIP": 1.0833,
        "ER_per_IP": 0.41667,
        "H_per_IP": 0.91667,
        "BB_per_IP": 0.16667,
        "SO_per_IP": 1.33333,
        "HR_per_IP": 0.08333
      }
    },
    "season": {
      "games": 40,
      "totals": {
        "IP": 38.0,
        "ER": 11.0,
        "R": 15.0,
        "H": 29.0,
        "BB": 12.0,
        "SO": 58.0,
        "HR": 3.0,
        "BF": 156.0,
        "Pitches": 587.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.275,
        "R": 0.375,
        "H": 0.725,
        "BB": 0.3,
        "SO": 1.45,
        "HR": 0.075,
        "BF": 3.9,
        "Pitches": 14.675
      },
      "rates": {
        "ERA": 2.6053,
        "WHIP": 1.0789,
        "ER_per_IP": 0.28947,
        "H_per_IP": 0.76316,
        "BB_per_IP": 0.31579,
        "SO_per_IP": 1.52632,
        "HR_per_IP": 0.07895
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 1.1,
    "predicted_ER": 0.419,
    "predicted_H": 1.149,
    "predicted_BB": 0.342,
    "predicted_SO": 1.527,
    "predicted_HR": 0.111,
    "predicted_ERA": 2.9181,
    "predicted_WHIP": 1.1534
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.516,
  "form_weight": 0.484,
  "form_reliability": 0.607,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 7.723,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.607,
    "prior_weight": 0.393
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 1.1,
      "form": 1.1,
      "final": 1.1,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 0.0,
      "form": 0.419,
      "final": 0.2028,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 0.0,
      "form": 1.149,
      "final": 0.5561,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 1.0,
      "form": 0.342,
      "final": 0.6816,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 2.0,
      "form": 1.527,
      "final": 1.7711,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 0.0,
      "form": 0.111,
      "final": 0.0537,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 2.9181,
      "final": 2.9181,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 1.1534,
      "final": 1.1534,
      "source": "form_only"
    }
  }
}
Inning Pitch Details
{
  "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."
}
FieldValue
PitcherKenley Jansen
RoleCloser
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score0.1311
ESPN Rank-
Movement AvailableTrue
Primary Pitch-
Movement Score0.1031
Avg Velo91.6926
Avg Spin2630.5760
HB Inches0
IVB Inches0
Release Extension0
Pre IP1.2000
Pre ER0
Pre H0
Pre BB0
Pre SO1
Season ERA2.9302
Season WHIP1.0465
Role Avg IP0.9150
Recent Avg IP0.8670
Last Start IP0
Team Form Snapshot
{
  "method": "team_form_snapshot",
  "role": "pitcher",
  "team": {
    "team": "DET",
    "games": 156,
    "wins": 73,
    "losses": 83,
    "win_pct": 0.4679,
    "runs_scored": 697.0,
    "runs_allowed": 629.0,
    "run_differential": 68.0,
    "run_differential_per_game": 0.4359,
    "avg_runs_scored": 4.4679,
    "avg_runs_allowed": 4.0321,
    "offense_index": 0.9917,
    "defense_index": 1.1173,
    "current_streak": "L2",
    "recent": {
      "games": 10,
      "wins": 6,
      "losses": 4,
      "win_pct": 0.6,
      "avg_runs_scored": 5.6,
      "avg_runs_allowed": 4.3,
      "run_differential": 13.0
    },
    "available": true,
    "quality_score": 0.0609
  },
  "opponent": {
    "team": "WAS",
    "games": 156,
    "wins": 73,
    "losses": 83,
    "win_pct": 0.4679,
    "runs_scored": 798.0,
    "runs_allowed": 786.0,
    "run_differential": 12.0,
    "run_differential_per_game": 0.0769,
    "avg_runs_scored": 5.1154,
    "avg_runs_allowed": 5.0385,
    "offense_index": 1.1355,
    "defense_index": 0.8941,
    "current_streak": "L1",
    "recent": {
      "games": 10,
      "wins": 6,
      "losses": 4,
      "win_pct": 0.6,
      "avg_runs_scored": 4.8,
      "avg_runs_allowed": 4.4,
      "run_differential": 4.0
    },
    "available": true,
    "quality_score": 0.0171
  },
  "edges": {
    "quality_edge": 0.0438,
    "offense_edge": -0.0083,
    "opponent_offense_edge": 0.1355,
    "defense_strength": 0.1173,
    "opponent_defense_weakness": 0.1059,
    "recent_win_pct_edge": 0.0
  },
  "player_factors": {
    "ip": 0.9999,
    "run_prevention": 1.0078,
    "strikeout": 0.9905
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "445276",
    "profile": {
      "available": true,
      "pitcher_id": "445276",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 166.0,
        "k_percent": 28.2,
        "bb_percent": 13.2,
        "woba": 0.268,
        "xwoba": 0.295,
        "sweet_spot_percent": 32.7,
        "barrel_batted_rate": 8.9,
        "hard_hit_percent": 36.6,
        "avg_best_speed": 78.4199,
        "avg_hyper_speed": 93.767,
        "whiff_percent": 26.5,
        "swing_percent": 48.9
      },
      "league_medians": {
        "pa": 135.0,
        "k_percent": 22.0,
        "bb_percent": 9.1,
        "woba": 0.316,
        "xwoba": 0.3117,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6659,
        "avg_hyper_speed": 93.9097,
        "whiff_percent": 25.0,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": 0.3509,
        "command_and_miss": 0.2686,
        "regression_edge": -0.7714,
        "xwoba_edge": 0.4786,
        "barrel_edge": -0.3778,
        "hard_hit_edge": 0.1857,
        "whiff_edge": 0.2143,
        "bb_edge": -1.025,
        "pitch_design_score": 0.1031
      },
      "pitch_movement_profile": {
        "available": true,
        "pitcher_id": "445276",
        "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": 91.69261825252114,
          "release_spin_rate": 2630.576004382536,
          "spin_axis": null,
          "horizontal_break_inches": 0.0,
          "induced_vertical_break_inches": 0.0,
          "vertical_break_with_gravity_inches": null,
          "release_pos_x": null,
          "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": 91.69261825252114,
            "release_spin_rate": 2630.576004382536,
            "spin_axis": null,
            "horizontal_break_inches": 0.0,
            "induced_vertical_break_inches": 0.0,
            "vertical_break_with_gravity_inches": null,
            "release_pos_x": null,
            "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.6926,
          "release_spin_rate": 2630.576,
          "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.1031,
          "horizontal_break_edge": 0.0,
          "induced_vertical_break_edge": 0.0,
          "extension_edge": 0.0,
          "velocity_edge": 0.7367,
          "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.664,
      "run_prevention_factor": 0.9889,
      "strikeout_factor": 1.0292,
      "walk_factor": 1.0544,
      "homer_factor": 1.0056,
      "woba_minus_xwoba": -0.027,
      "regression_flag": "neutral",
      "espn_rank": {
        "available": false,
        "player_id": "445276",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 0.0,
        "factor": 0.9926,
        "adjusted": 0
      },
      "predicted_H": {
        "original": 0.0,
        "factor": 0.9926,
        "adjusted": 0
      },
      "predicted_BB": {
        "original": 1.0,
        "factor": 1.0361,
        "adjusted": 1
      },
      "predicted_HR": {
        "original": 0.0,
        "factor": 1.0037,
        "adjusted": 0
      },
      "predicted_SO": {
        "original": 2.0,
        "factor": 1.0194,
        "adjusted": 2
      }
    }
  }
}
Recent Form Pitching
{
  "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": 0,
    "H": 2,
    "BB": 3,
    "SO": 9,
    "HR": 0,
    "ERA": 0.0,
    "WHIP": 0.576923076923077,
    "K9": 9.346153846153847,
    "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-18T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": true,
  "pitcher_id": "445276",
  "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": 91.69261825252114,
    "release_spin_rate": 2630.576004382536,
    "spin_axis": null,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": null,
    "release_pos_x": null,
    "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": 91.69261825252114,
      "release_spin_rate": 2630.576004382536,
      "spin_axis": null,
      "horizontal_break_inches": 0.0,
      "induced_vertical_break_inches": 0.0,
      "vertical_break_with_gravity_inches": null,
      "release_pos_x": null,
      "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.6926,
    "release_spin_rate": 2630.576,
    "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.1031,
    "horizontal_break_edge": 0.0,
    "induced_vertical_break_edge": 0.0,
    "extension_edge": 0.0,
    "velocity_edge": 0.7367,
    "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."
}
Player Form Blend
{
  "form_version": "player_form_v3_5_10_season",
  "method": "weighted_recent_form",
  "description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
  "weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "effective_weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 8.74,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.6361,
    "prior_weight": 0.3639
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "445276",
  "report_date": "20260921",
  "season_year": 2026,
  "rows_used": 47,
  "reference_playing_time": 1.333,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 4.1,
        "ER": 0.0,
        "R": 0.0,
        "H": 0.0,
        "BB": 2.0,
        "SO": 5.0,
        "HR": 0.0,
        "BF": 14.0,
        "Pitches": 57.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.0,
        "R": 0.0,
        "H": 0.0,
        "BB": 0.4,
        "SO": 1.0,
        "HR": 0.0,
        "BF": 2.8,
        "Pitches": 11.4
      },
      "rates": {
        "ERA": 0.0,
        "WHIP": 0.4615,
        "ER_per_IP": 0.0,
        "H_per_IP": 0.0,
        "BB_per_IP": 0.46154,
        "SO_per_IP": 1.15385,
        "HR_per_IP": 0.0
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 8.2,
        "ER": 0.0,
        "R": 1.0,
        "H": 2.0,
        "BB": 3.0,
        "SO": 9.0,
        "HR": 0.0,
        "BF": 30.0,
        "Pitches": 127.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.0,
        "R": 0.1,
        "H": 0.2,
        "BB": 0.3,
        "SO": 0.9,
        "HR": 0.0,
        "BF": 3.0,
        "Pitches": 12.7
      },
      "rates": {
        "ERA": 0.0,
        "WHIP": 0.5769,
        "ER_per_IP": 0.0,
        "H_per_IP": 0.23077,
        "BB_per_IP": 0.34615,
        "SO_per_IP": 1.03846,
        "HR_per_IP": 0.0
      }
    },
    "season": {
      "games": 47,
      "totals": {
        "IP": 43.0,
        "ER": 14.0,
        "R": 16.0,
        "H": 23.0,
        "BB": 22.0,
        "SO": 49.0,
        "HR": 6.0,
        "BF": 172.0,
        "Pitches": 692.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.2979,
        "R": 0.3404,
        "H": 0.4894,
        "BB": 0.4681,
        "SO": 1.0426,
        "HR": 0.1277,
        "BF": 3.6596,
        "Pitches": 14.7234
      },
      "rates": {
        "ERA": 2.9302,
        "WHIP": 1.0465,
        "ER_per_IP": 0.32558,
        "H_per_IP": 0.53488,
        "BB_per_IP": 0.51163,
        "SO_per_IP": 1.13953,
        "HR_per_IP": 0.13953
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 1.0,
    "predicted_ER": 0.255,
    "predicted_H": 0.535,
    "predicted_BB": 0.461,
    "predicted_SO": 1.174,
    "predicted_HR": 0.081,
    "predicted_ERA": 2.0443,
    "predicted_WHIP": 0.8877
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.5037,
  "form_weight": 0.4963,
  "form_reliability": 0.6361,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 8.74,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.6361,
    "prior_weight": 0.3639
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 1.1,
      "form": 1.0,
      "final": 1.2,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 0.0,
      "form": 0.255,
      "final": 0.1265,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 0.0,
      "form": 0.535,
      "final": 0.2655,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 0.0,
      "form": 0.461,
      "final": 0.2288,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 1.0,
      "form": 1.174,
      "final": 1.0863,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 0.0,
      "form": 0.081,
      "final": 0.0402,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 2.0443,
      "final": 2.0443,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 0.8877,
      "final": 0.8877,
      "source": "form_only"
    }
  }
}
Inning Pitch Details
{
  "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."
}
FieldValue
PitcherTyler Holton
RoleSetup Man
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score0.1653
ESPN Rank-
Movement AvailableTrue
Primary Pitch-
Movement Score-0.1799
Avg Velo86.6378
Avg Spin2230.1741
HB Inches0
IVB Inches0
Release Extension0
Pre IP1.2000
Pre ER3
Pre H3
Pre BB0
Pre SO1
Season ERA2.7757
Season WHIP1.2196
Role Avg IP1.0910
Recent Avg IP1.4670
Last Start IP0
Team Form Snapshot
{
  "method": "team_form_snapshot",
  "role": "pitcher",
  "team": {
    "team": "DET",
    "games": 156,
    "wins": 73,
    "losses": 83,
    "win_pct": 0.4679,
    "runs_scored": 697.0,
    "runs_allowed": 629.0,
    "run_differential": 68.0,
    "run_differential_per_game": 0.4359,
    "avg_runs_scored": 4.4679,
    "avg_runs_allowed": 4.0321,
    "offense_index": 0.9917,
    "defense_index": 1.1173,
    "current_streak": "L2",
    "recent": {
      "games": 10,
      "wins": 6,
      "losses": 4,
      "win_pct": 0.6,
      "avg_runs_scored": 5.6,
      "avg_runs_allowed": 4.3,
      "run_differential": 13.0
    },
    "available": true,
    "quality_score": 0.0609
  },
  "opponent": {
    "team": "WAS",
    "games": 156,
    "wins": 73,
    "losses": 83,
    "win_pct": 0.4679,
    "runs_scored": 798.0,
    "runs_allowed": 786.0,
    "run_differential": 12.0,
    "run_differential_per_game": 0.0769,
    "avg_runs_scored": 5.1154,
    "avg_runs_allowed": 5.0385,
    "offense_index": 1.1355,
    "defense_index": 0.8941,
    "current_streak": "L1",
    "recent": {
      "games": 10,
      "wins": 6,
      "losses": 4,
      "win_pct": 0.6,
      "avg_runs_scored": 4.8,
      "avg_runs_allowed": 4.4,
      "run_differential": 4.0
    },
    "available": true,
    "quality_score": 0.0171
  },
  "edges": {
    "quality_edge": 0.0438,
    "offense_edge": -0.0083,
    "opponent_offense_edge": 0.1355,
    "defense_strength": 0.1173,
    "opponent_defense_weakness": 0.1059,
    "recent_win_pct_edge": 0.0
  },
  "player_factors": {
    "ip": 0.9999,
    "run_prevention": 1.0078,
    "strikeout": 0.9905
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "663947",
    "profile": {
      "available": true,
      "pitcher_id": "663947",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 284.0,
        "k_percent": 18.6,
        "bb_percent": 5.7,
        "woba": 0.314,
        "xwoba": 0.298,
        "sweet_spot_percent": 31.2,
        "barrel_batted_rate": 5.5,
        "hard_hit_percent": 37.6,
        "avg_best_speed": 75.9447,
        "avg_hyper_speed": 93.5855,
        "whiff_percent": 23.7,
        "swing_percent": 47.0
      },
      "league_medians": {
        "pa": 135.0,
        "k_percent": 22.0,
        "bb_percent": 9.1,
        "woba": 0.316,
        "xwoba": 0.3117,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6659,
        "avg_hyper_speed": 93.9097,
        "whiff_percent": 25.0,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": 0.2919,
        "command_and_miss": -0.1136,
        "regression_edge": 0.4571,
        "xwoba_edge": 0.3929,
        "barrel_edge": 0.3778,
        "hard_hit_edge": 0.0429,
        "whiff_edge": -0.1857,
        "bb_edge": 0.85,
        "pitch_design_score": -0.1799
      },
      "pitch_movement_profile": {
        "available": true,
        "pitcher_id": "663947",
        "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": 86.6378160898599,
          "release_spin_rate": 2230.1740649265057,
          "spin_axis": null,
          "horizontal_break_inches": 0.0,
          "induced_vertical_break_inches": 0.0,
          "vertical_break_with_gravity_inches": null,
          "release_pos_x": null,
          "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": 86.6378160898599,
            "release_spin_rate": 2230.1740649265057,
            "spin_axis": null,
            "horizontal_break_inches": 0.0,
            "induced_vertical_break_inches": 0.0,
            "vertical_break_with_gravity_inches": null,
            "release_pos_x": null,
            "release_pos_z": null,
            "release_extension": 0.0,
            "arm_angle": 0.0,
            "whiff_percent": 0.0,
            "xwoba": 0.0,
            "hard_hit_percent": 0.0
          }
        ],
        "summary": {
          "release_speed": 86.6378,
          "release_spin_rate": 2230.1741,
          "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.1799,
          "horizontal_break_edge": 0.0,
          "induced_vertical_break_edge": 0.0,
          "extension_edge": 0.0,
          "velocity_edge": -1.2853,
          "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.1653,
      "sample_weight": 1.0,
      "run_prevention_factor": 0.986,
      "strikeout_factor": 0.9731,
      "walk_factor": 0.932,
      "homer_factor": 0.9563,
      "woba_minus_xwoba": 0.016,
      "regression_flag": "neutral",
      "espn_rank": {
        "available": false,
        "player_id": "663947",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 0.0,
        "factor": 0.986,
        "adjusted": 0
      },
      "predicted_H": {
        "original": 1.0,
        "factor": 0.986,
        "adjusted": 1
      },
      "predicted_BB": {
        "original": 0.0,
        "factor": 0.932,
        "adjusted": 0
      },
      "predicted_HR": {
        "original": 0.0,
        "factor": 0.9563,
        "adjusted": 0
      },
      "predicted_SO": {
        "original": 2.0,
        "factor": 0.9731,
        "adjusted": 2
      }
    }
  }
}
Recent Form Pitching
{
  "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.2,
    "ER": 1,
    "H": 8,
    "BB": 3,
    "SO": 7,
    "HR": 0,
    "ERA": 0.7714285714285715,
    "WHIP": 0.942857142857143,
    "K9": 5.4,
    "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-16T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": true,
  "pitcher_id": "663947",
  "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": 86.6378160898599,
    "release_spin_rate": 2230.1740649265057,
    "spin_axis": null,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": null,
    "release_pos_x": null,
    "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": 86.6378160898599,
      "release_spin_rate": 2230.1740649265057,
      "spin_axis": null,
      "horizontal_break_inches": 0.0,
      "induced_vertical_break_inches": 0.0,
      "vertical_break_with_gravity_inches": null,
      "release_pos_x": null,
      "release_pos_z": null,
      "release_extension": 0.0,
      "arm_angle": 0.0,
      "whiff_percent": 0.0,
      "xwoba": 0.0,
      "hard_hit_percent": 0.0
    }
  ],
  "summary": {
    "release_speed": 86.6378,
    "release_spin_rate": 2230.1741,
    "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.1799,
    "horizontal_break_edge": 0.0,
    "induced_vertical_break_edge": 0.0,
    "extension_edge": 0.0,
    "velocity_edge": -1.2853,
    "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."
}
Player Form Blend
{
  "form_version": "player_form_v3_5_10_season",
  "method": "weighted_recent_form",
  "description": "Legacy 5/10/season recent form with Bayesian league-prior shrinkage",
  "weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "effective_weights": {
    "last_5": 0.45,
    "last_10": 0.35,
    "season": 0.2
  },
  "shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 14.498,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.7436,
    "prior_weight": 0.2564
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "663947",
  "report_date": "20260921",
  "season_year": 2026,
  "rows_used": 65,
  "reference_playing_time": 1.333,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 7.1,
        "ER": 1.0,
        "R": 1.0,
        "H": 4.0,
        "BB": 1.0,
        "SO": 4.0,
        "HR": 0.0,
        "BF": 26.0,
        "Pitches": 99.0
      },
      "per_game": {
        "IP": 1.1,
        "ER": 0.2,
        "R": 0.2,
        "H": 0.8,
        "BB": 0.2,
        "SO": 0.8,
        "HR": 0.0,
        "BF": 5.2,
        "Pitches": 19.8
      },
      "rates": {
        "ERA": 1.2273,
        "WHIP": 0.6818,
        "ER_per_IP": 0.13636,
        "H_per_IP": 0.54545,
        "BB_per_IP": 0.13636,
        "SO_per_IP": 0.54545,
        "HR_per_IP": 0.0
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 11.2,
        "ER": 1.0,
        "R": 1.0,
        "H": 8.0,
        "BB": 3.0,
        "SO": 7.0,
        "HR": 0.0,
        "BF": 45.0,
        "Pitches": 165.0
      },
      "per_game": {
        "IP": 1.1,
        "ER": 0.1,
        "R": 0.1,
        "H": 0.8,
        "BB": 0.3,
        "SO": 0.7,
        "HR": 0.0,
        "BF": 4.5,
        "Pitches": 16.5
      },
      "rates": {
        "ERA": 0.7714,
        "WHIP": 0.9429,
        "ER_per_IP": 0.08571,
        "H_per_IP": 0.68571,
        "BB_per_IP": 0.25714,
        "SO_per_IP": 0.6,
        "HR_per_IP": 0.0
      }
    },
    "season": {
      "games": 65,
      "totals": {
        "IP": 71.1,
        "ER": 22.0,
        "R": 27.0,
        "H": 70.0,
        "BB": 17.0,
        "SO": 55.0,
        "HR": 8.0,
        "BF": 296.0,
        "Pitches": 1107.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.3385,
        "R": 0.4154,
        "H": 1.0769,
        "BB": 0.2615,
        "SO": 0.8462,
        "HR": 0.1231,
        "BF": 4.5538,
        "Pitches": 17.0308
      },
      "rates": {
        "ERA": 2.7757,
        "WHIP": 1.2196,
        "ER_per_IP": 0.30841,
        "H_per_IP": 0.98131,
        "BB_per_IP": 0.23832,
        "SO_per_IP": 0.77103,
        "HR_per_IP": 0.11215
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 1.1,
    "predicted_ER": 0.314,
    "predicted_H": 0.974,
    "predicted_BB": 0.314,
    "predicted_SO": 0.89,
    "predicted_HR": 0.071,
    "predicted_ERA": 2.202,
    "predicted_WHIP": 1.003
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.4583,
  "form_weight": 0.5417,
  "form_reliability": 0.7436,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 14.498,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.7436,
    "prior_weight": 0.2564
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 1.1,
      "form": 1.1,
      "final": 1.1,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 3.0,
      "form": 0.314,
      "final": 1.5451,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 3.0,
      "form": 0.974,
      "final": 1.9026,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 0.0,
      "form": 0.314,
      "final": 0.1701,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 1.0,
      "form": 0.89,
      "final": 0.9404,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 0.0,
      "form": 0.071,
      "final": 0.0385,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 2.202,
      "final": 2.202,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 1.003,
      "final": 1.003,
      "source": "form_only"
    }
  }
}
Inning Pitch Details
{
  "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."
}
Kevin McGonigle (805808) · BATTER · DH · Team DET
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 669
All-history rows before 20260921: 669
System season_avg: 0.2770
Data season_avg (2026 season-to-date): 0.2820
Diff (system - data): -0.0050
System opponent_avg: 0.2770

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1760.0000.000Hitting_2B0.1870.000-0.1870.000
predicted_3B0.0340.0000.000Hitting_3B0.0280.000-0.0280.000
predicted_AB3.8514.0004.000Hitting_AB3.9544.0000.0460.000
predicted_AVG0.2770.2500.250Hitting_AVG0.2820.000-0.0320.250
predicted_BB0.6221.0001.000Hitting_BB0.6261.0000.3740.000
predicted_CS-0.0000.000BaseRunning_CS0.0250.000-0.0250.000
predicted_H1.0681.0001.000Hitting_H1.1150.000-0.1151.000
predicted_HR0.1150.0000.000Hitting_HR0.1230.000-0.1230.000
predicted_OBP0.3780.4000.400Hitting_OBP0.3810.2000.0190.200
predicted_R0.6281.0001.000Hitting_R0.6560.0000.3441.000
predicted_RBI0.4731.0001.000Hitting_RBI0.4950.0000.5051.000
predicted_SLG0.4300.2500.250Hitting_SLG0.4370.000-0.1870.250
predicted_SO0.6010.0000.000Hitting_SO0.6131.000-0.613-1.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics11
Boosted Metrics7
Deboosted Metrics4
Better Metrics8
Worse Metrics3
Biggest Boostpredicted_RBI: 0.4730 -> 1.0000 (boost 0.5270, better)
Biggest Deboostpredicted_SO: 0.6010 -> 0.0000 (deboost -0.6010, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend44040predicted_RBI: 0.4730 -> 0.5447 (boost 0.0717, 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.
3team_form_snapshot11010predicted_OBP: 0.3895 -> 0.3950 (boost 0.0055, better)-Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling84435predicted_RBI: 0.5528 -> 1.0000 (boost 0.4472, better)predicted_2B: 0.1550 -> 0.0000 (deboost -0.1550, worse)AB rounded to 4 (raw=3.86), rates preserved: AVG=0.291 HR/AB=0.027
6consistency_constraints11010predicted_R: 0.6129 -> 1.0000 (boost 0.3871, better)-Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine52332predicted_2B: 0.0000 -> 0.1659 (boost 0.1659, 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
8lineup_integer_allocation52332predicted_RBI: 0.4410 -> 1.0000 (boost 0.5590, better)predicted_SO: 0.6092 -> 0.0000 (deboost -0.6092, better)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context41304predicted_SO: 0.0000 -> 1.0000 (boost 1.0000, worse)predicted_SLG: 0.4451 -> 0.3900 (deboost -0.0551, worse)Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10simulation_box_score_reference10110-predicted_SO: 1.0000 -> 0.0000 (deboost -1.0000, better)Attached simulation box score without overwriting model prediction
11current_json_final33030predicted_SLG: 0.3900 -> 0.4451 (boost 0.0551, better)-Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "805808",
  "player_name": "Kevin McGonigle",
  "position": "DH",
  "team": "DET",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "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": 3.851,
        "predicted_AVG": 0.277,
        "predicted_BB": 0.622,
        "predicted_H": 1.068,
        "predicted_HR": 0.115,
        "predicted_OBP": 0.378,
        "predicted_R": 0.628,
        "predicted_RBI": 0.473,
        "predicted_SLG": 0.43,
        "predicted_SO": 0.601
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.155,
        "predicted_3B": 0.0611,
        "predicted_AB": 3.8584,
        "predicted_AVG": 0.2882,
        "predicted_BB": 0.6618,
        "predicted_H": 1.1126,
        "predicted_HBP": 0.013,
        "predicted_HR": 0.1045,
        "predicted_OBP": 0.3895,
        "predicted_R": 0.6039,
        "predicted_RBI": 0.5447,
        "predicted_SLG": 0.4412,
        "predicted_SO": 0.5888
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.176,
          "after": 0.155,
          "delta": -0.021,
          "percent_delta": -0.1193,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.034,
          "after": 0.0611,
          "delta": 0.0271,
          "percent_delta": 0.7971,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 3.851,
          "after": 3.8584,
          "delta": 0.0074,
          "percent_delta": 0.0019,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.277,
          "after": 0.2882,
          "delta": 0.0112,
          "percent_delta": 0.0404,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.622,
          "after": 0.6618,
          "delta": 0.0398,
          "percent_delta": 0.064,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 1.068,
          "after": 1.1126,
          "delta": 0.0446,
          "percent_delta": 0.0418,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.115,
          "after": 0.1045,
          "delta": -0.0105,
          "percent_delta": -0.0913,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.378,
          "after": 0.3895,
          "delta": 0.0115,
          "percent_delta": 0.0304,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.628,
          "after": 0.6039,
          "delta": -0.0241,
          "percent_delta": -0.0384,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.473,
          "after": 0.5447,
          "delta": 0.0717,
          "percent_delta": 0.1516,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.43,
          "after": 0.4412,
          "delta": 0.0112,
          "percent_delta": 0.026,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.601,
          "after": 0.5888,
          "delta": -0.0122,
          "percent_delta": -0.0203,
          "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_RBI",
          "before": 0.473,
          "after": 0.5447,
          "delta": 0.0717,
          "percent_delta": 0.1516,
          "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": 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.155,
        "predicted_3B": 0.0611,
        "predicted_AB": 3.8584,
        "predicted_AVG": 0.2911,
        "predicted_BB": 0.6625,
        "predicted_H": 1.1231,
        "predicted_HBP": 0.013,
        "predicted_HR": 0.1057,
        "predicted_OBP": 0.395,
        "predicted_R": 0.6129,
        "predicted_RBI": 0.5528,
        "predicted_SLG": 0.4451,
        "predicted_SO": 0.5882
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.155,
          "after": 0.155,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.0611,
          "after": 0.0611,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 3.8584,
          "after": 3.8584,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2882,
          "after": 0.2911,
          "delta": 0.0029,
          "percent_delta": 0.0101,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.6618,
          "after": 0.6625,
          "delta": 0.0007,
          "percent_delta": 0.0011,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 1.1126,
          "after": 1.1231,
          "delta": 0.0105,
          "percent_delta": 0.0094,
          "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.1045,
          "after": 0.1057,
          "delta": 0.0012,
          "percent_delta": 0.0115,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3895,
          "after": 0.395,
          "delta": 0.0055,
          "percent_delta": 0.0141,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.6039,
          "after": 0.6129,
          "delta": 0.009,
          "percent_delta": 0.0149,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5447,
          "after": 0.5528,
          "delta": 0.0081,
          "percent_delta": 0.0149,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4412,
          "after": 0.4451,
          "delta": 0.0039,
          "percent_delta": 0.0088,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.5888,
          "after": 0.5882,
          "delta": -0.0006,
          "percent_delta": -0.001,
          "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.3895,
          "after": 0.395,
          "delta": 0.0055,
          "percent_delta": 0.0141,
          "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.86), rates preserved: AVG=0.291 HR/AB=0.027",
      "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.155,
          "after": 0.0,
          "delta": -0.155,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0611,
          "after": 0.0,
          "delta": -0.0611,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AB",
          "before": 3.8584,
          "after": 4.0,
          "delta": 0.1416,
          "percent_delta": 0.0367,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.6625,
          "after": 1.0,
          "delta": 0.3375,
          "percent_delta": 0.5094,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.1231,
          "after": 1.0,
          "delta": -0.1231,
          "percent_delta": -0.1096,
          "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.1057,
          "after": 0.0,
          "delta": -0.1057,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5528,
          "after": 1.0,
          "delta": 0.4472,
          "percent_delta": 0.809,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.5882,
          "after": 1.0,
          "delta": 0.4118,
          "percent_delta": 0.7001,
          "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.5528,
          "after": 1.0,
          "delta": 0.4472,
          "percent_delta": 0.809,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_2B",
          "before": 0.155,
          "after": 0.0,
          "delta": -0.155,
          "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": 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.6129,
          "after": 1.0,
          "delta": 0.3871,
          "percent_delta": 0.6316,
          "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.6129,
          "after": 1.0,
          "delta": 0.3871,
          "percent_delta": 0.6316,
          "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.1659,
        "predicted_3B": 0.0341,
        "predicted_BB": 0.5598,
        "predicted_H": 0.9635,
        "predicted_HR": 0.1092,
        "predicted_RBI": 0.441,
        "predicted_SO": 0.6092
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1659,
          "delta": 0.1659,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0341,
          "delta": 0.0341,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 1.0,
          "after": 0.5598,
          "delta": -0.4402,
          "percent_delta": -0.4402,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.9635,
          "delta": -0.0365,
          "percent_delta": -0.0365,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1092,
          "delta": 0.1092,
          "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.6092,
          "delta": -0.3908,
          "percent_delta": -0.3908,
          "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.0,
          "after": 0.1659,
          "delta": 0.1659,
          "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": 4.0,
        "predicted_BB": 1.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.1659,
          "after": 0.0,
          "delta": -0.1659,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0341,
          "after": 0.0,
          "delta": -0.0341,
          "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.5598,
          "after": 1.0,
          "delta": 0.4402,
          "percent_delta": 0.7864,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.9635,
          "after": 1.0,
          "delta": 0.0365,
          "percent_delta": 0.0379,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.1092,
          "after": 0.0,
          "delta": -0.1092,
          "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.441,
          "after": 1.0,
          "delta": 0.559,
          "percent_delta": 1.2676,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.6092,
          "after": 0.0,
          "delta": -0.6092,
          "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_RBI",
          "before": 0.441,
          "after": 1.0,
          "delta": 0.559,
          "percent_delta": 1.2676,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 0.6092,
          "after": 0.0,
          "delta": -0.6092,
          "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.246,
        "predicted_BB": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.346,
        "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.2911,
          "after": 0.246,
          "delta": -0.0451,
          "percent_delta": -0.1549,
          "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.395,
          "after": 0.346,
          "delta": -0.049,
          "percent_delta": -0.1241,
          "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.4451,
          "after": 0.39,
          "delta": -0.0551,
          "percent_delta": -0.1238,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "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": 1,
        "deboosted_metrics": 3,
        "better_metrics": 0,
        "worse_metrics": 4,
        "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": {
          "metric": "predicted_SLG",
          "before": 0.4451,
          "after": 0.39,
          "delta": -0.0551,
          "percent_delta": -0.1238,
          "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": 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": 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_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": 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.2911,
        "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.395,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.4451,
        "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.246,
          "after": 0.2911,
          "delta": 0.0451,
          "percent_delta": 0.1832,
          "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.346,
          "after": 0.395,
          "delta": 0.049,
          "percent_delta": 0.1415,
          "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.39,
          "after": 0.4451,
          "delta": 0.0551,
          "percent_delta": 0.1413,
          "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.39,
          "after": 0.4451,
          "delta": 0.0551,
          "percent_delta": 0.1413,
          "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": 3.851,
        "after": 4.0,
        "delta": 0.149,
        "percent_delta": 0.0387,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.277,
        "after": 0.2911,
        "delta": 0.0141,
        "percent_delta": 0.0509,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.622,
        "after": 1.0,
        "delta": 0.378,
        "percent_delta": 0.6077,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 1.068,
        "after": 1.0,
        "delta": -0.068,
        "percent_delta": -0.0637,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.115,
        "after": 0.0,
        "delta": -0.115,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.378,
        "after": 0.395,
        "delta": 0.017,
        "percent_delta": 0.045,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.628,
        "after": 1.0,
        "delta": 0.372,
        "percent_delta": 0.5924,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.473,
        "after": 1.0,
        "delta": 0.527,
        "percent_delta": 1.1142,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.43,
        "after": 0.4451,
        "delta": 0.0151,
        "percent_delta": 0.0351,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.601,
        "after": 0.0,
        "delta": -0.601,
        "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_RBI",
        "before": 0.473,
        "after": 1.0,
        "delta": 0.527,
        "percent_delta": 1.1142,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_SO",
        "before": 0.601,
        "after": 0.0,
        "delta": -0.601,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "better"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.176-
predicted_3B0.034-
predicted_AB3.851-
predicted_AVG0.277-
predicted_BB0.622-
predicted_H1.068-
predicted_HR0.115-
predicted_OBP0.378-
predicted_R0.628-
predicted_RBI0.473-
predicted_SLG0.430-
predicted_SO0.601-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.155-0.021
predicted_3B0.0610.027
predicted_AB3.8580.007
predicted_AVG0.2880.011
predicted_BB0.6620.040
predicted_H1.1130.045
predicted_HBP0.013-
predicted_HR0.104-0.011
predicted_OBP0.3900.012
predicted_R0.604-0.024
predicted_RBI0.5450.072
predicted_SLG0.4410.011
predicted_SO0.589-0.012
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1550.000
predicted_3B0.0610.000
predicted_AB3.8580.000
predicted_AVG0.2910.003
predicted_BB0.6620.001
predicted_H1.1230.010
predicted_HBP0.0130.000
predicted_HR0.1060.001
predicted_OBP0.3950.006
predicted_R0.6130.009
predicted_RBI0.5530.008
predicted_SLG0.4450.004
predicted_SO0.588-0.001
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 4 (raw=3.86), rates preserved: AVG=0.291 HR/AB=0.027

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB4.000-
BB1.000-
H1.000-
HBP0.000-
HR0.000-
RBI1.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB1.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R1.000-
RBI1.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1660.166
3B0.0340.034
BB0.560-0.440
H0.964-0.036
HR0.1090.109
RBI0.441-0.559
SO0.609-0.391
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.166
3B0.000-0.034
AB4.0000.000
BB1.0000.440
H1.0000.036
HR0.000-0.109
R1.0000.000
RBI1.0000.559
SO0.000-0.609
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.155
predicted_3B0.000-0.061
predicted_AB4.0000.142
predicted_AVG0.246-0.045
predicted_BB1.0000.338
predicted_H1.000-0.123
predicted_HR0.000-0.106
predicted_OBP0.346-0.049
predicted_R1.0000.387
predicted_RBI1.0000.447
predicted_SLG0.390-0.055
predicted_SO1.0000.412
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB1.0000.000
CS0.0000.000
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA5.000-
R1.0000.000
RBI1.0000.000
SB0.0000.000
SF0.0000.000
SO0.0000.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 148
Reference playing time: 3.851
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-19.0007.0000.0001.0000.0005.0002.0005.0002.0000.36840.48000.47370.36840.00000.26320.26320.1053
last_100.2010-40.00013.0001.0002.0001.0008.0006.0008.0006.0000.32500.42860.52500.32500.02500.20000.20000.1500
season0.60148-570.000158.00026.0005.00017.00070.00093.00092.00089.0000.27720.37820.42980.27720.02980.12280.16140.1561
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1280
predicted_3B0.0960
predicted_AB3.8680
predicted_AVG0.3026
predicted_BB0.7130
predicted_H1.1700
predicted_HBP0.0130
predicted_HR0.0910
predicted_OBP0.4042
predicted_R0.5730
predicted_RBI0.6370
predicted_SLG0.4555
predicted_SO0.5730
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.17600.12800.1550model_form_blend
predicted_3B0.03400.09600.0611model_form_blend
predicted_AB3.85103.86803.8584model_form_blend
predicted_AVG0.27700.30260.2882model_form_blend
predicted_BB0.62200.71300.6618model_form_blend
predicted_H1.06801.17001.1126model_form_blend
predicted_HBP-0.01300.0130form_only
predicted_HR0.11500.09100.1045model_form_blend
predicted_OBP0.37800.40420.3895model_form_blend
predicted_R0.62800.57300.6039model_form_blend
predicted_RBI0.47300.63700.5447model_form_blend
predicted_SLG0.43000.45550.4412model_form_blend
predicted_SO0.60100.57300.5888model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date669
Season rows before report date669
Report year2026
Profile rows used148
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA5
AB4
H1
2B0
3B0
HR0
R1
RBI1
BB1
SO0
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB4
Hitting_AVG0.0
Hitting_BB1
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO1
Hitting_TB0
Hitting_battingOrder1
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedDH
gameID20260920_DET@CHW
game_typefull
mlbID805808
playerID805808
playerNameKevin McGonigle
posSS
startedTrue
startingPositionDH
teamDET
teamID10
game_date2026-09-20
sl_k_percent13.4
sl_bb_percent13.7
sl_woba0.357
sl_xwoba0.36
sl_xba0.268
sl_xslg0.45
sl_sweet_spot_percent36.6
sl_barrel_batted_rate7.1
sl_hard_hit_percent37.5
sl_exit_velocity_avg88.0
sl_launch_angle_avg20.0
sl_whiff_percent16.0
sl_swing_percent42.8
Gleyber Torres (650402) · BATTER · C · Team DET
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 401
All-history rows before 20260921: 401
System season_avg: 0.2630
Data season_avg (2026 season-to-date): 0.2691
Diff (system - data): -0.0061
System opponent_avg: 0.2630

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1430.0000.000Hitting_2B0.1500.000-0.1500.000
predicted_3B0.0000.0000.000Hitting_3B0.0000.0000.0000.000
predicted_AB3.7584.0004.000Hitting_AB3.8554.0000.1450.000
predicted_AVG0.2630.5000.250Hitting_AVG0.2690.0000.2310.500
predicted_BB0.5820.0001.000Hitting_BB0.6411.000-0.641-1.000
predicted_CS-0.0000.000BaseRunning_CS0.0000.0000.0000.000
predicted_H0.9892.0001.000Hitting_H1.0370.0000.9632.000
predicted_HR0.0880.0000.000Hitting_HR0.0970.000-0.0970.000
predicted_OBP0.3620.5000.400Hitting_OBP0.3760.2000.1240.300
predicted_R0.5931.0001.000Hitting_R0.6830.0000.3171.000
predicted_RBI0.4180.0000.000Hitting_RBI0.4490.000-0.4490.000
predicted_SLG0.3710.5000.250Hitting_SLG0.3840.0000.1160.500
predicted_SO0.8240.0001.000Hitting_SO0.8302.000-0.830-2.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics10
Boosted Metrics3
Deboosted Metrics7
Better Metrics4
Worse Metrics6
Biggest Boostpredicted_H: 0.9890 -> 2.0000 (boost 1.0110, better)
Biggest Deboostpredicted_SO: 0.8240 -> 0.0000 (deboost -0.8240, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend30303-predicted_SLG: 0.3710 -> 0.3513 (deboost -0.0197, 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.
3team_form_snapshot00000--Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling63324predicted_BB: 0.5680 -> 1.0000 (boost 0.4320, better)predicted_RBI: 0.3906 -> 0.0000 (deboost -0.3906, worse)AB rounded to 4 (raw=3.76), rates preserved: AVG=0.259 HR/AB=0.020
6consistency_constraints11010predicted_R: 0.5682 -> 1.0000 (boost 0.4318, better)-Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine63342predicted_RBI: 0.0000 -> 0.4126 (boost 0.4126, better)predicted_BB: 1.0000 -> 0.5165 (deboost -0.4835, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation63324predicted_BB: 0.5165 -> 1.0000 (boost 0.4835, better)predicted_RBI: 0.4126 -> 0.0000 (deboost -0.4126, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context31212predicted_SLG: 0.3546 -> 0.3630 (boost 0.0084, better)predicted_OBP: 0.3566 -> 0.3340 (deboost -0.0226, worse)Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10simulation_box_score_reference31221predicted_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
11current_json_final32121predicted_OBP: 0.3340 -> 0.3566 (boost 0.0226, better)predicted_SLG: 0.3630 -> 0.3546 (deboost -0.0084, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "650402",
  "player_name": "Gleyber Torres",
  "position": "C",
  "team": "DET",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.143,
        "predicted_3B": 0.0,
        "predicted_AB": 3.758,
        "predicted_AVG": 0.263,
        "predicted_BB": 0.582,
        "predicted_H": 0.989,
        "predicted_HR": 0.088,
        "predicted_OBP": 0.362,
        "predicted_R": 0.593,
        "predicted_RBI": 0.418,
        "predicted_SLG": 0.371,
        "predicted_SO": 0.824
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.1293,
        "predicted_3B": 0.0004,
        "predicted_AB": 3.758,
        "predicted_AVG": 0.2568,
        "predicted_BB": 0.5674,
        "predicted_H": 0.9654,
        "predicted_HBP": 0.021,
        "predicted_HR": 0.0751,
        "predicted_OBP": 0.3553,
        "predicted_R": 0.5599,
        "predicted_RBI": 0.3849,
        "predicted_SLG": 0.3513,
        "predicted_SO": 0.8133
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.143,
          "after": 0.1293,
          "delta": -0.0137,
          "percent_delta": -0.0958,
          "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.758,
          "after": 3.758,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.263,
          "after": 0.2568,
          "delta": -0.0062,
          "percent_delta": -0.0236,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.582,
          "after": 0.5674,
          "delta": -0.0146,
          "percent_delta": -0.0251,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.989,
          "after": 0.9654,
          "delta": -0.0236,
          "percent_delta": -0.0239,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.088,
          "after": 0.0751,
          "delta": -0.0129,
          "percent_delta": -0.1466,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.362,
          "after": 0.3553,
          "delta": -0.0067,
          "percent_delta": -0.0185,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.593,
          "after": 0.5599,
          "delta": -0.0331,
          "percent_delta": -0.0558,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.418,
          "after": 0.3849,
          "delta": -0.0331,
          "percent_delta": -0.0792,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.371,
          "after": 0.3513,
          "delta": -0.0197,
          "percent_delta": -0.0531,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.824,
          "after": 0.8133,
          "delta": -0.0107,
          "percent_delta": -0.013,
          "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.371,
          "after": 0.3513,
          "delta": -0.0197,
          "percent_delta": -0.0531,
          "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": 91
      }
    },
    {
      "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.1293,
        "predicted_3B": 0.0004,
        "predicted_AB": 3.758,
        "predicted_AVG": 0.2593,
        "predicted_BB": 0.568,
        "predicted_H": 0.9745,
        "predicted_HBP": 0.021,
        "predicted_HR": 0.076,
        "predicted_OBP": 0.3566,
        "predicted_R": 0.5682,
        "predicted_RBI": 0.3906,
        "predicted_SLG": 0.3546,
        "predicted_SO": 0.8125
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1293,
          "after": 0.1293,
          "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.758,
          "after": 3.758,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2568,
          "after": 0.2593,
          "delta": 0.0025,
          "percent_delta": 0.0097,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.5674,
          "after": 0.568,
          "delta": 0.0006,
          "percent_delta": 0.0011,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.9654,
          "after": 0.9745,
          "delta": 0.0091,
          "percent_delta": 0.0094,
          "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.0751,
          "after": 0.076,
          "delta": 0.0009,
          "percent_delta": 0.012,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3553,
          "after": 0.3566,
          "delta": 0.0013,
          "percent_delta": 0.0037,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.5599,
          "after": 0.5682,
          "delta": 0.0083,
          "percent_delta": 0.0148,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3849,
          "after": 0.3906,
          "delta": 0.0057,
          "percent_delta": 0.0148,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3513,
          "after": 0.3546,
          "delta": 0.0033,
          "percent_delta": 0.0094,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.8133,
          "after": 0.8125,
          "delta": -0.0008,
          "percent_delta": -0.001,
          "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.76), rates preserved: AVG=0.259 HR/AB=0.020",
      "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.1293,
          "after": 0.0,
          "delta": -0.1293,
          "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.758,
          "after": 4.0,
          "delta": 0.242,
          "percent_delta": 0.0644,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.568,
          "after": 1.0,
          "delta": 0.432,
          "percent_delta": 0.7606,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.9745,
          "after": 1.0,
          "delta": 0.0255,
          "percent_delta": 0.0262,
          "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.076,
          "after": 0.0,
          "delta": -0.076,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3906,
          "after": 0.0,
          "delta": -0.3906,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.8125,
          "after": 1.0,
          "delta": 0.1875,
          "percent_delta": 0.2308,
          "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.568,
          "after": 1.0,
          "delta": 0.432,
          "percent_delta": 0.7606,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.3906,
          "after": 0.0,
          "delta": -0.3906,
          "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": 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.5682,
          "after": 1.0,
          "delta": 0.4318,
          "percent_delta": 0.7599,
          "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.5682,
          "after": 1.0,
          "delta": 0.4318,
          "percent_delta": 0.7599,
          "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.1564,
        "predicted_3B": 0.0158,
        "predicted_BB": 0.5165,
        "predicted_H": 0.9187,
        "predicted_HR": 0.0964,
        "predicted_RBI": 0.4126,
        "predicted_SO": 0.8214
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1564,
          "delta": 0.1564,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0158,
          "delta": 0.0158,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 1.0,
          "after": 0.5165,
          "delta": -0.4835,
          "percent_delta": -0.4835,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.9187,
          "delta": -0.0813,
          "percent_delta": -0.0813,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.0964,
          "delta": 0.0964,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.4126,
          "delta": 0.4126,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.8214,
          "delta": -0.1786,
          "percent_delta": -0.1786,
          "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.0,
          "after": 0.4126,
          "delta": 0.4126,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 1.0,
          "after": 0.5165,
          "delta": -0.4835,
          "percent_delta": -0.4835,
          "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.1564,
          "after": 0.0,
          "delta": -0.1564,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0158,
          "after": 0.0,
          "delta": -0.0158,
          "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.5165,
          "after": 1.0,
          "delta": 0.4835,
          "percent_delta": 0.9361,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.9187,
          "after": 1.0,
          "delta": 0.0813,
          "percent_delta": 0.0885,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0964,
          "after": 0.0,
          "delta": -0.0964,
          "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.4126,
          "after": 0.0,
          "delta": -0.4126,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.8214,
          "after": 1.0,
          "delta": 0.1786,
          "percent_delta": 0.2174,
          "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.5165,
          "after": 1.0,
          "delta": 0.4835,
          "percent_delta": 0.9361,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.4126,
          "after": 0.0,
          "delta": -0.4126,
          "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": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.334,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.363,
        "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.2593,
          "after": 0.239,
          "delta": -0.0203,
          "percent_delta": -0.0783,
          "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.3566,
          "after": 0.334,
          "delta": -0.0226,
          "percent_delta": -0.0634,
          "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.3546,
          "after": 0.363,
          "delta": 0.0084,
          "percent_delta": 0.0237,
          "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.3546,
          "after": 0.363,
          "delta": 0.0084,
          "percent_delta": 0.0237,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_OBP",
          "before": 0.3566,
          "after": 0.334,
          "delta": -0.0226,
          "percent_delta": -0.0634,
          "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": 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": 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": 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_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.2593,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_DH": 0.0,
        "predicted_H": 2.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.3566,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.3546,
        "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.239,
          "after": 0.2593,
          "delta": 0.0203,
          "percent_delta": 0.085,
          "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.334,
          "after": 0.3566,
          "delta": 0.0226,
          "percent_delta": 0.0675,
          "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.363,
          "after": 0.3546,
          "delta": -0.0084,
          "percent_delta": -0.0232,
          "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": 2,
        "worse_metrics": 1,
        "biggest_boost": {
          "metric": "predicted_OBP",
          "before": 0.334,
          "after": 0.3566,
          "delta": 0.0226,
          "percent_delta": 0.0675,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SLG",
          "before": 0.363,
          "after": 0.3546,
          "delta": -0.0084,
          "percent_delta": -0.0232,
          "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.143,
        "after": 0.0,
        "delta": -0.143,
        "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.758,
        "after": 4.0,
        "delta": 0.242,
        "percent_delta": 0.0644,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.263,
        "after": 0.2593,
        "delta": -0.0037,
        "percent_delta": -0.0141,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_BB",
        "before": 0.582,
        "after": 0.0,
        "delta": -0.582,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.989,
        "after": 2.0,
        "delta": 1.011,
        "percent_delta": 1.0222,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.088,
        "after": 0.0,
        "delta": -0.088,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.362,
        "after": 0.3566,
        "delta": -0.0054,
        "percent_delta": -0.0149,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.593,
        "after": 1.0,
        "delta": 0.407,
        "percent_delta": 0.6863,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.418,
        "after": 0.0,
        "delta": -0.418,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.371,
        "after": 0.3546,
        "delta": -0.0164,
        "percent_delta": -0.0442,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.824,
        "after": 0.0,
        "delta": -0.824,
        "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_H",
        "before": 0.989,
        "after": 2.0,
        "delta": 1.011,
        "percent_delta": 1.0222,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_SO",
        "before": 0.824,
        "after": 0.0,
        "delta": -0.824,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.143-
predicted_3B0.000-
predicted_AB3.758-
predicted_AVG0.263-
predicted_BB0.582-
predicted_H0.989-
predicted_HR0.088-
predicted_OBP0.362-
predicted_R0.593-
predicted_RBI0.418-
predicted_SLG0.371-
predicted_SO0.824-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.129-0.014
predicted_3B0.0000.000
predicted_AB3.7580.000
predicted_AVG0.257-0.006
predicted_BB0.567-0.015
predicted_H0.965-0.024
predicted_HBP0.021-
predicted_HR0.075-0.013
predicted_OBP0.355-0.007
predicted_R0.560-0.033
predicted_RBI0.385-0.033
predicted_SLG0.351-0.020
predicted_SO0.813-0.011
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1290.000
predicted_3B0.0000.000
predicted_AB3.7580.000
predicted_AVG0.2590.003
predicted_BB0.5680.001
predicted_H0.9750.009
predicted_HBP0.0210.000
predicted_HR0.0760.001
predicted_OBP0.3570.001
predicted_R0.5680.008
predicted_RBI0.3910.006
predicted_SLG0.3550.003
predicted_SO0.812-0.001
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 4 (raw=3.76), rates preserved: AVG=0.259 HR/AB=0.020

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB4.000-
BB1.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB1.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R1.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1560.156
3B0.0160.016
BB0.516-0.484
H0.919-0.081
HR0.0960.096
RBI0.4130.413
SO0.821-0.179
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.156
3B0.000-0.016
AB4.0000.000
BB1.0000.484
H1.0000.081
HR0.000-0.096
R1.0000.000
RBI0.000-0.413
SO1.0000.179
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.129
predicted_3B0.000-0.000
predicted_AB4.0000.242
predicted_AVG0.239-0.020
predicted_BB1.0000.432
predicted_H1.0000.025
predicted_HR0.000-0.076
predicted_OBP0.334-0.023
predicted_R1.0000.432
predicted_RBI0.000-0.391
predicted_SLG0.3630.008
predicted_SO1.0000.188
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.000-1.000
CS0.0000.000
H2.0001.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R1.0000.000
RBI0.0000.000
SB0.0000.000
SF0.0000.000
SO0.000-1.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 91
Reference playing time: 3.804
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-19.0004.0000.0000.0000.0001.0001.0003.0003.0000.21050.31820.21050.21050.00000.05260.15790.1579
last_100.2010-37.0009.0001.0000.0000.0002.0006.0005.0009.0000.24320.33330.27030.24320.00000.05410.13510.2432
season0.6091-342.00090.00013.0000.0008.00038.00054.00053.00075.0000.26320.36500.37130.26320.02340.11110.15500.2193
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1110
predicted_3B0.0010
predicted_AB3.7580
predicted_AVG0.2486
predicted_BB0.5480
predicted_H0.9340
predicted_HBP0.0210
predicted_HR0.0580
predicted_OBP0.3463
predicted_R0.5160
predicted_RBI0.3410
predicted_SLG0.3252
predicted_SO0.7990
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.14300.11100.1293model_form_blend
predicted_3B0.00000.00100.0004model_form_blend
predicted_AB3.75803.75803.7580model_form_blend
predicted_AVG0.26300.24860.2568model_form_blend
predicted_BB0.58200.54800.5674model_form_blend
predicted_H0.98900.93400.9654model_form_blend
predicted_HBP-0.02100.0210form_only
predicted_HR0.08800.05800.0751model_form_blend
predicted_OBP0.36200.34630.3553model_form_blend
predicted_R0.59300.51600.5599model_form_blend
predicted_RBI0.41800.34100.3849model_form_blend
predicted_SLG0.37100.32520.3513model_form_blend
predicted_SO0.82400.79900.8133model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date401
Season rows before report date401
Report year2026
Profile rows used91
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA4
AB4
H2
2B0
3B0
HR0
R1
RBI0
BB0
SO0
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB4
Hitting_AVG0.0
Hitting_BB1
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO2
Hitting_TB0
Hitting_battingOrder2
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayed2B
gameID20260920_DET@CHW
game_typefull
mlbID650402
playerID650402
playerNameGleyber Torres
pos2B
startedTrue
startingPosition2B
teamDET
teamID10
game_date2026-09-20
sl_k_percent19.0
sl_bb_percent13.3
sl_woba0.332
sl_xwoba0.326
sl_xba0.253
sl_xslg0.371
sl_sweet_spot_percent37.5
sl_barrel_batted_rate6.3
sl_hard_hit_percent33.1
sl_exit_velocity_avg86.4
sl_launch_angle_avg8.9
sl_whiff_percent22.2
sl_swing_percent42.3
Max Clark (703601) · BATTER · 1B · Team DET
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 170
All-history rows before 20260921: 170
System season_avg: 0.2660
Data season_avg (2026 season-to-date): 0.2778
Diff (system - data): -0.0118
System opponent_avg: 0.2660

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.2270.0000.000Hitting_2B0.2710.000-0.2710.000
predicted_3B0.0680.0000.000Hitting_3B0.0710.000-0.0710.000
predicted_AB3.5005.0004.000Hitting_AB3.6002.0001.4003.000
predicted_AVG0.2660.0000.250Hitting_AVG0.2780.000-0.2780.000
predicted_BB0.3640.0000.000Hitting_BB0.3941.000-0.394-1.000
predicted_CS-0.0000.000BaseRunning_CS0.0240.000-0.0240.000
predicted_H0.9320.0001.000Hitting_H1.0000.000-1.0000.000
predicted_HR0.0680.0000.000Hitting_HR0.0710.000-0.0710.000
predicted_OBP0.3350.0000.250Hitting_OBP0.3640.250-0.364-0.250
predicted_R0.5910.0001.000Hitting_R0.6060.000-0.6060.000
predicted_RBI0.4550.0000.000Hitting_RBI0.4821.000-0.482-1.000
predicted_SLG0.4290.0000.250Hitting_SLG0.4510.000-0.4510.000
predicted_SO0.8182.0001.000Hitting_SO0.8760.0001.1242.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics12
Boosted Metrics5
Deboosted Metrics7
Better Metrics4
Worse Metrics8
Biggest Boostpredicted_AB: 3.5000 -> 5.0000 (boost 1.5000, better)
Biggest Deboostpredicted_H: 0.9320 -> 0.0000 (deboost -0.9320, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend33030predicted_R: 0.5910 -> 0.6492 (boost 0.0582, 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.
3team_form_snapshot00000--Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling82617predicted_AB: 3.5391 -> 4.0000 (boost 0.4609, better)predicted_RBI: 0.4704 -> 0.0000 (deboost -0.4704, worse)AB rounded to 4 (raw=3.54), rates preserved: AVG=0.279 HR/AB=0.020
6consistency_constraints11010predicted_R: 0.6589 -> 1.0000 (boost 0.3411, better)-Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine64251predicted_RBI: 0.0000 -> 0.4376 (boost 0.4376, better)predicted_SO: 1.0000 -> 0.8533 (deboost -0.1467, better)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation62415predicted_SO: 0.8533 -> 1.0000 (boost 0.1467, worse)predicted_RBI: 0.4376 -> 0.0000 (deboost -0.4376, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context30303-predicted_SLG: 0.4343 -> 0.3840 (deboost -0.0503, worse)Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10simulation_box_score_reference42213predicted_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
11current_json_final33030predicted_SLG: 0.3840 -> 0.4343 (boost 0.0503, better)-Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "703601",
  "player_name": "Max Clark",
  "position": "1B",
  "team": "DET",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.227,
        "predicted_3B": 0.068,
        "predicted_AB": 3.5,
        "predicted_AVG": 0.266,
        "predicted_BB": 0.364,
        "predicted_H": 0.932,
        "predicted_HR": 0.068,
        "predicted_OBP": 0.335,
        "predicted_R": 0.591,
        "predicted_RBI": 0.455,
        "predicted_SLG": 0.429,
        "predicted_SO": 0.818
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.2278,
        "predicted_3B": 0.0558,
        "predicted_AB": 3.5391,
        "predicted_AVG": 0.2758,
        "predicted_BB": 0.3778,
        "predicted_H": 0.9772,
        "predicted_HBP": 0.12,
        "predicted_HR": 0.0696,
        "predicted_OBP": 0.3523,
        "predicted_R": 0.6492,
        "predicted_RBI": 0.4635,
        "predicted_SLG": 0.4314,
        "predicted_SO": 0.7834
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.227,
          "after": 0.2278,
          "delta": 0.0008,
          "percent_delta": 0.0035,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.068,
          "after": 0.0558,
          "delta": -0.0122,
          "percent_delta": -0.1794,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 3.5,
          "after": 3.5391,
          "delta": 0.0391,
          "percent_delta": 0.0112,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.266,
          "after": 0.2758,
          "delta": 0.0098,
          "percent_delta": 0.0368,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.364,
          "after": 0.3778,
          "delta": 0.0138,
          "percent_delta": 0.0379,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.932,
          "after": 0.9772,
          "delta": 0.0452,
          "percent_delta": 0.0485,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.068,
          "after": 0.0696,
          "delta": 0.0016,
          "percent_delta": 0.0235,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.335,
          "after": 0.3523,
          "delta": 0.0173,
          "percent_delta": 0.0516,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.591,
          "after": 0.6492,
          "delta": 0.0582,
          "percent_delta": 0.0985,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.455,
          "after": 0.4635,
          "delta": 0.0085,
          "percent_delta": 0.0187,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.429,
          "after": 0.4314,
          "delta": 0.0024,
          "percent_delta": 0.0056,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.818,
          "after": 0.7834,
          "delta": -0.0346,
          "percent_delta": -0.0423,
          "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_R",
          "before": 0.591,
          "after": 0.6492,
          "delta": 0.0582,
          "percent_delta": 0.0985,
          "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": 44
      }
    },
    {
      "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.2278,
        "predicted_3B": 0.0558,
        "predicted_AB": 3.5391,
        "predicted_AVG": 0.2787,
        "predicted_BB": 0.3782,
        "predicted_H": 0.9864,
        "predicted_HBP": 0.12,
        "predicted_HR": 0.0704,
        "predicted_OBP": 0.3483,
        "predicted_R": 0.6589,
        "predicted_RBI": 0.4704,
        "predicted_SLG": 0.4343,
        "predicted_SO": 0.7826
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.2278,
          "after": 0.2278,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.0558,
          "after": 0.0558,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 3.5391,
          "after": 3.5391,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2758,
          "after": 0.2787,
          "delta": 0.0029,
          "percent_delta": 0.0105,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.3778,
          "after": 0.3782,
          "delta": 0.0004,
          "percent_delta": 0.0011,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.9772,
          "after": 0.9864,
          "delta": 0.0092,
          "percent_delta": 0.0094,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HBP",
          "before": 0.12,
          "after": 0.12,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.0696,
          "after": 0.0704,
          "delta": 0.0008,
          "percent_delta": 0.0115,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3523,
          "after": 0.3483,
          "delta": -0.004,
          "percent_delta": -0.0114,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.6492,
          "after": 0.6589,
          "delta": 0.0097,
          "percent_delta": 0.0149,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4635,
          "after": 0.4704,
          "delta": 0.0069,
          "percent_delta": 0.0149,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4314,
          "after": 0.4343,
          "delta": 0.0029,
          "percent_delta": 0.0067,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.7834,
          "after": 0.7826,
          "delta": -0.0008,
          "percent_delta": -0.001,
          "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.54), rates preserved: AVG=0.279 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": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.2278,
          "after": 0.0,
          "delta": -0.2278,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0558,
          "after": 0.0,
          "delta": -0.0558,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AB",
          "before": 3.5391,
          "after": 4.0,
          "delta": 0.4609,
          "percent_delta": 0.1302,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3782,
          "after": 0.0,
          "delta": -0.3782,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.9864,
          "after": 1.0,
          "delta": 0.0136,
          "percent_delta": 0.0138,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HBP",
          "before": 0.12,
          "after": 0.0,
          "delta": -0.12,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0704,
          "after": 0.0,
          "delta": -0.0704,
          "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": 0.7826,
          "after": 1.0,
          "delta": 0.2174,
          "percent_delta": 0.2778,
          "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.5391,
          "after": 4.0,
          "delta": 0.4609,
          "percent_delta": 0.1302,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.4704,
          "after": 0.0,
          "delta": -0.4704,
          "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.6589,
          "after": 1.0,
          "delta": 0.3411,
          "percent_delta": 0.5177,
          "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.6589,
          "after": 1.0,
          "delta": 0.3411,
          "percent_delta": 0.5177,
          "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.1674,
        "predicted_3B": 0.0351,
        "predicted_BB": 0.3605,
        "predicted_H": 0.8735,
        "predicted_HR": 0.0951,
        "predicted_RBI": 0.4376,
        "predicted_SO": 0.8533
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1674,
          "delta": 0.1674,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0351,
          "delta": 0.0351,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.3605,
          "delta": 0.3605,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8735,
          "delta": -0.1265,
          "percent_delta": -0.1265,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.0951,
          "delta": 0.0951,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.4376,
          "delta": 0.4376,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.8533,
          "delta": -0.1467,
          "percent_delta": -0.1467,
          "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.4376,
          "delta": 0.4376,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.8533,
          "delta": -0.1467,
          "percent_delta": -0.1467,
          "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.1674,
          "after": 0.0,
          "delta": -0.1674,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0351,
          "after": 0.0,
          "delta": -0.0351,
          "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.3605,
          "after": 0.0,
          "delta": -0.3605,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8735,
          "after": 1.0,
          "delta": 0.1265,
          "percent_delta": 0.1448,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0951,
          "after": 0.0,
          "delta": -0.0951,
          "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.4376,
          "after": 0.0,
          "delta": -0.4376,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.8533,
          "after": 1.0,
          "delta": 0.1467,
          "percent_delta": 0.1719,
          "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.8533,
          "after": 1.0,
          "delta": 0.1467,
          "percent_delta": 0.1719,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.4376,
          "after": 0.0,
          "delta": -0.4376,
          "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.24,
        "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.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": 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.2787,
          "after": 0.24,
          "delta": -0.0387,
          "percent_delta": -0.1389,
          "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.3483,
          "after": 0.314,
          "delta": -0.0343,
          "percent_delta": -0.0985,
          "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.4343,
          "after": 0.384,
          "delta": -0.0503,
          "percent_delta": -0.1158,
          "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.4343,
          "after": 0.384,
          "delta": -0.0503,
          "percent_delta": -0.1158,
          "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": 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": 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": 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.2787,
        "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.3483,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.4343,
        "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.24,
          "after": 0.2787,
          "delta": 0.0387,
          "percent_delta": 0.1613,
          "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.314,
          "after": 0.3483,
          "delta": 0.0343,
          "percent_delta": 0.1094,
          "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.384,
          "after": 0.4343,
          "delta": 0.0503,
          "percent_delta": 0.131,
          "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.384,
          "after": 0.4343,
          "delta": 0.0503,
          "percent_delta": 0.131,
          "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.227,
        "after": 0.0,
        "delta": -0.227,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_3B",
        "before": 0.068,
        "after": 0.0,
        "delta": -0.068,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AB",
        "before": 3.5,
        "after": 5.0,
        "delta": 1.5,
        "percent_delta": 0.4286,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.266,
        "after": 0.2787,
        "delta": 0.0127,
        "percent_delta": 0.0477,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.364,
        "after": 0.0,
        "delta": -0.364,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.932,
        "after": 0.0,
        "delta": -0.932,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.068,
        "after": 0.0,
        "delta": -0.068,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.335,
        "after": 0.3483,
        "delta": 0.0133,
        "percent_delta": 0.0397,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.591,
        "after": 0.0,
        "delta": -0.591,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.455,
        "after": 0.0,
        "delta": -0.455,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.429,
        "after": 0.4343,
        "delta": 0.0053,
        "percent_delta": 0.0124,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.818,
        "after": 2.0,
        "delta": 1.182,
        "percent_delta": 1.445,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 12,
      "boosted_metrics": 5,
      "deboosted_metrics": 7,
      "better_metrics": 4,
      "worse_metrics": 8,
      "biggest_boost": {
        "metric": "predicted_AB",
        "before": 3.5,
        "after": 5.0,
        "delta": 1.5,
        "percent_delta": 0.4286,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_H",
        "before": 0.932,
        "after": 0.0,
        "delta": -0.932,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.227-
predicted_3B0.068-
predicted_AB3.500-
predicted_AVG0.266-
predicted_BB0.364-
predicted_H0.932-
predicted_HR0.068-
predicted_OBP0.335-
predicted_R0.591-
predicted_RBI0.455-
predicted_SLG0.429-
predicted_SO0.818-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.2280.001
predicted_3B0.056-0.012
predicted_AB3.5390.039
predicted_AVG0.2760.010
predicted_BB0.3780.014
predicted_H0.9770.045
predicted_HBP0.120-
predicted_HR0.0700.002
predicted_OBP0.3520.017
predicted_R0.6490.058
predicted_RBI0.4640.009
predicted_SLG0.4310.002
predicted_SO0.783-0.035
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.2280.000
predicted_3B0.0560.000
predicted_AB3.5390.000
predicted_AVG0.2790.003
predicted_BB0.3780.000
predicted_H0.9860.009
predicted_HBP0.1200.000
predicted_HR0.0700.001
predicted_OBP0.348-0.004
predicted_R0.6590.010
predicted_RBI0.4700.007
predicted_SLG0.4340.003
predicted_SO0.783-0.001
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 4 (raw=3.54), rates preserved: AVG=0.279 HR/AB=0.020

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB4.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R1.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1670.167
3B0.0350.035
BB0.3600.360
H0.874-0.126
HR0.0950.095
RBI0.4380.438
SO0.853-0.147
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.167
3B0.000-0.035
AB4.0000.000
BB0.000-0.360
H1.0000.126
HR0.000-0.095
R1.0000.000
RBI0.000-0.438
SO1.0000.147
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.228
predicted_3B0.000-0.056
predicted_AB4.0000.461
predicted_AVG0.240-0.039
predicted_BB0.000-0.378
predicted_H1.0000.014
predicted_HR0.000-0.070
predicted_OBP0.314-0.034
predicted_R1.0000.341
predicted_RBI0.000-0.470
predicted_SLG0.384-0.050
predicted_SO1.0000.217
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB5.0001.000
BB0.0000.000
CS0.0000.000
H0.000-1.000
HBP0.0000.000
HR0.0000.000
PA5.000-
R0.000-1.000
RBI0.0000.000
SB0.0000.000
SF0.0000.000
SO2.0001.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 44
Reference playing time: 3.804
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-19.0006.0001.0000.0000.0002.0005.0002.0003.0000.31580.40910.36840.31580.00000.10530.10530.1579
last_100.2010-35.00013.0003.0000.0001.0006.00011.0006.0005.0000.37140.48840.54290.37140.02860.17140.17140.1429
season0.6044-154.00041.00010.0003.0003.00020.00026.00016.00036.0000.26620.35060.42860.26620.01950.12990.10390.2338
Weighted Prediction From Real Data
MetricValue
predicted_2B0.2290
predicted_3B0.0380
predicted_AB3.5960
predicted_AVG0.2900
predicted_BB0.3980
predicted_H1.0430
predicted_HBP0.1200
predicted_HR0.0720
predicted_OBP0.3775
predicted_R0.7340
predicted_RBI0.4760
predicted_SLG0.4348
predicted_SO0.7330
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.22700.22900.2278model_form_blend
predicted_3B0.06800.03800.0558model_form_blend
predicted_AB3.50003.59603.5391model_form_blend
predicted_AVG0.26600.29000.2758model_form_blend
predicted_BB0.36400.39800.3778model_form_blend
predicted_H0.93201.04300.9772model_form_blend
predicted_HBP-0.12000.1200form_only
predicted_HR0.06800.07200.0696model_form_blend
predicted_OBP0.33500.37750.3523model_form_blend
predicted_R0.59100.73400.6492model_form_blend
predicted_RBI0.45500.47600.4635model_form_blend
predicted_SLG0.42900.43480.4314model_form_blend
predicted_SO0.81800.73300.7834model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date170
Season rows before report date170
Report year2026
Profile rows used44
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA5
AB5
H0
2B0
3B0
HR0
R0
RBI0
BB0
SO2
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB2
Hitting_AVG0.0
Hitting_BB1
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI1
Hitting_SAC0
Hitting_SF1
Hitting_SO0
Hitting_TB0
Hitting_battingOrder6
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedCF
gameID20260920_DET@CHW
game_typefull
mlbID703601
playerID703601
playerNameMax Clark
posCF
startedTrue
startingPositionCF
teamDET
teamID10
game_date2026-09-20
sl_k_percent20.0
sl_bb_percent8.9
sl_woba0.35
sl_xwoba0.318
sl_xba0.27
sl_xslg0.356
sl_sweet_spot_percent34.7
sl_barrel_batted_rate1.6
sl_hard_hit_percent37.9
sl_exit_velocity_avg87.2
sl_launch_angle_avg15.5
sl_whiff_percent16.6
sl_swing_percent47.2
Spencer Torkelson (679529) · BATTER · 2B · Team DET
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 578
All-history rows before 20260921: 578
System season_avg: 0.2250
Data season_avg (2026 season-to-date): 0.2284
Diff (system - data): -0.0034
System opponent_avg: 0.2250

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1730.0000.000Hitting_2B0.1831.000-0.183-1.000
predicted_3B0.0000.0000.000Hitting_3B0.0000.0000.0000.000
predicted_AB3.3534.0003.000Hitting_AB3.5002.0000.5002.000
predicted_AVG0.2250.0000.333Hitting_AVG0.2280.500-0.228-0.500
predicted_BB0.4400.0000.000Hitting_BB0.4641.000-0.464-1.000
predicted_CS-0.0000.000BaseRunning_CS0.0070.000-0.0070.000
predicted_H0.7530.0001.000Hitting_H0.7991.000-0.799-1.000
predicted_HR0.1530.0000.000Hitting_HR0.1520.000-0.1520.000
predicted_OBP0.3150.0000.333Hitting_OBP0.3250.750-0.325-0.750
predicted_R0.4130.0000.000Hitting_R0.4240.000-0.4240.000
predicted_RBI0.4670.0000.000Hitting_RBI0.4880.000-0.4880.000
predicted_SLG0.4140.0000.333Hitting_SLG0.4111.000-0.411-1.000
predicted_SO1.2070.0001.000Hitting_SO1.2341.000-1.234-1.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics11
Boosted Metrics4
Deboosted Metrics7
Better Metrics5
Worse Metrics6
Biggest Boostpredicted_AB: 3.3530 -> 4.0000 (boost 0.6470, better)
Biggest Deboostpredicted_SO: 1.2070 -> 0.0000 (deboost -1.2070, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend65151predicted_BB: 0.4400 -> 0.5219 (boost 0.0819, better)predicted_AB: 3.3530 -> 3.2877 (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.
3team_form_snapshot00000--Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling73443predicted_RBI: 0.5004 -> 1.0000 (boost 0.4996, better)predicted_AB: 3.2877 -> 3.0000 (deboost -0.2877, worse)AB rounded to 3 (raw=3.35), rates preserved: AVG=0.250 HR/AB=0.049
6consistency_constraints10101-predicted_R: 0.4664 -> 0.0000 (deboost -0.4664, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine63324predicted_2B: 0.0000 -> 0.1520 (boost 0.1520, better)predicted_BB: 1.0000 -> 0.4077 (deboost -0.5923, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation61524predicted_H: 0.7578 -> 1.0000 (boost 0.2422, better)predicted_RBI: 0.4236 -> 0.0000 (deboost -0.4236, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context52323predicted_BB: 0.0000 -> 1.0000 (boost 1.0000, better)predicted_SLG: 0.4591 -> 0.3910 (deboost -0.0681, worse)Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10simulation_box_score_reference51423predicted_AB: 3.0000 -> 4.0000 (boost 1.0000, better)predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse)Attached simulation box score without overwriting model prediction
11current_json_final33030predicted_SLG: 0.3910 -> 0.4591 (boost 0.0681, better)-Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "679529",
  "player_name": "Spencer Torkelson",
  "position": "2B",
  "team": "DET",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.173,
        "predicted_3B": 0.0,
        "predicted_AB": 3.353,
        "predicted_AVG": 0.225,
        "predicted_BB": 0.44,
        "predicted_H": 0.753,
        "predicted_HR": 0.153,
        "predicted_OBP": 0.315,
        "predicted_R": 0.413,
        "predicted_RBI": 0.467,
        "predicted_SLG": 0.414,
        "predicted_SO": 1.207
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.1787,
        "predicted_3B": 0.0004,
        "predicted_AB": 3.2877,
        "predicted_AVG": 0.2538,
        "predicted_BB": 0.5219,
        "predicted_H": 0.8314,
        "predicted_HBP": 0.027,
        "predicted_HR": 0.1617,
        "predicted_OBP": 0.3533,
        "predicted_R": 0.4596,
        "predicted_RBI": 0.4931,
        "predicted_SLG": 0.4566,
        "predicted_SO": 1.1743
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.173,
          "after": 0.1787,
          "delta": 0.0057,
          "percent_delta": 0.0329,
          "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.353,
          "after": 3.2877,
          "delta": -0.0653,
          "percent_delta": -0.0195,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.225,
          "after": 0.2538,
          "delta": 0.0288,
          "percent_delta": 0.128,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.44,
          "after": 0.5219,
          "delta": 0.0819,
          "percent_delta": 0.1861,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.753,
          "after": 0.8314,
          "delta": 0.0784,
          "percent_delta": 0.1041,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.153,
          "after": 0.1617,
          "delta": 0.0087,
          "percent_delta": 0.0569,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.315,
          "after": 0.3533,
          "delta": 0.0383,
          "percent_delta": 0.1216,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.413,
          "after": 0.4596,
          "delta": 0.0466,
          "percent_delta": 0.1128,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.467,
          "after": 0.4931,
          "delta": 0.0261,
          "percent_delta": 0.0559,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.414,
          "after": 0.4566,
          "delta": 0.0426,
          "percent_delta": 0.1029,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.207,
          "after": 1.1743,
          "delta": -0.0327,
          "percent_delta": -0.0271,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        }
      ],
      "summary": {
        "changed_metrics": 6,
        "boosted_metrics": 5,
        "deboosted_metrics": 1,
        "better_metrics": 5,
        "worse_metrics": 1,
        "biggest_boost": {
          "metric": "predicted_BB",
          "before": 0.44,
          "after": 0.5219,
          "delta": 0.0819,
          "percent_delta": 0.1861,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 3.353,
          "after": 3.2877,
          "delta": -0.0653,
          "percent_delta": -0.0195,
          "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.1787,
        "predicted_3B": 0.0004,
        "predicted_AB": 3.2877,
        "predicted_AVG": 0.2553,
        "predicted_BB": 0.5224,
        "predicted_H": 0.8392,
        "predicted_HBP": 0.027,
        "predicted_HR": 0.1636,
        "predicted_OBP": 0.3574,
        "predicted_R": 0.4664,
        "predicted_RBI": 0.5004,
        "predicted_SLG": 0.4591,
        "predicted_SO": 1.1731
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1787,
          "after": 0.1787,
          "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.2877,
          "after": 3.2877,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2538,
          "after": 0.2553,
          "delta": 0.0015,
          "percent_delta": 0.0059,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.5219,
          "after": 0.5224,
          "delta": 0.0005,
          "percent_delta": 0.001,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.8314,
          "after": 0.8392,
          "delta": 0.0078,
          "percent_delta": 0.0094,
          "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.1617,
          "after": 0.1636,
          "delta": 0.0019,
          "percent_delta": 0.0118,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3533,
          "after": 0.3574,
          "delta": 0.0041,
          "percent_delta": 0.0116,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.4596,
          "after": 0.4664,
          "delta": 0.0068,
          "percent_delta": 0.0148,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4931,
          "after": 0.5004,
          "delta": 0.0073,
          "percent_delta": 0.0148,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4566,
          "after": 0.4591,
          "delta": 0.0025,
          "percent_delta": 0.0055,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 1.1743,
          "after": 1.1731,
          "delta": -0.0012,
          "percent_delta": -0.001,
          "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.35), rates preserved: AVG=0.250 HR/AB=0.049",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 3.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.1787,
          "after": 0.0,
          "delta": -0.1787,
          "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.2877,
          "after": 3.0,
          "delta": -0.2877,
          "percent_delta": -0.0875,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.5224,
          "after": 1.0,
          "delta": 0.4776,
          "percent_delta": 0.9142,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8392,
          "after": 1.0,
          "delta": 0.1608,
          "percent_delta": 0.1916,
          "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.1636,
          "after": 0.0,
          "delta": -0.1636,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5004,
          "after": 1.0,
          "delta": 0.4996,
          "percent_delta": 0.9984,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.1731,
          "after": 1.0,
          "delta": -0.1731,
          "percent_delta": -0.1476,
          "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.5004,
          "after": 1.0,
          "delta": 0.4996,
          "percent_delta": 0.9984,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 3.2877,
          "after": 3.0,
          "delta": -0.2877,
          "percent_delta": -0.0875,
          "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": 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": 3.0,
          "after": 3.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.4664,
          "after": 0.0,
          "delta": -0.4664,
          "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.4664,
          "after": 0.0,
          "delta": -0.4664,
          "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.152,
        "predicted_3B": 0.0122,
        "predicted_BB": 0.4077,
        "predicted_H": 0.7578,
        "predicted_HR": 0.1299,
        "predicted_RBI": 0.4236,
        "predicted_SO": 1.1513
      },
      "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.0122,
          "delta": 0.0122,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 1.0,
          "after": 0.4077,
          "delta": -0.5923,
          "percent_delta": -0.5923,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7578,
          "delta": -0.2422,
          "percent_delta": -0.2422,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1299,
          "delta": 0.1299,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.4236,
          "delta": -0.5764,
          "percent_delta": -0.5764,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 1.1513,
          "delta": 0.1513,
          "percent_delta": 0.1513,
          "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.0,
          "after": 0.152,
          "delta": 0.152,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 1.0,
          "after": 0.4077,
          "delta": -0.5923,
          "percent_delta": -0.5923,
          "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.152,
          "after": 0.0,
          "delta": -0.152,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "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": 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.4077,
          "after": 0.0,
          "delta": -0.4077,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.7578,
          "after": 1.0,
          "delta": 0.2422,
          "percent_delta": 0.3196,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1299,
          "after": 0.0,
          "delta": -0.1299,
          "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.4236,
          "after": 0.0,
          "delta": -0.4236,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.1513,
          "after": 1.0,
          "delta": -0.1513,
          "percent_delta": -0.1314,
          "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.7578,
          "after": 1.0,
          "delta": 0.2422,
          "percent_delta": 0.3196,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.4236,
          "after": 0.0,
          "delta": -0.4236,
          "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.224,
        "predicted_BB": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.312,
        "predicted_R": 0.0,
        "predicted_RBI": 1.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": 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.2553,
          "after": 0.224,
          "delta": -0.0313,
          "percent_delta": -0.1226,
          "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_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.3574,
          "after": 0.312,
          "delta": -0.0454,
          "percent_delta": -0.127,
          "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.4591,
          "after": 0.391,
          "delta": -0.0681,
          "percent_delta": -0.1483,
          "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_BB",
          "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.4591,
          "after": 0.391,
          "delta": -0.0681,
          "percent_delta": -0.1483,
          "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": 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": 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": 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": 5,
        "boosted_metrics": 1,
        "deboosted_metrics": 4,
        "better_metrics": 2,
        "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_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.2553,
        "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.3574,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.4591,
        "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.224,
          "after": 0.2553,
          "delta": 0.0313,
          "percent_delta": 0.1395,
          "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.312,
          "after": 0.3574,
          "delta": 0.0454,
          "percent_delta": 0.1454,
          "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.391,
          "after": 0.4591,
          "delta": 0.0681,
          "percent_delta": 0.1743,
          "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.391,
          "after": 0.4591,
          "delta": 0.0681,
          "percent_delta": 0.1743,
          "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.173,
        "after": 0.0,
        "delta": -0.173,
        "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.353,
        "after": 4.0,
        "delta": 0.647,
        "percent_delta": 0.193,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.225,
        "after": 0.2553,
        "delta": 0.0303,
        "percent_delta": 0.1347,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.44,
        "after": 0.0,
        "delta": -0.44,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.753,
        "after": 0.0,
        "delta": -0.753,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.153,
        "after": 0.0,
        "delta": -0.153,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.315,
        "after": 0.3574,
        "delta": 0.0424,
        "percent_delta": 0.1346,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.413,
        "after": 0.0,
        "delta": -0.413,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.467,
        "after": 0.0,
        "delta": -0.467,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.414,
        "after": 0.4591,
        "delta": 0.0451,
        "percent_delta": 0.1089,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 1.207,
        "after": 0.0,
        "delta": -1.207,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 11,
      "boosted_metrics": 4,
      "deboosted_metrics": 7,
      "better_metrics": 5,
      "worse_metrics": 6,
      "biggest_boost": {
        "metric": "predicted_AB",
        "before": 3.353,
        "after": 4.0,
        "delta": 0.647,
        "percent_delta": 0.193,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_SO",
        "before": 1.207,
        "after": 0.0,
        "delta": -1.207,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.173-
predicted_3B0.000-
predicted_AB3.353-
predicted_AVG0.225-
predicted_BB0.440-
predicted_H0.753-
predicted_HR0.153-
predicted_OBP0.315-
predicted_R0.413-
predicted_RBI0.467-
predicted_SLG0.414-
predicted_SO1.207-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.1790.006
predicted_3B0.0000.000
predicted_AB3.288-0.065
predicted_AVG0.2540.029
predicted_BB0.5220.082
predicted_H0.8310.078
predicted_HBP0.027-
predicted_HR0.1620.009
predicted_OBP0.3530.038
predicted_R0.4600.047
predicted_RBI0.4930.026
predicted_SLG0.4570.043
predicted_SO1.174-0.033
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1790.000
predicted_3B0.0000.000
predicted_AB3.2880.000
predicted_AVG0.2550.002
predicted_BB0.5220.000
predicted_H0.8390.008
predicted_HBP0.0270.000
predicted_HR0.1640.002
predicted_OBP0.3570.004
predicted_R0.4660.007
predicted_RBI0.5000.007
predicted_SLG0.4590.003
predicted_SO1.173-0.001
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 3 (raw=3.35), rates preserved: AVG=0.250 HR/AB=0.049

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB3.000-
BB1.000-
H1.000-
HBP0.000-
HR0.000-
RBI1.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB1.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI1.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1520.152
3B0.0120.012
BB0.408-0.592
H0.758-0.242
HR0.1300.130
RBI0.424-0.576
SO1.1510.151
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.152
3B0.000-0.012
AB3.0000.000
BB0.000-0.408
H1.0000.242
HR0.000-0.130
R0.0000.000
RBI0.000-0.424
SO1.000-0.151
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.179
predicted_3B0.000-0.000
predicted_AB3.000-0.288
predicted_AVG0.224-0.031
predicted_BB1.0000.478
predicted_H1.0000.161
predicted_HR0.000-0.164
predicted_OBP0.312-0.045
predicted_R0.000-0.466
predicted_RBI1.0000.500
predicted_SLG0.391-0.068
predicted_SO1.000-0.173
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0001.000
BB0.0000.000
CS0.0000.000
H0.000-1.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R0.0000.000
RBI0.0000.000
SB0.0000.000
SF0.0000.000
SO0.000-1.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 150
Reference playing time: 3.804
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-15.0006.0001.0000.0001.0003.0003.0005.0006.0000.40000.55000.66670.40000.06670.20000.33330.4000
last_100.2010-28.00011.0002.0000.0002.0006.0007.0008.0009.0000.39290.52780.67860.39290.07140.21430.28570.3214
season0.60150-503.000113.00026.0000.00023.00070.00062.00066.000181.0000.22470.32070.41350.22460.04570.13920.13120.3598
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1860
predicted_3B0.0010
predicted_AB3.2030
predicted_AVG0.2912
predicted_BB0.6280
predicted_H0.9330
predicted_HBP0.0270
predicted_HR0.1730
predicted_OBP0.4030
predicted_R0.5200
predicted_RBI0.5270
predicted_SLG0.5118
predicted_SO1.1320
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.17300.18600.1787model_form_blend
predicted_3B0.00000.00100.0004model_form_blend
predicted_AB3.35303.20303.2877model_form_blend
predicted_AVG0.22500.29120.2538model_form_blend
predicted_BB0.44000.62800.5219model_form_blend
predicted_H0.75300.93300.8314model_form_blend
predicted_HBP-0.02700.0270form_only
predicted_HR0.15300.17300.1617model_form_blend
predicted_OBP0.31500.40300.3533model_form_blend
predicted_R0.41300.52000.4596model_form_blend
predicted_RBI0.46700.52700.4931model_form_blend
predicted_SLG0.41400.51180.4566model_form_blend
predicted_SO1.20701.13201.1743model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date578
Season rows before report date578
Report year2026
Profile rows used150
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA4
AB4
H0
2B0
3B0
HR0
R0
RBI0
BB0
SO0
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E1
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B1
Hitting_3B0
Hitting_AB2
Hitting_AVG0.5
Hitting_BB1
Hitting_GIDP0
Hitting_H1
Hitting_HBP1
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO1
Hitting_TB2
Hitting_battingOrder7
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayed1B
gameID20260920_DET@CHW
game_typefull
mlbID679529
playerID679529
playerNameSpencer Torkelson
pos1B
startedTrue
startingPosition1B
teamDET
teamID10
game_date2026-09-20
sl_k_percent31.2
sl_bb_percent11.3
sl_woba0.328
sl_xwoba0.313
sl_xba0.214
sl_xslg0.396
sl_sweet_spot_percent41.0
sl_barrel_batted_rate12.2
sl_hard_hit_percent41.9
sl_exit_velocity_avg89.5
sl_launch_angle_avg20.0
sl_whiff_percent31.9
sl_swing_percent42.7
Dillon Dingler (693307) · BATTER · 3B · Team DET
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 582
All-history rows before 20260921: 582
System season_avg: 0.2440
Data season_avg (2026 season-to-date): 0.2506
Diff (system - data): -0.0066
System opponent_avg: 0.2440

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1870.0000.000Hitting_2B0.2040.000-0.2040.000
predicted_3B0.0140.0000.000Hitting_3B0.0150.000-0.0150.000
predicted_AB3.7993.0004.000Hitting_AB3.9834.000-0.983-1.000
predicted_AVG0.2440.0000.250Hitting_AVG0.2510.250-0.251-0.250
predicted_BB0.2231.0000.000Hitting_BB0.2340.0000.7661.000
predicted_CS-0.0000.000BaseRunning_CS0.0000.0000.0000.000
predicted_H0.9280.0001.000Hitting_H0.9981.000-0.998-1.000
predicted_HR0.1940.0001.000Hitting_HR0.2220.000-0.2220.000
predicted_OBP0.2860.2500.250Hitting_OBP0.3080.250-0.0580.000
predicted_R0.4820.0001.000Hitting_R0.5310.000-0.5310.000
predicted_RBI0.6400.0001.000Hitting_RBI0.7060.000-0.7060.000
predicted_SLG0.4550.0001.000Hitting_SLG0.4770.250-0.477-0.250
predicted_SO0.9712.0001.000Hitting_SO0.9951.0001.0051.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics11
Boosted Metrics2
Deboosted Metrics9
Better Metrics1
Worse Metrics10
Biggest Boostpredicted_SO: 0.9710 -> 2.0000 (boost 1.0290, worse)
Biggest Deboostpredicted_H: 0.9280 -> 0.0000 (deboost -0.9280, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend30303-predicted_SLG: 0.4550 -> 0.4243 (deboost -0.0307, 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.
3team_form_snapshot00000--Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling73434predicted_RBI: 0.6225 -> 1.0000 (boost 0.3775, better)predicted_BB: 0.1870 -> 0.0000 (deboost -0.1870, worse)AB rounded to 4 (raw=3.80), rates preserved: AVG=0.239 HR/AB=0.045
6consistency_constraints10101-predicted_R: 0.4676 -> 0.0000 (deboost -0.4676, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine53232predicted_BB: 0.0000 -> 0.2420 (boost 0.2420, better)predicted_RBI: 1.0000 -> 0.5534 (deboost -0.4466, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation64242predicted_R: 0.0000 -> 1.0000 (boost 1.0000, better)predicted_BB: 0.2420 -> 0.0000 (deboost -0.2420, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context31212predicted_OBP: 0.2745 -> 0.2910 (boost 0.0165, 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
10simulation_box_score_reference52314predicted_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
11current_json_final10101-predicted_OBP: 0.2910 -> 0.2745 (deboost -0.0165, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "693307",
  "player_name": "Dillon Dingler",
  "position": "3B",
  "team": "DET",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.187,
        "predicted_3B": 0.014,
        "predicted_AB": 3.799,
        "predicted_AVG": 0.244,
        "predicted_BB": 0.223,
        "predicted_H": 0.928,
        "predicted_HR": 0.194,
        "predicted_OBP": 0.286,
        "predicted_R": 0.482,
        "predicted_RBI": 0.64,
        "predicted_SLG": 0.455,
        "predicted_SO": 0.971
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.1809,
        "predicted_3B": 0.0118,
        "predicted_AB": 3.799,
        "predicted_AVG": 0.2364,
        "predicted_BB": 0.1868,
        "predicted_H": 0.8988,
        "predicted_HBP": 0.063,
        "predicted_HR": 0.1687,
        "predicted_OBP": 0.2758,
        "predicted_R": 0.4607,
        "predicted_RBI": 0.6134,
        "predicted_SLG": 0.4243,
        "predicted_SO": 0.9897
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.187,
          "after": 0.1809,
          "delta": -0.0061,
          "percent_delta": -0.0326,
          "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.799,
          "after": 3.799,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "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.223,
          "after": 0.1868,
          "delta": -0.0362,
          "percent_delta": -0.1623,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.928,
          "after": 0.8988,
          "delta": -0.0292,
          "percent_delta": -0.0315,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.194,
          "after": 0.1687,
          "delta": -0.0253,
          "percent_delta": -0.1304,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.286,
          "after": 0.2758,
          "delta": -0.0102,
          "percent_delta": -0.0357,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.482,
          "after": 0.4607,
          "delta": -0.0213,
          "percent_delta": -0.0442,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.64,
          "after": 0.6134,
          "delta": -0.0266,
          "percent_delta": -0.0416,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.455,
          "after": 0.4243,
          "delta": -0.0307,
          "percent_delta": -0.0675,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.971,
          "after": 0.9897,
          "delta": 0.0187,
          "percent_delta": 0.0193,
          "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.455,
          "after": 0.4243,
          "delta": -0.0307,
          "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": 139
      }
    },
    {
      "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.1809,
        "predicted_3B": 0.0118,
        "predicted_AB": 3.799,
        "predicted_AVG": 0.2388,
        "predicted_BB": 0.187,
        "predicted_H": 0.9072,
        "predicted_HBP": 0.063,
        "predicted_HR": 0.1707,
        "predicted_OBP": 0.2745,
        "predicted_R": 0.4676,
        "predicted_RBI": 0.6225,
        "predicted_SLG": 0.4274,
        "predicted_SO": 0.9887
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1809,
          "after": 0.1809,
          "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.799,
          "after": 3.799,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2364,
          "after": 0.2388,
          "delta": 0.0024,
          "percent_delta": 0.0102,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.1868,
          "after": 0.187,
          "delta": 0.0002,
          "percent_delta": 0.0011,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.8988,
          "after": 0.9072,
          "delta": 0.0084,
          "percent_delta": 0.0093,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HBP",
          "before": 0.063,
          "after": 0.063,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.1687,
          "after": 0.1707,
          "delta": 0.002,
          "percent_delta": 0.0119,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2758,
          "after": 0.2745,
          "delta": -0.0013,
          "percent_delta": -0.0047,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.4607,
          "after": 0.4676,
          "delta": 0.0069,
          "percent_delta": 0.015,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.6134,
          "after": 0.6225,
          "delta": 0.0091,
          "percent_delta": 0.0148,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4243,
          "after": 0.4274,
          "delta": 0.0031,
          "percent_delta": 0.0073,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.9897,
          "after": 0.9887,
          "delta": -0.001,
          "percent_delta": -0.001,
          "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.239 HR/AB=0.045",
      "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.1809,
          "after": 0.0,
          "delta": -0.1809,
          "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.799,
          "after": 4.0,
          "delta": 0.201,
          "percent_delta": 0.0529,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.187,
          "after": 0.0,
          "delta": -0.187,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.9072,
          "after": 1.0,
          "delta": 0.0928,
          "percent_delta": 0.1023,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HBP",
          "before": 0.063,
          "after": 0.0,
          "delta": -0.063,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1707,
          "after": 0.0,
          "delta": -0.1707,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.6225,
          "after": 1.0,
          "delta": 0.3775,
          "percent_delta": 0.6064,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.9887,
          "after": 1.0,
          "delta": 0.0113,
          "percent_delta": 0.0114,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        }
      ],
      "summary": {
        "changed_metrics": 7,
        "boosted_metrics": 3,
        "deboosted_metrics": 4,
        "better_metrics": 3,
        "worse_metrics": 4,
        "biggest_boost": {
          "metric": "predicted_RBI",
          "before": 0.6225,
          "after": 1.0,
          "delta": 0.3775,
          "percent_delta": 0.6064,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.187,
          "after": 0.0,
          "delta": -0.187,
          "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.4676,
          "after": 0.0,
          "delta": -0.4676,
          "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.4676,
          "after": 0.0,
          "delta": -0.4676,
          "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.1657,
        "predicted_3B": 0.0216,
        "predicted_BB": 0.242,
        "predicted_H": 0.8804,
        "predicted_HR": 0.1602,
        "predicted_RBI": 0.5534,
        "predicted_SO": 0.9567
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1657,
          "delta": 0.1657,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0216,
          "delta": 0.0216,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.242,
          "delta": 0.242,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8804,
          "delta": -0.1196,
          "percent_delta": -0.1196,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1602,
          "delta": 0.1602,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.5534,
          "delta": -0.4466,
          "percent_delta": -0.4466,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.9567,
          "delta": -0.0433,
          "percent_delta": -0.0433,
          "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.242,
          "delta": 0.242,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.5534,
          "delta": -0.4466,
          "percent_delta": -0.4466,
          "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.1657,
          "after": 0.0,
          "delta": -0.1657,
          "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.0,
          "after": 4.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "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": 0.8804,
          "after": 1.0,
          "delta": 0.1196,
          "percent_delta": 0.1358,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1602,
          "after": 1.0,
          "delta": 0.8398,
          "percent_delta": 5.2422,
          "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.5534,
          "after": 1.0,
          "delta": 0.4466,
          "percent_delta": 0.807,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.9567,
          "after": 1.0,
          "delta": 0.0433,
          "percent_delta": 0.0453,
          "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_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.242,
          "after": 0.0,
          "delta": -0.242,
          "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.238,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.291,
        "predicted_R": 0.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.2388,
          "after": 0.238,
          "delta": -0.0008,
          "percent_delta": -0.0034,
          "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": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2745,
          "after": 0.291,
          "delta": 0.0165,
          "percent_delta": 0.0601,
          "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.4274,
          "after": 0.425,
          "delta": -0.0024,
          "percent_delta": -0.0056,
          "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_OBP",
          "before": 0.2745,
          "after": 0.291,
          "delta": 0.0165,
          "percent_delta": 0.0601,
          "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": 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": 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": 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_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.2388,
        "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.2745,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.4274,
        "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.238,
          "after": 0.2388,
          "delta": 0.0008,
          "percent_delta": 0.0034,
          "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.291,
          "after": 0.2745,
          "delta": -0.0165,
          "percent_delta": -0.0566,
          "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.425,
          "after": 0.4274,
          "delta": 0.0024,
          "percent_delta": 0.0057,
          "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.291,
          "after": 0.2745,
          "delta": -0.0165,
          "percent_delta": -0.0566,
          "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.187,
        "after": 0.0,
        "delta": -0.187,
        "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.799,
        "after": 3.0,
        "delta": -0.799,
        "percent_delta": -0.2103,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.244,
        "after": 0.2388,
        "delta": -0.0052,
        "percent_delta": -0.0213,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.223,
        "after": 1.0,
        "delta": 0.777,
        "percent_delta": 3.4843,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.928,
        "after": 0.0,
        "delta": -0.928,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.194,
        "after": 0.0,
        "delta": -0.194,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.286,
        "after": 0.2745,
        "delta": -0.0115,
        "percent_delta": -0.0402,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.482,
        "after": 0.0,
        "delta": -0.482,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.64,
        "after": 0.0,
        "delta": -0.64,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.455,
        "after": 0.4274,
        "delta": -0.0276,
        "percent_delta": -0.0607,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.971,
        "after": 2.0,
        "delta": 1.029,
        "percent_delta": 1.0597,
        "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.971,
        "after": 2.0,
        "delta": 1.029,
        "percent_delta": 1.0597,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_H",
        "before": 0.928,
        "after": 0.0,
        "delta": -0.928,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.187-
predicted_3B0.014-
predicted_AB3.799-
predicted_AVG0.244-
predicted_BB0.223-
predicted_H0.928-
predicted_HR0.194-
predicted_OBP0.286-
predicted_R0.482-
predicted_RBI0.640-
predicted_SLG0.455-
predicted_SO0.971-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.181-0.006
predicted_3B0.012-0.002
predicted_AB3.7990.000
predicted_AVG0.236-0.008
predicted_BB0.187-0.036
predicted_H0.899-0.029
predicted_HBP0.063-
predicted_HR0.169-0.025
predicted_OBP0.276-0.010
predicted_R0.461-0.021
predicted_RBI0.613-0.027
predicted_SLG0.424-0.031
predicted_SO0.9900.019
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1810.000
predicted_3B0.0120.000
predicted_AB3.7990.000
predicted_AVG0.2390.002
predicted_BB0.1870.000
predicted_H0.9070.008
predicted_HBP0.0630.000
predicted_HR0.1710.002
predicted_OBP0.275-0.001
predicted_R0.4680.007
predicted_RBI0.6230.009
predicted_SLG0.4270.003
predicted_SO0.989-0.001
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 4 (raw=3.80), rates preserved: AVG=0.239 HR/AB=0.045

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB4.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI1.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI1.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1660.166
3B0.0220.022
BB0.2420.242
H0.880-0.120
HR0.1600.160
RBI0.553-0.447
SO0.957-0.043
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.166
3B0.000-0.022
AB4.0000.000
BB0.000-0.242
H1.0000.120
HR1.0000.840
R1.0001.000
RBI1.0000.447
SO1.0000.043
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.181
predicted_3B0.000-0.012
predicted_AB4.0000.201
predicted_AVG0.238-0.001
predicted_BB0.000-0.187
predicted_H1.0000.093
predicted_HR0.000-0.171
predicted_OBP0.2910.016
predicted_R0.000-0.468
predicted_RBI1.0000.377
predicted_SLG0.425-0.002
predicted_SO1.0000.011
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.000-1.000
BB1.0001.000
CS0.0000.000
H0.000-1.000
HBP0.0000.000
HR0.000-1.000
PA4.000-
R0.000-1.000
RBI0.000-1.000
SB0.0000.000
SF0.0000.000
SO2.0001.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 139
Reference playing time: 3.804
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-19.0004.0001.0000.0000.0002.0002.0000.0005.0000.21050.21050.26320.21050.00000.10530.00000.2632
last_100.2010-38.0007.0001.0000.0001.0006.0003.0000.00012.0000.18420.18420.28950.18420.02630.15790.00000.3158
season0.60139-528.000129.00026.0002.00027.00089.00067.00031.000135.0000.24430.30220.45450.24430.05110.16860.05870.2557
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1730
predicted_3B0.0090
predicted_AB3.7990
predicted_AVG0.2266
predicted_BB0.1400
predicted_H0.8610
predicted_HBP0.0630
predicted_HR0.1360
predicted_OBP0.2625
predicted_R0.4330
predicted_RBI0.5790
predicted_SLG0.3845
predicted_SO1.0140
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.18700.17300.1809model_form_blend
predicted_3B0.01400.00900.0118model_form_blend
predicted_AB3.79903.79903.7990model_form_blend
predicted_AVG0.24400.22660.2364model_form_blend
predicted_BB0.22300.14000.1868model_form_blend
predicted_H0.92800.86100.8988model_form_blend
predicted_HBP-0.06300.0630form_only
predicted_HR0.19400.13600.1687model_form_blend
predicted_OBP0.28600.26250.2758model_form_blend
predicted_R0.48200.43300.4607model_form_blend
predicted_RBI0.64000.57900.6134model_form_blend
predicted_SLG0.45500.38450.4243model_form_blend
predicted_SO0.97101.01400.9897model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date582
Season rows before report date582
Report year2026
Profile rows used139
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA4
AB3
H0
2B0
3B0
HR0
R0
RBI0
BB1
SO2
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB4
Hitting_AVG0.25
Hitting_BB0
Hitting_GIDP0
Hitting_H1
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO1
Hitting_TB1
Hitting_battingOrder5
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedC
gameID20260919_DET@CHW
game_typefull
mlbID693307
playerID693307
playerNameDillon Dingler
posC
startedTrue
startingPositionC
teamDET
teamID10
game_date2026-09-19
sl_k_percent23.1
sl_bb_percent5.4
sl_woba0.325
sl_xwoba0.34
sl_xba0.262
sl_xslg0.462
sl_sweet_spot_percent39.0
sl_barrel_batted_rate9.9
sl_hard_hit_percent42.5
sl_exit_velocity_avg88.6
sl_launch_angle_avg17.6
sl_whiff_percent22.4
sl_swing_percent48.2
Hao-Yu Lee (701678) · BATTER · SS · Team DET
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 321
All-history rows before 20260921: 321
System season_avg: 0.2690
Data season_avg (2026 season-to-date): 0.2645
Diff (system - data): 0.0045
System opponent_avg: 0.2690

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1600.0000.000Hitting_2B0.1840.000-0.1840.000
predicted_3B0.0200.0000.000Hitting_3B0.0250.000-0.0250.000
predicted_AB2.9704.0004.000Hitting_AB3.2274.0000.7730.000
predicted_AVG0.2690.7500.250Hitting_AVG0.2640.0000.4860.750
predicted_BB0.2500.0000.000Hitting_BB0.3460.000-0.3460.000
predicted_CS-0.0000.000BaseRunning_CS0.0250.000-0.0250.000
predicted_H0.8003.0001.000Hitting_H0.8540.0002.1463.000
predicted_HR0.1000.0000.000Hitting_HR0.0970.000-0.0970.000
predicted_OBP0.3260.7500.250Hitting_OBP0.3320.0000.4180.750
predicted_R0.3801.0000.000Hitting_R0.4390.0000.5611.000
predicted_RBI0.4500.0001.000Hitting_RBI0.5260.000-0.5260.000
predicted_SLG0.4380.7500.250Hitting_SLG0.4270.0000.3230.750
predicted_SO0.8000.0001.000Hitting_SO0.8412.000-0.841-2.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics11
Boosted Metrics6
Deboosted Metrics5
Better Metrics7
Worse Metrics4
Biggest Boostpredicted_H: 0.8000 -> 3.0000 (boost 2.2000, better)
Biggest Deboostpredicted_SO: 0.8000 -> 0.0000 (deboost -0.8000, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend77061predicted_AB: 2.9700 -> 3.1992 (boost 0.2292, 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.
3team_form_snapshot11010predicted_SLG: 0.4633 -> 0.4698 (boost 0.0065, better)-Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling74334predicted_AB: 3.1992 -> 4.0000 (boost 0.8008, better)predicted_BB: 0.2639 -> 0.0000 (deboost -0.2639, worse)AB rounded to 4 (raw=3.20), rates preserved: AVG=0.279 HR/AB=0.040
6consistency_constraints10101-predicted_R: 0.4379 -> 0.0000 (deboost -0.4379, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine53232predicted_BB: 0.0000 -> 0.3122 (boost 0.3122, better)predicted_RBI: 1.0000 -> 0.4794 (deboost -0.5206, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation52323predicted_RBI: 0.4794 -> 1.0000 (boost 0.5206, better)predicted_BB: 0.3122 -> 0.0000 (deboost -0.3122, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context30303-predicted_SLG: 0.4698 -> 0.4020 (deboost -0.0678, worse)Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10simulation_box_score_reference42231predicted_H: 1.0000 -> 3.0000 (boost 2.0000, better)predicted_RBI: 1.0000 -> 0.0000 (deboost -1.0000, worse)Attached simulation box score without overwriting model prediction
11current_json_final33030predicted_SLG: 0.4020 -> 0.4698 (boost 0.0678, better)-Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "701678",
  "player_name": "Hao-Yu  Lee",
  "position": "SS",
  "team": "DET",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.16,
        "predicted_3B": 0.02,
        "predicted_AB": 2.97,
        "predicted_AVG": 0.269,
        "predicted_BB": 0.25,
        "predicted_H": 0.8,
        "predicted_HR": 0.1,
        "predicted_OBP": 0.326,
        "predicted_R": 0.38,
        "predicted_RBI": 0.45,
        "predicted_SLG": 0.438,
        "predicted_SO": 0.8
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.1749,
        "predicted_3B": 0.0247,
        "predicted_AB": 3.1992,
        "predicted_AVG": 0.2755,
        "predicted_BB": 0.2636,
        "predicted_H": 0.8842,
        "predicted_HBP": 0.003,
        "predicted_HR": 0.1272,
        "predicted_OBP": 0.3297,
        "predicted_R": 0.4315,
        "predicted_RBI": 0.5023,
        "predicted_SLG": 0.4633,
        "predicted_SO": 0.871
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.16,
          "after": 0.1749,
          "delta": 0.0149,
          "percent_delta": 0.0931,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.02,
          "after": 0.0247,
          "delta": 0.0047,
          "percent_delta": 0.235,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 2.97,
          "after": 3.1992,
          "delta": 0.2292,
          "percent_delta": 0.0772,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.269,
          "after": 0.2755,
          "delta": 0.0065,
          "percent_delta": 0.0242,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.25,
          "after": 0.2636,
          "delta": 0.0136,
          "percent_delta": 0.0544,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.8,
          "after": 0.8842,
          "delta": 0.0842,
          "percent_delta": 0.1052,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1,
          "after": 0.1272,
          "delta": 0.0272,
          "percent_delta": 0.272,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.326,
          "after": 0.3297,
          "delta": 0.0037,
          "percent_delta": 0.0113,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.38,
          "after": 0.4315,
          "delta": 0.0515,
          "percent_delta": 0.1355,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.45,
          "after": 0.5023,
          "delta": 0.0523,
          "percent_delta": 0.1162,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.438,
          "after": 0.4633,
          "delta": 0.0253,
          "percent_delta": 0.0578,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.8,
          "after": 0.871,
          "delta": 0.071,
          "percent_delta": 0.0887,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 7,
        "boosted_metrics": 7,
        "deboosted_metrics": 0,
        "better_metrics": 6,
        "worse_metrics": 1,
        "biggest_boost": {
          "metric": "predicted_AB",
          "before": 2.97,
          "after": 3.1992,
          "delta": 0.2292,
          "percent_delta": 0.0772,
          "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": 100
      }
    },
    {
      "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.1749,
        "predicted_3B": 0.0247,
        "predicted_AB": 3.1992,
        "predicted_AVG": 0.279,
        "predicted_BB": 0.2639,
        "predicted_H": 0.8925,
        "predicted_HBP": 0.003,
        "predicted_HR": 0.1287,
        "predicted_OBP": 0.3339,
        "predicted_R": 0.4379,
        "predicted_RBI": 0.5098,
        "predicted_SLG": 0.4698,
        "predicted_SO": 0.8701
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1749,
          "after": 0.1749,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.0247,
          "after": 0.0247,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 3.1992,
          "after": 3.1992,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2755,
          "after": 0.279,
          "delta": 0.0035,
          "percent_delta": 0.0127,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.2636,
          "after": 0.2639,
          "delta": 0.0003,
          "percent_delta": 0.0011,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.8842,
          "after": 0.8925,
          "delta": 0.0083,
          "percent_delta": 0.0094,
          "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.1272,
          "after": 0.1287,
          "delta": 0.0015,
          "percent_delta": 0.0118,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3297,
          "after": 0.3339,
          "delta": 0.0042,
          "percent_delta": 0.0127,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.4315,
          "after": 0.4379,
          "delta": 0.0064,
          "percent_delta": 0.0148,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5023,
          "after": 0.5098,
          "delta": 0.0075,
          "percent_delta": 0.0149,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4633,
          "after": 0.4698,
          "delta": 0.0065,
          "percent_delta": 0.014,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.871,
          "after": 0.8701,
          "delta": -0.0009,
          "percent_delta": -0.001,
          "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.4633,
          "after": 0.4698,
          "delta": 0.0065,
          "percent_delta": 0.014,
          "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.20), rates preserved: AVG=0.279 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.1749,
          "after": 0.0,
          "delta": -0.1749,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0247,
          "after": 0.0,
          "delta": -0.0247,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 3.1992,
          "after": 4.0,
          "delta": 0.8008,
          "percent_delta": 0.2503,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.2639,
          "after": 0.0,
          "delta": -0.2639,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8925,
          "after": 1.0,
          "delta": 0.1075,
          "percent_delta": 0.1204,
          "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.1287,
          "after": 0.0,
          "delta": -0.1287,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5098,
          "after": 1.0,
          "delta": 0.4902,
          "percent_delta": 0.9616,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.8701,
          "after": 1.0,
          "delta": 0.1299,
          "percent_delta": 0.1493,
          "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.1992,
          "after": 4.0,
          "delta": 0.8008,
          "percent_delta": 0.2503,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.2639,
          "after": 0.0,
          "delta": -0.2639,
          "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.4379,
          "after": 0.0,
          "delta": -0.4379,
          "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.4379,
          "after": 0.0,
          "delta": -0.4379,
          "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.1618,
        "predicted_3B": 0.0252,
        "predicted_BB": 0.3122,
        "predicted_H": 0.8755,
        "predicted_HR": 0.1133,
        "predicted_RBI": 0.4794,
        "predicted_SO": 0.9618
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1618,
          "delta": 0.1618,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0252,
          "delta": 0.0252,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.3122,
          "delta": 0.3122,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8755,
          "delta": -0.1245,
          "percent_delta": -0.1245,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1133,
          "delta": 0.1133,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.4794,
          "delta": -0.5206,
          "percent_delta": -0.5206,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.9618,
          "delta": -0.0382,
          "percent_delta": -0.0382,
          "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.3122,
          "delta": 0.3122,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.4794,
          "delta": -0.5206,
          "percent_delta": -0.5206,
          "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.1618,
          "after": 0.0,
          "delta": -0.1618,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0252,
          "after": 0.0,
          "delta": -0.0252,
          "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.3122,
          "after": 0.0,
          "delta": -0.3122,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8755,
          "after": 1.0,
          "delta": 0.1245,
          "percent_delta": 0.1422,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1133,
          "after": 0.0,
          "delta": -0.1133,
          "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.4794,
          "after": 1.0,
          "delta": 0.5206,
          "percent_delta": 1.0859,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.9618,
          "after": 1.0,
          "delta": 0.0382,
          "percent_delta": 0.0397,
          "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_RBI",
          "before": 0.4794,
          "after": 1.0,
          "delta": 0.5206,
          "percent_delta": 1.0859,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.3122,
          "after": 0.0,
          "delta": -0.3122,
          "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.247,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.313,
        "predicted_R": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.402,
        "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.279,
          "after": 0.247,
          "delta": -0.032,
          "percent_delta": -0.1147,
          "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.3339,
          "after": 0.313,
          "delta": -0.0209,
          "percent_delta": -0.0626,
          "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.4698,
          "after": 0.402,
          "delta": -0.0678,
          "percent_delta": -0.1443,
          "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.4698,
          "after": 0.402,
          "delta": -0.0678,
          "percent_delta": -0.1443,
          "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": 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": 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": 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": 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_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_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.279,
        "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.3339,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.4698,
        "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.247,
          "after": 0.279,
          "delta": 0.032,
          "percent_delta": 0.1295,
          "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.313,
          "after": 0.3339,
          "delta": 0.0209,
          "percent_delta": 0.0668,
          "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.402,
          "after": 0.4698,
          "delta": 0.0678,
          "percent_delta": 0.1686,
          "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.402,
          "after": 0.4698,
          "delta": 0.0678,
          "percent_delta": 0.1686,
          "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.16,
        "after": 0.0,
        "delta": -0.16,
        "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": 2.97,
        "after": 4.0,
        "delta": 1.03,
        "percent_delta": 0.3468,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.269,
        "after": 0.279,
        "delta": 0.01,
        "percent_delta": 0.0372,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.25,
        "after": 0.0,
        "delta": -0.25,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.8,
        "after": 3.0,
        "delta": 2.2,
        "percent_delta": 2.75,
        "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.326,
        "after": 0.3339,
        "delta": 0.0079,
        "percent_delta": 0.0242,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.38,
        "after": 1.0,
        "delta": 0.62,
        "percent_delta": 1.6316,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.45,
        "after": 0.0,
        "delta": -0.45,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.438,
        "after": 0.4698,
        "delta": 0.0318,
        "percent_delta": 0.0726,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.8,
        "after": 0.0,
        "delta": -0.8,
        "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_H",
        "before": 0.8,
        "after": 3.0,
        "delta": 2.2,
        "percent_delta": 2.75,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_SO",
        "before": 0.8,
        "after": 0.0,
        "delta": -0.8,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "better"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.160-
predicted_3B0.020-
predicted_AB2.970-
predicted_AVG0.269-
predicted_BB0.250-
predicted_H0.800-
predicted_HR0.100-
predicted_OBP0.326-
predicted_R0.380-
predicted_RBI0.450-
predicted_SLG0.438-
predicted_SO0.800-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.1750.015
predicted_3B0.0250.005
predicted_AB3.1990.229
predicted_AVG0.2760.007
predicted_BB0.2640.014
predicted_H0.8840.084
predicted_HBP0.003-
predicted_HR0.1270.027
predicted_OBP0.3300.004
predicted_R0.4310.051
predicted_RBI0.5020.052
predicted_SLG0.4630.025
predicted_SO0.8710.071
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1750.000
predicted_3B0.0250.000
predicted_AB3.1990.000
predicted_AVG0.2790.004
predicted_BB0.2640.000
predicted_H0.8920.008
predicted_HBP0.0030.000
predicted_HR0.1290.002
predicted_OBP0.3340.004
predicted_R0.4380.006
predicted_RBI0.5100.008
predicted_SLG0.4700.007
predicted_SO0.870-0.001
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 4 (raw=3.20), rates preserved: AVG=0.279 HR/AB=0.040

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB4.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI1.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI1.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1620.162
3B0.0250.025
BB0.3120.312
H0.875-0.125
HR0.1130.113
RBI0.479-0.521
SO0.962-0.038
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.162
3B0.000-0.025
AB4.0000.000
BB0.000-0.312
H1.0000.125
HR0.000-0.113
R0.0000.000
RBI1.0000.521
SO1.0000.038
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.175
predicted_3B0.000-0.025
predicted_AB4.0000.801
predicted_AVG0.247-0.032
predicted_BB0.000-0.264
predicted_H1.0000.108
predicted_HR0.000-0.129
predicted_OBP0.313-0.021
predicted_R0.000-0.438
predicted_RBI1.0000.490
predicted_SLG0.402-0.068
predicted_SO1.0000.130
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.0000.000
H3.0002.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R1.0001.000
RBI0.000-1.000
SB0.0000.000
SF0.0000.000
SO0.000-1.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 100
Reference playing time: 3.804
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-23.0008.0001.0000.0002.0004.0003.0000.0006.0000.34780.34780.65220.34780.08700.17390.00000.2609
last_100.2010-39.00011.0003.0001.0002.0008.0008.0006.00013.0000.28210.36960.56410.28210.05130.20510.15380.3333
season0.60100-297.00080.00016.0002.00010.00045.00038.00025.00080.0000.26940.32310.43770.26940.03370.15150.08420.2694
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1950
predicted_3B0.0310
predicted_AB3.5090
predicted_AVG0.2843
predicted_BB0.2820
predicted_H0.9980
predicted_HBP0.0030
predicted_HR0.1640
predicted_OBP0.3347
predicted_R0.5010
predicted_RBI0.5730
predicted_SLG0.4976
predicted_SO0.9670
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.16000.19500.1749model_form_blend
predicted_3B0.02000.03100.0247model_form_blend
predicted_AB2.97003.50903.1992model_form_blend
predicted_AVG0.26900.28430.2755model_form_blend
predicted_BB0.25000.28200.2636model_form_blend
predicted_H0.80000.99800.8842model_form_blend
predicted_HBP-0.00300.0030form_only
predicted_HR0.10000.16400.1272model_form_blend
predicted_OBP0.32600.33470.3297model_form_blend
predicted_R0.38000.50100.4315model_form_blend
predicted_RBI0.45000.57300.5023model_form_blend
predicted_SLG0.43800.49760.4633model_form_blend
predicted_SO0.80000.96700.8710model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date321
Season rows before report date321
Report year2026
Profile rows used100
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA4
AB4
H3
2B0
3B0
HR0
R1
RBI0
BB0
SO0
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB4
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO2
Hitting_TB0
Hitting_battingOrder3
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayed3B
gameID20260920_DET@CHW
game_typefull
mlbID701678
playerID701678
playerNameHao-Yu Lee
pos2B
startedTrue
startingPosition3B
teamDET
teamID10
game_date2026-09-20
sl_k_percent24.5
sl_bb_percent7.9
sl_woba0.327
sl_xwoba0.303
sl_xba0.235
sl_xslg0.4
sl_sweet_spot_percent35.3
sl_barrel_batted_rate8.9
sl_hard_hit_percent41.5
sl_exit_velocity_avg89.6
sl_launch_angle_avg13.4
sl_whiff_percent27.7
sl_swing_percent47.3
Riley Greene (682985) · BATTER · LF · Team DET
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 555
All-history rows before 20260921: 555
System season_avg: 0.2880
Data season_avg (2026 season-to-date): 0.2875
Diff (system - data): 0.0005
System opponent_avg: 0.2880

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.2270.0001.000Hitting_2B0.2401.000-0.240-1.000
predicted_3B0.0150.0000.000Hitting_3B0.0160.000-0.0160.000
predicted_AB3.6823.0004.000Hitting_AB3.7484.000-0.748-1.000
predicted_AVG0.2880.3330.250Hitting_AVG0.2870.2500.0460.083
predicted_BB0.5001.0001.000Hitting_BB0.5150.0000.4851.000
predicted_CS-0.0000.000BaseRunning_CS0.0070.000-0.0070.000
predicted_H1.0611.0001.000Hitting_H1.0771.000-0.0770.000
predicted_HR0.1591.0000.000Hitting_HR0.1620.0000.8381.000
predicted_OBP0.3730.5000.400Hitting_OBP0.3740.2500.1260.250
predicted_R0.5681.0001.000Hitting_R0.5911.0000.4090.000
predicted_RBI0.5683.0001.000Hitting_RBI0.5870.0002.4133.000
predicted_SLG0.4881.3330.500Hitting_SLG0.4900.5000.8430.833
predicted_SO1.1362.0001.000Hitting_SO1.1661.0000.8341.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics11
Boosted Metrics8
Deboosted Metrics3
Better Metrics7
Worse Metrics4
Biggest Boostpredicted_RBI: 0.5680 -> 3.0000 (boost 2.4320, better)
Biggest Deboostpredicted_AB: 3.6820 -> 3.0000 (deboost -0.6820, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend44040predicted_RBI: 0.5680 -> 0.6285 (boost 0.0605, 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.
3team_form_snapshot00000--Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling82635predicted_RBI: 0.6379 -> 1.0000 (boost 0.3621, better)predicted_BB: 0.4792 -> 0.0000 (deboost -0.4792, worse)AB rounded to 4 (raw=3.69), rates preserved: AVG=0.303 HR/AB=0.045
6consistency_constraints11010predicted_R: 0.5632 -> 1.0000 (boost 0.4368, better)-Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine53232predicted_BB: 0.0000 -> 0.4337 (boost 0.4337, better)predicted_RBI: 1.0000 -> 0.4723 (deboost -0.5277, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation54141predicted_2B: 0.1691 -> 1.0000 (boost 0.8309, better)predicted_HR: 0.1287 -> 0.0000 (deboost -0.1287, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context50505-predicted_2B: 1.0000 -> 0.0000 (deboost -1.0000, worse)Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10simulation_box_score_reference54132predicted_RBI: 1.0000 -> 3.0000 (boost 2.0000, better)predicted_AB: 4.0000 -> 3.0000 (deboost -1.0000, worse)Attached simulation box score without overwriting model prediction
11current_json_final33030predicted_SLG: 0.4220 -> 0.5031 (boost 0.0811, better)-Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "682985",
  "player_name": "Riley Greene",
  "position": "LF",
  "team": "DET",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.227,
        "predicted_3B": 0.015,
        "predicted_AB": 3.682,
        "predicted_AVG": 0.288,
        "predicted_BB": 0.5,
        "predicted_H": 1.061,
        "predicted_HR": 0.159,
        "predicted_OBP": 0.373,
        "predicted_R": 0.568,
        "predicted_RBI": 0.568,
        "predicted_SLG": 0.488,
        "predicted_SO": 1.136
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.1965,
        "predicted_3B": 0.0207,
        "predicted_AB": 3.6877,
        "predicted_AVG": 0.2997,
        "predicted_BB": 0.4787,
        "predicted_H": 1.1058,
        "predicted_HBP": 0.076,
        "predicted_HR": 0.1651,
        "predicted_OBP": 0.3841,
        "predicted_R": 0.5549,
        "predicted_RBI": 0.6285,
        "predicted_SLG": 0.499,
        "predicted_SO": 1.0994
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.227,
          "after": 0.1965,
          "delta": -0.0305,
          "percent_delta": -0.1344,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.015,
          "after": 0.0207,
          "delta": 0.0057,
          "percent_delta": 0.38,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 3.682,
          "after": 3.6877,
          "delta": 0.0057,
          "percent_delta": 0.0015,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.288,
          "after": 0.2997,
          "delta": 0.0117,
          "percent_delta": 0.0406,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.5,
          "after": 0.4787,
          "delta": -0.0213,
          "percent_delta": -0.0426,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 1.061,
          "after": 1.1058,
          "delta": 0.0448,
          "percent_delta": 0.0422,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.159,
          "after": 0.1651,
          "delta": 0.0061,
          "percent_delta": 0.0384,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.373,
          "after": 0.3841,
          "delta": 0.0111,
          "percent_delta": 0.0298,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.568,
          "after": 0.5549,
          "delta": -0.0131,
          "percent_delta": -0.0231,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.568,
          "after": 0.6285,
          "delta": 0.0605,
          "percent_delta": 0.1065,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.488,
          "after": 0.499,
          "delta": 0.011,
          "percent_delta": 0.0225,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.136,
          "after": 1.0994,
          "delta": -0.0366,
          "percent_delta": -0.0322,
          "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_RBI",
          "before": 0.568,
          "after": 0.6285,
          "delta": 0.0605,
          "percent_delta": 0.1065,
          "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": 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.1965,
        "predicted_3B": 0.0207,
        "predicted_AB": 3.6877,
        "predicted_AVG": 0.3027,
        "predicted_BB": 0.4792,
        "predicted_H": 1.1162,
        "predicted_HBP": 0.076,
        "predicted_HR": 0.167,
        "predicted_OBP": 0.3829,
        "predicted_R": 0.5632,
        "predicted_RBI": 0.6379,
        "predicted_SLG": 0.5031,
        "predicted_SO": 1.0983
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1965,
          "after": 0.1965,
          "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.6877,
          "after": 3.6877,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2997,
          "after": 0.3027,
          "delta": 0.003,
          "percent_delta": 0.01,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.4787,
          "after": 0.4792,
          "delta": 0.0005,
          "percent_delta": 0.001,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 1.1058,
          "after": 1.1162,
          "delta": 0.0104,
          "percent_delta": 0.0094,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HBP",
          "before": 0.076,
          "after": 0.076,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.1651,
          "after": 0.167,
          "delta": 0.0019,
          "percent_delta": 0.0115,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3841,
          "after": 0.3829,
          "delta": -0.0012,
          "percent_delta": -0.0031,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.5549,
          "after": 0.5632,
          "delta": 0.0083,
          "percent_delta": 0.015,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.6285,
          "after": 0.6379,
          "delta": 0.0094,
          "percent_delta": 0.015,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.499,
          "after": 0.5031,
          "delta": 0.0041,
          "percent_delta": 0.0082,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 1.0994,
          "after": 1.0983,
          "delta": -0.0011,
          "percent_delta": -0.001,
          "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.69), rates preserved: AVG=0.303 HR/AB=0.045",
      "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.1965,
          "after": 0.0,
          "delta": -0.1965,
          "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.6877,
          "after": 4.0,
          "delta": 0.3123,
          "percent_delta": 0.0847,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.4792,
          "after": 0.0,
          "delta": -0.4792,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.1162,
          "after": 1.0,
          "delta": -0.1162,
          "percent_delta": -0.1041,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HBP",
          "before": 0.076,
          "after": 0.0,
          "delta": -0.076,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.167,
          "after": 0.0,
          "delta": -0.167,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.6379,
          "after": 1.0,
          "delta": 0.3621,
          "percent_delta": 0.5676,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0983,
          "after": 1.0,
          "delta": -0.0983,
          "percent_delta": -0.0895,
          "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.6379,
          "after": 1.0,
          "delta": 0.3621,
          "percent_delta": 0.5676,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.4792,
          "after": 0.0,
          "delta": -0.4792,
          "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.5632,
          "after": 1.0,
          "delta": 0.4368,
          "percent_delta": 0.7756,
          "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.5632,
          "after": 1.0,
          "delta": 0.4368,
          "percent_delta": 0.7756,
          "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.1691,
        "predicted_3B": 0.0208,
        "predicted_BB": 0.4337,
        "predicted_H": 0.8846,
        "predicted_HR": 0.1287,
        "predicted_RBI": 0.4723,
        "predicted_SO": 1.0309
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1691,
          "delta": 0.1691,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0208,
          "delta": 0.0208,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.4337,
          "delta": 0.4337,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8846,
          "delta": -0.1154,
          "percent_delta": -0.1154,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1287,
          "delta": 0.1287,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.4723,
          "delta": -0.5277,
          "percent_delta": -0.5277,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 1.0309,
          "delta": 0.0309,
          "percent_delta": 0.0309,
          "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.4337,
          "delta": 0.4337,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.4723,
          "delta": -0.5277,
          "percent_delta": -0.5277,
          "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": 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.1691,
          "after": 1.0,
          "delta": 0.8309,
          "percent_delta": 4.9137,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0208,
          "after": 0.0,
          "delta": -0.0208,
          "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.4337,
          "after": 1.0,
          "delta": 0.5663,
          "percent_delta": 1.3057,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8846,
          "after": 1.0,
          "delta": 0.1154,
          "percent_delta": 0.1305,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1287,
          "after": 0.0,
          "delta": -0.1287,
          "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.4723,
          "after": 1.0,
          "delta": 0.5277,
          "percent_delta": 1.1173,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0309,
          "after": 1.0,
          "delta": -0.0309,
          "percent_delta": -0.03,
          "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_2B",
          "before": 0.1691,
          "after": 1.0,
          "delta": 0.8309,
          "percent_delta": 4.9137,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_HR",
          "before": 0.1287,
          "after": 0.0,
          "delta": -0.1287,
          "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.252,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.34,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.422,
        "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.3027,
          "after": 0.252,
          "delta": -0.0507,
          "percent_delta": -0.1675,
          "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.3829,
          "after": 0.34,
          "delta": -0.0429,
          "percent_delta": -0.112,
          "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.5031,
          "after": 0.422,
          "delta": -0.0811,
          "percent_delta": -0.1612,
          "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": 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": 3.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": 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": 3.0,
          "delta": 2.0,
          "percent_delta": 2.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_RBI",
          "before": 1.0,
          "after": 3.0,
          "delta": 2.0,
          "percent_delta": 2.0,
          "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.3027,
        "predicted_BB": 1.0,
        "predicted_CS": 0.0,
        "predicted_DH": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 1.0,
        "predicted_OBP": 0.3829,
        "predicted_R": 1.0,
        "predicted_RBI": 3.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.5031,
        "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.252,
          "after": 0.3027,
          "delta": 0.0507,
          "percent_delta": 0.2011,
          "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.34,
          "after": 0.3829,
          "delta": 0.0429,
          "percent_delta": 0.1261,
          "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": 3.0,
          "after": 3.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.422,
          "after": 0.5031,
          "delta": 0.0811,
          "percent_delta": 0.1922,
          "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.422,
          "after": 0.5031,
          "delta": 0.0811,
          "percent_delta": 0.1922,
          "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.227,
        "after": 0.0,
        "delta": -0.227,
        "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.682,
        "after": 3.0,
        "delta": -0.682,
        "percent_delta": -0.1852,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.288,
        "after": 0.3027,
        "delta": 0.0147,
        "percent_delta": 0.051,
        "direction": "boost",
        "projection_effect": "better",
        "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": 1.061,
        "after": 1.0,
        "delta": -0.061,
        "percent_delta": -0.0575,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.159,
        "after": 1.0,
        "delta": 0.841,
        "percent_delta": 5.2893,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.373,
        "after": 0.3829,
        "delta": 0.0099,
        "percent_delta": 0.0265,
        "direction": "boost",
        "projection_effect": "better",
        "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": 0.568,
        "after": 3.0,
        "delta": 2.432,
        "percent_delta": 4.2817,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.488,
        "after": 0.5031,
        "delta": 0.0151,
        "percent_delta": 0.0309,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 1.136,
        "after": 2.0,
        "delta": 0.864,
        "percent_delta": 0.7606,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 11,
      "boosted_metrics": 8,
      "deboosted_metrics": 3,
      "better_metrics": 7,
      "worse_metrics": 4,
      "biggest_boost": {
        "metric": "predicted_RBI",
        "before": 0.568,
        "after": 3.0,
        "delta": 2.432,
        "percent_delta": 4.2817,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_AB",
        "before": 3.682,
        "after": 3.0,
        "delta": -0.682,
        "percent_delta": -0.1852,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "better"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.227-
predicted_3B0.015-
predicted_AB3.682-
predicted_AVG0.288-
predicted_BB0.500-
predicted_H1.061-
predicted_HR0.159-
predicted_OBP0.373-
predicted_R0.568-
predicted_RBI0.568-
predicted_SLG0.488-
predicted_SO1.136-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.197-0.030
predicted_3B0.0210.006
predicted_AB3.6880.006
predicted_AVG0.3000.012
predicted_BB0.479-0.021
predicted_H1.1060.045
predicted_HBP0.076-
predicted_HR0.1650.006
predicted_OBP0.3840.011
predicted_R0.555-0.013
predicted_RBI0.6280.060
predicted_SLG0.4990.011
predicted_SO1.099-0.037
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1970.000
predicted_3B0.0210.000
predicted_AB3.6880.000
predicted_AVG0.3030.003
predicted_BB0.4790.001
predicted_H1.1160.010
predicted_HBP0.0760.000
predicted_HR0.1670.002
predicted_OBP0.383-0.001
predicted_R0.5630.008
predicted_RBI0.6380.009
predicted_SLG0.5030.004
predicted_SO1.098-0.001
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 4 (raw=3.69), rates preserved: AVG=0.303 HR/AB=0.045

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB4.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI1.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R1.000-
RBI1.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1690.169
3B0.0210.021
BB0.4340.434
H0.885-0.115
HR0.1290.129
RBI0.472-0.528
SO1.0310.031
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B1.0000.831
3B0.000-0.021
AB4.0000.000
BB1.0000.566
H1.0000.115
HR0.000-0.129
R1.0000.000
RBI1.0000.528
SO1.000-0.031
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.197
predicted_3B0.000-0.021
predicted_AB4.0000.312
predicted_AVG0.252-0.051
predicted_BB0.000-0.479
predicted_H1.000-0.116
predicted_HR0.000-0.167
predicted_OBP0.340-0.043
predicted_R1.0000.437
predicted_RBI1.0000.362
predicted_SLG0.422-0.081
predicted_SO1.000-0.098
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.000-1.000
3B0.0000.000
AB3.000-1.000
BB1.0000.000
CS0.0000.000
H1.0000.000
HBP0.0000.000
HR1.0001.000
PA4.000-
R1.0000.000
RBI3.0002.000
SB0.0000.000
SF0.0000.000
SO2.0001.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 132
Reference playing time: 3.804
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-18.0006.0000.0000.0001.0004.0002.0002.0005.0000.33330.42860.50000.33330.05560.22220.11110.2778
last_100.2010-38.00015.0001.0001.0002.00011.0006.0004.0009.0000.39470.46510.63160.39470.05260.28950.10530.2368
season0.60132-486.000140.00030.0002.00021.00075.00075.00066.000150.0000.28810.37430.48770.28810.04320.15430.13580.3086
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1570
predicted_3B0.0280
predicted_AB3.6950
predicted_AVG0.3149
predicted_BB0.4510
predicted_H1.1640
predicted_HBP0.0760
predicted_HR0.1730
predicted_OBP0.3984
predicted_R0.5380
predicted_RBI0.7070
predicted_SLG0.5133
predicted_SO1.0520
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.22700.15700.1965model_form_blend
predicted_3B0.01500.02800.0207model_form_blend
predicted_AB3.68203.69503.6877model_form_blend
predicted_AVG0.28800.31490.2997model_form_blend
predicted_BB0.50000.45100.4787model_form_blend
predicted_H1.06101.16401.1058model_form_blend
predicted_HBP-0.07600.0760form_only
predicted_HR0.15900.17300.1651model_form_blend
predicted_OBP0.37300.39840.3841model_form_blend
predicted_R0.56800.53800.5549model_form_blend
predicted_RBI0.56800.70700.6285model_form_blend
predicted_SLG0.48800.51330.4990model_form_blend
predicted_SO1.13601.05201.0994model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date555
Season rows before report date555
Report year2026
Profile rows used132
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA4
AB3
H1
2B0
3B0
HR1
R1
RBI3
BB1
SO2
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B1
Hitting_3B0
Hitting_AB4
Hitting_AVG0.25
Hitting_BB0
Hitting_GIDP0
Hitting_H1
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R1
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO1
Hitting_TB2
Hitting_battingOrder4
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedLF
gameID20260920_DET@CHW
game_typefull
mlbID682985
playerID682985
playerNameRiley Greene
posLF
startedTrue
startingPositionLF
teamDET
teamID10
game_date2026-09-20
sl_k_percent26.7
sl_bb_percent11.7
sl_woba0.371
sl_xwoba0.374
sl_xba0.267
sl_xslg0.508
sl_sweet_spot_percent40.4
sl_barrel_batted_rate15.1
sl_hard_hit_percent47.1
sl_exit_velocity_avg90.3
sl_launch_angle_avg17.5
sl_whiff_percent30.1
sl_swing_percent46.3
Colt Keith (690993) · BATTER · CF · Team DET
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 416
All-history rows before 20260921: 416
System season_avg: 0.2550
Data season_avg (2026 season-to-date): 0.2700
Diff (system - data): -0.0150
System opponent_avg: 0.2550
System season_avg diverges from 2026 season-to-date by -0.0150. This usually means mixed-season window logic.

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1410.0000.000Hitting_2B0.1660.000-0.1660.000
predicted_3B0.0300.0000.000Hitting_3B0.0290.000-0.0290.000
predicted_AB2.8224.0003.000Hitting_AB3.1513.0000.8491.000
predicted_AVG0.2550.0000.000Hitting_AVG0.2700.000-0.2700.000
predicted_BB0.2000.0000.000Hitting_BB0.2690.000-0.2690.000
predicted_CS-0.0000.000BaseRunning_CS0.0000.0000.0000.000
predicted_H0.7190.0000.000Hitting_H0.8510.000-0.8510.000
predicted_HR0.0740.0000.000Hitting_HR0.0910.000-0.0910.000
predicted_OBP0.3040.0000.000Hitting_OBP0.3340.000-0.3340.000
predicted_R0.3780.0000.000Hitting_R0.4330.000-0.4330.000
predicted_RBI0.2590.0000.000Hitting_RBI0.3440.000-0.3440.000
predicted_SLG0.4040.0000.000Hitting_SLG0.4280.000-0.4280.000
predicted_SO0.6222.0001.000Hitting_SO0.6901.0001.3101.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics10
Boosted Metrics4
Deboosted Metrics6
Better Metrics3
Worse Metrics7
Biggest Boostpredicted_SO: 0.6220 -> 2.0000 (boost 1.3780, worse)
Biggest Deboostpredicted_H: 0.7190 -> 0.0000 (deboost -0.7190, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend33030predicted_2B: 0.1410 -> 0.1956 (boost 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.
3team_form_snapshot00000--Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling73425predicted_SO: 0.6248 -> 1.0000 (boost 0.3752, worse)predicted_RBI: 0.2760 -> 0.0000 (deboost -0.2760, worse)AB rounded to 3 (raw=2.82), rates preserved: AVG=0.259 HR/AB=0.026
6consistency_constraints10101-predicted_R: 0.4177 -> 0.0000 (deboost -0.4177, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine64251predicted_RBI: 0.0000 -> 0.2919 (boost 0.2919, better)predicted_SO: 1.0000 -> 0.6673 (deboost -0.3327, better)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation61506predicted_SO: 0.6673 -> 1.0000 (boost 0.3327, worse)predicted_H: 0.7090 -> 0.0000 (deboost -0.7090, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context41313predicted_H: 0.0000 -> 1.0000 (boost 1.0000, better)predicted_SLG: 0.4230 -> 0.3890 (deboost -0.0340, worse)Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10simulation_box_score_reference32112predicted_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
11current_json_final33030predicted_SLG: 0.3890 -> 0.4230 (boost 0.0340, better)-Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "690993",
  "player_name": "Colt Keith",
  "position": "CF",
  "team": "DET",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.141,
        "predicted_3B": 0.03,
        "predicted_AB": 2.822,
        "predicted_AVG": 0.255,
        "predicted_BB": 0.2,
        "predicted_H": 0.719,
        "predicted_HR": 0.074,
        "predicted_OBP": 0.304,
        "predicted_R": 0.378,
        "predicted_RBI": 0.259,
        "predicted_SLG": 0.404,
        "predicted_SO": 0.622
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.1956,
        "predicted_3B": 0.0244,
        "predicted_AB": 2.8151,
        "predicted_AVG": 0.257,
        "predicted_BB": 0.2194,
        "predicted_H": 0.7229,
        "predicted_HBP": 0.042,
        "predicted_HR": 0.0714,
        "predicted_OBP": 0.3141,
        "predicted_R": 0.4116,
        "predicted_RBI": 0.2719,
        "predicted_SLG": 0.4196,
        "predicted_SO": 0.6254
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.141,
          "after": 0.1956,
          "delta": 0.0546,
          "percent_delta": 0.3872,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.03,
          "after": 0.0244,
          "delta": -0.0056,
          "percent_delta": -0.1867,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 2.822,
          "after": 2.8151,
          "delta": -0.0069,
          "percent_delta": -0.0024,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.255,
          "after": 0.257,
          "delta": 0.002,
          "percent_delta": 0.0078,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.2,
          "after": 0.2194,
          "delta": 0.0194,
          "percent_delta": 0.097,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.719,
          "after": 0.7229,
          "delta": 0.0039,
          "percent_delta": 0.0054,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.074,
          "after": 0.0714,
          "delta": -0.0026,
          "percent_delta": -0.0351,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.304,
          "after": 0.3141,
          "delta": 0.0101,
          "percent_delta": 0.0332,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.378,
          "after": 0.4116,
          "delta": 0.0336,
          "percent_delta": 0.0889,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.259,
          "after": 0.2719,
          "delta": 0.0129,
          "percent_delta": 0.0498,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.404,
          "after": 0.4196,
          "delta": 0.0156,
          "percent_delta": 0.0386,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.622,
          "after": 0.6254,
          "delta": 0.0034,
          "percent_delta": 0.0055,
          "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_2B",
          "before": 0.141,
          "after": 0.1956,
          "delta": 0.0546,
          "percent_delta": 0.3872,
          "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": 135
      }
    },
    {
      "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.1956,
        "predicted_3B": 0.0244,
        "predicted_AB": 2.8151,
        "predicted_AVG": 0.2592,
        "predicted_BB": 0.2196,
        "predicted_H": 0.7297,
        "predicted_HBP": 0.042,
        "predicted_HR": 0.0722,
        "predicted_OBP": 0.3128,
        "predicted_R": 0.4177,
        "predicted_RBI": 0.276,
        "predicted_SLG": 0.423,
        "predicted_SO": 0.6248
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1956,
          "after": 0.1956,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.0244,
          "after": 0.0244,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 2.8151,
          "after": 2.8151,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.257,
          "after": 0.2592,
          "delta": 0.0022,
          "percent_delta": 0.0086,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.2194,
          "after": 0.2196,
          "delta": 0.0002,
          "percent_delta": 0.0009,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.7229,
          "after": 0.7297,
          "delta": 0.0068,
          "percent_delta": 0.0094,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HBP",
          "before": 0.042,
          "after": 0.042,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.0714,
          "after": 0.0722,
          "delta": 0.0008,
          "percent_delta": 0.0112,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3141,
          "after": 0.3128,
          "delta": -0.0013,
          "percent_delta": -0.0041,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.4116,
          "after": 0.4177,
          "delta": 0.0061,
          "percent_delta": 0.0148,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.2719,
          "after": 0.276,
          "delta": 0.0041,
          "percent_delta": 0.0151,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4196,
          "after": 0.423,
          "delta": 0.0034,
          "percent_delta": 0.0081,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.6254,
          "after": 0.6248,
          "delta": -0.0006,
          "percent_delta": -0.001,
          "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=2.82), rates preserved: AVG=0.259 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.1956,
          "after": 0.0,
          "delta": -0.1956,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0244,
          "after": 0.0,
          "delta": -0.0244,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 2.8151,
          "after": 3.0,
          "delta": 0.1849,
          "percent_delta": 0.0657,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.2196,
          "after": 0.0,
          "delta": -0.2196,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.7297,
          "after": 1.0,
          "delta": 0.2703,
          "percent_delta": 0.3704,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HBP",
          "before": 0.042,
          "after": 0.0,
          "delta": -0.042,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.0722,
          "after": 0.0,
          "delta": -0.0722,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.276,
          "after": 0.0,
          "delta": -0.276,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.6248,
          "after": 1.0,
          "delta": 0.3752,
          "percent_delta": 0.6005,
          "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.6248,
          "after": 1.0,
          "delta": 0.3752,
          "percent_delta": 0.6005,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.276,
          "after": 0.0,
          "delta": -0.276,
          "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.4177,
          "after": 0.0,
          "delta": -0.4177,
          "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.4177,
          "after": 0.0,
          "delta": -0.4177,
          "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.131,
        "predicted_3B": 0.0267,
        "predicted_BB": 0.2259,
        "predicted_H": 0.709,
        "predicted_HR": 0.0807,
        "predicted_RBI": 0.2919,
        "predicted_SO": 0.6673
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.131,
          "delta": 0.131,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.0267,
          "delta": 0.0267,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.2259,
          "delta": 0.2259,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.709,
          "delta": -0.291,
          "percent_delta": -0.291,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.0807,
          "delta": 0.0807,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.2919,
          "delta": 0.2919,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.6673,
          "delta": -0.3327,
          "percent_delta": -0.3327,
          "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.2919,
          "delta": 0.2919,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.6673,
          "delta": -0.3327,
          "percent_delta": -0.3327,
          "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": 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.131,
          "after": 0.0,
          "delta": -0.131,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0267,
          "after": 0.0,
          "delta": -0.0267,
          "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.2259,
          "after": 0.0,
          "delta": -0.2259,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.709,
          "after": 0.0,
          "delta": -0.709,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0807,
          "after": 0.0,
          "delta": -0.0807,
          "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.2919,
          "after": 0.0,
          "delta": -0.2919,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.6673,
          "after": 1.0,
          "delta": 0.3327,
          "percent_delta": 0.4986,
          "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.6673,
          "after": 1.0,
          "delta": 0.3327,
          "percent_delta": 0.4986,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 0.709,
          "after": 0.0,
          "delta": -0.709,
          "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.243,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.303,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.389,
        "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.2592,
          "after": 0.243,
          "delta": -0.0162,
          "percent_delta": -0.0625,
          "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.3128,
          "after": 0.303,
          "delta": -0.0098,
          "percent_delta": -0.0313,
          "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.423,
          "after": 0.389,
          "delta": -0.034,
          "percent_delta": -0.0804,
          "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_SLG",
          "before": 0.423,
          "after": 0.389,
          "delta": -0.034,
          "percent_delta": -0.0804,
          "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": 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": 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.2592,
        "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.3128,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.423,
        "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.243,
          "after": 0.2592,
          "delta": 0.0162,
          "percent_delta": 0.0667,
          "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.303,
          "after": 0.3128,
          "delta": 0.0098,
          "percent_delta": 0.0324,
          "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.423,
          "delta": 0.034,
          "percent_delta": 0.0874,
          "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.389,
          "after": 0.423,
          "delta": 0.034,
          "percent_delta": 0.0874,
          "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.141,
        "after": 0.0,
        "delta": -0.141,
        "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": 2.822,
        "after": 4.0,
        "delta": 1.178,
        "percent_delta": 0.4174,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.255,
        "after": 0.2592,
        "delta": 0.0042,
        "percent_delta": 0.0165,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_BB",
        "before": 0.2,
        "after": 0.0,
        "delta": -0.2,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.719,
        "after": 0.0,
        "delta": -0.719,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.074,
        "after": 0.0,
        "delta": -0.074,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.304,
        "after": 0.3128,
        "delta": 0.0088,
        "percent_delta": 0.0289,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.378,
        "after": 0.0,
        "delta": -0.378,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.259,
        "after": 0.0,
        "delta": -0.259,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.404,
        "after": 0.423,
        "delta": 0.019,
        "percent_delta": 0.047,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.622,
        "after": 2.0,
        "delta": 1.378,
        "percent_delta": 2.2154,
        "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": 0.622,
        "after": 2.0,
        "delta": 1.378,
        "percent_delta": 2.2154,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_H",
        "before": 0.719,
        "after": 0.0,
        "delta": -0.719,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.141-
predicted_3B0.030-
predicted_AB2.822-
predicted_AVG0.255-
predicted_BB0.200-
predicted_H0.719-
predicted_HR0.074-
predicted_OBP0.304-
predicted_R0.378-
predicted_RBI0.259-
predicted_SLG0.404-
predicted_SO0.622-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.1960.055
predicted_3B0.024-0.006
predicted_AB2.815-0.007
predicted_AVG0.2570.002
predicted_BB0.2190.019
predicted_H0.7230.004
predicted_HBP0.042-
predicted_HR0.071-0.003
predicted_OBP0.3140.010
predicted_R0.4120.034
predicted_RBI0.2720.013
predicted_SLG0.4200.016
predicted_SO0.6250.003
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1960.000
predicted_3B0.0240.000
predicted_AB2.8150.000
predicted_AVG0.2590.002
predicted_BB0.2200.000
predicted_H0.7300.007
predicted_HBP0.0420.000
predicted_HR0.0720.001
predicted_OBP0.313-0.001
predicted_R0.4180.006
predicted_RBI0.2760.004
predicted_SLG0.4230.003
predicted_SO0.625-0.001
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 3 (raw=2.82), rates preserved: AVG=0.259 HR/AB=0.026

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB3.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1310.131
3B0.0270.027
BB0.2260.226
H0.709-0.291
HR0.0810.081
RBI0.2920.292
SO0.667-0.333
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.131
3B0.000-0.027
AB3.0000.000
BB0.000-0.226
H0.000-0.709
HR0.000-0.081
R0.0000.000
RBI0.000-0.292
SO1.0000.333
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.196
predicted_3B0.000-0.024
predicted_AB3.0000.185
predicted_AVG0.243-0.016
predicted_BB0.000-0.220
predicted_H1.0000.270
predicted_HR0.000-0.072
predicted_OBP0.303-0.010
predicted_R0.000-0.418
predicted_RBI0.000-0.276
predicted_SLG0.389-0.034
predicted_SO1.0000.375
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0001.000
BB0.0000.000
CS0.0000.000
H0.0000.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R0.0000.000
RBI0.0000.000
SB0.0000.000
SF0.0000.000
SO2.0001.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 135
Reference playing time: 3.804
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-13.0004.0003.0000.0000.0001.0003.0002.0002.0000.30770.40000.53850.30770.00000.07690.15380.1538
last_100.2010-26.0006.0003.0000.0001.0004.0005.0002.0008.0000.23080.31030.46150.23080.03850.15380.07690.3077
season0.60135-381.00097.00019.0004.00010.00035.00051.00027.00084.0000.25460.31160.40420.25460.02620.09190.07090.2205
Weighted Prediction From Real Data
MetricValue
predicted_2B0.2680
predicted_3B0.0170
predicted_AB2.8060
predicted_AVG0.2596
predicted_BB0.2450
predicted_H0.7280
predicted_HBP0.0420
predicted_HR0.0680
predicted_OBP0.3274
predicted_R0.4560
predicted_RBI0.2890
predicted_SLG0.4402
predicted_SO0.6300
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.14100.26800.1956model_form_blend
predicted_3B0.03000.01700.0244model_form_blend
predicted_AB2.82202.80602.8151model_form_blend
predicted_AVG0.25500.25960.2570model_form_blend
predicted_BB0.20000.24500.2194model_form_blend
predicted_H0.71900.72800.7229model_form_blend
predicted_HBP-0.04200.0420form_only
predicted_HR0.07400.06800.0714model_form_blend
predicted_OBP0.30400.32740.3141model_form_blend
predicted_R0.37800.45600.4116model_form_blend
predicted_RBI0.25900.28900.2719model_form_blend
predicted_SLG0.40400.44020.4196model_form_blend
predicted_SO0.62200.63000.6254model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date416
Season rows before report date416
Report year2026
Profile rows used135
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA4
AB4
H0
2B0
3B0
HR0
R0
RBI0
BB0
SO2
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E1
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB3
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO1
Hitting_TB0
Hitting_battingOrder3
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayed1B
gameID20260919_DET@CHW
game_typefull
mlbID690993
playerID690993
playerNameColt Keith
pos3B
startedTrue
startingPosition1B
teamDET
teamID10
game_date2026-09-19
sl_k_percent19.9
sl_bb_percent7.6
sl_woba0.321
sl_xwoba0.333
sl_xba0.272
sl_xslg0.423
sl_sweet_spot_percent38.1
sl_barrel_batted_rate7.6
sl_hard_hit_percent42.1
sl_exit_velocity_avg88.7
sl_launch_angle_avg13.3
sl_whiff_percent22.3
sl_swing_percent43.8
Brett Callahan (814430) · BATTER · RF · Team DET
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 67
All-history rows before 20260921: 67
System season_avg: 0.2200
Data season_avg (2026 season-to-date): 0.2174
Diff (system - data): 0.0026
System opponent_avg: 0.2200

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1271.0000.000Hitting_2B0.1640.0000.8361.000
predicted_3B0.0420.0000.000Hitting_3B0.0300.000-0.0300.000
predicted_AB2.5004.0003.000Hitting_AB2.7464.0001.2540.000
predicted_AVG0.2200.5000.333Hitting_AVG0.2170.2500.2830.250
predicted_BB0.1690.0000.000Hitting_BB0.2240.000-0.2240.000
predicted_CS-0.0000.000BaseRunning_CS0.0000.0000.0000.000
predicted_H0.5512.0001.000Hitting_H0.5971.0001.4031.000
predicted_HR0.0420.0000.000Hitting_HR0.0450.000-0.0450.000
predicted_OBP0.2700.5000.333Hitting_OBP0.2840.2500.2160.250
predicted_R0.1271.0000.000Hitting_R0.1190.0000.8811.000
predicted_RBI0.3391.0000.000Hitting_RBI0.3730.0000.6271.000
predicted_SLG0.3560.7500.333Hitting_SLG0.3480.2500.4020.500
predicted_SO0.9751.0001.000Hitting_SO1.0600.000-0.0601.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics7
Boosted Metrics5
Deboosted Metrics2
Better Metrics5
Worse Metrics2
Biggest Boostpredicted_AB: 2.5000 -> 4.0000 (boost 1.5000, better)
Biggest Deboostpredicted_BB: 0.1690 -> 0.0000 (deboost -0.1690, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend21111predicted_AB: 2.5000 -> 2.6363 (boost 0.1363, better)predicted_SLG: 0.3560 -> 0.3469 (deboost -0.0091, 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.
3team_form_snapshot00000--Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)
4matchup_context00000--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
5ab_floor_and_scaling52323predicted_H: 0.5793 -> 1.0000 (boost 0.4207, better)predicted_RBI: 0.3445 -> 0.0000 (deboost -0.3445, worse)AB rounded to 3 (raw=2.64), rates preserved: AVG=0.220 HR/AB=0.018
6consistency_constraints10101-predicted_R: 0.1540 -> 0.0000 (deboost -0.1540, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine54141predicted_RBI: 0.0000 -> 0.3847 (boost 0.3847, better)predicted_H: 1.0000 -> 0.7385 (deboost -0.2615, worse)Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context
8lineup_integer_allocation51414predicted_H: 0.7385 -> 1.0000 (boost 0.2615, better)predicted_RBI: 0.3847 -> 0.0000 (deboost -0.3847, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context33030predicted_OBP: 0.2704 -> 0.3010 (boost 0.0306, better)-Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10simulation_box_score_reference55050predicted_2B: 0.0000 -> 1.0000 (boost 1.0000, better)-Attached simulation box score without overwriting model prediction
11current_json_final30303-predicted_OBP: 0.3010 -> 0.2704 (deboost -0.0306, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "batter",
  "player_id": "814430",
  "player_name": "Brett Callahan",
  "position": "RF",
  "team": "DET",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.127,
        "predicted_3B": 0.042,
        "predicted_AB": 2.5,
        "predicted_AVG": 0.22,
        "predicted_BB": 0.169,
        "predicted_H": 0.551,
        "predicted_HR": 0.042,
        "predicted_OBP": 0.27,
        "predicted_R": 0.127,
        "predicted_RBI": 0.339,
        "predicted_SLG": 0.356,
        "predicted_SO": 0.975
      },
      "changed_metrics": [],
      "summary": {
        "changed_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.1295,
        "predicted_3B": 0.0356,
        "predicted_AB": 2.6363,
        "predicted_AVG": 0.2177,
        "predicted_BB": 0.1829,
        "predicted_H": 0.5739,
        "predicted_HBP": 0.028,
        "predicted_HR": 0.0456,
        "predicted_OBP": 0.2708,
        "predicted_R": 0.1517,
        "predicted_RBI": 0.3394,
        "predicted_SLG": 0.3469,
        "predicted_SO": 0.9668
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.127,
          "after": 0.1295,
          "delta": 0.0025,
          "percent_delta": 0.0197,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.042,
          "after": 0.0356,
          "delta": -0.0064,
          "percent_delta": -0.1524,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 2.5,
          "after": 2.6363,
          "delta": 0.1363,
          "percent_delta": 0.0545,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.22,
          "after": 0.2177,
          "delta": -0.0023,
          "percent_delta": -0.0105,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.169,
          "after": 0.1829,
          "delta": 0.0139,
          "percent_delta": 0.0822,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.551,
          "after": 0.5739,
          "delta": 0.0229,
          "percent_delta": 0.0416,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.042,
          "after": 0.0456,
          "delta": 0.0036,
          "percent_delta": 0.0857,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.27,
          "after": 0.2708,
          "delta": 0.0008,
          "percent_delta": 0.003,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.127,
          "after": 0.1517,
          "delta": 0.0247,
          "percent_delta": 0.1945,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.339,
          "after": 0.3394,
          "delta": 0.0004,
          "percent_delta": 0.0012,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.356,
          "after": 0.3469,
          "delta": -0.0091,
          "percent_delta": -0.0256,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.975,
          "after": 0.9668,
          "delta": -0.0082,
          "percent_delta": -0.0084,
          "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": 2.5,
          "after": 2.6363,
          "delta": 0.1363,
          "percent_delta": 0.0545,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SLG",
          "before": 0.356,
          "after": 0.3469,
          "delta": -0.0091,
          "percent_delta": -0.0256,
          "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": 24
      }
    },
    {
      "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.1295,
        "predicted_3B": 0.0356,
        "predicted_AB": 2.6363,
        "predicted_AVG": 0.2197,
        "predicted_BB": 0.1831,
        "predicted_H": 0.5793,
        "predicted_HBP": 0.028,
        "predicted_HR": 0.0461,
        "predicted_OBP": 0.2704,
        "predicted_R": 0.154,
        "predicted_RBI": 0.3445,
        "predicted_SLG": 0.3484,
        "predicted_SO": 0.9658
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1295,
          "after": 0.1295,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_3B",
          "before": 0.0356,
          "after": 0.0356,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 2.6363,
          "after": 2.6363,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2177,
          "after": 0.2197,
          "delta": 0.002,
          "percent_delta": 0.0092,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.1829,
          "after": 0.1831,
          "delta": 0.0002,
          "percent_delta": 0.0011,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 0.5739,
          "after": 0.5793,
          "delta": 0.0054,
          "percent_delta": 0.0094,
          "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.0456,
          "after": 0.0461,
          "delta": 0.0005,
          "percent_delta": 0.011,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2708,
          "after": 0.2704,
          "delta": -0.0004,
          "percent_delta": -0.0015,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_R",
          "before": 0.1517,
          "after": 0.154,
          "delta": 0.0023,
          "percent_delta": 0.0152,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3394,
          "after": 0.3445,
          "delta": 0.0051,
          "percent_delta": 0.015,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3469,
          "after": 0.3484,
          "delta": 0.0015,
          "percent_delta": 0.0043,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_SO",
          "before": 0.9668,
          "after": 0.9658,
          "delta": -0.001,
          "percent_delta": -0.001,
          "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=2.64), rates preserved: AVG=0.220 HR/AB=0.018",
      "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.1295,
          "after": 0.0,
          "delta": -0.1295,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0356,
          "after": 0.0,
          "delta": -0.0356,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_AB",
          "before": 2.6363,
          "after": 3.0,
          "delta": 0.3637,
          "percent_delta": 0.138,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.1831,
          "after": 0.0,
          "delta": -0.1831,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.5793,
          "after": 1.0,
          "delta": 0.4207,
          "percent_delta": 0.7262,
          "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.0461,
          "after": 0.0,
          "delta": -0.0461,
          "percent_delta": -1.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3445,
          "after": 0.0,
          "delta": -0.3445,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.9658,
          "after": 1.0,
          "delta": 0.0342,
          "percent_delta": 0.0354,
          "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.5793,
          "after": 1.0,
          "delta": 0.4207,
          "percent_delta": 0.7262,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.3445,
          "after": 0.0,
          "delta": -0.3445,
          "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.154,
          "after": 0.0,
          "delta": -0.154,
          "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.154,
          "after": 0.0,
          "delta": -0.154,
          "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.1379,
        "predicted_3B": 0.023,
        "predicted_BB": 0.2721,
        "predicted_H": 0.7385,
        "predicted_HR": 0.0901,
        "predicted_RBI": 0.3847,
        "predicted_SO": 1.0378
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1379,
          "delta": 0.1379,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0,
          "after": 0.023,
          "delta": 0.023,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.2721,
          "delta": 0.2721,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7385,
          "delta": -0.2615,
          "percent_delta": -0.2615,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.0901,
          "delta": 0.0901,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.3847,
          "delta": 0.3847,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 1.0378,
          "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_RBI",
          "before": 0.0,
          "after": 0.3847,
          "delta": 0.3847,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7385,
          "delta": -0.2615,
          "percent_delta": -0.2615,
          "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.1379,
          "after": 0.0,
          "delta": -0.1379,
          "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": 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.2721,
          "after": 0.0,
          "delta": -0.2721,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.7385,
          "after": 1.0,
          "delta": 0.2615,
          "percent_delta": 0.3541,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0901,
          "after": 0.0,
          "delta": -0.0901,
          "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.3847,
          "after": 0.0,
          "delta": -0.3847,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0378,
          "after": 1.0,
          "delta": -0.0378,
          "percent_delta": -0.0364,
          "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.7385,
          "after": 1.0,
          "delta": 0.2615,
          "percent_delta": 0.3541,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.3847,
          "after": 0.0,
          "delta": -0.3847,
          "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.234,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.301,
        "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": 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.2197,
          "after": 0.234,
          "delta": 0.0143,
          "percent_delta": 0.0651,
          "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.2704,
          "after": 0.301,
          "delta": 0.0306,
          "percent_delta": 0.1132,
          "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.3484,
          "after": 0.378,
          "delta": 0.0296,
          "percent_delta": 0.085,
          "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.2704,
          "after": 0.301,
          "delta": 0.0306,
          "percent_delta": 0.1132,
          "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": 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": 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": 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": 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": 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.2197,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_DH": 0.0,
        "predicted_H": 2.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.2704,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.3484,
        "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.234,
          "after": 0.2197,
          "delta": -0.0143,
          "percent_delta": -0.0609,
          "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.301,
          "after": 0.2704,
          "delta": -0.0306,
          "percent_delta": -0.1016,
          "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.378,
          "after": 0.3484,
          "delta": -0.0296,
          "percent_delta": -0.0784,
          "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.301,
          "after": 0.2704,
          "delta": -0.0306,
          "percent_delta": -0.1016,
          "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": 1.0,
        "delta": 0.873,
        "percent_delta": 6.874,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_3B",
        "before": 0.042,
        "after": 0.0,
        "delta": -0.042,
        "percent_delta": -1.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "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.22,
        "after": 0.2197,
        "delta": -0.0003,
        "percent_delta": -0.0014,
        "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": 0.551,
        "after": 2.0,
        "delta": 1.449,
        "percent_delta": 2.6298,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.042,
        "after": 0.0,
        "delta": -0.042,
        "percent_delta": -1.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_OBP",
        "before": 0.27,
        "after": 0.2704,
        "delta": 0.0004,
        "percent_delta": 0.0015,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_R",
        "before": 0.127,
        "after": 1.0,
        "delta": 0.873,
        "percent_delta": 6.874,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.339,
        "after": 1.0,
        "delta": 0.661,
        "percent_delta": 1.9499,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.356,
        "after": 0.3484,
        "delta": -0.0076,
        "percent_delta": -0.0213,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.975,
        "after": 1.0,
        "delta": 0.025,
        "percent_delta": 0.0256,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      }
    ],
    "summary": {
      "changed_metrics": 7,
      "boosted_metrics": 5,
      "deboosted_metrics": 2,
      "better_metrics": 5,
      "worse_metrics": 2,
      "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_BB",
        "before": 0.169,
        "after": 0.0,
        "delta": -0.169,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "better"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. xgboost_raw

Raw model output with missing event categories filled from season-profile fallback

MetricValueDelta vs Prev Step
predicted_2B0.127-
predicted_3B0.042-
predicted_AB2.500-
predicted_AVG0.220-
predicted_BB0.169-
predicted_H0.551-
predicted_HR0.042-
predicted_OBP0.270-
predicted_R0.127-
predicted_RBI0.339-
predicted_SLG0.356-
predicted_SO0.975-
2. weighted_recent_form_blend

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.

MetricValueDelta vs Prev Step
predicted_2B0.1300.003
predicted_3B0.036-0.006
predicted_AB2.6360.136
predicted_AVG0.218-0.002
predicted_BB0.1830.014
predicted_H0.5740.023
predicted_HBP0.028-
predicted_HR0.0460.004
predicted_OBP0.2710.001
predicted_R0.1520.025
predicted_RBI0.3390.000
predicted_SLG0.347-0.009
predicted_SO0.967-0.008
3. team_form_snapshot

Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)

MetricValueDelta vs Prev Step
predicted_2B0.1300.000
predicted_3B0.0360.000
predicted_AB2.6360.000
predicted_AVG0.2200.002
predicted_BB0.1830.000
predicted_H0.5790.005
predicted_HBP0.0280.000
predicted_HR0.0460.001
predicted_OBP0.270-0.000
predicted_R0.1540.002
predicted_RBI0.3440.005
predicted_SLG0.3480.002
predicted_SO0.966-0.001
4. matchup_context

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

MetricValueDelta vs Prev Step
5. ab_floor_and_scaling

AB rounded to 3 (raw=2.64), rates preserved: AVG=0.220 HR/AB=0.018

MetricValueDelta vs Prev Step
2B0.000-
3B0.000-
AB3.000-
BB0.000-
H1.000-
HBP0.000-
HR0.000-
RBI0.000-
SB0.000-
SO1.000-
6. consistency_constraints

Enforced H<=AB, HR<=H, safety nets, derived R

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB0.0000.000
CS0.000-
H1.0000.000
HBP0.0000.000
HR0.0000.000
R0.000-
RBI0.0000.000
SB0.0000.000
SF0.000-
SO1.0000.000
7. hitter_rate_engine

Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context

MetricValueDelta vs Prev Step
2B0.1380.138
3B0.0230.023
BB0.2720.272
H0.739-0.261
HR0.0900.090
RBI0.3850.385
SO1.0380.038
8. lineup_integer_allocation

Lineup-level largest-remainder allocation so team totals match the summed model expectation

MetricValueDelta vs Prev Step
2B0.000-0.138
3B0.000-0.023
AB3.0000.000
BB0.000-0.272
H1.0000.261
HR0.000-0.090
R0.0000.000
RBI0.000-0.385
SO1.000-0.038
9. embedded_savant_player_context

Player Savant profile contributed to the team run-environment adjustment against the opposing starter

MetricValueDelta vs Prev Step
predicted_2B0.000-0.130
predicted_3B0.000-0.036
predicted_AB3.0000.364
predicted_AVG0.2340.014
predicted_BB0.000-0.183
predicted_H1.0000.421
predicted_HR0.000-0.046
predicted_OBP0.3010.031
predicted_R0.000-0.154
predicted_RBI0.000-0.344
predicted_SLG0.3780.030
predicted_SO1.0000.034
10. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B1.0001.000
3B0.0000.000
AB4.0001.000
BB0.0000.000
CS0.0000.000
H2.0001.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R1.0001.000
RBI1.0001.000
SB0.0000.000
SF0.0000.000
SO1.0000.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 24
Reference playing time: 3.804
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-12.0002.0000.0000.0000.0001.0000.0001.0003.0000.16670.23080.16670.16670.00000.08330.08330.2500
last_100.2010-25.0004.0002.0000.0000.0002.0001.0002.00012.0000.16000.22220.24000.16000.00000.08000.08000.4800
season0.6024-59.00013.0003.0001.0001.0008.0003.0004.00023.0000.22030.27690.35590.22030.01690.13560.06780.3898
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1340
predicted_3B0.0240
predicted_AB2.8810
predicted_AVG0.2136
predicted_BB0.2080
predicted_H0.6150
predicted_HBP0.0280
predicted_HR0.0520
predicted_OBP0.2722
predicted_R0.1960
predicted_RBI0.3400
predicted_SLG0.3306
predicted_SO0.9520
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.12700.13400.1295model_form_blend
predicted_3B0.04200.02400.0356model_form_blend
predicted_AB2.50002.88102.6363model_form_blend
predicted_AVG0.22000.21360.2177model_form_blend
predicted_BB0.16900.20800.1829model_form_blend
predicted_H0.55100.61500.5739model_form_blend
predicted_HBP-0.02800.0280form_only
predicted_HR0.04200.05200.0456model_form_blend
predicted_OBP0.27000.27220.2708model_form_blend
predicted_R0.12700.19600.1517model_form_blend
predicted_RBI0.33900.34000.3394model_form_blend
predicted_SLG0.35600.33060.3469model_form_blend
predicted_SO0.97500.95200.9668model_form_blend

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula20% last 5 + 20% last 10 + 60% season
Active form weightslast_5=20%, last_10=20%, season=60%
Model calibration55% raw model + 45% weighted form
Rows before report date67
Season rows before report date67
Report year2026
Profile rows used24
Hitter metricsHitting_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 (from JSON)

Simulation Box Score FieldValue
PA4
AB4
H2
2B1
3B0
HR0
R1
RBI1
BB0
SO1
SF0
HBP0
season_avg0.0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB4
Hitting_AVG0.25
Hitting_BB0
Hitting_GIDP0
Hitting_H1
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB1
Hitting_battingOrder8
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced0
Pitching_ER0
Pitching_ERA0
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.0
Pitching_Pitches0
Pitching_R0
Pitching_SO0
Pitching_Strikes0
Pitching_Wild Pitch0
Pitching_pitchingOrder0
allPositionsPlayedRF
gameID20260920_DET@CHW
game_typefull
mlbID814430
playerID814430
playerNameBrett Callahan
posLF
startedTrue
startingPositionRF
teamDET
teamID10
game_date2026-09-20
sl_k_percent34.8
sl_bb_percent7.6
sl_woba0.284
sl_xwoba0.303
sl_xba0.226
sl_xslg0.387
sl_sweet_spot_percent35.1
sl_barrel_batted_rate10.8
sl_hard_hit_percent45.9
sl_exit_velocity_avg89.7
sl_launch_angle_avg17.6
sl_whiff_percent27.9
sl_swing_percent60.3
River Ryan (689981) · PITCHER · Starter · Team DET
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 0
All-history rows before 20260921: 0

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB2.0002.0002.000Pitching_BB----
predicted_ER1.0001.0001.000Pitching_ER----
predicted_H5.0005.0005.000Pitching_H----
predicted_IP0.2000.2000.200Pitching_InningsPitched----
predicted_SO2.0002.0002.000Pitching_SO----

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_form_blend
Tocurrent_json_final
Dominant Effectneutral
Changed Metrics2
Boosted Metrics1
Deboosted Metrics1
Better Metrics1
Worse Metrics1
Biggest Boostpredicted_IP: 0.1000 -> 0.2000 (boost 0.1000, better)
Biggest Deboostpredicted_SO: 5.0000 -> 2.0000 (deboost -3.0000, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
2current_json_final21111predicted_IP: 0.1000 -> 0.2000 (boost 0.1000, better)predicted_SO: 5.0000 -> 2.0000 (deboost -3.0000, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "pitcher",
  "player_id": "689981",
  "player_name": "River Ryan",
  "position": "Starter",
  "team": "DET",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 2.0,
        "predicted_ER": 1.0,
        "predicted_H": 5.0,
        "predicted_HR": 0.0,
        "predicted_IP": 0.1,
        "predicted_SO": 5.0
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      },
      "weights": {},
      "window_games": {}
    },
    {
      "index": 2,
      "step": "current_json_final",
      "description": "Final player values currently stored in the game JSON",
      "stats": {
        "predicted_BB": 2.0,
        "predicted_ER": 1.0,
        "predicted_H": 5.0,
        "predicted_HR": 0.0,
        "predicted_IP": 0.2,
        "predicted_R": 1.0,
        "predicted_SO": 2.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_BB",
          "before": 2.0,
          "after": 2.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_ER",
          "before": 1.0,
          "after": 1.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 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": 0.1,
          "after": 0.2,
          "delta": 0.1,
          "percent_delta": 1.0,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 5.0,
          "after": 2.0,
          "delta": -3.0,
          "percent_delta": -0.6,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 2,
        "boosted_metrics": 1,
        "deboosted_metrics": 1,
        "better_metrics": 1,
        "worse_metrics": 1,
        "biggest_boost": {
          "metric": "predicted_IP",
          "before": 0.1,
          "after": 0.2,
          "delta": 0.1,
          "percent_delta": 1.0,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 5.0,
          "after": 2.0,
          "delta": -3.0,
          "percent_delta": -0.6,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      },
      "weights": {},
      "window_games": {}
    }
  ],
  "total_change": {
    "from_step": "pitcher_form_blend",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_BB",
        "before": 2.0,
        "after": 2.0,
        "delta": 0.0,
        "percent_delta": 0.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_ER",
        "before": 1.0,
        "after": 1.0,
        "delta": 0.0,
        "percent_delta": 0.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_H",
        "before": 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": 0.1,
        "after": 0.2,
        "delta": 0.1,
        "percent_delta": 1.0,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 5.0,
        "after": 2.0,
        "delta": -3.0,
        "percent_delta": -0.6,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 2,
      "boosted_metrics": 1,
      "deboosted_metrics": 1,
      "better_metrics": 1,
      "worse_metrics": 1,
      "biggest_boost": {
        "metric": "predicted_IP",
        "before": 0.1,
        "after": 0.2,
        "delta": 0.1,
        "percent_delta": 1.0,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_SO",
        "before": 5.0,
        "after": 2.0,
        "delta": -3.0,
        "percent_delta": -0.6,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "neutral"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_form_blend

Pitcher model/profile expectation with Bayesian recent-form shrinkage

MetricValueDelta vs Prev Step
predicted_BB2.000-
predicted_ER1.000-
predicted_H5.000-
predicted_HR0.000-
predicted_IP0.100-
predicted_SO5.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 0
Reference playing time: 0.100
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.4500.0000.0000.0000.0000.0000.000-------
last_100.3500.0000.0000.0000.0000.0000.000-------
season0.2000.0000.0000.0000.0000.0000.000-------
Weighted Prediction From Real Data
MetricValue
predicted_BB0.1250
predicted_ER0.1700
predicted_ERA4.5933
predicted_H0.3270
predicted_HR0.0500
predicted_IP0.1000
predicted_SO0.3120
predicted_WHIP1.3576
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB2.00000.12501.5734model_form_blend
predicted_ER1.00000.17000.8112model_form_blend
predicted_ERA-4.59334.5933form_only
predicted_H5.00000.32703.9369model_form_blend
predicted_HR0.00000.05000.0114model_form_blend
predicted_IP0.10000.10000.1000model_form_blend
predicted_SO5.00000.31203.9335model_form_blend
predicted_WHIP-1.35761.3576form_only

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula45% last 5 + 35% last 10 + 20% season
Active form weightslast_5=45%, last_10=35%, season=20%
Model calibration35% raw model + 65% weighted form
Rows before report date0
Season rows before report date0
Report year2026
Profile rows used0
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP0.2
H5
R1
ER1
BB2
SO2
HR0
BF9
Pitches31

Latest Real Data Snapshot (before report date)

No historical data found for this player before report date.

Jacob Waguespack (621097) · PITCHER · Middle Reliever (High Leverage) · Team DET
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 33
All-history rows before 20260921: 33

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB1.0001.0001.000Pitching_BB0.5151.0000.4850.000
predicted_ER0.0000.0000.000Pitching_ER0.3640.000-0.3640.000
predicted_H0.0000.0000.000Pitching_H0.6670.000-0.6670.000
predicted_IP3.2003.2003.200Pitching_InningsPitched1.1612.0002.0391.200
predicted_SO3.0003.0003.000Pitching_SO0.9393.0002.0610.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_form_blend
Tocurrent_json_final
Dominant Effectneutral
Changed Metrics2
Boosted Metrics1
Deboosted Metrics1
Better Metrics1
Worse Metrics1
Biggest Boostpredicted_SO: 0.0000 -> 3.0000 (boost 3.0000, better)
Biggest Deboostpredicted_IP: 3.6667 -> 3.2000 (deboost -0.4667, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
2current_json_final21111predicted_SO: 0.0000 -> 3.0000 (boost 3.0000, better)predicted_IP: 3.6667 -> 3.2000 (deboost -0.4667, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "pitcher",
  "player_id": "621097",
  "player_name": "Jacob Waguespack",
  "position": "Middle Reliever (High Leverage)",
  "team": "DET",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 1.0,
        "predicted_ER": 0.0,
        "predicted_H": 0.0,
        "predicted_HR": 0.0,
        "predicted_IP": 3.6667,
        "predicted_SO": 0.0
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      },
      "weights": {},
      "window_games": {}
    },
    {
      "index": 2,
      "step": "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": 3.2,
        "predicted_R": 0.0,
        "predicted_SO": 3.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_BB",
          "before": 1.0,
          "after": 1.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_ER",
          "before": 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": 3.6667,
          "after": 3.2,
          "delta": -0.4667,
          "percent_delta": -0.1273,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.0,
          "after": 3.0,
          "delta": 3.0,
          "percent_delta": null,
          "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": 0.0,
          "after": 3.0,
          "delta": 3.0,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_IP",
          "before": 3.6667,
          "after": 3.2,
          "delta": -0.4667,
          "percent_delta": -0.1273,
          "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": 3.6667,
        "after": 3.2,
        "delta": -0.4667,
        "percent_delta": -0.1273,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.0,
        "after": 3.0,
        "delta": 3.0,
        "percent_delta": null,
        "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": 0.0,
        "after": 3.0,
        "delta": 3.0,
        "percent_delta": null,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_IP",
        "before": 3.6667,
        "after": 3.2,
        "delta": -0.4667,
        "percent_delta": -0.1273,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "neutral"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_form_blend

Pitcher model/profile expectation with Bayesian recent-form shrinkage

MetricValueDelta vs Prev Step
predicted_BB1.000-
predicted_ER0.000-
predicted_H0.000-
predicted_HR0.000-
predicted_IP3.667-
predicted_SO0.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 33
Reference playing time: 3.667
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.4558.0000.0003.0002.0009.0000.0000.00000.62500.00000.37500.25001.12500.0000
last_100.351013.2004.0007.0006.00013.0001.0002.63410.95120.29270.51220.43900.95120.0732
season0.203343.20012.00022.00017.00031.0006.0002.47330.89310.27480.50380.38930.70990.1374
Weighted Prediction From Real Data
MetricValue
predicted_BB0.8070
predicted_ER0.6460
predicted_ERA2.5615
predicted_H1.4550
predicted_HR0.1990
predicted_IP2.1000
predicted_SO2.1900
predicted_WHIP0.9963
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB1.00000.80700.9039model_form_blend
predicted_ER0.00000.64600.3215model_form_blend
predicted_ERA-2.56152.5615form_only
predicted_H0.00001.45500.7242model_form_blend
predicted_HR0.00000.19900.0990model_form_blend
predicted_IP3.20002.10003.0000model_form_blend
predicted_SO0.00002.19001.0900model_form_blend
predicted_WHIP-0.99630.9963form_only

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula45% last 5 + 35% last 10 + 20% season
Active form weightslast_5=45%, last_10=35%, season=20%
Model calibration35% raw model + 65% weighted form
Rows before report date33
Season rows before report date33
Report year2026
Profile rows used33
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP3.2
H0
R0
ER0
BB1
SO3
HR0
BF13
Pitches62

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB0
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB0
Hitting_battingOrder0
Hitting_substitutionOrder0
Pitching_BB1
Pitching_Balk0
Pitching_Batters Faced7
Pitching_ER0
Pitching_ERA2.47
Pitching_Flyouts0
Pitching_Groundouts2
Pitching_H0
Pitching_HBP1
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched2.0
Pitching_Pitches31
Pitching_R0
Pitching_SO3
Pitching_Strikes17
Pitching_Wild Pitch0
Pitching_pitchingOrder2
allPositionsPlayedP
gameID20260919_DET@CHW
game_typefull
mlbID621097
playerID621097
playerNameJacob Waguespack
posP
startedFalse
startingPositionP
teamDET
teamID10
game_date2026-09-19
sl_k_percent18.2
sl_bb_percent10.0
sl_woba0.239
sl_xwoba0.27
sl_sweet_spot_percent25.0
sl_barrel_batted_rate4.2
sl_hard_hit_percent27.5
sl_whiff_percent24.9
sl_swing_percent46.6
sl_avg_best_speed73.046629138
sl_avg_hyper_speed92.790758174
Drew Sommers (805427) · PITCHER · Middle Reliever (High Leverage) · Team DET
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 41
All-history rows before 20260921: 41

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB1.0001.0001.000Pitching_BB0.3170.0000.6831.000
predicted_ER0.0000.0000.000Pitching_ER0.3410.000-0.3410.000
predicted_H0.0000.0000.000Pitching_H0.8050.000-0.8050.000
predicted_IP1.1001.1001.100Pitching_InningsPitched0.7222.0000.378-0.900
predicted_SO2.0002.0002.000Pitching_SO1.4155.0000.585-3.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_form_blend
Tocurrent_json_final
Dominant Effectworse
Changed Metrics1
Boosted Metrics0
Deboosted Metrics1
Better Metrics0
Worse Metrics1
Biggest Boost-
Biggest Deboostpredicted_IP: 1.3333 -> 1.1000 (deboost -0.2333, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
2current_json_final10101-predicted_IP: 1.3333 -> 1.1000 (deboost -0.2333, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "pitcher",
  "player_id": "805427",
  "player_name": "Drew Sommers",
  "position": "Middle Reliever (High Leverage)",
  "team": "DET",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 1.0,
        "predicted_ER": 0.0,
        "predicted_H": 0.0,
        "predicted_HR": 0.0,
        "predicted_IP": 1.3333,
        "predicted_SO": 2.0
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      },
      "weights": {},
      "window_games": {}
    },
    {
      "index": 2,
      "step": "current_json_final",
      "description": "Final player values currently stored in the game JSON",
      "stats": {
        "predicted_BB": 1.0,
        "predicted_ER": 0.0,
        "predicted_H": 0.0,
        "predicted_HR": 0.0,
        "predicted_IP": 1.1,
        "predicted_R": 0.0,
        "predicted_SO": 2.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_BB",
          "before": 1.0,
          "after": 1.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_ER",
          "before": 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": 2.0,
          "after": 2.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 0,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 1,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_IP",
          "before": 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": 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.1,
        "delta": -0.2333,
        "percent_delta": -0.175,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 2.0,
        "after": 2.0,
        "delta": 0.0,
        "percent_delta": 0.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      }
    ],
    "summary": {
      "changed_metrics": 1,
      "boosted_metrics": 0,
      "deboosted_metrics": 1,
      "better_metrics": 0,
      "worse_metrics": 1,
      "biggest_boost": null,
      "biggest_deboost": {
        "metric": "predicted_IP",
        "before": 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"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_form_blend

Pitcher model/profile expectation with Bayesian recent-form shrinkage

MetricValueDelta vs Prev Step
predicted_BB1.000-
predicted_ER0.000-
predicted_H0.000-
predicted_HR0.000-
predicted_IP1.333-
predicted_SO2.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 40
Reference playing time: 1.333
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.4556.1000.0005.0001.0008.0000.0000.00000.94740.00000.78950.15791.26320.0000
last_100.351012.0005.00011.0002.00016.0001.0003.75001.08330.41670.91670.16671.33330.0833
season0.204038.00011.00029.00012.00058.0003.0002.60531.07890.28950.76320.31581.52630.0790
Weighted Prediction From Real Data
MetricValue
predicted_BB0.3420
predicted_ER0.4190
predicted_ERA2.9181
predicted_H1.1490
predicted_HR0.1110
predicted_IP1.1000
predicted_SO1.5270
predicted_WHIP1.1534
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB1.00000.34200.6816model_form_blend
predicted_ER0.00000.41900.2028model_form_blend
predicted_ERA-2.91812.9181form_only
predicted_H0.00001.14900.5561model_form_blend
predicted_HR0.00000.11100.0537model_form_blend
predicted_IP1.10001.10001.1000model_form_blend
predicted_SO2.00001.52701.7711model_form_blend
predicted_WHIP-1.15341.1534form_only

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula45% last 5 + 35% last 10 + 20% season
Active form weightslast_5=45%, last_10=35%, season=20%
Model calibration35% raw model + 65% weighted form
Rows before report date41
Season rows before report date41
Report year2026
Profile rows used40
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP1.1
H0
R0
ER0
BB1
SO2
HR0
BF5
Pitches21

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB0
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB0
Hitting_battingOrder0
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced6
Pitching_ER0
Pitching_ERA3.32
Pitching_Flyouts0
Pitching_Groundouts1
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched2.0
Pitching_Pitches22
Pitching_R0
Pitching_SO5
Pitching_Strikes19
Pitching_Wild Pitch0
Pitching_decisionW
Pitching_pitchingOrder5
allPositionsPlayedP
gameID20260918_DET@CHW
game_typefull
mlbID805427
playerID805427
playerNameDrew Sommers
posP
startedFalse
startingPositionP
teamDET
teamID10
game_date2026-09-18
sl_k_percent36.0
sl_bb_percent8.1
sl_woba0.277
sl_xwoba0.227
sl_sweet_spot_percent25.3
sl_barrel_batted_rate2.3
sl_hard_hit_percent27.6
sl_whiff_percent30.8
sl_swing_percent50.2
sl_avg_best_speed72.926241667
sl_avg_hyper_speed92.330049277
Kenley Jansen (445276) · PITCHER · Closer · Team DET
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 48
All-history rows before 20260921: 48

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB0.0000.0000.000Pitching_BB0.4790.000-0.4790.000
predicted_ER0.0000.0000.000Pitching_ER0.3330.000-0.3330.000
predicted_H0.0000.0000.000Pitching_H0.5000.000-0.5000.000
predicted_IP1.2001.2001.200Pitching_InningsPitched0.8231.0000.3770.200
predicted_SO1.0001.0001.000Pitching_SO1.0211.000-0.0210.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_form_blend
Tocurrent_json_final
Dominant Effectworse
Changed Metrics1
Boosted Metrics0
Deboosted Metrics1
Better Metrics0
Worse Metrics1
Biggest Boost-
Biggest Deboostpredicted_IP: 1.3333 -> 1.2000 (deboost -0.1333, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
2current_json_final10101-predicted_IP: 1.3333 -> 1.2000 (deboost -0.1333, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "pitcher",
  "player_id": "445276",
  "player_name": "Kenley Jansen",
  "position": "Closer",
  "team": "DET",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 0.0,
        "predicted_ER": 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.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": 1.3333,
          "after": 1.2,
          "delta": -0.1333,
          "percent_delta": -0.1,
          "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.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": 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.2,
        "delta": -0.1333,
        "percent_delta": -0.1,
        "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.2,
        "delta": -0.1333,
        "percent_delta": -0.1,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_form_blend

Pitcher model/profile expectation with Bayesian recent-form shrinkage

MetricValueDelta vs Prev Step
predicted_BB0.000-
predicted_ER0.000-
predicted_H0.000-
predicted_HR0.000-
predicted_IP1.333-
predicted_SO1.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 47
Reference playing time: 1.333
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.4554.1000.0000.0002.0005.0000.0000.00000.46150.00000.00000.46151.15390.0000
last_100.35108.2000.0002.0003.0009.0000.0000.00000.57690.00000.23080.34621.03850.0000
season0.204743.00014.00023.00022.00049.0006.0002.93021.04650.32560.53490.51161.13950.1395
Weighted Prediction From Real Data
MetricValue
predicted_BB0.4610
predicted_ER0.2550
predicted_ERA2.0443
predicted_H0.5350
predicted_HR0.0810
predicted_IP1.0000
predicted_SO1.1740
predicted_WHIP0.8877
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB0.00000.46100.2288model_form_blend
predicted_ER0.00000.25500.1265model_form_blend
predicted_ERA-2.04432.0443form_only
predicted_H0.00000.53500.2655model_form_blend
predicted_HR0.00000.08100.0402model_form_blend
predicted_IP1.10001.00001.2000model_form_blend
predicted_SO1.00001.17401.0863model_form_blend
predicted_WHIP-0.88770.8877form_only

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula45% last 5 + 35% last 10 + 20% season
Active form weightslast_5=45%, last_10=35%, season=20%
Model calibration35% raw model + 65% weighted form
Rows before report date48
Season rows before report date48
Report year2026
Profile rows used47
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP1.2
H0
R0
ER0
BB0
SO1
HR0
BF5
Pitches26

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB0
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB0
Hitting_battingOrder0
Hitting_substitutionOrder0
Pitching_BB0
Pitching_Balk0
Pitching_Batters Faced3
Pitching_ER0
Pitching_ERA3.35
Pitching_Flyouts2
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched1.0
Pitching_Pitches10
Pitching_R0
Pitching_SO1
Pitching_Strikes7
Pitching_Wild Pitch0
Pitching_decisionS
Pitching_pitchingOrder6
allPositionsPlayedP
gameID20260918_DET@CHW
game_typefull
mlbID445276
playerID445276
playerNameKenley Jansen
posP
startedFalse
startingPositionP
teamDET
teamID10
game_date2026-09-18
sl_k_percent28.2
sl_bb_percent13.2
sl_woba0.268
sl_xwoba0.295
sl_sweet_spot_percent32.7
sl_barrel_batted_rate8.9
sl_hard_hit_percent36.6
sl_whiff_percent26.5
sl_swing_percent48.9
sl_avg_best_speed78.419942857
sl_avg_hyper_speed93.766985306
Tyler Holton (663947) · PITCHER · Setup Man · Team DET
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20260921: 66
All-history rows before 20260921: 66

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB0.0000.0000.000Pitching_BB0.2882.000-0.288-2.000
predicted_ER3.0003.0003.000Pitching_ER0.3330.0002.6673.000
predicted_H3.0003.0003.000Pitching_H1.0761.0001.9242.000
predicted_IP1.2001.2001.200Pitching_InningsPitched0.9200.1000.2801.100
predicted_SO1.0001.0001.000Pitching_SO0.8330.0000.1671.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_form_blend
Tocurrent_json_final
Dominant Effectworse
Changed Metrics1
Boosted Metrics0
Deboosted Metrics1
Better Metrics0
Worse Metrics1
Biggest Boost-
Biggest Deboostpredicted_IP: 1.3333 -> 1.2000 (deboost -0.1333, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
2current_json_final10101-predicted_IP: 1.3333 -> 1.2000 (deboost -0.1333, worse)Final player values currently stored in the game JSON
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.0",
  "role": "pitcher",
  "player_id": "663947",
  "player_name": "Tyler Holton",
  "position": "Setup Man",
  "team": "DET",
  "interpretation": "Boost/deboost is numeric movement vs the previous step. Better/worse is role-aware: hitter offense up is better; pitcher run prevention down is better.",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 0.0,
        "predicted_ER": 3.0,
        "predicted_H": 3.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": 3.0,
        "predicted_H": 3.0,
        "predicted_HR": 0.0,
        "predicted_IP": 1.2,
        "predicted_R": 3.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": 3.0,
          "after": 3.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_H",
          "before": 3.0,
          "after": 3.0,
          "delta": 0.0,
          "percent_delta": 0.0,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.0,
          "delta": 0.0,
          "percent_delta": null,
          "direction": "no_change",
          "projection_effect": "neutral",
          "material": false
        },
        {
          "metric": "predicted_IP",
          "before": 1.3333,
          "after": 1.2,
          "delta": -0.1333,
          "percent_delta": -0.1,
          "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.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": 0.0,
        "after": 0.0,
        "delta": 0.0,
        "percent_delta": null,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_ER",
        "before": 3.0,
        "after": 3.0,
        "delta": 0.0,
        "percent_delta": 0.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_H",
        "before": 3.0,
        "after": 3.0,
        "delta": 0.0,
        "percent_delta": 0.0,
        "direction": "no_change",
        "projection_effect": "neutral",
        "material": false
      },
      {
        "metric": "predicted_HR",
        "before": 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": 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.2,
        "delta": -0.1333,
        "percent_delta": -0.1,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_form_blend

Pitcher model/profile expectation with Bayesian recent-form shrinkage

MetricValueDelta vs Prev Step
predicted_BB0.000-
predicted_ER3.000-
predicted_H3.000-
predicted_HR0.000-
predicted_IP1.333-
predicted_SO1.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 65
Reference playing time: 1.333
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.4557.1001.0004.0001.0004.0000.0001.22730.68180.13640.54540.13640.54540.0000
last_100.351011.2001.0008.0003.0007.0000.0000.77140.94290.08570.68570.25710.60000.0000
season0.206571.10022.00070.00017.00055.0008.0002.77571.21960.30840.98130.23830.77100.1121
Weighted Prediction From Real Data
MetricValue
predicted_BB0.3140
predicted_ER0.3140
predicted_ERA2.2020
predicted_H0.9740
predicted_HR0.0710
predicted_IP1.1000
predicted_SO0.8900
predicted_WHIP1.0030
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB0.00000.31400.1701model_form_blend
predicted_ER3.00000.31401.5451model_form_blend
predicted_ERA-2.20202.2020form_only
predicted_H3.00000.97401.9026model_form_blend
predicted_HR0.00000.07100.0385model_form_blend
predicted_IP1.10001.10001.1000model_form_blend
predicted_SO1.00000.89000.9404model_form_blend
predicted_WHIP-1.00301.0030form_only

Model Data Source Trace

Trace ItemValue
Primary player sourcedata/all_players_stats.csv
Rolling form windowslast 5 games, last 10 games, season-to-date before report date
Blend formula45% last 5 + 35% last 10 + 20% season
Active form weightslast_5=45%, last_10=35%, season=20%
Model calibration35% raw model + 65% weighted form
Rows before report date66
Season rows before report date66
Report year2026
Profile rows used65
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP1.2
H3
R3
ER3
BB0
SO1
HR0
BF8
Pitches30

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists0
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB0
Hitting_AVG0.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
Hitting_TB0
Hitting_battingOrder0
Hitting_substitutionOrder0
Pitching_BB2
Pitching_Balk0
Pitching_Batters Faced4
Pitching_ER0
Pitching_ERA2.76
Pitching_Flyouts1
Pitching_Groundouts0
Pitching_H1
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners1
Pitching_Inherited Runners Scored1
Pitching_InningsPitched0.1
Pitching_Pitches22
Pitching_R0
Pitching_SO0
Pitching_Strikes12
Pitching_Wild Pitch0
Pitching_pitchingOrder2
allPositionsPlayedP
gameID20260920_DET@CHW
game_typefull
mlbID663947
playerID663947
playerNameTyler Holton
posP
startedFalse
startingPositionP
teamDET
teamID10
game_date2026-09-20
sl_k_percent18.6
sl_bb_percent5.7
sl_woba0.314
sl_xwoba0.298
sl_sweet_spot_percent31.2
sl_barrel_batted_rate5.5
sl_hard_hit_percent37.6
sl_whiff_percent23.7
sl_swing_percent47.0
sl_avg_best_speed75.944678972
sl_avg_hyper_speed93.585549579