Ultra Detailed Player Audit - 20261006

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.

20261006_LAD@ATL

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": 4, "home_runs": 3, "confidence": 0.5051535925, "home_win_probability": 0.4948464075, "away_win_probability": 0.5051535925, "predicted_score_text": "LAD 4 - 3 ATL", "uncapped_home_win_probability": 0.492867, "uncapped_away_win_probability": 0.507133, "confidence_shrinkage": {"policy": "starter_quality_shrinkage_v3", "staged_confidence": 0.507133, "discount_factor": 0.7225, "published_confidence": 0.505154, "guardrail_confidence_cap": 0.53, "guardrail_cap_enforced": false, "guardrail_soft_ceiling_applied": false, "confidence_before_ceiling": 0.505154, "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.3, "incoming_favoured_side": "away", "score_winner_side": "away", "published_home_win_probability": 0.494846, "probability_side_reverted_by_score": false, "note": "The probability and the projected score agree on the winner."}, "confidence_note": "Probability shrunk toward even by starter-quality and guardrail discounts; no per-game clamp is applied. Discounts: projected_margin_is_one_run x0.85, matchup_recency_guardrail x0.85.", "pre_simulation_target": {"away_runs": 4, "home_runs": 3, "predicted_score_text": "LAD 4 - 3 ATL", "confidence": 0.5051535925, "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": 3, "score_text": "LAD 4 - 3 ATL", "winner": "LAD"}, "final_simulation_score": {"away_runs": 4, "home_runs": 3, "score_text": "LAD 4 - 3 ATL", "winner": "LAD"}, "winner_flipped_by_simulation": false, "simulation_would_flip_winner": false, "sim_flipped_pre_winner": false, "sim_flip_trusted": false, "sim_flip_policy": "diagnostic_only_unless_independently_supported", "independent_margin_support": false, "independent_margin_support_evidence": {"pitcher_matchup_edge_home_minus_away": -0.0609, "recent_form_edge_home_minus_away": -0.314, "winner_direction": "away", "thresholds": {"pitcher_matchup": 0.35, "recent_form": 0.75}}, "margin_widening_capped": false, "simulation_winner_agrees": true, "away_run_delta": 0, "home_run_delta": 0, "total_run_delta": 0, "score_source": "enhanced_prediction.pre_simulation_target", "simulation_usage": "organic_simulation_realized_target", "final_prediction_source": "stable_final_prediction_policy", "final_decision_policy": {"policy_version": "model_target_authoritative_simulation_realizes_v3", "away_runs": 4, "home_runs": 3, "winner": "LAD", "model_winner": "LAD", "simulation_winner": "LAD", "simulation_winner_agrees": true, "simulation_agreement_scope": "selected_draw_only", "simulation_distribution_agreement": {"available": true, "draw_count": 3, "published_winner": "LAD", "published_winner_draw_share": 0.3333, "draw_majority_team": "ATL", "published_winner_is_draw_majority": false, "sampling": "target_conditioned_selection", "is_unbiased_probability_sample": false, "note": "Draw shares are target-conditioned and diagnostic. A published winner holding a minority share is recorded, not suppressed."}, "simulation_score_enabled": true, "independent_margin_support": false, "margin_widening_capped": false, "model_margin": 1, "simulation_margin": 1, "simulation_usage": "organic_simulation_realized_target", "score_source": "enhanced_prediction.pre_simulation_target", "simulation_realized_target": true, "model_score": {"away_runs": 4, "home_runs": 3}, "simulation_score": {"away_runs": 4, "home_runs": 3}}, "final_margin_quality_review": {"review_required": false, "pre_margin": 1, "final_margin": 1, "winner_quality_edge": 0.6096, "winner": "LAD", "score_reviewed": {"away_runs": 4, "home_runs": 3, "source": "enhanced_prediction.pre_simulation_target"}, "reason": "published margin is directionally supported or within review threshold"}}}
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 predictionLAD 4 - 3 ATLLAD0.505enhanced_prediction.pre_simulation_targetTrue
Simulation drawLAD 4 - 3 ATLLAD-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.5101; empirical=0.5477; weight=0.5000; final=0.5289
P1H2H margin as base featureavailablehome net=13; abs=13; home delta=0.0750; away delta=-0.0750
P2Wider score distributionimplemented_above_requested_1.4xvariance multiplier=2.2500; floor=2.7500
P2Simulation flip controldiagnostic_only_unless_independently_supportedcandidate=False; trusted=False; published flip=False
P3Season edge + recent formimplementedwindow=10; season edge=-0.5802; recent edge=-0.6640; 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.4000
8. Probability/governorsApplies win probability calibration, matchup guardrails, margin governor and confidence governor.win_probability_calibration, margin_governor, confidence_governor0.5052
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 rendered8 stored score steps are rendered below.game.score_evolution.stepstrue

Score Evolution Steps

StepLayerAway RunsHome RunsConfidenceDescription
1historical_ml3.8074.634-Base ML historical model prediction
2variance_applied45-Deterministic baseline target (variance factor 1.0)
3enhanced_prediction430.5052Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run, matchup_recency_guardrail)
4kpi_layer43-Savant KPI blend applied to the model target
5embedded_savant_run_environment43-Target score adjusted by temporal Savant lineup quality versus opposing starter quality
6fundamental_edge_target_review43-Refreshed score target and win probability after Savant/pitcher/team-strength adjustments
7capped_target43-Capped at max 12 realistic runs
8simulation_result43-Final inning-by-inning simulation result

Governors, Guardrails, and Reconciliation

Low Score Analysis
{
  "low_score_probability": 0.711489358068684,
  "base_low_score_probability": 0.42711198428290764,
  "low_score_signal_threshold": 0.5071119842829076,
  "low_score_signal_strength": 0.2843773737857763,
  "confidence": 0.9,
  "factors": {
    "environmental": 1.0710000000000002,
    "pitcher_form": 1.4520000000000002,
    "team_form": 1.0,
    "situational": 1.0712000000000002,
    "combined": 1.6658145504000006
  },
  "prediction": "low_scoring",
  "expected_total_runs": 7,
  "score_scale_mode": "control",
  "pre_simulation_expected_total_runs": 6.4,
  "low_score_model_expected_total_runs": 6.4,
  "final_simulation_total_runs": 7,
  "score_source": "enhanced_prediction.pre_simulation_target"
}
Win Probability Calibration
{
  "method": "monotone_reliability_shrinkage",
  "policy": "shrink_toward_even_score_floor_v3",
  "sample_size": 566,
  "near_bucket_sample_size": 566,
  "medium_bucket_sample_size": 787,
  "wide_bucket_sample_size": 891,
  "global_sample_size": 1133,
  "bucket_scope": "near_0.05",
  "sparse_bucket": false,
  "empirical_hit_rate": 0.5477,
  "bayesian_hit_rate": 0.5462,
  "prior_strength": 18.0,
  "raw_pick_probability": 0.5,
  "raw_pick_probability_unclamped": 0.4319,
  "score_probability_conflict": true,
  "margin_implied_home_probability": 0.4927,
  "margin_implied_pick_probability": 0.5073,
  "score_blend_weight": 0.45,
  "blended_raw_pick_probability": 0.5033,
  "score_implied_floor_pick_probability": 0.5071,
  "max_published_pick_probability": 0.9,
  "uncapped_home_win_probability": 0.568066,
  "uncapped_away_win_probability": 0.431934,
  "calibrated_pick_probability": 0.5071,
  "predicted_side": "away",
  "reliability": 0.969178,
  "shrink_floor": 0.35,
  "empirical_penalty": 1.0,
  "shrinkage_weight": 0.979966
}
Empirical Confidence Calibration
{
  "method": "empirical_hit_rate_weighted_v1",
  "applied": true,
  "reason": "raw confidence blended with verified historical bucket hit rate",
  "raw_confidence": 0.5101,
  "sample_size": 566,
  "empirical_hit_rate": 0.5477,
  "empirical_weight": 0.5,
  "blended_confidence": 0.5289,
  "published_confidence": 0.505154,
  "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": 13.0,
  "absolute_net_margin": 13.0,
  "home_average_margin": 2.6,
  "home_run_delta": 0.075,
  "away_run_delta": -0.075,
  "evidence": [
    {
      "game_id": null,
      "home_margin": 1.0
    },
    {
      "game_id": null,
      "home_margin": 1.0
    },
    {
      "game_id": null,
      "home_margin": 1.0
    },
    {
      "game_id": null,
      "home_margin": 5.0
    },
    {
      "game_id": null,
      "home_margin": 5.0
    }
  ],
  "adaptive_parameters": {
    "h2h.history_limit": 5,
    "h2h.maximum_weight": 0.15,
    "h2h.prior_games": 8.0,
    "h2h.maximum_total_shift": 0.65
  }
}
Season Run Differential Adjustment
{
  "applied": true,
  "home": {
    "team": "ATL",
    "games": 162,
    "wins": 94,
    "losses": 68,
    "win_pct": 0.5802469135802469,
    "runs_scored": 742,
    "runs_allowed": 626,
    "run_differential": 116,
    "run_differential_per_game": 0.7160493827160493,
    "available": true
  },
  "away": {
    "team": "LAD",
    "games": 162,
    "wins": 100,
    "losses": 62,
    "win_pct": 0.6172839506172839,
    "runs_scored": 801,
    "runs_allowed": 600,
    "run_differential": 201,
    "run_differential_per_game": 1.2407407407407407,
    "available": true
  },
  "run_differential_edge_per_game": -0.5247,
  "win_pct_edge": -0.037,
  "quality_edge": -0.6096,
  "season_quality_edge": -0.5802,
  "recent_quality_blend": {
    "method": "season_recent_quality_blend_v2_adaptive",
    "recent_window": 10,
    "season_quality_edge": -0.5802,
    "recent_quality_edge": -0.664,
    "season_weight": 0.65,
    "recent_weight": 0.35,
    "recent_reliability": 1.0,
    "alignment": "aligned",
    "blended_quality_edge": -0.6096
  },
  "margin_adjustment": -0.256,
  "reason": "season-to-date run differential and record moved the score toward the stronger team",
  "margin_adjustment_policy": {
    "adjustment": -0.256,
    "cap": 1.4,
    "scale": 0.42,
    "quality_edge": -0.6096,
    "season_quality_edge": -0.5802,
    "recent_alignment": "aligned",
    "large_edge_supported_by_recent_form": false,
    "method": "standard_bounded_season_recent_adjustment"
  },
  "adjusted_score": {
    "away_runs": 3.92,
    "home_runs": 1.664,
    "home_win_probability": 0.3082
  }
}
Score Distribution Widening
{
  "most_likely": [
    {
      "home_runs": 3,
      "away_runs": 3,
      "probability": 0.030645802666319066
    },
    {
      "home_runs": 2,
      "away_runs": 3,
      "probability": 0.02946651036732466
    },
    {
      "home_runs": 3,
      "away_runs": 2,
      "probability": 0.02904938315086207
    },
    {
      "home_runs": 2,
      "away_runs": 2,
      "probability": 0.027931523252938757
    },
    {
      "home_runs": 3,
      "away_runs": 4,
      "probability": 0.027649724807175473
    }
  ],
  "home_distribution": {
    "0": 0.09651524120900042,
    "1": 0.13880981486856983,
    "2": 0.16976707238023186,
    "3": 0.17656139578619717,
    "4": 0.1561518224534555,
    "5": 0.1174376550497356,
    "6": 0.07510635646569538,
    "7": 0.04084651673900808,
    "8": 0.018890452886973188,
    "9": 0.007429143078165037,
    "10": 0.002484529082967977
  },
  "away_distribution": {
    "0": 0.09247624117108566,
    "1": 0.1333806415151809,
    "2": 0.16452850874626485,
    "3": 0.17357023334494293,
    "4": 0.1566011906739639,
    "5": 0.12083718478680057,
    "6": 0.07974287036340168,
    "7": 0.045005838359221284,
    "8": 0.021723588845602795,
    "9": 0.00896767828065708,
    "10": 0.0031660239128782123
  },
  "model": "overdispersed_score_distribution",
  "variance_multiplier": 2.25,
  "variance_floor": 2.75,
  "roadmap_status": "implemented_above_requested_1.4x"
}
Matchup Recency Guardrail
{
  "applied": true,
  "confidence_cap": 0.53,
  "winner_flipped": false,
  "reasons": [
    "latest same-matchup result beat the predicted side",
    "recent head-to-head margin does not support a strong repeat pick",
    "local prediction memory shows 2 straight prior same-side picks",
    "a prior same-side pick already missed against the actual result",
    "latest-series evidence cleared the reversal bar; confidence capped and runs shifted, winner unchanged by design"
  ],
  "signals": {
    "predicted_team": "LAD",
    "opponent_team": "ATL",
    "h2h_net_margin": -3,
    "opponent_breakout": false,
    "opponent_blowout_win": false,
    "split_recent_h2h": false,
    "recent_h2h": [
      {
        "date": "2026-08-27",
        "predicted_team_runs": 0,
        "opponent_runs": 1,
        "margin_for_predicted_team": -1,
        "winner": "ATL"
      },
      {
        "date": "2026-08-26",
        "predicted_team_runs": 5,
        "opponent_runs": 6,
        "margin_for_predicted_team": -1,
        "winner": "ATL"
      },
      {
        "date": "2026-08-25",
        "predicted_team_runs": 3,
        "opponent_runs": 4,
        "margin_for_predicted_team": -1,
        "winner": "ATL"
      }
    ],
    "prediction_memory": {
      "available": true,
      "reason": "verified_prior_matchup_predictions_available",
      "verification_policy": "pregame_artifact_matched_to_one_official_final",
      "verified_outcome_count": 5,
      "consecutive_same_pick_count": 2,
      "same_pick_actual_loss_count": 3,
      "same_pick_blowout_loss_count": 0,
      "prior_predictions": [
        {
          "date": "20261004",
          "away": "ATL",
          "home": "LAD",
          "game_number": 1,
          "predicted_team": "LAD",
          "actual_winner": "ATL",
          "actual_margin": 1,
          "raw_pick_probability": 0.514946,
          "artifact": "20261004_ATL@LAD.json",
          "verification": "pregame_official_final"
        },
        {
          "date": "20261003",
          "away": "ATL",
          "home": "LAD",
          "game_number": 1,
          "predicted_team": "LAD",
          "actual_winner": "LAD",
          "actual_margin": 2,
          "raw_pick_probability": 0.546692,
          "artifact": "20261003_ATL@LAD.json",
          "verification": "pregame_official_final"
        },
        {
          "date": "20260827",
          "away": "LAD",
          "home": "ATL",
          "game_number": 1,
          "predicted_team": "ATL",
          "actual_winner": "ATL",
          "actual_margin": 1,
          "raw_pick_probability": 0.560841,
          "artifact": "20260827_LAD@ATL.json",
          "verification": "pregame_official_final"
        },
        {
          "date": "20260826",
          "away": "LAD",
          "home": "ATL",
          "game_number": 1,
          "predicted_team": "LAD",
          "actual_winner": "ATL",
          "actual_margin": 1,
          "raw_pick_probability": 0.5486690000000001,
          "artifact": "20260826_LAD@ATL.json",
          "verification": "pregame_official_final"
        },
        {
          "date": "20260825",
          "away": "LAD",
          "home": "ATL",
          "game_number": 1,
          "predicted_team": "LAD",
          "actual_winner": "ATL",
          "actual_margin": 1,
          "raw_pick_probability": 0.5545089999999999,
          "artifact": "20260825_LAD@ATL.json",
          "verification": "pregame_official_final"
        }
      ]
    },
    "guardrail_predicted_team": "LAD",
    "guardrail_opponent_team": "ATL",
    "output_pre_simulation_winner": "LAD",
    "output_opponent_team": "ATL",
    "simulation_score_winner": "LAD",
    "final_score_winner": "LAD",
    "pre_simulation_winner": "LAD",
    "winner_flipped_by_simulation": false,
    "simulation_would_flip_winner": false
  },
  "hard_flip_suppressed": true,
  "flip_authority": "caps_confidence_and_shifts_runs_only"
}
Season Quality Guardrail
{
  "applied": false,
  "confidence_cap": null,
  "winner_flipped": false,
  "hard_flip_suppressed": false,
  "policy": "recency_uncertainty_shrinkage_v2",
  "reasons": [],
  "signals": {
    "home": {
      "team": "ATL",
      "games": 162,
      "wins": 94,
      "losses": 68,
      "win_pct": 0.5802469135802469,
      "runs_scored": 742,
      "runs_allowed": 626,
      "run_differential": 116,
      "run_differential_per_game": 0.7160493827160493,
      "available": true
    },
    "away": {
      "team": "LAD",
      "games": 162,
      "wins": 100,
      "losses": 62,
      "win_pct": 0.6172839506172839,
      "runs_scored": 801,
      "runs_allowed": 600,
      "run_differential": 201,
      "run_differential_per_game": 1.2407407407407407,
      "available": true
    }
  }
}
Margin Governor
{
  "applied": false,
  "raw_margin": -0.1,
  "final_margin": -0.1,
  "margin_cap": 1.5,
  "season_quality_edge": 0.6096,
  "reason": "raw target margin within supported range"
}
Confidence Governor
{
  "applied": true,
  "policy": "align_to_calibrated_probability_v2",
  "raw_confidence": 0.5289,
  "final_confidence": 0.5071,
  "calibrated_pick_probability": 0.5071,
  "shrinkage_weight": 0.979966,
  "hard_maximum": 0.9,
  "confidence_floor": 0.505,
  "score_gap": 0.1,
  "calibration_sample_size": 566,
  "calibration_empirical_hit_rate": 0.5477,
  "calibration_bayesian_hit_rate": 0.5462,
  "calibration_sparse_bucket": false,
  "season_quality_edge": 0.6096,
  "reasons": [
    "confidence aligned to the calibrated pick probability"
  ],
  "score_coherence": {
    "policy": "probability_follows_published_score_v1",
    "published_score": {
      "away_runs": 4,
      "home_runs": 3
    },
    "margin": -1,
    "probability_before": 0.492867,
    "margin_implied_home_probability": 0.427612,
    "shrinkage_weight": 0.979966,
    "side_flipped": false,
    "applied": false,
    "magnitude_pull_suppressed": true,
    "probability_after": 0.492867,
    "aligned_pick_probability": 0.507133
  },
  "starter_experience": {
    "applied": false,
    "min_starter_games": 28,
    "shrink_factor": 1.0
  }
}
Simulation Reconciliation
{
  "pre_simulation_score": {
    "away_runs": 4,
    "home_runs": 3,
    "score_text": "LAD 4 - 3 ATL",
    "winner": "LAD"
  },
  "final_simulation_score": {
    "away_runs": 4,
    "home_runs": 3,
    "score_text": "LAD 4 - 3 ATL",
    "winner": "LAD"
  },
  "winner_flipped_by_simulation": false,
  "simulation_would_flip_winner": false,
  "sim_flipped_pre_winner": false,
  "sim_flip_trusted": false,
  "sim_flip_policy": "diagnostic_only_unless_independently_supported",
  "independent_margin_support": false,
  "independent_margin_support_evidence": {
    "pitcher_matchup_edge_home_minus_away": -0.0609,
    "recent_form_edge_home_minus_away": -0.314,
    "winner_direction": "away",
    "thresholds": {
      "pitcher_matchup": 0.35,
      "recent_form": 0.75
    }
  },
  "margin_widening_capped": false,
  "simulation_winner_agrees": true,
  "away_run_delta": 0,
  "home_run_delta": 0,
  "total_run_delta": 0,
  "score_source": "enhanced_prediction.pre_simulation_target",
  "simulation_usage": "organic_simulation_realized_target",
  "final_prediction_source": "stable_final_prediction_policy",
  "final_decision_policy": {
    "policy_version": "model_target_authoritative_simulation_realizes_v3",
    "away_runs": 4,
    "home_runs": 3,
    "winner": "LAD",
    "model_winner": "LAD",
    "simulation_winner": "LAD",
    "simulation_winner_agrees": true,
    "simulation_agreement_scope": "selected_draw_only",
    "simulation_distribution_agreement": {
      "available": true,
      "draw_count": 3,
      "published_winner": "LAD",
      "published_winner_draw_share": 0.3333,
      "draw_majority_team": "ATL",
      "published_winner_is_draw_majority": false,
      "sampling": "target_conditioned_selection",
      "is_unbiased_probability_sample": false,
      "note": "Draw shares are target-conditioned and diagnostic. A published winner holding a minority share is recorded, not suppressed."
    },
    "simulation_score_enabled": true,
    "independent_margin_support": false,
    "margin_widening_capped": false,
    "model_margin": 1,
    "simulation_margin": 1,
    "simulation_usage": "organic_simulation_realized_target",
    "score_source": "enhanced_prediction.pre_simulation_target",
    "simulation_realized_target": true,
    "model_score": {
      "away_runs": 4,
      "home_runs": 3
    },
    "simulation_score": {
      "away_runs": 4,
      "home_runs": 3
    }
  },
  "final_margin_quality_review": {
    "review_required": false,
    "pre_margin": 1,
    "final_margin": 1,
    "winner_quality_edge": 0.6096,
    "winner": "LAD",
    "score_reviewed": {
      "away_runs": 4,
      "home_runs": 3,
      "source": "enhanced_prediction.pre_simulation_target"
    },
    "reason": "published margin is directionally supported or within review threshold"
  }
}
Enhanced Prediction Target
{
  "away_runs": 4,
  "home_runs": 3,
  "confidence": 0.5051535925,
  "home_win_probability": 0.4948464075,
  "away_win_probability": 0.5051535925,
  "predicted_score_text": "LAD 4 - 3 ATL",
  "uncapped_home_win_probability": 0.492867,
  "uncapped_away_win_probability": 0.507133,
  "confidence_shrinkage": {
    "policy": "starter_quality_shrinkage_v3",
    "staged_confidence": 0.507133,
    "discount_factor": 0.7225,
    "published_confidence": 0.505154,
    "guardrail_confidence_cap": 0.53,
    "guardrail_cap_enforced": false,
    "guardrail_soft_ceiling_applied": false,
    "confidence_before_ceiling": 0.505154,
    "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.3,
    "incoming_favoured_side": "away",
    "score_winner_side": "away",
    "published_home_win_probability": 0.494846,
    "probability_side_reverted_by_score": false,
    "note": "The probability and the projected score agree on the winner."
  },
  "confidence_note": "Probability shrunk toward even by starter-quality and guardrail discounts; no per-game clamp is applied. Discounts: projected_margin_is_one_run x0.85, matchup_recency_guardrail x0.85.",
  "pre_simulation_target": {
    "away_runs": 4,
    "home_runs": 3,
    "predicted_score_text": "LAD 4 - 3 ATL",
    "confidence": 0.5051535925,
    "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": 3,
      "score_text": "LAD 4 - 3 ATL",
      "winner": "LAD"
    },
    "final_simulation_score": {
      "away_runs": 4,
      "home_runs": 3,
      "score_text": "LAD 4 - 3 ATL",
      "winner": "LAD"
    },
    "winner_flipped_by_simulation": false,
    "simulation_would_flip_winner": false,
    "sim_flipped_pre_winner": false,
    "sim_flip_trusted": false,
    "sim_flip_policy": "diagnostic_only_unless_independently_supported",
    "independent_margin_support": false,
    "independent_margin_support_evidence": {
      "pitcher_matchup_edge_home_minus_away": -0.0609,
      "recent_form_edge_home_minus_away": -0.314,
      "winner_direction": "away",
      "thresholds": {
        "pitcher_matchup": 0.35,
        "recent_form": 0.75
      }
    },
    "margin_widening_capped": false,
    "simulation_winner_agrees": true,
    "away_run_delta": 0,
    "home_run_delta": 0,
    "total_run_delta": 0,
    "score_source": "enhanced_prediction.pre_simulation_target",
    "simulation_usage": "organic_simulation_realized_target",
    "final_prediction_source": "stable_final_prediction_policy",
    "final_decision_policy": {
      "policy_version": "model_target_authoritative_simulation_realizes_v3",
      "away_runs": 4,
      "home_runs": 3,
      "winner": "LAD",
      "model_winner": "LAD",
      "simulation_winner": "LAD",
      "simulation_winner_agrees": true,
      "simulation_agreement_scope": "selected_draw_only",
      "simulation_distribution_agreement": {
        "available": true,
        "draw_count": 3,
        "published_winner": "LAD",
        "published_winner_draw_share": 0.3333,
        "draw_majority_team": "ATL",
        "published_winner_is_draw_majority": false,
        "sampling": "target_conditioned_selection",
        "is_unbiased_probability_sample": false,
        "note": "Draw shares are target-conditioned and diagnostic. A published winner holding a minority share is recorded, not suppressed."
      },
      "simulation_score_enabled": true,
      "independent_margin_support": false,
      "margin_widening_capped": false,
      "model_margin": 1,
      "simulation_margin": 1,
      "simulation_usage": "organic_simulation_realized_target",
      "score_source": "enhanced_prediction.pre_simulation_target",
      "simulation_realized_target": true,
      "model_score": {
        "away_runs": 4,
        "home_runs": 3
      },
      "simulation_score": {
        "away_runs": 4,
        "home_runs": 3
      }
    },
    "final_margin_quality_review": {
      "review_required": false,
      "pre_margin": 1,
      "final_margin": 1,
      "winner_quality_edge": 0.6096,
      "winner": "LAD",
      "score_reviewed": {
        "away_runs": 4,
        "home_runs": 3,
        "source": "enhanced_prediction.pre_simulation_target"
      },
      "reason": "published margin is directionally supported or within review threshold"
    }
  }
}

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 LADTrue1.06221.0622190
Home ATLTrue1.03321.0332190

Away Batter Inputs

PosPlayerESPN RankOff FactorQualityRegressionxwOBAxBAxSLGBarrel%HardHit%EVLAWhiff%K%BB%Regression Edge
SSMookie Betts-1.05920.7895neutral0.33900.27800.43507.803890.2017.9012.50118.900.0286
1BFreddie Freeman-1.08461.1277neutral0.36300.29000.46308.1041.3089.5012.2023.2017.70100.4286
LFTeoscar Hernández-1.05220.6961neutral0.33200.25600.437010.7044.8090.3013.9032.6027.508.600
CWill Smith-1.12361.6486positive_batter_regression0.38900.27900.502012.4041.2089.1020.1016.7016.3012.301.2571
DHShohei Ohtani-1.14011.8682neutral0.39700.28600.552016.4052.1093.3012.3031.7024.6013.100.5714
2BMiguel Rojas-1.01680.2244neutral0.30900.27700.38604.8036.2087.3014.601710.706.300.0857
CFAndy Pages-1.05500.7337neutral0.34300.27400.44207.9042.3088.9015.7022.1019.708.50-0.2571
RFKyle Tucker-1.03580.4771neutral0.33100.25600.39306.4036.3088.5018.1020.8016.7012.400.3714
3BEnrique Hernández-0.9921-0.1058neutral0.27900.22000.36708.1040.308910.902529.206.30-0.4000

Home Batter Inputs

PosPlayerESPN RankOff FactorQualityRegressionxwOBAxBAxSLGBarrel%HardHit%EVLAWhiff%K%BB%Regression Edge
CDrake Baldwin-1.10931.4576neutral0.37000.27900.505012.9050.6091.501124.4021.508.900.3429
DHRonald Acuña Jr.-1.09461.2607neutral0.36600.26100.49501343.5089.6015.70292211.300.5143
1BMatt Olson-1.08991.1980neutral0.35100.24700.503014.205292.5018.1025.4024.509.200
2BOzzie Albies-0.9552-0.5967neutral0.27300.22100.33703.8027.7087.1017.8021.2015.406.70-0.7143
CFMichael Harris II-1.07020.9360neutral0.34200.29000.477010.3047.6090.501024.6019.203.70-0.2000
LFMauricio Dubón-0.9974-0.0343neutral0.30400.26800.3750429.4086.5016.1015.3011.805.70-0.3714
RFLane Thomas-1.01550.2061neutral0.31100.23800.36506.4040.9089.3017.4022.9024.9011.80-0.0571
3BAustin Riley-1.02390.3191neutral0.29900.21300.396012.4044.3091.3018.5031.9031.907.600.2571
SSHa-Seong Kim-0.9432-0.7574positive_batter_regression0.22200.15700.20602.202585.9019.9020.2025.9010.901.2000
Raw Savant Batter Quality JSON
{
  "home": {
    "applied": true,
    "offense_factor": 1.0332,
    "raw_average_factor": 1.0332,
    "team_espn_average_rank": null,
    "coverage_weight": 1.0,
    "covered_batters": 9,
    "missing_batters": 0,
    "players": [
      {
        "position": "C",
        "player_id": "686948",
        "player_name": "Drake Baldwin",
        "offense_factor": 1.1093,
        "quality_score": 1.4576,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "686948",
          "espn_rank": null
        },
        "metrics": {
          "pa": 570.0,
          "k_percent": 21.5,
          "bb_percent": 8.9,
          "woba": 0.358,
          "xwoba": 0.37,
          "xba": 0.279,
          "xslg": 0.505,
          "sweet_spot_percent": 37.5,
          "barrel_batted_rate": 12.9,
          "hard_hit_percent": 50.6,
          "exit_velocity_avg": 91.5,
          "launch_angle_avg": 11.0,
          "whiff_percent": 24.4,
          "swing_percent": 51.2
        },
        "components": {
          "expected_quality": 1.6391,
          "regression_edge": 0.3429,
          "xwoba_edge": 2.0286,
          "xba_edge": 1.2286,
          "xslg_edge": 2.0286,
          "barrel_edge": 1.4,
          "hard_hit_edge": 1.8571,
          "exit_velocity_edge": 1.24,
          "sweet_spot_edge": 0.7,
          "launch_angle_hr_bonus": 0.2
        }
      },
      {
        "position": "DH",
        "player_id": "660670",
        "player_name": "Ronald Acuña Jr.",
        "offense_factor": 1.0946,
        "quality_score": 1.2607,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "660670",
          "espn_rank": null
        },
        "metrics": {
          "pa": 429.0,
          "k_percent": 22.0,
          "bb_percent": 11.3,
          "woba": 0.348,
          "xwoba": 0.366,
          "xba": 0.261,
          "xslg": 0.495,
          "sweet_spot_percent": 34.7,
          "barrel_batted_rate": 13.0,
          "hard_hit_percent": 43.5,
          "exit_velocity_avg": 89.6,
          "launch_angle_avg": 15.7,
          "whiff_percent": 29.0,
          "swing_percent": 49.4
        },
        "components": {
          "expected_quality": 1.3822,
          "regression_edge": 0.5143,
          "xwoba_edge": 1.9143,
          "xba_edge": 0.7143,
          "xslg_edge": 1.8857,
          "barrel_edge": 1.4222,
          "hard_hit_edge": 0.8429,
          "exit_velocity_edge": 0.48,
          "sweet_spot_edge": 0.2333,
          "launch_angle_hr_bonus": 0.2
        }
      },
      {
        "position": "1B",
        "player_id": "621566",
        "player_name": "Matt Olson",
        "offense_factor": 1.0899,
        "quality_score": 1.198,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "621566",
          "espn_rank": null
        },
        "metrics": {
          "pa": 646.0,
          "k_percent": 24.5,
          "bb_percent": 9.2,
          "woba": 0.351,
          "xwoba": 0.351,
          "xba": 0.247,
          "xslg": 0.503,
          "sweet_spot_percent": 32.0,
          "barrel_batted_rate": 14.2,
          "hard_hit_percent": 52.0,
          "exit_velocity_avg": 92.5,
          "launch_angle_avg": 18.1,
          "whiff_percent": 25.4,
          "swing_percent": 46.9
        },
        "components": {
          "expected_quality": 1.3931,
          "regression_edge": 0.0,
          "xwoba_edge": 1.4857,
          "xba_edge": 0.3143,
          "xslg_edge": 2.0,
          "barrel_edge": 1.6889,
          "hard_hit_edge": 2.0571,
          "exit_velocity_edge": 1.64,
          "sweet_spot_edge": -0.2167,
          "launch_angle_hr_bonus": 0.45
        }
      },
      {
        "position": "2B",
        "player_id": "645277",
        "player_name": "Ozzie Albies",
        "offense_factor": 0.9552,
        "quality_score": -0.5967,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "645277",
          "espn_rank": null
        },
        "metrics": {
          "pa": 634.0,
          "k_percent": 15.4,
          "bb_percent": 6.7,
          "woba": 0.298,
          "xwoba": 0.273,
          "xba": 0.221,
          "xslg": 0.337,
          "sweet_spot_percent": 32.3,
          "barrel_batted_rate": 3.8,
          "hard_hit_percent": 27.7,
          "exit_velocity_avg": 87.1,
          "launch_angle_avg": 17.8,
          "whiff_percent": 21.2,
          "swing_percent": 56.1
        },
        "components": {
          "expected_quality": -0.5775,
          "regression_edge": -0.7143,
          "xwoba_edge": -0.7429,
          "xba_edge": -0.4286,
          "xslg_edge": -0.3714,
          "barrel_edge": -0.6222,
          "hard_hit_edge": -1.4143,
          "exit_velocity_edge": -0.52,
          "sweet_spot_edge": -0.1667,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "CF",
        "player_id": "671739",
        "player_name": "Michael Harris II",
        "offense_factor": 1.0702,
        "quality_score": 0.936,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "671739",
          "espn_rank": null
        },
        "metrics": {
          "pa": 573.0,
          "k_percent": 19.2,
          "bb_percent": 3.7,
          "woba": 0.349,
          "xwoba": 0.342,
          "xba": 0.29,
          "xslg": 0.477,
          "sweet_spot_percent": 31.9,
          "barrel_batted_rate": 10.3,
          "hard_hit_percent": 47.6,
          "exit_velocity_avg": 90.5,
          "launch_angle_avg": 10.0,
          "whiff_percent": 24.6,
          "swing_percent": 56.4
        },
        "components": {
          "expected_quality": 1.1209,
          "regression_edge": -0.2,
          "xwoba_edge": 1.2286,
          "xba_edge": 1.5429,
          "xslg_edge": 1.6286,
          "barrel_edge": 0.8222,
          "hard_hit_edge": 1.4286,
          "exit_velocity_edge": 0.84,
          "sweet_spot_edge": -0.2333,
          "launch_angle_hr_bonus": 0.2
        }
      },
      {
        "position": "LF",
        "player_id": "643289",
        "player_name": "Mauricio Dubón",
        "offense_factor": 0.9974,
        "quality_score": -0.0343,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "643289",
          "espn_rank": null
        },
        "metrics": {
          "pa": 574.0,
          "k_percent": 11.8,
          "bb_percent": 5.7,
          "woba": 0.317,
          "xwoba": 0.304,
          "xba": 0.268,
          "xslg": 0.375,
          "sweet_spot_percent": 36.5,
          "barrel_batted_rate": 4.0,
          "hard_hit_percent": 29.4,
          "exit_velocity_avg": 86.5,
          "launch_angle_avg": 16.1,
          "whiff_percent": 15.3,
          "swing_percent": 53.7
        },
        "components": {
          "expected_quality": 0.0206,
          "regression_edge": -0.3714,
          "xwoba_edge": 0.1429,
          "xba_edge": 0.9143,
          "xslg_edge": 0.1714,
          "barrel_edge": -0.5778,
          "hard_hit_edge": -1.1714,
          "exit_velocity_edge": -0.76,
          "sweet_spot_edge": 0.5333,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "RF",
        "player_id": "657041",
        "player_name": "Lane Thomas",
        "offense_factor": 1.0155,
        "quality_score": 0.2061,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "657041",
          "espn_rank": null
        },
        "metrics": {
          "pa": 369.0,
          "k_percent": 24.9,
          "bb_percent": 11.8,
          "woba": 0.313,
          "xwoba": 0.311,
          "xba": 0.238,
          "xslg": 0.365,
          "sweet_spot_percent": 36.2,
          "barrel_batted_rate": 6.4,
          "hard_hit_percent": 40.9,
          "exit_velocity_avg": 89.3,
          "launch_angle_avg": 17.4,
          "whiff_percent": 22.9,
          "swing_percent": 41.3
        },
        "components": {
          "expected_quality": 0.249,
          "regression_edge": -0.0571,
          "xwoba_edge": 0.3429,
          "xba_edge": 0.0571,
          "xslg_edge": 0.0286,
          "barrel_edge": -0.0444,
          "hard_hit_edge": 0.4714,
          "exit_velocity_edge": 0.36,
          "sweet_spot_edge": 0.4833,
          "launch_angle_hr_bonus": 0.2
        }
      },
      {
        "position": "3B",
        "player_id": "663586",
        "player_name": "Austin Riley",
        "offense_factor": 1.0239,
        "quality_score": 0.3191,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "663586",
          "espn_rank": null
        },
        "metrics": {
          "pa": 589.0,
          "k_percent": 31.9,
          "bb_percent": 7.6,
          "woba": 0.29,
          "xwoba": 0.299,
          "xba": 0.213,
          "xslg": 0.396,
          "sweet_spot_percent": 34.3,
          "barrel_batted_rate": 12.4,
          "hard_hit_percent": 44.3,
          "exit_velocity_avg": 91.3,
          "launch_angle_avg": 18.5,
          "whiff_percent": 31.9,
          "swing_percent": 48.8
        },
        "components": {
          "expected_quality": 0.3291,
          "regression_edge": 0.2571,
          "xwoba_edge": 0.0,
          "xba_edge": -0.6571,
          "xslg_edge": 0.4714,
          "barrel_edge": 1.2889,
          "hard_hit_edge": 0.9571,
          "exit_velocity_edge": 1.16,
          "sweet_spot_edge": 0.1667,
          "launch_angle_hr_bonus": 0.45
        }
      },
      {
        "position": "SS",
        "player_id": "673490",
        "player_name": "Ha-Seong Kim",
        "offense_factor": 0.9432,
        "quality_score": -0.7574,
        "regression_flag": "positive_batter_regression",
        "espn_rank": {
          "available": false,
          "player_id": "673490",
          "espn_rank": null
        },
        "metrics": {
          "pa": 122.0,
          "k_percent": 25.9,
          "bb_percent": 10.9,
          "woba": 0.18,
          "xwoba": 0.222,
          "xba": 0.157,
          "xslg": 0.206,
          "sweet_spot_percent": 21.7,
          "barrel_batted_rate": 2.2,
          "hard_hit_percent": 25.0,
          "exit_velocity_avg": 85.9,
          "launch_angle_avg": 19.9,
          "whiff_percent": 20.2,
          "swing_percent": 42.7
        },
        "components": {
          "expected_quality": -1.7835,
          "regression_edge": 1.2,
          "xwoba_edge": -2.2,
          "xba_edge": -2.2571,
          "xslg_edge": -2.2429,
          "barrel_edge": -0.9778,
          "hard_hit_edge": -1.8,
          "exit_velocity_edge": -1.0,
          "sweet_spot_edge": -1.9333,
          "launch_angle_hr_bonus": 0.0
        }
      }
    ],
    "source": "all_players_stats.csv embedded Savant batter features"
  },
  "away": {
    "applied": true,
    "offense_factor": 1.0622,
    "raw_average_factor": 1.0622,
    "team_espn_average_rank": null,
    "coverage_weight": 1.0,
    "covered_batters": 9,
    "missing_batters": 0,
    "players": [
      {
        "position": "SS",
        "player_id": "605141",
        "player_name": "Mookie Betts",
        "offense_factor": 1.0592,
        "quality_score": 0.7895,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "605141",
          "espn_rank": null
        },
        "metrics": {
          "pa": 475.0,
          "k_percent": 11.0,
          "bb_percent": 8.9,
          "woba": 0.338,
          "xwoba": 0.339,
          "xba": 0.278,
          "xslg": 0.435,
          "sweet_spot_percent": 40.4,
          "barrel_batted_rate": 7.8,
          "hard_hit_percent": 38.0,
          "exit_velocity_avg": 90.2,
          "launch_angle_avg": 17.9,
          "whiff_percent": 12.5,
          "swing_percent": 41.3
        },
        "components": {
          "expected_quality": 0.9134,
          "regression_edge": 0.0286,
          "xwoba_edge": 1.1429,
          "xba_edge": 1.2,
          "xslg_edge": 1.0286,
          "barrel_edge": 0.2667,
          "hard_hit_edge": 0.0571,
          "exit_velocity_edge": 0.72,
          "sweet_spot_edge": 1.1833,
          "launch_angle_hr_bonus": 0.2
        }
      },
      {
        "position": "1B",
        "player_id": "518692",
        "player_name": "Freddie Freeman",
        "offense_factor": 1.0846,
        "quality_score": 1.1277,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "518692",
          "espn_rank": null
        },
        "metrics": {
          "pa": 607.0,
          "k_percent": 17.7,
          "bb_percent": 10.0,
          "woba": 0.348,
          "xwoba": 0.363,
          "xba": 0.29,
          "xslg": 0.463,
          "sweet_spot_percent": 38.7,
          "barrel_batted_rate": 8.1,
          "hard_hit_percent": 41.3,
          "exit_velocity_avg": 89.5,
          "launch_angle_avg": 12.2,
          "whiff_percent": 23.2,
          "swing_percent": 50.1
        },
        "components": {
          "expected_quality": 1.2415,
          "regression_edge": 0.4286,
          "xwoba_edge": 1.8286,
          "xba_edge": 1.5429,
          "xslg_edge": 1.4286,
          "barrel_edge": 0.3333,
          "hard_hit_edge": 0.5286,
          "exit_velocity_edge": 0.44,
          "sweet_spot_edge": 0.9,
          "launch_angle_hr_bonus": 0.2
        }
      },
      {
        "position": "LF",
        "player_id": "606192",
        "player_name": "Teoscar Hernández",
        "offense_factor": 1.0522,
        "quality_score": 0.6961,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "606192",
          "espn_rank": null
        },
        "metrics": {
          "pa": 443.0,
          "k_percent": 27.5,
          "bb_percent": 8.6,
          "woba": 0.332,
          "xwoba": 0.332,
          "xba": 0.256,
          "xslg": 0.437,
          "sweet_spot_percent": 33.5,
          "barrel_batted_rate": 10.7,
          "hard_hit_percent": 44.8,
          "exit_velocity_avg": 90.3,
          "launch_angle_avg": 13.9,
          "whiff_percent": 32.6,
          "swing_percent": 48.0
        },
        "components": {
          "expected_quality": 0.8094,
          "regression_edge": 0.0,
          "xwoba_edge": 0.9429,
          "xba_edge": 0.5714,
          "xslg_edge": 1.0571,
          "barrel_edge": 0.9111,
          "hard_hit_edge": 1.0286,
          "exit_velocity_edge": 0.76,
          "sweet_spot_edge": 0.0333,
          "launch_angle_hr_bonus": 0.2
        }
      },
      {
        "position": "C",
        "player_id": "669257",
        "player_name": "Will Smith",
        "offense_factor": 1.1236,
        "quality_score": 1.6486,
        "regression_flag": "positive_batter_regression",
        "espn_rank": {
          "available": false,
          "player_id": "669257",
          "espn_rank": null
        },
        "metrics": {
          "pa": 242.0,
          "k_percent": 16.3,
          "bb_percent": 12.3,
          "woba": 0.345,
          "xwoba": 0.389,
          "xba": 0.279,
          "xslg": 0.502,
          "sweet_spot_percent": 43.3,
          "barrel_batted_rate": 12.4,
          "hard_hit_percent": 41.2,
          "exit_velocity_avg": 89.1,
          "launch_angle_avg": 20.1,
          "whiff_percent": 16.7,
          "swing_percent": 41.6
        },
        "components": {
          "expected_quality": 1.7123,
          "regression_edge": 1.2571,
          "xwoba_edge": 2.5,
          "xba_edge": 1.2286,
          "xslg_edge": 1.9857,
          "barrel_edge": 1.2889,
          "hard_hit_edge": 0.5143,
          "exit_velocity_edge": 0.28,
          "sweet_spot_edge": 1.6667,
          "launch_angle_hr_bonus": 0.2
        }
      },
      {
        "position": "DH",
        "player_id": "660271",
        "player_name": "Shohei Ohtani",
        "offense_factor": 1.1401,
        "quality_score": 1.8682,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "660271",
          "espn_rank": null
        },
        "metrics": {
          "pa": 571.0,
          "k_percent": 24.6,
          "bb_percent": 13.1,
          "woba": 0.377,
          "xwoba": 0.397,
          "xba": 0.286,
          "xslg": 0.552,
          "sweet_spot_percent": 38.0,
          "barrel_batted_rate": 16.4,
          "hard_hit_percent": 52.1,
          "exit_velocity_avg": 93.3,
          "launch_angle_avg": 12.3,
          "whiff_percent": 31.7,
          "swing_percent": 46.6
        },
        "components": {
          "expected_quality": 2.0793,
          "regression_edge": 0.5714,
          "xwoba_edge": 2.5,
          "xba_edge": 1.4286,
          "xslg_edge": 2.5,
          "barrel_edge": 2.1778,
          "hard_hit_edge": 2.0714,
          "exit_velocity_edge": 1.96,
          "sweet_spot_edge": 0.7833,
          "launch_angle_hr_bonus": 0.2
        }
      },
      {
        "position": "2B",
        "player_id": "500743",
        "player_name": "Miguel Rojas",
        "offense_factor": 1.0168,
        "quality_score": 0.2244,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "500743",
          "espn_rank": null
        },
        "metrics": {
          "pa": 230.0,
          "k_percent": 10.7,
          "bb_percent": 6.3,
          "woba": 0.306,
          "xwoba": 0.309,
          "xba": 0.277,
          "xslg": 0.386,
          "sweet_spot_percent": 36.2,
          "barrel_batted_rate": 4.8,
          "hard_hit_percent": 36.2,
          "exit_velocity_avg": 87.3,
          "launch_angle_avg": 14.6,
          "whiff_percent": 17.0,
          "swing_percent": 48.8
        },
        "components": {
          "expected_quality": 0.2469,
          "regression_edge": 0.0857,
          "xwoba_edge": 0.2857,
          "xba_edge": 1.1714,
          "xslg_edge": 0.3286,
          "barrel_edge": -0.4,
          "hard_hit_edge": -0.2,
          "exit_velocity_edge": -0.44,
          "sweet_spot_edge": 0.4833,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "CF",
        "player_id": "681624",
        "player_name": "Andy Pages",
        "offense_factor": 1.055,
        "quality_score": 0.7337,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "681624",
          "espn_rank": null
        },
        "metrics": {
          "pa": 544.0,
          "k_percent": 19.7,
          "bb_percent": 8.5,
          "woba": 0.352,
          "xwoba": 0.343,
          "xba": 0.274,
          "xslg": 0.442,
          "sweet_spot_percent": 37.4,
          "barrel_batted_rate": 7.9,
          "hard_hit_percent": 42.3,
          "exit_velocity_avg": 88.9,
          "launch_angle_avg": 15.7,
          "whiff_percent": 22.1,
          "swing_percent": 47.2
        },
        "components": {
          "expected_quality": 0.895,
          "regression_edge": -0.2571,
          "xwoba_edge": 1.2571,
          "xba_edge": 1.0857,
          "xslg_edge": 1.1286,
          "barrel_edge": 0.2889,
          "hard_hit_edge": 0.6714,
          "exit_velocity_edge": 0.2,
          "sweet_spot_edge": 0.6833,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "RF",
        "player_id": "663656",
        "player_name": "Kyle Tucker",
        "offense_factor": 1.0358,
        "quality_score": 0.4771,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "663656",
          "espn_rank": null
        },
        "metrics": {
          "pa": 576.0,
          "k_percent": 16.7,
          "bb_percent": 12.4,
          "woba": 0.318,
          "xwoba": 0.331,
          "xba": 0.256,
          "xslg": 0.393,
          "sweet_spot_percent": 34.2,
          "barrel_batted_rate": 6.4,
          "hard_hit_percent": 36.3,
          "exit_velocity_avg": 88.5,
          "launch_angle_avg": 18.1,
          "whiff_percent": 20.8,
          "swing_percent": 48.5
        },
        "components": {
          "expected_quality": 0.4943,
          "regression_edge": 0.3714,
          "xwoba_edge": 0.9143,
          "xba_edge": 0.5714,
          "xslg_edge": 0.4286,
          "barrel_edge": -0.0444,
          "hard_hit_edge": -0.1857,
          "exit_velocity_edge": 0.04,
          "sweet_spot_edge": 0.15,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "3B",
        "player_id": "571771",
        "player_name": "Enrique Hernández",
        "offense_factor": 0.9921,
        "quality_score": -0.1058,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "571771",
          "espn_rank": null
        },
        "metrics": {
          "pa": 80.0,
          "k_percent": 29.2,
          "bb_percent": 6.3,
          "woba": 0.293,
          "xwoba": 0.279,
          "xba": 0.22,
          "xslg": 0.367,
          "sweet_spot_percent": 27.4,
          "barrel_batted_rate": 8.1,
          "hard_hit_percent": 40.3,
          "exit_velocity_avg": 89.0,
          "launch_angle_avg": 10.9,
          "whiff_percent": 25.0,
          "swing_percent": 52.6
        },
        "components": {
          "expected_quality": -0.2084,
          "regression_edge": -0.4,
          "xwoba_edge": -0.5714,
          "xba_edge": -0.4571,
          "xslg_edge": 0.0571,
          "barrel_edge": 0.3333,
          "hard_hit_edge": 0.3857,
          "exit_velocity_edge": 0.24,
          "sweet_spot_edge": -0.9833,
          "launch_angle_hr_bonus": 0.2
        }
      }
    ],
    "source": "all_players_stats.csv embedded Savant batter features"
  },
  "reason": "Baseball Savant hitter xwOBA, xBA, xSLG, exit velocity, launch angle, barrel, hard-hit, sweet-spot, whiff, K%, and BB% adjusted offense; ESPN rank is attached for reporting only"
}

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 LADYoshinobu YamamotoTrue-0.634910.94601.03600.93400.9344neutral0.26600.242025.705.9027.906.5035.50
Home ATLChris SaleTrue-0.713910.93931.08000.91200.9277neutral0.26700.259030.904.8030.406.2035.10

Pitch Movement And Arsenal

TeamPitcherMovement AvailablePrimary PitchPitchesVeloSpinAxisHBIVBDropRel XRel ZExtensionArm AngleMovement Score
Away LADYoshinobu YamamotoTrueNone9891.062177000000000.0672
Home ATLChris SaleTrueNone10288.69235700000000-0.0655
Run FactorValue
away_runs_vs_home_pitcher0.9639
home_runs_vs_away_pitcher0.9677
home_pitcher_starter_only_factor0.9393
away_pitcher_starter_only_factor0.9460
home_pitcher_workload_share0.7037
away_pitcher_workload_share0.7407
home_pitcher_quality_edge0.0321
Raw Savant Pitcher Quality JSON
{
  "applied": true,
  "home_pitcher": {
    "available": true,
    "pitcher_id": "519242",
    "player_name": "",
    "source": "all_players_stats.csv embedded Savant pitcher features",
    "source_url": null,
    "metrics": {
      "pa": 601.0,
      "k_percent": 30.9,
      "bb_percent": 4.8,
      "woba": 0.259,
      "xwoba": 0.267,
      "sweet_spot_percent": 34.3,
      "barrel_batted_rate": 6.2,
      "hard_hit_percent": 35.1,
      "avg_best_speed": 76.8972,
      "avg_hyper_speed": 93.4361,
      "whiff_percent": 30.4,
      "swing_percent": 50.7
    },
    "league_medians": {
      "pa": 134.0,
      "k_percent": 22.1,
      "bb_percent": 9.2,
      "woba": 0.315,
      "xwoba": 0.312,
      "sweet_spot_percent": 33.3,
      "barrel_batted_rate": 7.2,
      "hard_hit_percent": 37.9,
      "avg_best_speed": 77.6432,
      "avg_hyper_speed": 93.9005,
      "whiff_percent": 25.2,
      "swing_percent": 47.4
    },
    "components": {
      "contact_quality": 0.8395,
      "command_and_miss": 1.0457,
      "regression_edge": -0.2286,
      "xwoba_edge": 1.2857,
      "barrel_edge": 0.2222,
      "hard_hit_edge": 0.4,
      "whiff_edge": 0.7429,
      "bb_edge": 1.1,
      "pitch_design_score": -0.0655
    },
    "pitch_movement_profile": {
      "available": true,
      "pitcher_id": "519242",
      "player_name": null,
      "source": "all_players_stats.csv embedded Savant pitcher movement features",
      "total_pitches": 102,
      "primary_pitch": {
        "pitch_type": null,
        "pitch_name": null,
        "pitches": 102,
        "pitch_usage": 0.0,
        "release_speed": 88.69431015805822,
        "release_spin_rate": 2357.280511373259,
        "spin_axis": null,
        "horizontal_break_inches": 0.0,
        "induced_vertical_break_inches": 0.0,
        "vertical_break_with_gravity_inches": null,
        "release_pos_x": null,
        "release_pos_z": null,
        "release_extension": 0.0,
        "arm_angle": 0.0,
        "whiff_percent": 0.0,
        "xwoba": 0.0,
        "hard_hit_percent": 0.0
      },
      "pitch_mix": [
        {
          "pitch_type": null,
          "pitch_name": null,
          "pitches": 102,
          "pitch_usage": 0.0,
          "release_speed": 88.69431015805822,
          "release_spin_rate": 2357.280511373259,
          "spin_axis": null,
          "horizontal_break_inches": 0.0,
          "induced_vertical_break_inches": 0.0,
          "vertical_break_with_gravity_inches": null,
          "release_pos_x": null,
          "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.6943,
        "release_spin_rate": 2357.2805,
        "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.0655,
        "horizontal_break_edge": 0.0,
        "induced_vertical_break_edge": 0.0,
        "extension_edge": 0.0,
        "velocity_edge": -0.4679,
        "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.7139,
    "sample_weight": 1.0,
    "run_prevention_factor": 0.9393,
    "strikeout_factor": 1.08,
    "walk_factor": 0.912,
    "homer_factor": 0.9277,
    "woba_minus_xwoba": -0.008,
    "regression_flag": "neutral",
    "espn_rank": {
      "available": false,
      "player_id": "519242",
      "espn_rank": null
    }
  },
  "away_pitcher": {
    "available": true,
    "pitcher_id": "808967",
    "player_name": "",
    "source": "all_players_stats.csv embedded Savant pitcher features",
    "source_url": null,
    "metrics": {
      "pa": 656.0,
      "k_percent": 25.7,
      "bb_percent": 5.9,
      "woba": 0.242,
      "xwoba": 0.266,
      "sweet_spot_percent": 29.1,
      "barrel_batted_rate": 6.5,
      "hard_hit_percent": 35.5,
      "avg_best_speed": 76.0498,
      "avg_hyper_speed": 93.7865,
      "whiff_percent": 27.9,
      "swing_percent": 49.6
    },
    "league_medians": {
      "pa": 134.0,
      "k_percent": 22.1,
      "bb_percent": 9.2,
      "woba": 0.315,
      "xwoba": 0.312,
      "sweet_spot_percent": 33.3,
      "barrel_batted_rate": 7.2,
      "hard_hit_percent": 37.9,
      "avg_best_speed": 77.6432,
      "avg_hyper_speed": 93.9005,
      "whiff_percent": 25.2,
      "swing_percent": 47.4
    },
    "components": {
      "contact_quality": 0.9999,
      "command_and_miss": 0.5314,
      "regression_edge": -0.6857,
      "xwoba_edge": 1.3143,
      "barrel_edge": 0.1556,
      "hard_hit_edge": 0.3429,
      "whiff_edge": 0.3857,
      "bb_edge": 0.825,
      "pitch_design_score": 0.0672
    },
    "pitch_movement_profile": {
      "available": true,
      "pitcher_id": "808967",
      "player_name": null,
      "source": "all_players_stats.csv embedded Savant pitcher movement features",
      "total_pitches": 98,
      "primary_pitch": {
        "pitch_type": null,
        "pitch_name": null,
        "pitches": 98,
        "pitch_usage": 0.0,
        "release_speed": 91.06397663750431,
        "release_spin_rate": 2177.495703419384,
        "spin_axis": null,
        "horizontal_break_inches": 0.0,
        "induced_vertical_break_inches": 0.0,
        "vertical_break_with_gravity_inches": null,
        "release_pos_x": null,
        "release_pos_z": null,
        "release_extension": 0.0,
        "arm_angle": 0.0,
        "whiff_percent": 0.0,
        "xwoba": 0.0,
        "hard_hit_percent": 0.0
      },
      "pitch_mix": [
        {
          "pitch_type": null,
          "pitch_name": null,
          "pitches": 98,
          "pitch_usage": 0.0,
          "release_speed": 91.06397663750431,
          "release_spin_rate": 2177.495703419384,
          "spin_axis": null,
          "horizontal_break_inches": 0.0,
          "induced_vertical_break_inches": 0.0,
          "vertical_break_with_gravity_inches": null,
          "release_pos_x": null,
          "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.064,
        "release_spin_rate": 2177.4957,
        "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.0672,
        "horizontal_break_edge": 0.0,
        "induced_vertical_break_edge": 0.0,
        "extension_edge": 0.0,
        "velocity_edge": 0.4799,
        "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.6349,
    "sample_weight": 1.0,
    "run_prevention_factor": 0.946,
    "strikeout_factor": 1.036,
    "walk_factor": 0.934,
    "homer_factor": 0.9344,
    "woba_minus_xwoba": -0.024,
    "regression_flag": "neutral",
    "espn_rank": {
      "available": false,
      "player_id": "808967",
      "espn_rank": null
    }
  },
  "run_factors": {
    "away_runs_vs_home_pitcher": 0.9639,
    "home_runs_vs_away_pitcher": 0.9677,
    "home_pitcher_starter_only_factor": 0.9393,
    "away_pitcher_starter_only_factor": 0.946,
    "home_pitcher_workload_share": 0.7037,
    "away_pitcher_workload_share": 0.7407,
    "home_pitcher_quality_edge": 0.0321
  },
  "score_before": {
    "away_runs": 4.0,
    "home_runs": 2.0
  },
  "score_after": {
    "away_runs": 3.8557,
    "home_runs": 1.9355,
    "home_win_probability": 0.3374
  },
  "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 LAD8-20.80052.20283Waveragestrong
Home ATL5-50.50043.9011Laverageaverage

Season Run Differential

TeamRecordWin %Run DiffRD/GameAvailable
Away LAD100-620.6172011.241True
Home ATL94-680.5801160.716True
Signal---0.525-0.610applied=True

Recent Head-to-Head

DateMatchupScoreWinnerMarginType
2026-08-27LAD @ ATL0 - 1ATL1close
2026-08-26LAD @ ATL5 - 6ATL1close
2026-08-25LAD @ ATL3 - 4ATL1close
2026-05-10ATL @ LAD7 - 2ATL5blowout
2026-05-09ATL @ LAD7 - 2ATL5blowout

Player/Game Reconciliation

LayerABHRHRRBIBBSO
Game target LAD--4----
Game target ATL--3----
Player finalized LAD41941317
Player finalized ATL35631327
Player model fractional LAD32.267.284.391.354.042.748.33
Player model fractional ATL33.736.503.981.213.982.758.48
Simulation box LAD41941317
Simulation box ATL35631327

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 LADStarterYoshinobu Yamamoto6.1014312.570.90True
Away LADMiddle RelieverBrock Stewart110103.451.09True
Away LADMiddle RelieverEvan Phillips0.2011103.541.01True
Away LADMiddle Reliever (High Leverage)Alex Vesia202111.710.69True
Home ATLStarterChris Sale625612.920.93True
Home ATLMiddle RelieverDylan Dodd100103.841.00True
Home ATLMiddle Reliever (High Leverage)Robert Suarez100103.321.23True
Home ATLMiddle Reliever (High Leverage)Dylan Lee202105.181.36True
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
awayLADpitcherStarterYoshinobu Yamamotobetter50532predicted_H-3.0000deboostbetter
awayLADbatter2BMiguel Rojasworse114738predicted_AB2.5000boostbetter
homeATLpitcherStarterChris Saleworse41313predicted_H2.0000boostworse
homeATLbatter3BAustin Rileyworse123948predicted_BB1.6870boostbetter
awayLADbatter3BEnrique Hernándezbetter119283predicted_AB1.5000boostbetter
homeATLbatterCFMichael Harris IIworse12210111predicted_AB-1.4400deboostworse
homeATLbatter1BMatt Olsonbetter107382predicted_RBI1.3600boostbetter
awayLADpitcherMiddle Reliever (High Leverage)Alex Vesiaworse33012predicted_IP1.3333boostbetter
homeATLpitcherMiddle Reliever (High Leverage)Dylan Leebetter31230predicted_IP1.3333boostbetter
awayLADbatter1BFreddie Freemanworse1129110predicted_SO1.2530boostworse
homeATLbatterDHRonald Acuña Jr.worse12210111predicted_AB1.1890boostbetter
awayLADbatterDHShohei Ohtaniworse1221039predicted_AB1.1320boostbetter
awayLADbatterCWill Smithworse112938predicted_AB1.1000boostbetter
awayLADbatterSSMookie Bettsworse114756predicted_AB1.0980boostbetter
homeATLbatterCDrake Baldwinworse112938predicted_H-1.0600deboostworse
awayLADpitcherMiddle RelieverBrock Stewartworse42213predicted_BB-1.0000deboostbetter
awayLADpitcherMiddle RelieverEvan Phillipsworse43113predicted_ER1.0000boostworse
homeATLbatterRFLane Thomasworse104627predicted_SF1.0000boosthigher
homeATLpitcherMiddle RelieverDylan Doddworse10101predicted_SO-1.0000deboostworse
homeATLpitcherMiddle Reliever (High Leverage)Robert Suarezworse21102predicted_H1.0000boostworse
homeATLbatterLFMauricio Dubónworse113847predicted_H0.9900boostbetter
homeATLbatterSSHa-Seong Kimbetter108273predicted_HBP0.9860boostbetter
awayLADbatterCFAndy Pagesworse124839predicted_HBP0.9270boostbetter
awayLADbatterRFKyle Tuckerworse114756predicted_2B0.8490boostbetter
awayLADbatterLFTeoscar Hernándezdeboosted104655predicted_AB0.7800boostbetter
homeATLbatter2BOzzie Albiesworse113829predicted_RBI-0.6800deboostworse

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

Away Team: LAD

Away Pitcher Deep Analysis

FieldValue
PitcherYoshinobu Yamamoto
RoleStarter
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score0.6349
ESPN Rank-
Movement AvailableTrue
Primary Pitch-
Movement Score0.0672
Avg Velo91.0640
Avg Spin2177.4957
HB Inches0
IVB Inches0
Release Extension0
Pre IP6.1000
Pre ER1
Pre H3
Pre BB1
Pre SO4
Season ERA2.5297
Season WHIP0.8703
Role Avg IP6.6070
Recent Avg IP6.6670
Last Start IP6
Team Form Snapshot
{
  "team": {
    "team": "LAD",
    "games": 162,
    "wins": 100,
    "losses": 62,
    "win_pct": 0.6173,
    "runs_scored": 801.0,
    "runs_allowed": 600.0,
    "run_differential": 201.0,
    "run_differential_per_game": 1.2407,
    "avg_runs_scored": 4.9444,
    "avg_runs_allowed": 3.7037,
    "offense_index": 1.1012,
    "defense_index": 1.2123,
    "current_streak": "W3",
    "recent": {
      "games": 10,
      "wins": 8,
      "losses": 2,
      "win_pct": 0.8,
      "avg_runs_scored": 5.0,
      "avg_runs_allowed": 2.2,
      "run_differential": 28.0
    },
    "available": true,
    "quality_score": 0.3567
  },
  "opponent": {
    "team": "ATL",
    "games": 162,
    "wins": 94,
    "losses": 68,
    "win_pct": 0.5802,
    "runs_scored": 742.0,
    "runs_allowed": 626.0,
    "run_differential": 116.0,
    "run_differential_per_game": 0.716,
    "avg_runs_scored": 4.5802,
    "avg_runs_allowed": 3.8642,
    "offense_index": 1.0201,
    "defense_index": 1.1619,
    "current_streak": "L1",
    "recent": {
      "games": 10,
      "wins": 5,
      "losses": 5,
      "win_pct": 0.5,
      "avg_runs_scored": 4.0,
      "avg_runs_allowed": 3.9,
      "run_differential": 1.0
    },
    "available": true,
    "quality_score": 0.1559
  },
  "method": "team_form_snapshot",
  "role": "pitcher",
  "edges": {
    "quality_edge": 0.2008,
    "offense_edge": 0.1012,
    "opponent_offense_edge": 0.0201,
    "defense_strength": 0.2123,
    "opponent_defense_weakness": -0.1619,
    "recent_win_pct_edge": 0.3
  },
  "player_factors": {
    "ip": 1.0136,
    "run_prevention": 0.9719,
    "strikeout": 1.0044
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "808967",
    "profile": {
      "available": true,
      "pitcher_id": "808967",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 656.0,
        "k_percent": 25.7,
        "bb_percent": 5.9,
        "woba": 0.242,
        "xwoba": 0.266,
        "sweet_spot_percent": 29.1,
        "barrel_batted_rate": 6.5,
        "hard_hit_percent": 35.5,
        "avg_best_speed": 76.0498,
        "avg_hyper_speed": 93.7865,
        "whiff_percent": 27.9,
        "swing_percent": 49.6
      },
      "league_medians": {
        "pa": 134.0,
        "k_percent": 22.1,
        "bb_percent": 9.2,
        "woba": 0.315,
        "xwoba": 0.312,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6432,
        "avg_hyper_speed": 93.9005,
        "whiff_percent": 25.2,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": 0.9999,
        "command_and_miss": 0.5314,
        "regression_edge": -0.6857,
        "xwoba_edge": 1.3143,
        "barrel_edge": 0.1556,
        "hard_hit_edge": 0.3429,
        "whiff_edge": 0.3857,
        "bb_edge": 0.825,
        "pitch_design_score": 0.0672
      },
      "quality_score": 0.6349,
      "sample_weight": 1.0,
      "run_prevention_factor": 0.946,
      "strikeout_factor": 1.036,
      "walk_factor": 0.934,
      "homer_factor": 0.9344,
      "woba_minus_xwoba": -0.024,
      "regression_flag": "neutral",
      "espn_rank": {
        "available": false,
        "player_id": "808967",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 2.0,
        "factor": 0.946,
        "adjusted": 2
      },
      "predicted_H": {
        "original": 4.0,
        "factor": 0.946,
        "adjusted": 4
      },
      "predicted_BB": {
        "original": 1.0,
        "factor": 0.934,
        "adjusted": 1
      },
      "predicted_HR": {
        "original": 1.0,
        "factor": 0.9344,
        "adjusted": 1
      },
      "predicted_SO": {
        "original": 7.0,
        "factor": 1.036,
        "adjusted": 7
      }
    }
  },
  "club_form": "game.<side>_team.predicted_performance.team_form"
}
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": 65.1,
    "ER": 15,
    "H": 39,
    "BB": 17,
    "SO": 69,
    "HR": 7,
    "ERA": 2.0663265306122445,
    "WHIP": 0.857142857142857,
    "K9": 9.505102040816325,
    "HR9": 0.9642857142857142,
    "games_pitched": 10,
    "quality_starts": 8,
    "dominant_form": true,
    "struggling_form": false
  },
  "fielding": {
    "errors": 1,
    "assists": 0,
    "games_fielded": 10,
    "error_prone": false
  },
  "games_count": 10,
  "latest_game_date": "2026-09-23T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": true,
  "pitcher_id": "808967",
  "player_name": null,
  "source": "all_players_stats.csv embedded Savant pitcher movement features",
  "total_pitches": 98,
  "primary_pitch": {
    "pitch_type": null,
    "pitch_name": null,
    "pitches": 98,
    "pitch_usage": 0.0,
    "release_speed": 91.06397663750431,
    "release_spin_rate": 2177.495703419384,
    "spin_axis": null,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": null,
    "release_pos_x": null,
    "release_pos_z": null,
    "release_extension": 0.0,
    "arm_angle": 0.0,
    "whiff_percent": 0.0,
    "xwoba": 0.0,
    "hard_hit_percent": 0.0
  },
  "pitch_mix": [
    {
      "pitch_type": null,
      "pitch_name": null,
      "pitches": 98,
      "pitch_usage": 0.0,
      "release_speed": 91.06397663750431,
      "release_spin_rate": 2177.495703419384,
      "spin_axis": null,
      "horizontal_break_inches": 0.0,
      "induced_vertical_break_inches": 0.0,
      "vertical_break_with_gravity_inches": null,
      "release_pos_x": null,
      "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.064,
    "release_spin_rate": 2177.4957,
    "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.0672,
    "horizontal_break_edge": 0.0,
    "induced_vertical_break_edge": 0.0,
    "extension_edge": 0.0,
    "velocity_edge": 0.4799,
    "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": 28.0,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.8485,
    "prior_weight": 0.1515
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "808967",
  "report_date": "20261006",
  "season_year": 2026,
  "rows_used": 28,
  "reference_playing_time": 6.667,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 33.1,
        "ER": 8.0,
        "R": 10.0,
        "H": 18.0,
        "BB": 7.0,
        "SO": 37.0,
        "HR": 5.0,
        "BF": 125.0,
        "Pitches": 467.0
      },
      "per_game": {
        "IP": 6.2,
        "ER": 1.6,
        "R": 2.0,
        "H": 3.6,
        "BB": 1.4,
        "SO": 7.4,
        "HR": 1.0,
        "BF": 25.0,
        "Pitches": 93.4
      },
      "rates": {
        "ERA": 2.16,
        "WHIP": 0.75,
        "ER_per_IP": 0.24,
        "H_per_IP": 0.54,
        "BB_per_IP": 0.21,
        "SO_per_IP": 1.11,
        "HR_per_IP": 0.15
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 65.1,
        "ER": 15.0,
        "R": 17.0,
        "H": 39.0,
        "BB": 17.0,
        "SO": 69.0,
        "HR": 7.0,
        "BF": 253.0,
        "Pitches": 974.0
      },
      "per_game": {
        "IP": 6.2,
        "ER": 1.5,
        "R": 1.7,
        "H": 3.9,
        "BB": 1.7,
        "SO": 6.9,
        "HR": 0.7,
        "BF": 25.3,
        "Pitches": 97.4
      },
      "rates": {
        "ERA": 2.0663,
        "WHIP": 0.8571,
        "ER_per_IP": 0.22959,
        "H_per_IP": 0.59694,
        "BB_per_IP": 0.2602,
        "SO_per_IP": 1.05612,
        "HR_per_IP": 0.10714
      }
    },
    "season": {
      "games": 28,
      "totals": {
        "IP": 185.0,
        "ER": 52.0,
        "R": 55.0,
        "H": 119.0,
        "BB": 42.0,
        "SO": 182.0,
        "HR": 20.0,
        "BF": 708.0,
        "Pitches": 2734.0
      },
      "per_game": {
        "IP": 6.2,
        "ER": 1.8571,
        "R": 1.9643,
        "H": 4.25,
        "BB": 1.5,
        "SO": 6.5,
        "HR": 0.7143,
        "BF": 25.2857,
        "Pitches": 97.6429
      },
      "rates": {
        "ERA": 2.5297,
        "WHIP": 0.8703,
        "ER_per_IP": 0.28108,
        "H_per_IP": 0.64324,
        "BB_per_IP": 0.22703,
        "SO_per_IP": 0.98378,
        "HR_per_IP": 0.10811
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 6.2,
    "predicted_ER": 1.902,
    "predicted_H": 4.278,
    "predicted_BB": 1.691,
    "predicted_SO": 6.972,
    "predicted_HR": 0.866,
    "predicted_ERA": 2.5672,
    "predicted_WHIP": 0.8954
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.414,
  "form_weight": 0.586,
  "form_reliability": 0.8485,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 28.0,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.8485,
    "prior_weight": 0.1515
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 6.2,
      "form": 6.2,
      "final": 6.2,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 3.0,
      "form": 1.902,
      "final": 2.3566,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 6.0,
      "form": 4.278,
      "final": 4.9909,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 2.0,
      "form": 1.691,
      "final": 1.8189,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 7.0,
      "form": 6.972,
      "final": 6.9836,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 0.0,
      "form": 0.866,
      "final": 0.5075,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 2.5672,
      "final": 2.5672,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 0.8954,
      "final": 0.8954,
      "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
PitcherBrock Stewart
RoleMiddle Reliever
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score0.4068
ESPN Rank-
Movement AvailableFalse
Primary Pitch-
Movement Score-
Avg Velo-
Avg Spin-
HB Inches-
IVB Inches-
Release Extension-
Pre IP1
Pre ER1
Pre H1
Pre BB0
Pre SO0
Season ERA2.2500
Season WHIP0.9286
Role Avg IP0.9640
Recent Avg IP0.8670
Last Start IP0
Team Form Snapshot
{
  "team": {
    "team": "LAD",
    "games": 162,
    "wins": 100,
    "losses": 62,
    "win_pct": 0.6173,
    "runs_scored": 801.0,
    "runs_allowed": 600.0,
    "run_differential": 201.0,
    "run_differential_per_game": 1.2407,
    "avg_runs_scored": 4.9444,
    "avg_runs_allowed": 3.7037,
    "offense_index": 1.1012,
    "defense_index": 1.2123,
    "current_streak": "W3",
    "recent": {
      "games": 10,
      "wins": 8,
      "losses": 2,
      "win_pct": 0.8,
      "avg_runs_scored": 5.0,
      "avg_runs_allowed": 2.2,
      "run_differential": 28.0
    },
    "available": true,
    "quality_score": 0.3567
  },
  "opponent": {
    "team": "ATL",
    "games": 162,
    "wins": 94,
    "losses": 68,
    "win_pct": 0.5802,
    "runs_scored": 742.0,
    "runs_allowed": 626.0,
    "run_differential": 116.0,
    "run_differential_per_game": 0.716,
    "avg_runs_scored": 4.5802,
    "avg_runs_allowed": 3.8642,
    "offense_index": 1.0201,
    "defense_index": 1.1619,
    "current_streak": "L1",
    "recent": {
      "games": 10,
      "wins": 5,
      "losses": 5,
      "win_pct": 0.5,
      "avg_runs_scored": 4.0,
      "avg_runs_allowed": 3.9,
      "run_differential": 1.0
    },
    "available": true,
    "quality_score": 0.1559
  },
  "method": "team_form_snapshot",
  "role": "pitcher",
  "edges": {
    "quality_edge": 0.2008,
    "offense_edge": 0.1012,
    "opponent_offense_edge": 0.0201,
    "defense_strength": 0.2123,
    "opponent_defense_weakness": -0.1619,
    "recent_win_pct_edge": 0.3
  },
  "player_factors": {
    "ip": 1.0136,
    "run_prevention": 0.9719,
    "strikeout": 1.0044
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "592779",
    "profile": {
      "available": true,
      "pitcher_id": "592779",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 86.0,
        "k_percent": 24.3,
        "bb_percent": 9.7,
        "woba": 0.258,
        "xwoba": 0.248,
        "sweet_spot_percent": 23.5,
        "barrel_batted_rate": 4.4,
        "hard_hit_percent": 27.9,
        "avg_best_speed": 65.8762,
        "avg_hyper_speed": 92.3881,
        "whiff_percent": 28.2,
        "swing_percent": 49.2
      },
      "league_medians": {
        "pa": 134.0,
        "k_percent": 22.1,
        "bb_percent": 9.2,
        "woba": 0.315,
        "xwoba": 0.312,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6432,
        "avg_hyper_speed": 93.9005,
        "whiff_percent": 25.2,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": 1.4394,
        "command_and_miss": 0.2664,
        "regression_edge": 0.2857,
        "xwoba_edge": 1.8286,
        "barrel_edge": 0.6222,
        "hard_hit_edge": 1.4286,
        "whiff_edge": 0.4286,
        "bb_edge": -0.125,
        "pitch_design_score": 0.0
      },
      "quality_score": 0.4068,
      "sample_weight": 0.45,
      "run_prevention_factor": 0.9654,
      "strikeout_factor": 1.0134,
      "walk_factor": 1.0045,
      "homer_factor": 0.9272,
      "woba_minus_xwoba": 0.01,
      "regression_flag": "neutral",
      "espn_rank": {
        "available": false,
        "player_id": "592779",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 0.0,
        "factor": 0.9844,
        "adjusted": 0
      },
      "predicted_H": {
        "original": 1.0,
        "factor": 0.9844,
        "adjusted": 1
      },
      "predicted_BB": {
        "original": 0.0,
        "factor": 1.002,
        "adjusted": 0
      },
      "predicted_HR": {
        "original": 0.0,
        "factor": 0.9672,
        "adjusted": 0
      },
      "predicted_SO": {
        "original": 2.0,
        "factor": 1.006,
        "adjusted": 2
      }
    }
  },
  "club_form": "game.<side>_team.predicted_performance.team_form"
}
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": 1,
    "H": 4,
    "BB": 2,
    "SO": 7,
    "HR": 0,
    "ERA": 1.125,
    "WHIP": 0.75,
    "K9": 7.875,
    "HR9": 0.0,
    "games_pitched": 9,
    "quality_starts": 0,
    "dominant_form": true,
    "struggling_form": false
  },
  "fielding": {
    "errors": 0,
    "assists": 0,
    "games_fielded": 10,
    "error_prone": false
  },
  "games_count": 10,
  "latest_game_date": "2026-10-04T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": false,
  "pitcher_id": "592779",
  "reason": "pitcher_movement_profile_has_no_pitches"
}
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.782,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.5363,
    "prior_weight": 0.4637
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "592779",
  "report_date": "20261006",
  "season_year": 2026,
  "rows_used": 29,
  "reference_playing_time": 1.0,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 4.1,
        "ER": 1.0,
        "R": 1.0,
        "H": 2.0,
        "BB": 1.0,
        "SO": 5.0,
        "HR": 0.0,
        "BF": 16.0,
        "Pitches": 57.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.2,
        "R": 0.2,
        "H": 0.4,
        "BB": 0.2,
        "SO": 1.0,
        "HR": 0.0,
        "BF": 3.2,
        "Pitches": 11.4
      },
      "rates": {
        "ERA": 2.0769,
        "WHIP": 0.6923,
        "ER_per_IP": 0.23077,
        "H_per_IP": 0.46154,
        "BB_per_IP": 0.23077,
        "SO_per_IP": 1.15385,
        "HR_per_IP": 0.0
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 9.0,
        "ER": 3.0,
        "R": 4.0,
        "H": 7.0,
        "BB": 2.0,
        "SO": 8.0,
        "HR": 0.0,
        "BF": 34.0,
        "Pitches": 125.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.3,
        "R": 0.4,
        "H": 0.7,
        "BB": 0.2,
        "SO": 0.8,
        "HR": 0.0,
        "BF": 3.4,
        "Pitches": 12.5
      },
      "rates": {
        "ERA": 3.0,
        "WHIP": 1.0,
        "ER_per_IP": 0.33333,
        "H_per_IP": 0.77778,
        "BB_per_IP": 0.22222,
        "SO_per_IP": 0.88889,
        "HR_per_IP": 0.0
      }
    },
    "season": {
      "games": 29,
      "totals": {
        "IP": 28.0,
        "ER": 7.0,
        "R": 9.0,
        "H": 16.0,
        "BB": 10.0,
        "SO": 26.0,
        "HR": 2.0,
        "BF": 106.0,
        "Pitches": 393.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.2414,
        "R": 0.3103,
        "H": 0.5517,
        "BB": 0.3448,
        "SO": 0.8966,
        "HR": 0.069,
        "BF": 3.6552,
        "Pitches": 13.5517
      },
      "rates": {
        "ERA": 2.25,
        "WHIP": 0.9286,
        "ER_per_IP": 0.25,
        "H_per_IP": 0.57143,
        "BB_per_IP": 0.35714,
        "SO_per_IP": 0.92857,
        "HR_per_IP": 0.07143
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 1.0,
    "predicted_ER": 0.383,
    "predicted_H": 0.775,
    "predicted_BB": 0.312,
    "predicted_SO": 0.978,
    "predicted_HR": 0.076,
    "predicted_ERA": 3.4466,
    "predicted_WHIP": 1.0873
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.5459,
  "form_weight": 0.4541,
  "form_reliability": 0.5363,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 5.782,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.5363,
    "prior_weight": 0.4637
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 1.0,
      "form": 1.0,
      "final": 1.0,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 0.0,
      "form": 0.383,
      "final": 0.1739,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 0.0,
      "form": 0.775,
      "final": 0.3519,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 1.0,
      "form": 0.312,
      "final": 0.6876,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 1.0,
      "form": 0.978,
      "final": 0.99,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 0.0,
      "form": 0.076,
      "final": 0.0345,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 3.4466,
      "final": 3.4466,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 1.0873,
      "final": 1.0873,
      "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
PitcherEvan Phillips
RoleMiddle Reliever
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score-0.0391
ESPN Rank-
Movement AvailableFalse
Primary Pitch-
Movement Score-
Avg Velo-
Avg Spin-
HB Inches-
IVB Inches-
Release Extension-
Pre IP0.2000
Pre ER1
Pre H1
Pre BB0
Pre SO1
Season ERA3.3750
Season WHIP1.0875
Role Avg IP0.8080
Recent Avg IP0.7330
Last Start IP0
Team Form Snapshot
{
  "team": {
    "team": "LAD",
    "games": 162,
    "wins": 100,
    "losses": 62,
    "win_pct": 0.6173,
    "runs_scored": 801.0,
    "runs_allowed": 600.0,
    "run_differential": 201.0,
    "run_differential_per_game": 1.2407,
    "avg_runs_scored": 4.9444,
    "avg_runs_allowed": 3.7037,
    "offense_index": 1.1012,
    "defense_index": 1.2123,
    "current_streak": "W3",
    "recent": {
      "games": 10,
      "wins": 8,
      "losses": 2,
      "win_pct": 0.8,
      "avg_runs_scored": 5.0,
      "avg_runs_allowed": 2.2,
      "run_differential": 28.0
    },
    "available": true,
    "quality_score": 0.3567
  },
  "opponent": {
    "team": "ATL",
    "games": 162,
    "wins": 94,
    "losses": 68,
    "win_pct": 0.5802,
    "runs_scored": 742.0,
    "runs_allowed": 626.0,
    "run_differential": 116.0,
    "run_differential_per_game": 0.716,
    "avg_runs_scored": 4.5802,
    "avg_runs_allowed": 3.8642,
    "offense_index": 1.0201,
    "defense_index": 1.1619,
    "current_streak": "L1",
    "recent": {
      "games": 10,
      "wins": 5,
      "losses": 5,
      "win_pct": 0.5,
      "avg_runs_scored": 4.0,
      "avg_runs_allowed": 3.9,
      "run_differential": 1.0
    },
    "available": true,
    "quality_score": 0.1559
  },
  "method": "team_form_snapshot",
  "role": "pitcher",
  "edges": {
    "quality_edge": 0.2008,
    "offense_edge": 0.1012,
    "opponent_offense_edge": 0.0201,
    "defense_strength": 0.2123,
    "opponent_defense_weakness": -0.1619,
    "recent_win_pct_edge": 0.3
  },
  "player_factors": {
    "ip": 1.0136,
    "run_prevention": 0.9719,
    "strikeout": 1.0044
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "623465",
    "profile": {
      "available": true,
      "pitcher_id": "623465",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 90.0,
        "k_percent": 31.1,
        "bb_percent": 5.7,
        "woba": 0.292,
        "xwoba": 0.321,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 16.7,
        "hard_hit_percent": 39.4,
        "avg_best_speed": 80.1336,
        "avg_hyper_speed": 95.3489,
        "whiff_percent": 26.7,
        "swing_percent": 48.7
      },
      "league_medians": {
        "pa": 134.0,
        "k_percent": 22.1,
        "bb_percent": 9.2,
        "woba": 0.315,
        "xwoba": 0.312,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6432,
        "avg_hyper_speed": 93.9005,
        "whiff_percent": 25.2,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": -0.3919,
        "command_and_miss": 0.8286,
        "regression_edge": -0.8286,
        "xwoba_edge": -0.2571,
        "barrel_edge": -2.1111,
        "hard_hit_edge": -0.2143,
        "whiff_edge": 0.2143,
        "bb_edge": 0.875,
        "pitch_design_score": 0.0
      },
      "quality_score": -0.0391,
      "sample_weight": 0.45,
      "run_prevention_factor": 1.0033,
      "strikeout_factor": 1.027,
      "walk_factor": 0.9685,
      "homer_factor": 1.0833,
      "woba_minus_xwoba": -0.029,
      "regression_flag": "neutral",
      "espn_rank": {
        "available": false,
        "player_id": "623465",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 0.0,
        "factor": 1.0015,
        "adjusted": 0
      },
      "predicted_H": {
        "original": 0.0,
        "factor": 1.0015,
        "adjusted": 0
      },
      "predicted_BB": {
        "original": 0.0,
        "factor": 0.9858,
        "adjusted": 0
      },
      "predicted_HR": {
        "original": 0.0,
        "factor": 1.0375,
        "adjusted": 0
      },
      "predicted_SO": {
        "original": 2.0,
        "factor": 1.0121,
        "adjusted": 2
      }
    }
  },
  "club_form": "game.<side>_team.predicted_performance.team_form"
}
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": 2,
    "H": 3,
    "BB": 2,
    "SO": 11,
    "HR": 1,
    "ERA": 2.25,
    "WHIP": 0.625,
    "K9": 12.375,
    "HR9": 1.125,
    "games_pitched": 10,
    "quality_starts": 0,
    "dominant_form": false,
    "struggling_form": false
  },
  "fielding": {
    "errors": 0,
    "assists": 0,
    "games_fielded": 10,
    "error_prone": false
  },
  "games_count": 10,
  "latest_game_date": "2026-10-04T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": false,
  "pitcher_id": "623465",
  "reason": "pitcher_movement_profile_has_no_pitches"
}
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.507,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.5241,
    "prior_weight": 0.4759
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "623465",
  "report_date": "20261006",
  "season_year": 2026,
  "rows_used": 33,
  "reference_playing_time": 0.667,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 3.2,
        "ER": 1.0,
        "R": 1.0,
        "H": 1.0,
        "BB": 1.0,
        "SO": 5.0,
        "HR": 0.0,
        "BF": 13.0,
        "Pitches": 56.0
      },
      "per_game": {
        "IP": 0.2,
        "ER": 0.2,
        "R": 0.2,
        "H": 0.2,
        "BB": 0.2,
        "SO": 1.0,
        "HR": 0.0,
        "BF": 2.6,
        "Pitches": 11.2
      },
      "rates": {
        "ERA": 2.4545,
        "WHIP": 0.5455,
        "ER_per_IP": 0.27273,
        "H_per_IP": 0.27273,
        "BB_per_IP": 0.27273,
        "SO_per_IP": 1.36364,
        "HR_per_IP": 0.0
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 8.0,
        "ER": 2.0,
        "R": 2.0,
        "H": 3.0,
        "BB": 2.0,
        "SO": 11.0,
        "HR": 1.0,
        "BF": 29.0,
        "Pitches": 118.0
      },
      "per_game": {
        "IP": 0.2,
        "ER": 0.2,
        "R": 0.2,
        "H": 0.3,
        "BB": 0.2,
        "SO": 1.1,
        "HR": 0.1,
        "BF": 2.9,
        "Pitches": 11.8
      },
      "rates": {
        "ERA": 2.25,
        "WHIP": 0.625,
        "ER_per_IP": 0.25,
        "H_per_IP": 0.375,
        "BB_per_IP": 0.25,
        "SO_per_IP": 1.375,
        "HR_per_IP": 0.125
      }
    },
    "season": {
      "games": 33,
      "totals": {
        "IP": 26.2,
        "ER": 10.0,
        "R": 11.0,
        "H": 22.0,
        "BB": 7.0,
        "SO": 33.0,
        "HR": 5.0,
        "BF": 109.0,
        "Pitches": 439.0
      },
      "per_game": {
        "IP": 0.2,
        "ER": 0.303,
        "R": 0.3333,
        "H": 0.6667,
        "BB": 0.2121,
        "SO": 1.0,
        "HR": 0.1515,
        "BF": 3.303,
        "Pitches": 13.303
      },
      "rates": {
        "ERA": 3.375,
        "WHIP": 1.0875,
        "ER_per_IP": 0.375,
        "H_per_IP": 0.825,
        "BB_per_IP": 0.2625,
        "SO_per_IP": 1.2375,
        "HR_per_IP": 0.1875
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 0.2,
    "predicted_ER": 0.262,
    "predicted_H": 0.459,
    "predicted_BB": 0.213,
    "predicted_SO": 0.765,
    "predicted_HR": 0.075,
    "predicted_ERA": 3.5426,
    "predicted_WHIP": 1.0069
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.5511,
  "form_weight": 0.4489,
  "form_reliability": 0.5241,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 5.507,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.5241,
    "prior_weight": 0.4759
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 0.2,
      "form": 0.2,
      "final": 0.2,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 0.0,
      "form": 0.262,
      "final": 0.1176,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 1.0,
      "form": 0.459,
      "final": 0.7571,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 0.0,
      "form": 0.213,
      "final": 0.0956,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 0.0,
      "form": 0.765,
      "final": 0.3434,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 0.0,
      "form": 0.075,
      "final": 0.0337,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 3.5426,
      "final": 3.5426,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 1.0069,
      "final": 1.0069,
      "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
PitcherAlex Vesia
RoleMiddle Reliever (High Leverage)
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score0.6990
ESPN Rank-
Movement AvailableTrue
Primary Pitch-
Movement Score-0.0789
Avg Velo88.4549
Avg Spin2384.6779
HB Inches0
IVB Inches0
Release Extension0
Pre IP2
Pre ER0
Pre H1
Pre BB1
Pre SO2
Season ERA2.5932
Season WHIP1.0508
Role Avg IP0.8080
Recent Avg IP1
Last Start IP0
Team Form Snapshot
{
  "team": {
    "team": "LAD",
    "games": 162,
    "wins": 100,
    "losses": 62,
    "win_pct": 0.6173,
    "runs_scored": 801.0,
    "runs_allowed": 600.0,
    "run_differential": 201.0,
    "run_differential_per_game": 1.2407,
    "avg_runs_scored": 4.9444,
    "avg_runs_allowed": 3.7037,
    "offense_index": 1.1012,
    "defense_index": 1.2123,
    "current_streak": "W3",
    "recent": {
      "games": 10,
      "wins": 8,
      "losses": 2,
      "win_pct": 0.8,
      "avg_runs_scored": 5.0,
      "avg_runs_allowed": 2.2,
      "run_differential": 28.0
    },
    "available": true,
    "quality_score": 0.3567
  },
  "opponent": {
    "team": "ATL",
    "games": 162,
    "wins": 94,
    "losses": 68,
    "win_pct": 0.5802,
    "runs_scored": 742.0,
    "runs_allowed": 626.0,
    "run_differential": 116.0,
    "run_differential_per_game": 0.716,
    "avg_runs_scored": 4.5802,
    "avg_runs_allowed": 3.8642,
    "offense_index": 1.0201,
    "defense_index": 1.1619,
    "current_streak": "L1",
    "recent": {
      "games": 10,
      "wins": 5,
      "losses": 5,
      "win_pct": 0.5,
      "avg_runs_scored": 4.0,
      "avg_runs_allowed": 3.9,
      "run_differential": 1.0
    },
    "available": true,
    "quality_score": 0.1559
  },
  "method": "team_form_snapshot",
  "role": "pitcher",
  "edges": {
    "quality_edge": 0.2008,
    "offense_edge": 0.1012,
    "opponent_offense_edge": 0.0201,
    "defense_strength": 0.2123,
    "opponent_defense_weakness": -0.1619,
    "recent_win_pct_edge": 0.3
  },
  "player_factors": {
    "ip": 1.0136,
    "run_prevention": 0.9719,
    "strikeout": 1.0044
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "681911",
    "profile": {
      "available": true,
      "pitcher_id": "681911",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 221.0,
        "k_percent": 31.2,
        "bb_percent": 13.5,
        "woba": 0.233,
        "xwoba": 0.254,
        "sweet_spot_percent": 29.0,
        "barrel_batted_rate": 6.1,
        "hard_hit_percent": 33.6,
        "avg_best_speed": 77.4874,
        "avg_hyper_speed": 92.7576,
        "whiff_percent": 33.6,
        "swing_percent": 48.3
      },
      "league_medians": {
        "pa": 134.0,
        "k_percent": 22.1,
        "bb_percent": 9.2,
        "woba": 0.315,
        "xwoba": 0.312,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6432,
        "avg_hyper_speed": 93.9005,
        "whiff_percent": 25.2,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": 1.1636,
        "command_and_miss": 0.79,
        "regression_edge": -0.6,
        "xwoba_edge": 1.6571,
        "barrel_edge": 0.2444,
        "hard_hit_edge": 0.6143,
        "whiff_edge": 1.2,
        "bb_edge": -1.075,
        "pitch_design_score": -0.0789
      },
      "quality_score": 0.699,
      "sample_weight": 0.884,
      "run_prevention_factor": 0.9406,
      "strikeout_factor": 1.0884,
      "walk_factor": 1.076,
      "homer_factor": 0.917,
      "woba_minus_xwoba": -0.021,
      "regression_flag": "neutral",
      "espn_rank": {
        "available": false,
        "player_id": "681911",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 0.0,
        "factor": 0.9475,
        "adjusted": 0
      },
      "predicted_H": {
        "original": 0.0,
        "factor": 0.9475,
        "adjusted": 0
      },
      "predicted_BB": {
        "original": 0.0,
        "factor": 1.0672,
        "adjusted": 0
      },
      "predicted_HR": {
        "original": 0.0,
        "factor": 0.9266,
        "adjusted": 0
      },
      "predicted_SO": {
        "original": 2.0,
        "factor": 1.0781,
        "adjusted": 2
      }
    }
  },
  "club_form": "game.<side>_team.predicted_performance.team_form"
}
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": 1,
    "SO": 13,
    "HR": 0,
    "ERA": 0.0,
    "WHIP": 0.3333333333333333,
    "K9": 13.0,
    "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-10-03T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": true,
  "pitcher_id": "681911",
  "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": 88.45489013894718,
    "release_spin_rate": 2384.6778665846987,
    "spin_axis": null,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": null,
    "release_pos_x": null,
    "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": 88.45489013894718,
      "release_spin_rate": 2384.6778665846987,
      "spin_axis": null,
      "horizontal_break_inches": 0.0,
      "induced_vertical_break_inches": 0.0,
      "vertical_break_with_gravity_inches": null,
      "release_pos_x": null,
      "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.4549,
    "release_spin_rate": 2384.6779,
    "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.0789,
    "horizontal_break_edge": 0.0,
    "induced_vertical_break_edge": 0.0,
    "extension_edge": 0.0,
    "velocity_edge": -0.5637,
    "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": 12.183,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.709,
    "prior_weight": 0.291
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "681911",
  "report_date": "20261006",
  "season_year": 2026,
  "rows_used": 73,
  "reference_playing_time": 0.667,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 5.0,
        "ER": 0.0,
        "R": 0.0,
        "H": 0.0,
        "BB": 1.0,
        "SO": 8.0,
        "HR": 0.0,
        "BF": 16.0,
        "Pitches": 78.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.0,
        "R": 0.0,
        "H": 0.0,
        "BB": 0.2,
        "SO": 1.6,
        "HR": 0.0,
        "BF": 3.2,
        "Pitches": 15.6
      },
      "rates": {
        "ERA": 0.0,
        "WHIP": 0.2,
        "ER_per_IP": 0.0,
        "H_per_IP": 0.0,
        "BB_per_IP": 0.2,
        "SO_per_IP": 1.6,
        "HR_per_IP": 0.0
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 9.0,
        "ER": 0.0,
        "R": 0.0,
        "H": 2.0,
        "BB": 1.0,
        "SO": 13.0,
        "HR": 0.0,
        "BF": 30.0,
        "Pitches": 135.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.0,
        "R": 0.0,
        "H": 0.2,
        "BB": 0.1,
        "SO": 1.3,
        "HR": 0.0,
        "BF": 3.0,
        "Pitches": 13.5
      },
      "rates": {
        "ERA": 0.0,
        "WHIP": 0.3333,
        "ER_per_IP": 0.0,
        "H_per_IP": 0.22222,
        "BB_per_IP": 0.11111,
        "SO_per_IP": 1.44444,
        "HR_per_IP": 0.0
      }
    },
    "season": {
      "games": 73,
      "totals": {
        "IP": 59.0,
        "ER": 17.0,
        "R": 18.0,
        "H": 30.0,
        "BB": 32.0,
        "SO": 75.0,
        "HR": 4.0,
        "BF": 240.0,
        "Pitches": 1026.0
      },
      "per_game": {
        "IP": 0.2,
        "ER": 0.2329,
        "R": 0.2466,
        "H": 0.411,
        "BB": 0.4384,
        "SO": 1.0274,
        "HR": 0.0548,
        "BF": 3.2877,
        "Pitches": 14.0548
      },
      "rates": {
        "ERA": 2.5932,
        "WHIP": 1.0508,
        "ER_per_IP": 0.28814,
        "H_per_IP": 0.50847,
        "BB_per_IP": 0.54237,
        "SO_per_IP": 1.27119,
        "HR_per_IP": 0.0678
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 1.0,
    "predicted_ER": 0.163,
    "predicted_H": 0.354,
    "predicted_BB": 0.239,
    "predicted_SO": 1.13,
    "predicted_HR": 0.045,
    "predicted_ERA": 1.7113,
    "predicted_WHIP": 0.6927
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.4729,
  "form_weight": 0.5271,
  "form_reliability": 0.709,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 12.183,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.709,
    "prior_weight": 0.291
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 0.2,
      "form": 1.0,
      "final": 1.0,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 0.0,
      "form": 0.163,
      "final": 0.0859,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 0.0,
      "form": 0.354,
      "final": 0.1866,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 0.0,
      "form": 0.239,
      "final": 0.126,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 2.0,
      "form": 1.13,
      "final": 1.5415,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 0.0,
      "form": 0.045,
      "final": 0.0237,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 1.7113,
      "final": 1.7113,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 0.6927,
      "final": 0.6927,
      "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."
}
Mookie Betts (605141) · BATTER · SS · Team LAD
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 492
All-history rows before 20261006: 492
System season_avg: 0.2580
Data season_avg (2026 season-to-date): 0.2599
Diff (system - data): -0.0019
System opponent_avg: 0.3890

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.2030.0000.000Hitting_2B0.1910.000-0.1910.000
predicted_3B0.0000.0000.000Hitting_3B0.0000.0000.0000.000
predicted_AB3.9025.0005.000Hitting_AB4.0592.0000.9413.000
predicted_AVG0.2020.0000.000Hitting_AVG0.2600.000-0.2600.000
predicted_BB0.3820.0000.000Hitting_BB0.3602.000-0.360-2.000
predicted_CS-0.0000.000BaseRunning_CS0.0180.000-0.0180.000
predicted_H0.7300.0000.000Hitting_H1.0550.000-1.0550.000
predicted_HR0.1500.0000.000Hitting_HR0.1970.000-0.1970.000
predicted_OBP0.3380.0000.000Hitting_OBP0.3220.500-0.322-0.500
predicted_R0.5691.0001.000Hitting_R0.6220.0000.3781.000
predicted_RBI0.4000.0000.000Hitting_RBI0.6080.000-0.6080.000
predicted_SLG0.3990.0000.000Hitting_SLG0.4530.000-0.4530.000
predicted_SO0.4630.0000.000Hitting_SO0.4880.000-0.4880.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.9020 -> 5.0000 (boost 1.0980, better)
Biggest Deboostpredicted_H: 0.7300 -> 0.0000 (deboost -0.7300, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend54141predicted_BB: 0.3820 -> 0.4589 (boost 0.0769, better)predicted_AB: 3.9020 -> 3.7926 (deboost -0.1094, 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_OBP: 0.3392 -> 0.2977 (deboost -0.0415, 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_SO: 0.5056 -> 1.0000 (boost 0.4944, worse)predicted_BB: 0.4635 -> 0.0000 (deboost -0.4635, worse)AB rounded to 4 (raw=3.90), rates preserved: AVG=0.196 HR/AB=0.041
6bvp_blend00000--Sample-size BvP blend (BvP AB=18.0, weight=0.150, BvP AVG=0.389)
7consistency_constraints11010predicted_R: 0.5420 -> 1.0000 (boost 0.4580, better)-Enforced H<=AB, HR<=H, safety nets, derived R
8hitter_rate_engine54150predicted_RBI: 0.0000 -> 0.5661 (boost 0.5661, better)predicted_SO: 1.0000 -> 0.5669 (deboost -0.4331, 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_allocation87162predicted_HR: 0.1865 -> 1.0000 (boost 0.8135, better)predicted_2B: 0.2158 -> 0.0000 (deboost -0.2158, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
10embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
11kpi_run_environment40404-predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse)KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup
12market_blend00000--Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated
13play_by_play_realization51423predicted_AB: 4.0000 -> 5.0000 (boost 1.0000, better)predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse)Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
14simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
15current_json_final22020predicted_OBP: 0.3020 -> 0.3170 (boost 0.0150, better)-Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "605141",
  "player_name": "Mookie Betts",
  "position": "SS",
  "team": "LAD",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.203,
        "predicted_3B": 0.0,
        "predicted_AB": 3.902,
        "predicted_AVG": 0.202,
        "predicted_BB": 0.382,
        "predicted_H": 0.73,
        "predicted_HR": 0.15,
        "predicted_OBP": 0.338,
        "predicted_R": 0.569,
        "predicted_RBI": 0.4,
        "predicted_SLG": 0.399,
        "predicted_SO": 0.463
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "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.2086,
        "predicted_3B": 0.0004,
        "predicted_AB": 3.7926,
        "predicted_AVG": 0.2182,
        "predicted_BB": 0.4589,
        "predicted_H": 0.7921,
        "predicted_HBP": 0.01,
        "predicted_HR": 0.1596,
        "predicted_OBP": 0.3392,
        "predicted_R": 0.5273,
        "predicted_RBI": 0.4208,
        "predicted_SLG": 0.4169,
        "predicted_SO": 0.5108
      },
      "changed_metrics": [
        {
          "metric": "predicted_AB",
          "before": 3.902,
          "after": 3.7926,
          "delta": -0.1094,
          "percent_delta": -0.028,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.202,
          "after": 0.2182,
          "delta": 0.0162,
          "percent_delta": 0.0802,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.382,
          "after": 0.4589,
          "delta": 0.0769,
          "percent_delta": 0.2013,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.73,
          "after": 0.7921,
          "delta": 0.0621,
          "percent_delta": 0.0851,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.399,
          "after": 0.4169,
          "delta": 0.0179,
          "percent_delta": 0.0449,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 5,
        "boosted_metrics": 4,
        "deboosted_metrics": 1,
        "better_metrics": 4,
        "worse_metrics": 1,
        "biggest_boost": {
          "metric": "predicted_BB",
          "before": 0.382,
          "after": 0.4589,
          "delta": 0.0769,
          "percent_delta": 0.2013,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 3.902,
          "after": 3.7926,
          "delta": -0.1094,
          "percent_delta": -0.028,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      },
      "weights": {
        "xgboost_raw": 0.55,
        "weighted_form": 0.45,
        "form_windows": {
          "last_5": 0.2,
          "last_10": 0.2,
          "season": 0.6
        }
      },
      "window_games": {
        "last_5": 5,
        "last_10": 10,
        "season": 123
      }
    },
    {
      "index": 3,
      "step": "team_form_snapshot",
      "description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
      "stats": {
        "predicted_2B": 0.2086,
        "predicted_3B": 0.0004,
        "predicted_AB": 3.7926,
        "predicted_AVG": 0.2118,
        "predicted_BB": 0.4635,
        "predicted_H": 0.8033,
        "predicted_HBP": 0.01,
        "predicted_HR": 0.1606,
        "predicted_OBP": 0.2977,
        "predicted_R": 0.542,
        "predicted_RBI": 0.4325,
        "predicted_SLG": 0.394,
        "predicted_SO": 0.5056
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.2182,
          "after": 0.2118,
          "delta": -0.0064,
          "percent_delta": -0.0293,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3392,
          "after": 0.2977,
          "delta": -0.0415,
          "percent_delta": -0.1223,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4169,
          "after": 0.394,
          "delta": -0.0229,
          "percent_delta": -0.0549,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.3392,
          "after": 0.2977,
          "delta": -0.0415,
          "percent_delta": -0.1223,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 4 (raw=3.90), rates preserved: AVG=0.196 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.2086,
          "after": 0.0,
          "delta": -0.2086,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AB",
          "before": 3.7926,
          "after": 4.0,
          "delta": 0.2074,
          "percent_delta": 0.0547,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.4635,
          "after": 0.0,
          "delta": -0.4635,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8033,
          "after": 1.0,
          "delta": 0.1967,
          "percent_delta": 0.2449,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1606,
          "after": 0.0,
          "delta": -0.1606,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4325,
          "after": 0.0,
          "delta": -0.4325,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.5056,
          "after": 1.0,
          "delta": 0.4944,
          "percent_delta": 0.9778,
          "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.5056,
          "after": 1.0,
          "delta": 0.4944,
          "percent_delta": 0.9778,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.4635,
          "after": 0.0,
          "delta": -0.4635,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 6,
      "step": "bvp_blend",
      "description": "Sample-size BvP blend (BvP AB=18.0, weight=0.150, BvP AVG=0.389)",
      "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": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      },
      "weights": {
        "model_expectation": 0.85,
        "bvp": 0.15
      }
    },
    {
      "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_R",
          "before": 0.542,
          "after": 1.0,
          "delta": 0.458,
          "percent_delta": 0.845,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 1,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_R",
          "before": 0.542,
          "after": 1.0,
          "delta": 0.458,
          "percent_delta": 0.845,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "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.2158,
        "predicted_3B": 0.0091,
        "predicted_BB": 0.3018,
        "predicted_H": 1.0094,
        "predicted_HR": 0.1865,
        "predicted_RBI": 0.5661,
        "predicted_SO": 0.5669
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.2158,
          "delta": 0.2158,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.3018,
          "delta": 0.3018,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1865,
          "delta": 0.1865,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.5661,
          "delta": 0.5661,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.5669,
          "delta": -0.4331,
          "percent_delta": -0.4331,
          "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.5661,
          "delta": 0.5661,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.5669,
          "delta": -0.4331,
          "percent_delta": -0.4331,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      }
    },
    {
      "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_AVG": 0.263,
        "predicted_BB": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 1.0,
        "predicted_OBP": 0.323,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.471,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.2158,
          "after": 0.0,
          "delta": -0.2158,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2118,
          "after": 0.263,
          "delta": 0.0512,
          "percent_delta": 0.2417,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3018,
          "after": 1.0,
          "delta": 0.6982,
          "percent_delta": 2.3135,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1865,
          "after": 1.0,
          "delta": 0.8135,
          "percent_delta": 4.3619,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2977,
          "after": 0.323,
          "delta": 0.0253,
          "percent_delta": 0.085,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5661,
          "after": 1.0,
          "delta": 0.4339,
          "percent_delta": 0.7665,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.394,
          "after": 0.471,
          "delta": 0.077,
          "percent_delta": 0.1954,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.5669,
          "after": 1.0,
          "delta": 0.4331,
          "percent_delta": 0.764,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 8,
        "boosted_metrics": 7,
        "deboosted_metrics": 1,
        "better_metrics": 6,
        "worse_metrics": 2,
        "biggest_boost": {
          "metric": "predicted_HR",
          "before": 0.1865,
          "after": 1.0,
          "delta": 0.8135,
          "percent_delta": 4.3619,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_2B",
          "before": 0.2158,
          "after": 0.0,
          "delta": -0.2158,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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.263,
        "predicted_BB": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 1.0,
        "predicted_OBP": 0.323,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.471,
        "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
      }
    },
    {
      "index": 11,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.245,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 1.0,
        "predicted_OBP": 0.302,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.438,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.263,
          "after": 0.245,
          "delta": -0.018,
          "percent_delta": -0.0684,
          "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_OBP",
          "before": 0.323,
          "after": 0.302,
          "delta": -0.021,
          "percent_delta": -0.065,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.471,
          "after": 0.438,
          "delta": -0.033,
          "percent_delta": -0.0701,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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
        }
      }
    },
    {
      "index": 12,
      "step": "market_blend",
      "description": "Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated",
      "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
      }
    },
    {
      "index": 13,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 5.0,
        "predicted_BB": 0.0,
        "predicted_H": 0.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.0,
        "predicted_SO": 0.0
      },
      "changed_metrics": [
        {
          "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_H",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "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_RBI",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "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": 1,
        "deboosted_metrics": 4,
        "better_metrics": 2,
        "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
        }
      }
    },
    {
      "index": 14,
      "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_H": 0.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.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
      },
      "reference_only": true
    },
    {
      "index": 15,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 5.0,
        "predicted_AVG": 0.249,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 0.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.317,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.444,
        "predicted_SO": 0.0,
        "predicted_SS": 0.0,
        "predicted_TB": 0.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_OBP",
          "before": 0.302,
          "after": 0.317,
          "delta": 0.015,
          "percent_delta": 0.0497,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.438,
          "after": 0.444,
          "delta": 0.006,
          "percent_delta": 0.0137,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 2,
        "boosted_metrics": 2,
        "deboosted_metrics": 0,
        "better_metrics": 2,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_OBP",
          "before": 0.302,
          "after": 0.317,
          "delta": 0.015,
          "percent_delta": 0.0497,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    }
  ],
  "total_change": {
    "from_step": "xgboost_raw",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_2B",
        "before": 0.203,
        "after": 0.0,
        "delta": -0.203,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AB",
        "before": 3.902,
        "after": 5.0,
        "delta": 1.098,
        "percent_delta": 0.2814,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.202,
        "after": 0.249,
        "delta": 0.047,
        "percent_delta": 0.2327,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.382,
        "after": 0.0,
        "delta": -0.382,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.73,
        "after": 0.0,
        "delta": -0.73,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.15,
        "after": 0.0,
        "delta": -0.15,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.338,
        "after": 0.317,
        "delta": -0.021,
        "percent_delta": -0.0621,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.569,
        "after": 1.0,
        "delta": 0.431,
        "percent_delta": 0.7575,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.4,
        "after": 0.0,
        "delta": -0.4,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.399,
        "after": 0.444,
        "delta": 0.045,
        "percent_delta": 0.1128,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.463,
        "after": 0.0,
        "delta": -0.463,
        "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.902,
        "after": 5.0,
        "delta": 1.098,
        "percent_delta": 0.2814,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_H",
        "before": 0.73,
        "after": 0.0,
        "delta": -0.73,
        "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.203-
predicted_3B0.000-
predicted_AB3.902-
predicted_AVG0.202-
predicted_BB0.382-
predicted_H0.730-
predicted_HR0.150-
predicted_OBP0.338-
predicted_R0.569-
predicted_RBI0.400-
predicted_SLG0.399-
predicted_SO0.463-
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.2090.006
predicted_3B0.0000.000
predicted_AB3.793-0.109
predicted_AVG0.2180.016
predicted_BB0.4590.077
predicted_H0.7920.062
predicted_HBP0.010-
predicted_HR0.1600.010
predicted_OBP0.3390.001
predicted_R0.527-0.042
predicted_RBI0.4210.021
predicted_SLG0.4170.018
predicted_SO0.5110.048
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.0000.000
predicted_AB3.7930.000
predicted_AVG0.212-0.006
predicted_BB0.4640.005
predicted_H0.8030.011
predicted_HBP0.0100.000
predicted_HR0.1610.001
predicted_OBP0.298-0.041
predicted_R0.5420.015
predicted_RBI0.4320.012
predicted_SLG0.394-0.023
predicted_SO0.506-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.90), rates preserved: AVG=0.196 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. bvp_blend

Sample-size BvP blend (BvP AB=18.0, weight=0.150, BvP AVG=0.389)

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.2160.216
3B0.0090.009
BB0.3020.302
H1.0090.009
HR0.1860.186
RBI0.5660.566
SO0.567-0.433
9. lineup_integer_allocation

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

MetricValueDelta vs Prev Step
2B0.000-0.216
3B0.000-0.009
AB4.0000.000
AVG0.263-
BB1.0000.698
H1.000-0.009
HR1.0000.814
OBP0.323-
R1.0000.000
RBI1.0000.434
SLG0.471-
SO1.0000.433
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.000
predicted_AB4.0000.207
predicted_AVG0.2630.051
predicted_BB1.0000.536
predicted_H1.0000.197
predicted_HR1.0000.839
predicted_OBP0.3230.025
predicted_R1.0000.458
predicted_RBI1.0000.568
predicted_SLG0.4710.077
predicted_SO1.0000.494
11. kpi_run_environment

KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
AVG0.245-0.018
BB0.000-1.000
H1.0000.000
HR1.0000.000
OBP0.302-0.021
R1.0000.000
RBI1.0000.000
SLG0.438-0.033
SO1.0000.000
12. market_blend

Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated

MetricValueDelta vs Prev Step
13. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB5.0001.000
BB0.0000.000
H0.000-1.000
HBP0.0000.000
HR0.000-1.000
PA5.000-
R1.0000.000
RBI0.000-1.000
SF0.0000.000
SO0.000-1.000
14. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB5.0000.000
BB0.0000.000
H0.0000.000
HBP0.0000.000
HR0.0000.000
PA5.0000.000
R1.0000.000
RBI0.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: 123
Reference playing time: 3.902
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.0002.0000.0000.0001.0001.0001.0004.0004.0000.13330.31580.33330.13330.06670.06670.26670.2667
last_100.2010-35.00010.0005.0000.0001.0004.0005.0008.0005.0000.28570.41860.51430.28570.02860.11430.22860.1429
season0.60123-480.000124.00025.0000.00023.00069.00070.00047.00057.0000.25830.32640.45420.25830.04790.14370.09790.1187
Weighted Prediction From Real Data
MetricValue
predicted_2B0.2160
predicted_3B0.0010
predicted_AB3.6500
predicted_AVG0.2393
predicted_BB0.5590
predicted_H0.8730
predicted_HBP0.0100
predicted_HR0.1720
predicted_OBP0.3407
predicted_R0.4730
predicted_RBI0.4480
predicted_SLG0.4402
predicted_SO0.5730
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.20300.21600.2086model_form_blend
predicted_3B0.00000.00100.0004model_form_blend
predicted_AB3.90203.65003.7926model_form_blend
predicted_AVG0.20200.23930.2182model_form_blend
predicted_BB0.38200.55900.4589model_form_blend
predicted_H0.73000.87300.7921model_form_blend
predicted_HBP-0.01000.0100form_only
predicted_HR0.15000.17200.1596model_form_blend
predicted_OBP0.33800.34070.3392model_form_blend
predicted_R0.56900.47300.5273model_form_blend
predicted_RBI0.40000.44800.4208model_form_blend
predicted_SLG0.39900.44020.4169model_form_blend
predicted_SO0.46300.57300.5108model_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 used123
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
R1
RBI0
BB0
SO0
SF0
HBP0

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_BB2
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
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
allPositionsPlayedSS
gameID20261004_ATL@LAD
game_typefull
mlbID605141
playerID605141
playerNameMookie Betts
posSS
startedTrue
startingPositionSS
teamLAD
teamID14
game_date2026-10-04
sl_k_percent11.0
sl_bb_percent8.9
sl_woba0.338
sl_xwoba0.339
sl_xba0.278
sl_xslg0.435
sl_sweet_spot_percent40.4
sl_barrel_batted_rate7.8
sl_hard_hit_percent38.0
sl_exit_velocity_avg90.2
sl_launch_angle_avg17.9
sl_whiff_percent12.5
sl_swing_percent41.3
Freddie Freeman (518692) · BATTER · 1B · Team LAD
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 626
All-history rows before 20261006: 626
System season_avg: 0.2900
Data season_avg (2026 season-to-date): 0.2926
Diff (system - data): -0.0026
System opponent_avg: 0.3120

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.2080.0000.000Hitting_2B0.2280.000-0.2280.000
predicted_3B0.0060.0000.000Hitting_3B0.0060.000-0.0060.000
predicted_AB4.2605.0005.000Hitting_AB3.8054.0001.1951.000
predicted_AVG0.2610.2000.200Hitting_AVG0.2930.500-0.093-0.300
predicted_BB0.4350.0000.000Hitting_BB0.4920.000-0.4920.000
predicted_CS-0.0000.000BaseRunning_CS0.0000.0000.0000.000
predicted_H1.1101.0001.000Hitting_H1.1132.000-0.113-1.000
predicted_HR0.1800.0000.000Hitting_HR0.1121.000-0.112-1.000
predicted_OBP0.3280.2000.200Hitting_OBP0.3750.500-0.175-0.300
predicted_R0.4940.0000.000Hitting_R0.5401.000-0.540-1.000
predicted_RBI0.5000.0000.000Hitting_RBI0.4901.000-0.490-1.000
predicted_SLG0.4260.2000.200Hitting_SLG0.4441.250-0.244-1.050
predicted_SO0.7472.0002.000Hitting_SO0.7521.0001.2481.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.7470 -> 2.0000 (boost 1.2530, worse)
Biggest Deboostpredicted_RBI: 0.5000 -> 0.0000 (deboost -0.5000, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend41313predicted_AVG: 0.2610 -> 0.2665 (boost 0.0055, better)predicted_AB: 4.2600 -> 4.0536 (deboost -0.2064, 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_snapshot11010predicted_SLG: 0.4193 -> 0.4319 (boost 0.0126, 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_scaling71607predicted_SO: 0.7741 -> 1.0000 (boost 0.2259, worse)predicted_RBI: 0.4649 -> 0.0000 (deboost -0.4649, worse)AB rounded to 4 (raw=4.26), rates preserved: AVG=0.244 HR/AB=0.037
6bvp_blend00000--Sample-size BvP blend (BvP AB=16.0, weight=0.139, BvP AVG=0.312)
7consistency_constraints10101-predicted_R: 0.4754 -> 0.0000 (deboost -0.4754, worse)Enforced H<=AB, HR<=H, safety nets, derived R
8hitter_rate_engine65160predicted_RBI: 0.0000 -> 0.5417 (boost 0.5417, better)predicted_SO: 1.0000 -> 0.8887 (deboost -0.1113, 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_allocation85344predicted_2B: 0.2012 -> 1.0000 (boost 0.7988, better)predicted_BB: 0.2950 -> 0.0000 (deboost -0.2950, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
10embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
11kpi_run_environment30303-predicted_SLG: 0.4390 -> 0.4080 (deboost -0.0310, worse)KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup
12market_blend00000--Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated
13play_by_play_realization42213predicted_AB: 4.0000 -> 5.0000 (boost 1.0000, better)predicted_2B: 1.0000 -> 0.0000 (deboost -1.0000, worse)Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
14simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
15current_json_final30303-predicted_SLG: 0.4080 -> 0.3920 (deboost -0.0160, worse)Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "518692",
  "player_name": "Freddie Freeman",
  "position": "1B",
  "team": "LAD",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.208,
        "predicted_3B": 0.006,
        "predicted_AB": 4.26,
        "predicted_AVG": 0.261,
        "predicted_BB": 0.435,
        "predicted_H": 1.11,
        "predicted_HR": 0.18,
        "predicted_OBP": 0.328,
        "predicted_R": 0.494,
        "predicted_RBI": 0.5,
        "predicted_SLG": 0.426,
        "predicted_SO": 0.747
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "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.1726,
        "predicted_3B": 0.0051,
        "predicted_AB": 4.0536,
        "predicted_AVG": 0.2665,
        "predicted_BB": 0.3847,
        "predicted_H": 1.0781,
        "predicted_HBP": 0.02,
        "predicted_HR": 0.1573,
        "predicted_OBP": 0.3288,
        "predicted_R": 0.4625,
        "predicted_RBI": 0.4523,
        "predicted_SLG": 0.4193,
        "predicted_SO": 0.782
      },
      "changed_metrics": [
        {
          "metric": "predicted_AB",
          "before": 4.26,
          "after": 4.0536,
          "delta": -0.2064,
          "percent_delta": -0.0485,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.261,
          "after": 0.2665,
          "delta": 0.0055,
          "percent_delta": 0.0211,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.435,
          "after": 0.3847,
          "delta": -0.0503,
          "percent_delta": -0.1156,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.426,
          "after": 0.4193,
          "delta": -0.0067,
          "percent_delta": -0.0157,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 4,
        "boosted_metrics": 1,
        "deboosted_metrics": 3,
        "better_metrics": 1,
        "worse_metrics": 3,
        "biggest_boost": {
          "metric": "predicted_AVG",
          "before": 0.261,
          "after": 0.2665,
          "delta": 0.0055,
          "percent_delta": 0.0211,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 4.26,
          "after": 4.0536,
          "delta": -0.2064,
          "percent_delta": -0.0485,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      },
      "weights": {
        "xgboost_raw": 0.55,
        "weighted_form": 0.45,
        "form_windows": {
          "last_5": 0.2,
          "last_10": 0.2,
          "season": 0.6
        }
      },
      "window_games": {
        "last_5": 5,
        "last_10": 10,
        "season": 154
      }
    },
    {
      "index": 3,
      "step": "team_form_snapshot",
      "description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
      "stats": {
        "predicted_2B": 0.1726,
        "predicted_3B": 0.0051,
        "predicted_AB": 4.0536,
        "predicted_AVG": 0.2697,
        "predicted_BB": 0.3886,
        "predicted_H": 1.0934,
        "predicted_HBP": 0.02,
        "predicted_HR": 0.1582,
        "predicted_OBP": 0.3336,
        "predicted_R": 0.4754,
        "predicted_RBI": 0.4649,
        "predicted_SLG": 0.4319,
        "predicted_SO": 0.7741
      },
      "changed_metrics": [
        {
          "metric": "predicted_SLG",
          "before": 0.4193,
          "after": 0.4319,
          "delta": 0.0126,
          "percent_delta": 0.0301,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 1,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_SLG",
          "before": 0.4193,
          "after": 0.4319,
          "delta": 0.0126,
          "percent_delta": 0.0301,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 4 (raw=4.26), rates preserved: AVG=0.244 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.1726,
          "after": 0.0,
          "delta": -0.1726,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AB",
          "before": 4.0536,
          "after": 4.0,
          "delta": -0.0536,
          "percent_delta": -0.0132,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3886,
          "after": 0.0,
          "delta": -0.3886,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0934,
          "after": 1.0,
          "delta": -0.0934,
          "percent_delta": -0.0854,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1582,
          "after": 0.0,
          "delta": -0.1582,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4649,
          "after": 0.0,
          "delta": -0.4649,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.7741,
          "after": 1.0,
          "delta": 0.2259,
          "percent_delta": 0.2918,
          "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.7741,
          "after": 1.0,
          "delta": 0.2259,
          "percent_delta": 0.2918,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.4649,
          "after": 0.0,
          "delta": -0.4649,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 6,
      "step": "bvp_blend",
      "description": "Sample-size BvP blend (BvP AB=16.0, weight=0.139, BvP AVG=0.312)",
      "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": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      },
      "weights": {
        "model_expectation": 0.8609,
        "bvp": 0.1391
      }
    },
    {
      "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_R",
          "before": 0.4754,
          "after": 0.0,
          "delta": -0.4754,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 0,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 1,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_R",
          "before": 0.4754,
          "after": 0.0,
          "delta": -0.4754,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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.2012,
        "predicted_3B": 0.0122,
        "predicted_BB": 0.295,
        "predicted_H": 1.0748,
        "predicted_HR": 0.1388,
        "predicted_RBI": 0.5417,
        "predicted_SO": 0.8887
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.2012,
          "delta": 0.2012,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.295,
          "delta": 0.295,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 1.0748,
          "delta": 0.0748,
          "percent_delta": 0.0748,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1388,
          "delta": 0.1388,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.5417,
          "delta": 0.5417,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.8887,
          "delta": -0.1113,
          "percent_delta": -0.1113,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 6,
        "boosted_metrics": 5,
        "deboosted_metrics": 1,
        "better_metrics": 6,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.5417,
          "delta": 0.5417,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.8887,
          "delta": -0.1113,
          "percent_delta": -0.1113,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      }
    },
    {
      "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_AVG": 0.275,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.331,
        "predicted_R": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.439,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.2012,
          "after": 1.0,
          "delta": 0.7988,
          "percent_delta": 3.9702,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2697,
          "after": 0.275,
          "delta": 0.0053,
          "percent_delta": 0.0197,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.295,
          "after": 0.0,
          "delta": -0.295,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0748,
          "after": 1.0,
          "delta": -0.0748,
          "percent_delta": -0.0696,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1388,
          "after": 0.0,
          "delta": -0.1388,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5417,
          "after": 1.0,
          "delta": 0.4583,
          "percent_delta": 0.846,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4319,
          "after": 0.439,
          "delta": 0.0071,
          "percent_delta": 0.0164,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.8887,
          "after": 1.0,
          "delta": 0.1113,
          "percent_delta": 0.1252,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 8,
        "boosted_metrics": 5,
        "deboosted_metrics": 3,
        "better_metrics": 4,
        "worse_metrics": 4,
        "biggest_boost": {
          "metric": "predicted_2B",
          "before": 0.2012,
          "after": 1.0,
          "delta": 0.7988,
          "percent_delta": 3.9702,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.295,
          "after": 0.0,
          "delta": -0.295,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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": 1.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.275,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.331,
        "predicted_R": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.439,
        "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
      }
    },
    {
      "index": 11,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup",
      "stats": {
        "predicted_2B": 1.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.256,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.31,
        "predicted_R": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.408,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.275,
          "after": 0.256,
          "delta": -0.019,
          "percent_delta": -0.0691,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.331,
          "after": 0.31,
          "delta": -0.021,
          "percent_delta": -0.0634,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.439,
          "after": 0.408,
          "delta": -0.031,
          "percent_delta": -0.0706,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.439,
          "after": 0.408,
          "delta": -0.031,
          "percent_delta": -0.0706,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 12,
      "step": "market_blend",
      "description": "Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated",
      "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
      }
    },
    {
      "index": 13,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 5.0,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.0,
        "predicted_SO": 2.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_AB",
          "before": 4.0,
          "after": 5.0,
          "delta": 1.0,
          "percent_delta": 0.25,
          "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_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_2B",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 14,
      "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_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.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
      },
      "reference_only": true
    },
    {
      "index": 15,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 5.0,
        "predicted_AVG": 0.242,
        "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.305,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.392,
        "predicted_SO": 2.0,
        "predicted_TB": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.256,
          "after": 0.242,
          "delta": -0.014,
          "percent_delta": -0.0547,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.31,
          "after": 0.305,
          "delta": -0.005,
          "percent_delta": -0.0161,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.408,
          "after": 0.392,
          "delta": -0.016,
          "percent_delta": -0.0392,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.408,
          "after": 0.392,
          "delta": -0.016,
          "percent_delta": -0.0392,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    }
  ],
  "total_change": {
    "from_step": "xgboost_raw",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_2B",
        "before": 0.208,
        "after": 0.0,
        "delta": -0.208,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AB",
        "before": 4.26,
        "after": 5.0,
        "delta": 0.74,
        "percent_delta": 0.1737,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.261,
        "after": 0.242,
        "delta": -0.019,
        "percent_delta": -0.0728,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.435,
        "after": 0.0,
        "delta": -0.435,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 1.11,
        "after": 1.0,
        "delta": -0.11,
        "percent_delta": -0.0991,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.18,
        "after": 0.0,
        "delta": -0.18,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.328,
        "after": 0.305,
        "delta": -0.023,
        "percent_delta": -0.0701,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.494,
        "after": 0.0,
        "delta": -0.494,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.5,
        "after": 0.0,
        "delta": -0.5,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.426,
        "after": 0.392,
        "delta": -0.034,
        "percent_delta": -0.0798,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.747,
        "after": 2.0,
        "delta": 1.253,
        "percent_delta": 1.6774,
        "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.747,
        "after": 2.0,
        "delta": 1.253,
        "percent_delta": 1.6774,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_RBI",
        "before": 0.5,
        "after": 0.0,
        "delta": -0.5,
        "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.208-
predicted_3B0.006-
predicted_AB4.260-
predicted_AVG0.261-
predicted_BB0.435-
predicted_H1.110-
predicted_HR0.180-
predicted_OBP0.328-
predicted_R0.494-
predicted_RBI0.500-
predicted_SLG0.426-
predicted_SO0.747-
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.173-0.035
predicted_3B0.005-0.001
predicted_AB4.054-0.206
predicted_AVG0.2670.006
predicted_BB0.385-0.050
predicted_H1.078-0.032
predicted_HBP0.020-
predicted_HR0.157-0.023
predicted_OBP0.3290.001
predicted_R0.463-0.031
predicted_RBI0.452-0.048
predicted_SLG0.419-0.007
predicted_SO0.7820.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.1730.000
predicted_3B0.0050.000
predicted_AB4.0540.000
predicted_AVG0.2700.003
predicted_BB0.3890.004
predicted_H1.0930.015
predicted_HBP0.0200.000
predicted_HR0.1580.001
predicted_OBP0.3340.005
predicted_R0.4750.013
predicted_RBI0.4650.013
predicted_SLG0.4320.013
predicted_SO0.774-0.008
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.26), rates preserved: AVG=0.244 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. bvp_blend

Sample-size BvP blend (BvP AB=16.0, weight=0.139, BvP AVG=0.312)

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.2010.201
3B0.0120.012
BB0.2950.295
H1.0750.075
HR0.1390.139
RBI0.5420.542
SO0.889-0.111
9. 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.012
AB4.0000.000
AVG0.275-
BB0.000-0.295
H1.000-0.075
HR0.000-0.139
OBP0.331-
R0.0000.000
RBI1.0000.458
SLG0.439-
SO1.0000.111
10. embedded_savant_player_context

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

MetricValueDelta vs Prev Step
predicted_2B1.0000.827
predicted_3B0.000-0.005
predicted_AB4.000-0.054
predicted_AVG0.2750.005
predicted_BB0.000-0.389
predicted_H1.000-0.093
predicted_HR0.000-0.158
predicted_OBP0.331-0.003
predicted_R0.000-0.475
predicted_RBI1.0000.535
predicted_SLG0.4390.007
predicted_SO1.0000.226
11. kpi_run_environment

KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B1.0000.000
3B0.0000.000
AB4.0000.000
AVG0.256-0.019
BB0.0000.000
H1.0000.000
HR0.0000.000
OBP0.310-0.021
R0.0000.000
RBI1.0000.000
SLG0.408-0.031
SO1.0000.000
12. market_blend

Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated

MetricValueDelta vs Prev Step
13. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

MetricValueDelta vs Prev Step
2B0.000-1.000
3B0.0000.000
AB5.0001.000
BB0.0000.000
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA5.000-
R0.0000.000
RBI0.000-1.000
SF0.0000.000
SO2.0001.000
14. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB5.0000.000
BB0.0000.000
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA5.0000.000
R0.0000.000
RBI0.0000.000
SF0.0000.000
SO2.0000.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 154
Reference playing time: 4.260
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.0001.0002.0001.0004.0000.27780.31580.44440.27780.05560.05560.05560.2222
last_100.2010-40.0009.0000.0000.0001.0004.0002.0001.00011.0000.22500.24390.30000.22500.02500.10000.02500.2750
season0.60154-582.000169.00032.0001.00017.00069.00076.00067.000115.0000.29040.36520.43640.29040.02920.11860.11510.1976
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1270
predicted_3B0.0040
predicted_AB3.7880
predicted_AVG0.2736
predicted_BB0.3200
predicted_H1.0370
predicted_HBP0.0200
predicted_HR0.1280
predicted_OBP0.3299
predicted_R0.4220
predicted_RBI0.3910
predicted_SLG0.4106
predicted_SO0.8270
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.20800.12700.1726model_form_blend
predicted_3B0.00600.00400.0051model_form_blend
predicted_AB4.26003.78804.0536model_form_blend
predicted_AVG0.26100.27360.2665model_form_blend
predicted_BB0.43500.32000.3847model_form_blend
predicted_H1.11001.03701.0781model_form_blend
predicted_HBP-0.02000.0200form_only
predicted_HR0.18000.12800.1573model_form_blend
predicted_OBP0.32800.32990.3288model_form_blend
predicted_R0.49400.42200.4625model_form_blend
predicted_RBI0.50000.39100.4523model_form_blend
predicted_SLG0.42600.41060.4193model_form_blend
predicted_SO0.74700.82700.7820model_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 date626
Season rows before report date626
Report year2026
Profile rows used154
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

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_HR1
Hitting_IBB0
Hitting_R1
Hitting_RBI1
Hitting_SAC0
Hitting_SF0
Hitting_SO1
Hitting_TB5
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
allPositionsPlayed1B
gameID20261004_ATL@LAD
game_typefull
mlbID518692
playerID518692
playerNameFreddie Freeman
pos1B
startedTrue
startingPosition1B
teamLAD
teamID14
game_date2026-10-04
sl_k_percent17.7
sl_bb_percent10.0
sl_woba0.348
sl_xwoba0.363
sl_xba0.29
sl_xslg0.463
sl_sweet_spot_percent38.7
sl_barrel_batted_rate8.1
sl_hard_hit_percent41.3
sl_exit_velocity_avg89.5
sl_launch_angle_avg12.2
sl_whiff_percent23.2
sl_swing_percent50.1
Teoscar Hernández (606192) · BATTER · LF · Team LAD
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 460
All-history rows before 20261006: 460
System season_avg: 0.2670
Data season_avg (2026 season-to-date): 0.2659
Diff (system - data): 0.0011
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.1360.0000.000Hitting_2B0.1390.000-0.1390.000
predicted_3B0.0160.0000.000Hitting_3B0.0170.000-0.0170.000
predicted_AB4.2205.0005.000Hitting_AB3.6634.0001.3371.000
predicted_AVG0.2250.2000.200Hitting_AVG0.2660.000-0.0660.200
predicted_BB0.3280.0000.000Hitting_BB0.3760.000-0.3760.000
predicted_CS-0.0000.000BaseRunning_CS0.0090.000-0.0090.000
predicted_H0.9501.0001.000Hitting_H0.9740.0000.0261.000
predicted_HR0.2000.0000.000Hitting_HR0.1300.000-0.1300.000
predicted_OBP0.2850.2000.200Hitting_OBP0.3370.000-0.1370.200
predicted_R0.5361.0001.000Hitting_R0.5540.0000.4461.000
predicted_RBI0.5200.0000.000Hitting_RBI0.5500.000-0.5500.000
predicted_SLG0.4400.2000.200Hitting_SLG0.4200.000-0.2200.200
predicted_SO1.0961.0001.000Hitting_SO1.0932.000-0.093-1.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_AB: 4.2200 -> 5.0000 (boost 0.7800, better)
Biggest Deboostpredicted_RBI: 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_blend64233predicted_SO: 1.0960 -> 1.1471 (boost 0.0511, worse)predicted_AB: 4.2200 -> 3.9648 (deboost -0.2552, 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.4530 -> 0.4365 (deboost -0.0165, 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_scaling50514-predicted_RBI: 0.5228 -> 0.0000 (deboost -0.5228, worse)AB rounded to 4 (raw=4.22), rates preserved: AVG=0.217 HR/AB=0.047
6bvp_blend00000--Sample-size BvP blend (BvP AB=24.0, weight=0.178, BvP AVG=0.208)
7consistency_constraints11010predicted_R: 0.5687 -> 1.0000 (boost 0.4313, better)-Enforced H<=AB, HR<=H, safety nets, derived R
8hitter_rate_engine65142predicted_RBI: 0.0000 -> 0.4969 (boost 0.4969, better)predicted_H: 1.0000 -> 0.9177 (deboost -0.0823, 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_allocation83544predicted_2B: 0.1794 -> 1.0000 (boost 0.8206, better)predicted_RBI: 0.4969 -> 0.0000 (deboost -0.4969, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
10embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
11kpi_run_environment40404-predicted_2B: 1.0000 -> 0.0000 (deboost -1.0000, worse)KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup
12market_blend00000--Market blend not applied: no props for this hitter
13play_by_play_realization11010predicted_AB: 4.0000 -> 5.0000 (boost 1.0000, better)-Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
14simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
15current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "606192",
  "player_name": "Teoscar Hernández",
  "position": "LF",
  "team": "LAD",
  "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.016,
        "predicted_AB": 4.22,
        "predicted_AVG": 0.225,
        "predicted_BB": 0.328,
        "predicted_H": 0.95,
        "predicted_HR": 0.2,
        "predicted_OBP": 0.285,
        "predicted_R": 0.536,
        "predicted_RBI": 0.52,
        "predicted_SLG": 0.44,
        "predicted_SO": 1.096
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "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.1395,
        "predicted_3B": 0.0134,
        "predicted_AB": 3.9648,
        "predicted_AVG": 0.2409,
        "predicted_BB": 0.2738,
        "predicted_H": 0.95,
        "predicted_HBP": 0.038,
        "predicted_HR": 0.1991,
        "predicted_OBP": 0.2938,
        "predicted_R": 0.5533,
        "predicted_RBI": 0.5087,
        "predicted_SLG": 0.453,
        "predicted_SO": 1.1471
      },
      "changed_metrics": [
        {
          "metric": "predicted_AB",
          "before": 4.22,
          "after": 3.9648,
          "delta": -0.2552,
          "percent_delta": -0.0605,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.225,
          "after": 0.2409,
          "delta": 0.0159,
          "percent_delta": 0.0707,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.328,
          "after": 0.2738,
          "delta": -0.0542,
          "percent_delta": -0.1652,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.285,
          "after": 0.2938,
          "delta": 0.0088,
          "percent_delta": 0.0309,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.44,
          "after": 0.453,
          "delta": 0.013,
          "percent_delta": 0.0295,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.096,
          "after": 1.1471,
          "delta": 0.0511,
          "percent_delta": 0.0466,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 6,
        "boosted_metrics": 4,
        "deboosted_metrics": 2,
        "better_metrics": 3,
        "worse_metrics": 3,
        "biggest_boost": {
          "metric": "predicted_SO",
          "before": 1.096,
          "after": 1.1471,
          "delta": 0.0511,
          "percent_delta": 0.0466,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 4.22,
          "after": 3.9648,
          "delta": -0.2552,
          "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": 125
      }
    },
    {
      "index": 3,
      "step": "team_form_snapshot",
      "description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
      "stats": {
        "predicted_2B": 0.1395,
        "predicted_3B": 0.0134,
        "predicted_AB": 3.9648,
        "predicted_AVG": 0.243,
        "predicted_BB": 0.2766,
        "predicted_H": 0.9635,
        "predicted_HBP": 0.038,
        "predicted_HR": 0.2003,
        "predicted_OBP": 0.2924,
        "predicted_R": 0.5687,
        "predicted_RBI": 0.5228,
        "predicted_SLG": 0.4365,
        "predicted_SO": 1.1355
      },
      "changed_metrics": [
        {
          "metric": "predicted_SLG",
          "before": 0.453,
          "after": 0.4365,
          "delta": -0.0165,
          "percent_delta": -0.0364,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 0,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 1,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_SLG",
          "before": 0.453,
          "after": 0.4365,
          "delta": -0.0165,
          "percent_delta": -0.0364,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 4 (raw=4.22), rates preserved: AVG=0.217 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": 0.0,
        "predicted_SB": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1395,
          "after": 0.0,
          "delta": -0.1395,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.2766,
          "after": 0.0,
          "delta": -0.2766,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.2003,
          "after": 0.0,
          "delta": -0.2003,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5228,
          "after": 0.0,
          "delta": -0.5228,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.1355,
          "after": 1.0,
          "delta": -0.1355,
          "percent_delta": -0.1193,
          "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": 0.5228,
          "after": 0.0,
          "delta": -0.5228,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 6,
      "step": "bvp_blend",
      "description": "Sample-size BvP blend (BvP AB=24.0, weight=0.178, BvP AVG=0.208)",
      "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": [],
      "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.8222,
        "bvp": 0.1778
      }
    },
    {
      "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_R",
          "before": 0.5687,
          "after": 1.0,
          "delta": 0.4313,
          "percent_delta": 0.7584,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 1,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_R",
          "before": 0.5687,
          "after": 1.0,
          "delta": 0.4313,
          "percent_delta": 0.7584,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "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.1794,
        "predicted_3B": 0.0142,
        "predicted_BB": 0.2779,
        "predicted_H": 0.9177,
        "predicted_HR": 0.1494,
        "predicted_RBI": 0.4969,
        "predicted_SO": 1.3223
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1794,
          "delta": 0.1794,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.2779,
          "delta": 0.2779,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.9177,
          "delta": -0.0823,
          "percent_delta": -0.0823,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1494,
          "delta": 0.1494,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.4969,
          "delta": 0.4969,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 1.3223,
          "delta": 0.3223,
          "percent_delta": 0.3223,
          "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.4969,
          "delta": 0.4969,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.9177,
          "delta": -0.0823,
          "percent_delta": -0.0823,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_AVG": 0.247,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.305,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.423,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1794,
          "after": 1.0,
          "delta": 0.8206,
          "percent_delta": 4.5741,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.2779,
          "after": 0.0,
          "delta": -0.2779,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.9177,
          "after": 1.0,
          "delta": 0.0823,
          "percent_delta": 0.0897,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1494,
          "after": 0.0,
          "delta": -0.1494,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2924,
          "after": 0.305,
          "delta": 0.0126,
          "percent_delta": 0.0431,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4969,
          "after": 0.0,
          "delta": -0.4969,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4365,
          "after": 0.423,
          "delta": -0.0135,
          "percent_delta": -0.0309,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.3223,
          "after": 1.0,
          "delta": -0.3223,
          "percent_delta": -0.2437,
          "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_2B",
          "before": 0.1794,
          "after": 1.0,
          "delta": 0.8206,
          "percent_delta": 4.5741,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.4969,
          "after": 0.0,
          "delta": -0.4969,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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": 1.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.305,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.423,
        "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
      }
    },
    {
      "index": 11,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup",
      "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.285,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.394,
        "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_AVG",
          "before": 0.247,
          "after": 0.23,
          "delta": -0.017,
          "percent_delta": -0.0688,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.305,
          "after": 0.285,
          "delta": -0.02,
          "percent_delta": -0.0656,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.423,
          "after": 0.394,
          "delta": -0.029,
          "percent_delta": -0.0686,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 4,
        "boosted_metrics": 0,
        "deboosted_metrics": 4,
        "better_metrics": 0,
        "worse_metrics": 4,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_2B",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 12,
      "step": "market_blend",
      "description": "Market blend not applied: no props for this hitter",
      "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
      }
    },
    {
      "index": 13,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 5.0,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AB",
          "before": 4.0,
          "after": 5.0,
          "delta": 1.0,
          "percent_delta": 0.25,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 1,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_AB",
          "before": 4.0,
          "after": 5.0,
          "delta": 1.0,
          "percent_delta": 0.25,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "index": 14,
      "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_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.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
      },
      "reference_only": true
    },
    {
      "index": 15,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 5.0,
        "predicted_AVG": 0.23,
        "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.285,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.394,
        "predicted_SO": 1.0,
        "predicted_TB": 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
      }
    }
  ],
  "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_AB",
        "before": 4.22,
        "after": 5.0,
        "delta": 0.78,
        "percent_delta": 0.1848,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.225,
        "after": 0.23,
        "delta": 0.005,
        "percent_delta": 0.0222,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.328,
        "after": 0.0,
        "delta": -0.328,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.95,
        "after": 1.0,
        "delta": 0.05,
        "percent_delta": 0.0526,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.2,
        "after": 0.0,
        "delta": -0.2,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.536,
        "after": 1.0,
        "delta": 0.464,
        "percent_delta": 0.8657,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.52,
        "after": 0.0,
        "delta": -0.52,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.44,
        "after": 0.394,
        "delta": -0.046,
        "percent_delta": -0.1045,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 1.096,
        "after": 1.0,
        "delta": -0.096,
        "percent_delta": -0.0876,
        "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_AB",
        "before": 4.22,
        "after": 5.0,
        "delta": 0.78,
        "percent_delta": 0.1848,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_RBI",
        "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": "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.136-
predicted_3B0.016-
predicted_AB4.220-
predicted_AVG0.225-
predicted_BB0.328-
predicted_H0.950-
predicted_HR0.200-
predicted_OBP0.285-
predicted_R0.536-
predicted_RBI0.520-
predicted_SLG0.440-
predicted_SO1.096-
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.013-0.003
predicted_AB3.965-0.255
predicted_AVG0.2410.016
predicted_BB0.274-0.054
predicted_H0.9500.000
predicted_HBP0.038-
predicted_HR0.199-0.001
predicted_OBP0.2940.009
predicted_R0.5530.017
predicted_RBI0.509-0.011
predicted_SLG0.4530.013
predicted_SO1.1470.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.1400.000
predicted_3B0.0130.000
predicted_AB3.9650.000
predicted_AVG0.2430.002
predicted_BB0.2770.003
predicted_H0.9640.014
predicted_HBP0.0380.000
predicted_HR0.2000.001
predicted_OBP0.292-0.001
predicted_R0.5690.015
predicted_RBI0.5230.014
predicted_SLG0.436-0.017
predicted_SO1.135-0.012
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.22), rates preserved: AVG=0.217 HR/AB=0.047

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=24.0, weight=0.178, BvP AVG=0.208)

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.1790.179
3B0.0140.014
BB0.2780.278
H0.918-0.082
HR0.1490.149
RBI0.4970.497
SO1.3220.322
9. lineup_integer_allocation

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

MetricValueDelta vs Prev Step
2B1.0000.821
3B0.000-0.014
AB4.0000.000
AVG0.247-
BB0.000-0.278
H1.0000.082
HR0.000-0.149
OBP0.305-
R1.0000.000
RBI0.000-0.497
SLG0.423-
SO1.000-0.322
10. embedded_savant_player_context

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

MetricValueDelta vs Prev Step
predicted_2B1.0000.861
predicted_3B0.000-0.013
predicted_AB4.0000.035
predicted_AVG0.2470.004
predicted_BB0.000-0.277
predicted_H1.0000.036
predicted_HR0.000-0.200
predicted_OBP0.3050.013
predicted_R1.0000.431
predicted_RBI0.000-0.523
predicted_SLG0.423-0.014
predicted_SO1.000-0.135
11. kpi_run_environment

KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B0.000-1.000
3B0.0000.000
AB4.0000.000
AVG0.230-0.017
BB0.0000.000
H1.0000.000
HR0.0000.000
OBP0.285-0.020
R1.0000.000
RBI0.0000.000
SLG0.394-0.029
SO1.0000.000
12. market_blend

Market blend not applied: no props for this hitter

MetricValueDelta vs Prev Step
13. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB5.0001.000
BB0.0000.000
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA5.000-
R1.0000.000
RBI0.0000.000
SF0.0000.000
SO1.0000.000
14. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB5.0000.000
BB0.0000.000
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA5.0000.000
R1.0000.000
RBI0.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: 125
Reference playing time: 4.220
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.0001.0000.0002.0003.0003.0000.0007.0000.22220.22220.61110.22220.11110.16670.00000.3889
last_100.2010-38.00011.0001.0000.0002.0003.0007.0000.00015.0000.28950.30770.47370.28950.05260.07900.00000.3947
season0.60125-446.000119.00017.0002.00017.00065.00067.00041.000137.0000.26680.33200.42830.26680.03810.14570.09190.3072
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1440
predicted_3B0.0100
predicted_AB3.6310
predicted_AVG0.2616
predicted_BB0.2030
predicted_H0.9500
predicted_HBP0.0380
predicted_HR0.1980
predicted_OBP0.3052
predicted_R0.5760
predicted_RBI0.4940
predicted_SLG0.4701
predicted_SO1.2140
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.13600.14400.1395model_form_blend
predicted_3B0.01600.01000.0134model_form_blend
predicted_AB4.22003.63103.9648model_form_blend
predicted_AVG0.22500.26160.2409model_form_blend
predicted_BB0.32800.20300.2738model_form_blend
predicted_H0.95000.95000.9500model_form_blend
predicted_HBP-0.03800.0380form_only
predicted_HR0.20000.19800.1991model_form_blend
predicted_OBP0.28500.30520.2938model_form_blend
predicted_R0.53600.57600.5533model_form_blend
predicted_RBI0.52000.49400.5087model_form_blend
predicted_SLG0.44000.47010.4530model_form_blend
predicted_SO1.09601.21401.1471model_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 date460
Season rows before report date460
Report year2026
Profile rows used125
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
R1
RBI0
BB0
SO1
SF0
HBP0

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_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
allPositionsPlayedLF
gameID20261004_ATL@LAD
game_typefull
mlbID606192
playerID606192
playerNameTeoscar Hernández
posLF
startedTrue
startingPositionLF
teamLAD
teamID14
game_date2026-10-04
sl_k_percent27.5
sl_bb_percent8.6
sl_woba0.332
sl_xwoba0.332
sl_xba0.256
sl_xslg0.437
sl_sweet_spot_percent33.5
sl_barrel_batted_rate10.7
sl_hard_hit_percent44.8
sl_exit_velocity_avg90.3
sl_launch_angle_avg13.9
sl_whiff_percent32.6
sl_swing_percent48.0
Will Smith (669257) · BATTER · C · Team LAD
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 255
All-history rows before 20261006: 255
System season_avg: 0.2510
Data season_avg (2026 season-to-date): 0.2508
Diff (system - data): 0.0002
System opponent_avg: 0.0750

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1250.0000.000Hitting_2B0.1570.000-0.1570.000
predicted_3B0.0000.0000.000Hitting_3B0.0000.0000.0000.000
predicted_AB3.9005.0005.000Hitting_AB3.5964.0001.4041.000
predicted_AVG0.2560.4000.400Hitting_AVG0.2510.0000.1490.400
predicted_BB0.4440.0000.000Hitting_BB0.4940.000-0.4940.000
predicted_CS-0.0000.000BaseRunning_CS0.0000.0000.0000.000
predicted_H1.0002.0002.000Hitting_H0.9020.0001.0982.000
predicted_HR0.1600.0000.000Hitting_HR0.1220.000-0.1220.000
predicted_OBP0.3550.4000.400Hitting_OBP0.3450.0000.0550.400
predicted_R0.4860.0000.000Hitting_R0.5330.000-0.5330.000
predicted_RBI0.4800.0000.000Hitting_RBI0.5250.000-0.5250.000
predicted_SLG0.4190.4000.400Hitting_SLG0.3960.0000.0040.400
predicted_SO0.6530.0000.000Hitting_SO0.6782.000-0.678-2.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics11
Boosted Metrics2
Deboosted Metrics9
Better Metrics3
Worse Metrics8
Biggest Boostpredicted_AB: 3.9000 -> 5.0000 (boost 1.1000, better)
Biggest Deboostpredicted_SO: 0.6530 -> 0.0000 (deboost -0.6530, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend21111predicted_AVG: 0.2560 -> 0.2641 (boost 0.0081, better)predicted_AB: 3.9000 -> 3.7072 (deboost -0.1928, 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.3587 -> 0.3481 (deboost -0.0106, 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_scaling62415predicted_SO: 0.6686 -> 1.0000 (boost 0.3314, worse)predicted_BB: 0.4587 -> 0.0000 (deboost -0.4587, worse)AB rounded to 4 (raw=3.90), rates preserved: AVG=0.242 HR/AB=0.039
6bvp_blend00000--Sample-size BvP blend (BvP AB=7.0, weight=0.076, BvP AVG=0.000)
7consistency_constraints10101-predicted_R: 0.4787 -> 0.0000 (deboost -0.4787, worse)Enforced H<=AB, HR<=H, safety nets, derived R
8hitter_rate_engine64251predicted_RBI: 0.0000 -> 0.4456 (boost 0.4456, better)predicted_H: 1.0000 -> 0.8336 (deboost -0.1664, 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_allocation93627predicted_BB: 0.3423 -> 1.0000 (boost 0.6577, better)predicted_RBI: 0.4456 -> 0.0000 (deboost -0.4456, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
10embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
11kpi_run_environment30303-predicted_SLG: 0.3920 -> 0.3640 (deboost -0.0280, worse)KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup
12market_blend00000--Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated
13play_by_play_realization42231predicted_AB: 4.0000 -> 5.0000 (boost 1.0000, better)predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse)Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
14simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
15current_json_final33030predicted_SLG: 0.3640 -> 0.3770 (boost 0.0130, better)-Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "669257",
  "player_name": "Will Smith",
  "position": "C",
  "team": "LAD",
  "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.9,
        "predicted_AVG": 0.256,
        "predicted_BB": 0.444,
        "predicted_H": 1.0,
        "predicted_HR": 0.16,
        "predicted_OBP": 0.355,
        "predicted_R": 0.486,
        "predicted_RBI": 0.48,
        "predicted_SLG": 0.419,
        "predicted_SO": 0.653
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "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.1153,
        "predicted_3B": 0.0004,
        "predicted_AB": 3.7072,
        "predicted_AVG": 0.2641,
        "predicted_BB": 0.4541,
        "predicted_H": 0.9776,
        "predicted_HBP": 0.026,
        "predicted_HR": 0.1524,
        "predicted_OBP": 0.3587,
        "predicted_R": 0.4658,
        "predicted_RBI": 0.4395,
        "predicted_SLG": 0.4233,
        "predicted_SO": 0.6754
      },
      "changed_metrics": [
        {
          "metric": "predicted_AB",
          "before": 3.9,
          "after": 3.7072,
          "delta": -0.1928,
          "percent_delta": -0.0494,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.256,
          "after": 0.2641,
          "delta": 0.0081,
          "percent_delta": 0.0316,
          "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_AVG",
          "before": 0.256,
          "after": 0.2641,
          "delta": 0.0081,
          "percent_delta": 0.0316,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 3.9,
          "after": 3.7072,
          "delta": -0.1928,
          "percent_delta": -0.0494,
          "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.1153,
        "predicted_3B": 0.0004,
        "predicted_AB": 3.7072,
        "predicted_AVG": 0.2674,
        "predicted_BB": 0.4587,
        "predicted_H": 0.9915,
        "predicted_HBP": 0.026,
        "predicted_HR": 0.1533,
        "predicted_OBP": 0.3481,
        "predicted_R": 0.4787,
        "predicted_RBI": 0.4517,
        "predicted_SLG": 0.4228,
        "predicted_SO": 0.6686
      },
      "changed_metrics": [
        {
          "metric": "predicted_OBP",
          "before": 0.3587,
          "after": 0.3481,
          "delta": -0.0106,
          "percent_delta": -0.0296,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 0,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 1,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_OBP",
          "before": 0.3587,
          "after": 0.3481,
          "delta": -0.0106,
          "percent_delta": -0.0296,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 4 (raw=3.90), rates preserved: AVG=0.242 HR/AB=0.039",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1153,
          "after": 0.0,
          "delta": -0.1153,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AB",
          "before": 3.7072,
          "after": 4.0,
          "delta": 0.2928,
          "percent_delta": 0.079,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.4587,
          "after": 0.0,
          "delta": -0.4587,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1533,
          "after": 0.0,
          "delta": -0.1533,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4517,
          "after": 0.0,
          "delta": -0.4517,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.6686,
          "after": 1.0,
          "delta": 0.3314,
          "percent_delta": 0.4957,
          "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.6686,
          "after": 1.0,
          "delta": 0.3314,
          "percent_delta": 0.4957,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.4587,
          "after": 0.0,
          "delta": -0.4587,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 6,
      "step": "bvp_blend",
      "description": "Sample-size BvP blend (BvP AB=7.0, weight=0.076, BvP AVG=0.000)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_RBI": 0.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": {
        "model_expectation": 0.9243,
        "bvp": 0.0757
      }
    },
    {
      "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_R",
          "before": 0.4787,
          "after": 0.0,
          "delta": -0.4787,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 0,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 1,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_R",
          "before": 0.4787,
          "after": 0.0,
          "delta": -0.4787,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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.1541,
        "predicted_3B": 0.0108,
        "predicted_BB": 0.3423,
        "predicted_H": 0.8336,
        "predicted_HR": 0.1383,
        "predicted_RBI": 0.4456,
        "predicted_SO": 0.8571
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1541,
          "delta": 0.1541,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.3423,
          "delta": 0.3423,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8336,
          "delta": -0.1664,
          "percent_delta": -0.1664,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1383,
          "delta": 0.1383,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.4456,
          "delta": 0.4456,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.8571,
          "delta": -0.1429,
          "percent_delta": -0.1429,
          "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.4456,
          "delta": 0.4456,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8336,
          "delta": -0.1664,
          "percent_delta": -0.1664,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_AVG": 0.229,
        "predicted_BB": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.301,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.392,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1541,
          "after": 0.0,
          "delta": -0.1541,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2674,
          "after": 0.229,
          "delta": -0.0384,
          "percent_delta": -0.1436,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3423,
          "after": 1.0,
          "delta": 0.6577,
          "percent_delta": 1.9214,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8336,
          "after": 1.0,
          "delta": 0.1664,
          "percent_delta": 0.1996,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1383,
          "after": 0.0,
          "delta": -0.1383,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3481,
          "after": 0.301,
          "delta": -0.0471,
          "percent_delta": -0.1353,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4456,
          "after": 0.0,
          "delta": -0.4456,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4228,
          "after": 0.392,
          "delta": -0.0308,
          "percent_delta": -0.0728,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.8571,
          "after": 1.0,
          "delta": 0.1429,
          "percent_delta": 0.1667,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 9,
        "boosted_metrics": 3,
        "deboosted_metrics": 6,
        "better_metrics": 2,
        "worse_metrics": 7,
        "biggest_boost": {
          "metric": "predicted_BB",
          "before": 0.3423,
          "after": 1.0,
          "delta": 0.6577,
          "percent_delta": 1.9214,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.4456,
          "after": 0.0,
          "delta": -0.4456,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 10,
      "step": "embedded_savant_player_context",
      "description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.229,
        "predicted_BB": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.301,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.392,
        "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
      }
    },
    {
      "index": 11,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.213,
        "predicted_BB": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.282,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.364,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.229,
          "after": 0.213,
          "delta": -0.016,
          "percent_delta": -0.0699,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.301,
          "after": 0.282,
          "delta": -0.019,
          "percent_delta": -0.0631,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.392,
          "after": 0.364,
          "delta": -0.028,
          "percent_delta": -0.0714,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.392,
          "after": 0.364,
          "delta": -0.028,
          "percent_delta": -0.0714,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 12,
      "step": "market_blend",
      "description": "Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated",
      "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
      }
    },
    {
      "index": 13,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 5.0,
        "predicted_BB": 0.0,
        "predicted_H": 2.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.0,
        "predicted_SO": 0.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AB",
          "before": 4.0,
          "after": 5.0,
          "delta": 1.0,
          "percent_delta": 0.25,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 2.0,
          "delta": 1.0,
          "percent_delta": 1.0,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 4,
        "boosted_metrics": 2,
        "deboosted_metrics": 2,
        "better_metrics": 3,
        "worse_metrics": 1,
        "biggest_boost": {
          "metric": "predicted_AB",
          "before": 4.0,
          "after": 5.0,
          "delta": 1.0,
          "percent_delta": 0.25,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 14,
      "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_H": 2.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.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
      },
      "reference_only": true
    },
    {
      "index": 15,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 5.0,
        "predicted_AVG": 0.218,
        "predicted_BB": 0.0,
        "predicted_C": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 2.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.294,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.377,
        "predicted_SO": 0.0,
        "predicted_TB": 2.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.213,
          "after": 0.218,
          "delta": 0.005,
          "percent_delta": 0.0235,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.282,
          "after": 0.294,
          "delta": 0.012,
          "percent_delta": 0.0426,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.364,
          "after": 0.377,
          "delta": 0.013,
          "percent_delta": 0.0357,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 3,
        "boosted_metrics": 3,
        "deboosted_metrics": 0,
        "better_metrics": 3,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_SLG",
          "before": 0.364,
          "after": 0.377,
          "delta": 0.013,
          "percent_delta": 0.0357,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    }
  ],
  "total_change": {
    "from_step": "xgboost_raw",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_2B",
        "before": 0.125,
        "after": 0.0,
        "delta": -0.125,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AB",
        "before": 3.9,
        "after": 5.0,
        "delta": 1.1,
        "percent_delta": 0.2821,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.256,
        "after": 0.218,
        "delta": -0.038,
        "percent_delta": -0.1484,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.444,
        "after": 0.0,
        "delta": -0.444,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "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_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.355,
        "after": 0.294,
        "delta": -0.061,
        "percent_delta": -0.1718,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.486,
        "after": 0.0,
        "delta": -0.486,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.48,
        "after": 0.0,
        "delta": -0.48,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.419,
        "after": 0.377,
        "delta": -0.042,
        "percent_delta": -0.1002,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.653,
        "after": 0.0,
        "delta": -0.653,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 11,
      "boosted_metrics": 2,
      "deboosted_metrics": 9,
      "better_metrics": 3,
      "worse_metrics": 8,
      "biggest_boost": {
        "metric": "predicted_AB",
        "before": 3.9,
        "after": 5.0,
        "delta": 1.1,
        "percent_delta": 0.2821,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_SO",
        "before": 0.653,
        "after": 0.0,
        "delta": -0.653,
        "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.125-
predicted_3B0.000-
predicted_AB3.900-
predicted_AVG0.256-
predicted_BB0.444-
predicted_H1.000-
predicted_HR0.160-
predicted_OBP0.355-
predicted_R0.486-
predicted_RBI0.480-
predicted_SLG0.419-
predicted_SO0.653-
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.115-0.010
predicted_3B0.0000.000
predicted_AB3.707-0.193
predicted_AVG0.2640.008
predicted_BB0.4540.010
predicted_H0.978-0.022
predicted_HBP0.026-
predicted_HR0.152-0.008
predicted_OBP0.3590.004
predicted_R0.466-0.020
predicted_RBI0.440-0.040
predicted_SLG0.4230.004
predicted_SO0.6750.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.1150.000
predicted_3B0.0000.000
predicted_AB3.7070.000
predicted_AVG0.2670.003
predicted_BB0.4590.005
predicted_H0.9920.014
predicted_HBP0.0260.000
predicted_HR0.1530.001
predicted_OBP0.348-0.011
predicted_R0.4790.013
predicted_RBI0.4520.012
predicted_SLG0.423-0.001
predicted_SO0.669-0.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=3.90), rates preserved: AVG=0.242 HR/AB=0.039

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=7.0, weight=0.076, BvP AVG=0.000)

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.1540.154
3B0.0110.011
BB0.3420.342
H0.834-0.166
HR0.1380.138
RBI0.4460.446
SO0.857-0.143
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.011
AB4.0000.000
AVG0.229-
BB1.0000.658
H1.0000.166
HR0.000-0.138
OBP0.301-
R0.0000.000
RBI0.000-0.446
SLG0.392-
SO1.0000.143
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.115
predicted_3B0.000-0.000
predicted_AB4.0000.293
predicted_AVG0.229-0.038
predicted_BB1.0000.541
predicted_H1.0000.008
predicted_HR0.000-0.153
predicted_OBP0.301-0.047
predicted_R0.000-0.479
predicted_RBI0.000-0.452
predicted_SLG0.392-0.031
predicted_SO1.0000.331
11. kpi_run_environment

KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
AVG0.213-0.016
BB1.0000.000
H1.0000.000
HR0.0000.000
OBP0.282-0.019
R0.0000.000
RBI0.0000.000
SLG0.364-0.028
SO1.0000.000
12. market_blend

Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated

MetricValueDelta vs Prev Step
13. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB5.0001.000
BB0.000-1.000
H2.0001.000
HBP0.0000.000
HR0.0000.000
PA5.000-
R0.0000.000
RBI0.0000.000
SF0.0000.000
SO0.000-1.000
14. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB5.0000.000
BB0.0000.000
H2.0000.000
HBP0.0000.000
HR0.0000.000
PA5.0000.000
R0.0000.000
RBI0.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: 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-17.0005.0000.0000.0000.0000.0001.0003.0004.0000.29410.40000.29410.29410.00000.00000.17650.2353
last_100.2010-35.00012.0001.0000.0003.0005.0005.0005.0007.0000.34290.42500.62860.34290.08570.14290.14290.2000
season0.6072-243.00061.0009.0000.00010.00033.00035.00032.00047.0000.25100.34160.41150.25100.04110.13580.13170.1934
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1020
predicted_3B0.0010
predicted_AB3.4430
predicted_AVG0.2751
predicted_BB0.4680
predicted_H0.9470
predicted_HBP0.0260
predicted_HR0.1420
predicted_OBP0.3637
predicted_R0.4380
predicted_RBI0.3840
predicted_SLG0.4291
predicted_SO0.7060
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.12500.10200.1153model_form_blend
predicted_3B0.00000.00100.0004model_form_blend
predicted_AB3.90003.44303.7072model_form_blend
predicted_AVG0.25600.27510.2641model_form_blend
predicted_BB0.44400.46800.4541model_form_blend
predicted_H1.00000.94700.9776model_form_blend
predicted_HBP-0.02600.0260form_only
predicted_HR0.16000.14200.1524model_form_blend
predicted_OBP0.35500.36370.3587model_form_blend
predicted_R0.48600.43800.4658model_form_blend
predicted_RBI0.48000.38400.4395model_form_blend
predicted_SLG0.41900.42910.4233model_form_blend
predicted_SO0.65300.70600.6754model_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 date255
Season rows before report date255
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
H2
2B0
3B0
HR0
R0
RBI0
BB0
SO0
SF0
HBP0

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
allPositionsPlayedC
gameID20261004_ATL@LAD
game_typefull
mlbID669257
playerID669257
playerNameWill Smith
posC
startedTrue
startingPositionC
teamLAD
teamID14
game_date2026-10-04
sl_k_percent16.3
sl_bb_percent12.3
sl_woba0.345
sl_xwoba0.389
sl_xba0.279
sl_xslg0.502
sl_sweet_spot_percent43.3
sl_barrel_batted_rate12.4
sl_hard_hit_percent41.2
sl_exit_velocity_avg89.1
sl_launch_angle_avg20.1
sl_whiff_percent16.7
sl_swing_percent41.6
Shohei Ohtani (660271) · BATTER · DH · Team LAD
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 604
All-history rows before 20261006: 604
System season_avg: 0.2740
Data season_avg (2026 season-to-date): 0.2787
Diff (system - data): -0.0047
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.1840.0000.000Hitting_2B0.1850.000-0.1850.000
predicted_3B0.0290.0000.000Hitting_3B0.0330.000-0.0330.000
predicted_AB3.8685.0005.000Hitting_AB3.9024.0001.0981.000
predicted_AVG0.2740.2000.200Hitting_AVG0.2790.250-0.079-0.050
predicted_BB0.5960.0000.000Hitting_BB0.6370.000-0.6370.000
predicted_CS-0.0000.000BaseRunning_CS0.0220.000-0.0220.000
predicted_H1.0591.0001.000Hitting_H1.0881.000-0.0880.000
predicted_HR0.2210.0000.000Hitting_HR0.2300.000-0.2300.000
predicted_OBP0.3710.2000.200Hitting_OBP0.3840.250-0.184-0.050
predicted_R0.6470.0000.000Hitting_R0.6890.000-0.6890.000
predicted_RBI0.5811.0001.000Hitting_RBI0.6310.0000.3691.000
predicted_SLG0.5080.2000.200Hitting_SLG0.5200.250-0.320-0.050
predicted_SO1.1251.0001.000Hitting_SO1.1362.000-0.136-1.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics12
Boosted Metrics2
Deboosted Metrics10
Better Metrics3
Worse Metrics9
Biggest Boostpredicted_AB: 3.8680 -> 5.0000 (boost 1.1320, better)
Biggest Deboostpredicted_R: 0.6470 -> 0.0000 (deboost -0.6470, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend71607predicted_SO: 1.1250 -> 1.1822 (boost 0.0572, worse)predicted_RBI: 0.5810 -> 0.4911 (deboost -0.0899, 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_scaling71625predicted_AB: 3.8719 -> 4.0000 (boost 0.1281, better)predicted_BB: 0.5297 -> 0.0000 (deboost -0.5297, worse)AB rounded to 4 (raw=3.87), rates preserved: AVG=0.252 HR/AB=0.047
6bvp_blend00000--Sample-size BvP blend (BvP AB=15.0, weight=0.133, BvP AVG=0.200)
7consistency_constraints11010predicted_R: 0.5779 -> 1.0000 (boost 0.4221, better)-Enforced H<=AB, HR<=H, safety nets, derived R
8hitter_rate_engine65142predicted_RBI: 0.0000 -> 0.5272 (boost 0.5272, better)predicted_H: 1.0000 -> 0.9442 (deboost -0.0558, 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_allocation93645predicted_BB: 0.3538 -> 1.0000 (boost 0.6462, better)predicted_SO: 1.2700 -> 1.0000 (deboost -0.2700, better)Lineup-level largest-remainder allocation so team totals match the summed model expectation
10embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
11kpi_run_environment30303-predicted_SLG: 0.4410 -> 0.4100 (deboost -0.0310, worse)KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup
12market_blend00000--Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated
13play_by_play_realization31212predicted_AB: 4.0000 -> 5.0000 (boost 1.0000, better)predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse)Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
14simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
15current_json_final20202-predicted_AVG: 0.2330 -> 0.2210 (deboost -0.0120, worse)Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "660271",
  "player_name": "Shohei Ohtani",
  "position": "DH",
  "team": "LAD",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.184,
        "predicted_3B": 0.029,
        "predicted_AB": 3.868,
        "predicted_AVG": 0.274,
        "predicted_BB": 0.596,
        "predicted_H": 1.059,
        "predicted_HR": 0.221,
        "predicted_OBP": 0.371,
        "predicted_R": 0.647,
        "predicted_RBI": 0.581,
        "predicted_SLG": 0.508,
        "predicted_SO": 1.125
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "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.1617,
        "predicted_3B": 0.0242,
        "predicted_AB": 3.8719,
        "predicted_AVG": 0.262,
        "predicted_BB": 0.5244,
        "predicted_H": 1.0136,
        "predicted_HBP": 0.07,
        "predicted_HR": 0.1826,
        "predicted_OBP": 0.352,
        "predicted_R": 0.5623,
        "predicted_RBI": 0.4911,
        "predicted_SLG": 0.4576,
        "predicted_SO": 1.1822
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.274,
          "after": 0.262,
          "delta": -0.012,
          "percent_delta": -0.0438,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.596,
          "after": 0.5244,
          "delta": -0.0716,
          "percent_delta": -0.1201,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.371,
          "after": 0.352,
          "delta": -0.019,
          "percent_delta": -0.0512,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.647,
          "after": 0.5623,
          "delta": -0.0847,
          "percent_delta": -0.1309,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.581,
          "after": 0.4911,
          "delta": -0.0899,
          "percent_delta": -0.1547,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.508,
          "after": 0.4576,
          "delta": -0.0504,
          "percent_delta": -0.0992,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.125,
          "after": 1.1822,
          "delta": 0.0572,
          "percent_delta": 0.0508,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 7,
        "boosted_metrics": 1,
        "deboosted_metrics": 6,
        "better_metrics": 0,
        "worse_metrics": 7,
        "biggest_boost": {
          "metric": "predicted_SO",
          "before": 1.125,
          "after": 1.1822,
          "delta": 0.0572,
          "percent_delta": 0.0508,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.581,
          "after": 0.4911,
          "delta": -0.0899,
          "percent_delta": -0.1547,
          "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": 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.1617,
        "predicted_3B": 0.0242,
        "predicted_AB": 3.8719,
        "predicted_AVG": 0.2655,
        "predicted_BB": 0.5297,
        "predicted_H": 1.028,
        "predicted_HBP": 0.07,
        "predicted_HR": 0.1837,
        "predicted_OBP": 0.3539,
        "predicted_R": 0.5779,
        "predicted_RBI": 0.5048,
        "predicted_SLG": 0.4621,
        "predicted_SO": 1.1703
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 4 (raw=3.87), rates preserved: AVG=0.252 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": 0.0,
        "predicted_SB": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1617,
          "after": 0.0,
          "delta": -0.1617,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AB",
          "before": 3.8719,
          "after": 4.0,
          "delta": 0.1281,
          "percent_delta": 0.0331,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.5297,
          "after": 0.0,
          "delta": -0.5297,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HBP",
          "before": 0.07,
          "after": 0.0,
          "delta": -0.07,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1837,
          "after": 0.0,
          "delta": -0.1837,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5048,
          "after": 0.0,
          "delta": -0.5048,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.1703,
          "after": 1.0,
          "delta": -0.1703,
          "percent_delta": -0.1455,
          "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.8719,
          "after": 4.0,
          "delta": 0.1281,
          "percent_delta": 0.0331,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.5297,
          "after": 0.0,
          "delta": -0.5297,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 6,
      "step": "bvp_blend",
      "description": "Sample-size BvP blend (BvP AB=15.0, weight=0.133, 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": [],
      "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
      }
    },
    {
      "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_R",
          "before": 0.5779,
          "after": 1.0,
          "delta": 0.4221,
          "percent_delta": 0.7304,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 1,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_R",
          "before": 0.5779,
          "after": 1.0,
          "delta": 0.4221,
          "percent_delta": 0.7304,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "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.1637,
        "predicted_3B": 0.0204,
        "predicted_BB": 0.3538,
        "predicted_H": 0.9442,
        "predicted_HR": 0.1711,
        "predicted_RBI": 0.5272,
        "predicted_SO": 1.27
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1637,
          "delta": 0.1637,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.3538,
          "delta": 0.3538,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.9442,
          "delta": -0.0558,
          "percent_delta": -0.0558,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1711,
          "delta": 0.1711,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.5272,
          "delta": 0.5272,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 1.27,
          "delta": 0.27,
          "percent_delta": 0.27,
          "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.5272,
          "delta": 0.5272,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.9442,
          "delta": -0.0558,
          "percent_delta": -0.0558,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_AVG": 0.251,
        "predicted_BB": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.32,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.441,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1637,
          "after": 0.0,
          "delta": -0.1637,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2655,
          "after": 0.251,
          "delta": -0.0145,
          "percent_delta": -0.0546,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3538,
          "after": 1.0,
          "delta": 0.6462,
          "percent_delta": 1.8265,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.9442,
          "after": 1.0,
          "delta": 0.0558,
          "percent_delta": 0.0591,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1711,
          "after": 0.0,
          "delta": -0.1711,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3539,
          "after": 0.32,
          "delta": -0.0339,
          "percent_delta": -0.0958,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5272,
          "after": 1.0,
          "delta": 0.4728,
          "percent_delta": 0.8968,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4621,
          "after": 0.441,
          "delta": -0.0211,
          "percent_delta": -0.0457,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.27,
          "after": 1.0,
          "delta": -0.27,
          "percent_delta": -0.2126,
          "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_BB",
          "before": 0.3538,
          "after": 1.0,
          "delta": 0.6462,
          "percent_delta": 1.8265,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.27,
          "after": 1.0,
          "delta": -0.27,
          "percent_delta": -0.2126,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      }
    },
    {
      "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.251,
        "predicted_BB": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.32,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.441,
        "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
      }
    },
    {
      "index": 11,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.233,
        "predicted_BB": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.3,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.41,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.251,
          "after": 0.233,
          "delta": -0.018,
          "percent_delta": -0.0717,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.32,
          "after": 0.3,
          "delta": -0.02,
          "percent_delta": -0.0625,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.441,
          "after": 0.41,
          "delta": -0.031,
          "percent_delta": -0.0703,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.441,
          "after": 0.41,
          "delta": -0.031,
          "percent_delta": -0.0703,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 12,
      "step": "market_blend",
      "description": "Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated",
      "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
      }
    },
    {
      "index": 13,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 5.0,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SF": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AB",
          "before": 4.0,
          "after": 5.0,
          "delta": 1.0,
          "percent_delta": 0.25,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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_BB",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 14,
      "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_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SF": 0.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
      },
      "reference_only": true
    },
    {
      "index": 15,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "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_DH": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.298,
        "predicted_R": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.401,
        "predicted_SO": 1.0,
        "predicted_TB": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.233,
          "after": 0.221,
          "delta": -0.012,
          "percent_delta": -0.0515,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.41,
          "after": 0.401,
          "delta": -0.009,
          "percent_delta": -0.022,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.233,
          "after": 0.221,
          "delta": -0.012,
          "percent_delta": -0.0515,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    }
  ],
  "total_change": {
    "from_step": "xgboost_raw",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_2B",
        "before": 0.184,
        "after": 0.0,
        "delta": -0.184,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AB",
        "before": 3.868,
        "after": 5.0,
        "delta": 1.132,
        "percent_delta": 0.2927,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.274,
        "after": 0.221,
        "delta": -0.053,
        "percent_delta": -0.1934,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.596,
        "after": 0.0,
        "delta": -0.596,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 1.059,
        "after": 1.0,
        "delta": -0.059,
        "percent_delta": -0.0557,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HBP",
        "before": 0.07,
        "after": 0.0,
        "delta": -0.07,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.221,
        "after": 0.0,
        "delta": -0.221,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.371,
        "after": 0.298,
        "delta": -0.073,
        "percent_delta": -0.1968,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.647,
        "after": 0.0,
        "delta": -0.647,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.581,
        "after": 1.0,
        "delta": 0.419,
        "percent_delta": 0.7212,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.508,
        "after": 0.401,
        "delta": -0.107,
        "percent_delta": -0.2106,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 1.125,
        "after": 1.0,
        "delta": -0.125,
        "percent_delta": -0.1111,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 12,
      "boosted_metrics": 2,
      "deboosted_metrics": 10,
      "better_metrics": 3,
      "worse_metrics": 9,
      "biggest_boost": {
        "metric": "predicted_AB",
        "before": 3.868,
        "after": 5.0,
        "delta": 1.132,
        "percent_delta": 0.2927,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_R",
        "before": 0.647,
        "after": 0.0,
        "delta": -0.647,
        "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.184-
predicted_3B0.029-
predicted_AB3.868-
predicted_AVG0.274-
predicted_BB0.596-
predicted_H1.059-
predicted_HR0.221-
predicted_OBP0.371-
predicted_R0.647-
predicted_RBI0.581-
predicted_SLG0.508-
predicted_SO1.125-
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.162-0.022
predicted_3B0.024-0.005
predicted_AB3.8720.004
predicted_AVG0.262-0.012
predicted_BB0.524-0.072
predicted_H1.014-0.045
predicted_HBP0.070-
predicted_HR0.183-0.038
predicted_OBP0.352-0.019
predicted_R0.562-0.085
predicted_RBI0.491-0.090
predicted_SLG0.458-0.050
predicted_SO1.1820.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.1620.000
predicted_3B0.0240.000
predicted_AB3.8720.000
predicted_AVG0.2660.004
predicted_BB0.5300.005
predicted_H1.0280.014
predicted_HBP0.0700.000
predicted_HR0.1840.001
predicted_OBP0.3540.002
predicted_R0.5780.016
predicted_RBI0.5050.014
predicted_SLG0.4620.005
predicted_SO1.170-0.012
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.87), rates preserved: AVG=0.252 HR/AB=0.047

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.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.1640.164
3B0.0200.020
BB0.3540.354
H0.944-0.056
HR0.1710.171
RBI0.5270.527
SO1.2700.270
9. lineup_integer_allocation

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

MetricValueDelta vs Prev Step
2B0.000-0.164
3B0.000-0.020
AB4.0000.000
AVG0.251-
BB1.0000.646
H1.0000.056
HR0.000-0.171
OBP0.320-
R1.0000.000
RBI1.0000.473
SLG0.441-
SO1.000-0.270
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.162
predicted_3B0.000-0.024
predicted_AB4.0000.128
predicted_AVG0.251-0.015
predicted_BB1.0000.470
predicted_H1.000-0.028
predicted_HR0.000-0.184
predicted_OBP0.320-0.034
predicted_R1.0000.422
predicted_RBI1.0000.495
predicted_SLG0.441-0.021
predicted_SO1.000-0.170
11. kpi_run_environment

KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
AVG0.233-0.018
BB1.0000.000
H1.0000.000
HR0.0000.000
OBP0.300-0.020
R1.0000.000
RBI1.0000.000
SLG0.410-0.031
SO1.0000.000
12. market_blend

Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated

MetricValueDelta vs Prev Step
13. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB5.0001.000
BB0.000-1.000
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA5.000-
R0.000-1.000
RBI1.0000.000
SF0.0000.000
SO1.0000.000
14. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB5.0000.000
BB0.0000.000
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA5.0000.000
R0.0000.000
RBI1.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: 136
Reference playing time: 3.868
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.0004.0000.0000.0000.0000.0000.0000.0007.0000.20000.20000.20000.20000.00000.00000.00000.3500
last_100.2010-38.0008.0001.0000.0000.0001.0003.0004.00016.0000.21050.31820.23680.21050.00000.02630.10530.4210
season0.60136-526.000144.00025.0004.00030.00079.00088.00081.000153.0000.27380.37480.50760.27380.05700.15020.15400.2909
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1330
predicted_3B0.0180
predicted_AB3.8770
predicted_AVG0.2465
predicted_BB0.4320
predicted_H0.9550
predicted_HBP0.0700
predicted_HR0.1330
predicted_OBP0.3275
predicted_R0.4530
predicted_RBI0.3750
predicted_SLG0.3926
predicted_SO1.2560
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.18400.13300.1617model_form_blend
predicted_3B0.02900.01800.0242model_form_blend
predicted_AB3.86803.87703.8719model_form_blend
predicted_AVG0.27400.24650.2620model_form_blend
predicted_BB0.59600.43200.5244model_form_blend
predicted_H1.05900.95501.0136model_form_blend
predicted_HBP-0.07000.0700form_only
predicted_HR0.22100.13300.1826model_form_blend
predicted_OBP0.37100.32750.3520model_form_blend
predicted_R0.64700.45300.5623model_form_blend
predicted_RBI0.58100.37500.4911model_form_blend
predicted_SLG0.50800.39260.4576model_form_blend
predicted_SO1.12501.25601.1822model_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 date604
Season rows before report date604
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
PA5
AB5
H1
2B0
3B0
HR0
R0
RBI1
BB0
SO1
SF0
HBP0

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_SO2
Hitting_TB1
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
allPositionsPlayedDH
gameID20261004_ATL@LAD
game_typefull
mlbID660271
playerID660271
playerNameShohei Ohtani
posTWP
startedTrue
startingPositionDH
teamLAD
teamID14
game_date2026-10-04
sl_k_percent24.6
sl_bb_percent13.1
sl_woba0.377
sl_xwoba0.397
sl_xba0.286
sl_xslg0.552
sl_sweet_spot_percent38.0
sl_barrel_batted_rate16.4
sl_hard_hit_percent52.1
sl_exit_velocity_avg93.3
sl_launch_angle_avg12.3
sl_whiff_percent31.7
sl_swing_percent46.6
Miguel Rojas (500743) · BATTER · 2B · Team LAD
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 251
All-history rows before 20261006: 251
System season_avg: 0.2700
Data season_avg (2026 season-to-date): 0.2674
Diff (system - data): 0.0026
System opponent_avg: 0.1540

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1881.0001.000Hitting_2B0.1911.0000.8090.000
predicted_3B0.0000.0000.000Hitting_3B0.0000.0000.0000.000
predicted_AB2.5005.0005.000Hitting_AB2.7411.0002.2594.000
predicted_AVG0.3590.4000.400Hitting_AVG0.2671.0000.133-0.600
predicted_BB0.1440.0000.000Hitting_BB0.1670.000-0.1670.000
predicted_CS-0.0000.000BaseRunning_CS0.0160.000-0.0160.000
predicted_H0.5602.0002.000Hitting_H0.7331.0001.2671.000
predicted_HR0.0600.0000.000Hitting_HR0.0640.000-0.0640.000
predicted_OBP0.3590.4000.400Hitting_OBP0.3041.0000.096-0.600
predicted_R0.2430.0000.000Hitting_R0.3030.000-0.3030.000
predicted_RBI0.2300.0000.000Hitting_RBI0.2990.000-0.2990.000
predicted_SB-0.0000.000BaseRunning_SB0.0080.000-0.0080.000
predicted_SLG0.4950.6000.600Hitting_SLG0.4072.0000.193-1.400
predicted_SO0.2991.0001.000Hitting_SO0.3430.0000.6571.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.5000 -> 5.0000 (boost 2.5000, better)
Biggest Deboostpredicted_R: 0.2430 -> 0.0000 (deboost -0.2430, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend40404-predicted_AB: 2.5000 -> 2.4184 (deboost -0.0816, 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_AVG: 0.3204 -> 0.2445 (deboost -0.0759, 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_scaling72534predicted_AB: 2.4184 -> 3.0000 (boost 0.5816, better)predicted_SO: 0.2939 -> 0.0000 (deboost -0.2939, better)AB rounded to 3 (raw=2.50), rates preserved: AVG=0.225 HR/AB=0.022
6bvp_blend00000--Sample-size BvP blend (BvP AB=13.0, weight=0.121, BvP AVG=0.154)
7consistency_constraints10101-predicted_R: 0.2584 -> 0.0000 (deboost -0.2584, worse)Enforced H<=AB, HR<=H, safety nets, derived R
8hitter_rate_engine65142predicted_SO: 0.0000 -> 0.4908 (boost 0.4908, worse)predicted_H: 1.0000 -> 0.7563 (deboost -0.2437, 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_allocation81726predicted_H: 0.7563 -> 1.0000 (boost 0.2437, better)predicted_SO: 0.4908 -> 0.0000 (deboost -0.4908, better)Lineup-level largest-remainder allocation so team totals match the summed model expectation
10embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
11kpi_run_environment40404-predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse)KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup
12market_blend00000--Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated
13play_by_play_realization44031predicted_AB: 3.0000 -> 5.0000 (boost 2.0000, better)-Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
14simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
15current_json_final33030predicted_SLG: 0.3520 -> 0.3640 (boost 0.0120, better)-Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "500743",
  "player_name": "Miguel Rojas",
  "position": "2B",
  "team": "LAD",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.188,
        "predicted_3B": 0.0,
        "predicted_AB": 2.5,
        "predicted_AVG": 0.359,
        "predicted_BB": 0.144,
        "predicted_H": 0.56,
        "predicted_HR": 0.06,
        "predicted_OBP": 0.359,
        "predicted_R": 0.243,
        "predicted_RBI": 0.23,
        "predicted_SLG": 0.495,
        "predicted_SO": 0.299
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "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.1909,
        "predicted_3B": 0.0004,
        "predicted_AB": 2.4184,
        "predicted_AVG": 0.3204,
        "predicted_BB": 0.1883,
        "predicted_H": 0.583,
        "predicted_HBP": 0.008,
        "predicted_HR": 0.0558,
        "predicted_OBP": 0.3484,
        "predicted_R": 0.2514,
        "predicted_RBI": 0.2455,
        "predicted_SLG": 0.4625,
        "predicted_SO": 0.2969
      },
      "changed_metrics": [
        {
          "metric": "predicted_AB",
          "before": 2.5,
          "after": 2.4184,
          "delta": -0.0816,
          "percent_delta": -0.0326,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.359,
          "after": 0.3204,
          "delta": -0.0386,
          "percent_delta": -0.1075,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.359,
          "after": 0.3484,
          "delta": -0.0106,
          "percent_delta": -0.0295,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.495,
          "after": 0.4625,
          "delta": -0.0325,
          "percent_delta": -0.0657,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 4,
        "boosted_metrics": 0,
        "deboosted_metrics": 4,
        "better_metrics": 0,
        "worse_metrics": 4,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 2.5,
          "after": 2.4184,
          "delta": -0.0816,
          "percent_delta": -0.0326,
          "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": 98
      }
    },
    {
      "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.1909,
        "predicted_3B": 0.0004,
        "predicted_AB": 2.4184,
        "predicted_AVG": 0.2445,
        "predicted_BB": 0.1902,
        "predicted_H": 0.5913,
        "predicted_HBP": 0.008,
        "predicted_HR": 0.0561,
        "predicted_OBP": 0.2996,
        "predicted_R": 0.2584,
        "predicted_RBI": 0.2523,
        "predicted_SLG": 0.3934,
        "predicted_SO": 0.2939
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.3204,
          "after": 0.2445,
          "delta": -0.0759,
          "percent_delta": -0.2369,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3484,
          "after": 0.2996,
          "delta": -0.0488,
          "percent_delta": -0.1401,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4625,
          "after": 0.3934,
          "delta": -0.0691,
          "percent_delta": -0.1494,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.3204,
          "after": 0.2445,
          "delta": -0.0759,
          "percent_delta": -0.2369,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 3 (raw=2.50), rates preserved: AVG=0.225 HR/AB=0.022",
      "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.1909,
          "after": 0.0,
          "delta": -0.1909,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AB",
          "before": 2.4184,
          "after": 3.0,
          "delta": 0.5816,
          "percent_delta": 0.2405,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.1902,
          "after": 0.0,
          "delta": -0.1902,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.5913,
          "after": 1.0,
          "delta": 0.4087,
          "percent_delta": 0.6912,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0561,
          "after": 0.0,
          "delta": -0.0561,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.2523,
          "after": 0.0,
          "delta": -0.2523,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.2939,
          "after": 0.0,
          "delta": -0.2939,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 7,
        "boosted_metrics": 2,
        "deboosted_metrics": 5,
        "better_metrics": 3,
        "worse_metrics": 4,
        "biggest_boost": {
          "metric": "predicted_AB",
          "before": 2.4184,
          "after": 3.0,
          "delta": 0.5816,
          "percent_delta": 0.2405,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 0.2939,
          "after": 0.0,
          "delta": -0.2939,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      }
    },
    {
      "index": 6,
      "step": "bvp_blend",
      "description": "Sample-size BvP blend (BvP AB=13.0, weight=0.121, BvP AVG=0.154)",
      "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": [],
      "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.8791,
        "bvp": 0.1209
      }
    },
    {
      "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_R",
          "before": 0.2584,
          "after": 0.0,
          "delta": -0.2584,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 0,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 1,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_R",
          "before": 0.2584,
          "after": 0.0,
          "delta": -0.2584,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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.1523,
        "predicted_3B": 0.0092,
        "predicted_BB": 0.1771,
        "predicted_H": 0.7563,
        "predicted_HR": 0.0812,
        "predicted_RBI": 0.3281,
        "predicted_SO": 0.4908
      },
      "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_BB",
          "before": 0.0,
          "after": 0.1771,
          "delta": 0.1771,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7563,
          "delta": -0.2437,
          "percent_delta": -0.2437,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.0812,
          "delta": 0.0812,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.3281,
          "delta": 0.3281,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.0,
          "after": 0.4908,
          "delta": 0.4908,
          "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.4908,
          "delta": 0.4908,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7563,
          "delta": -0.2437,
          "percent_delta": -0.2437,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_AVG": 0.244,
        "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": 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_BB",
          "before": 0.1771,
          "after": 0.0,
          "delta": -0.1771,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.7563,
          "after": 1.0,
          "delta": 0.2437,
          "percent_delta": 0.3222,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "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_OBP",
          "before": 0.2996,
          "after": 0.291,
          "delta": -0.0086,
          "percent_delta": -0.0287,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3281,
          "after": 0.0,
          "delta": -0.3281,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3934,
          "after": 0.378,
          "delta": -0.0154,
          "percent_delta": -0.0391,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.4908,
          "after": 0.0,
          "delta": -0.4908,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 8,
        "boosted_metrics": 1,
        "deboosted_metrics": 7,
        "better_metrics": 2,
        "worse_metrics": 6,
        "biggest_boost": {
          "metric": "predicted_H",
          "before": 0.7563,
          "after": 1.0,
          "delta": 0.2437,
          "percent_delta": 0.3222,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 0.4908,
          "after": 0.0,
          "delta": -0.4908,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      }
    },
    {
      "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.244,
        "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": 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
      }
    },
    {
      "index": 11,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 3.0,
        "predicted_AVG": 0.227,
        "predicted_BB": 0.0,
        "predicted_H": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.272,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.352,
        "predicted_SO": 0.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.244,
          "after": 0.227,
          "delta": -0.017,
          "percent_delta": -0.0697,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "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_OBP",
          "before": 0.291,
          "after": 0.272,
          "delta": -0.019,
          "percent_delta": -0.0653,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.378,
          "after": 0.352,
          "delta": -0.026,
          "percent_delta": -0.0688,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 4,
        "boosted_metrics": 0,
        "deboosted_metrics": 4,
        "better_metrics": 0,
        "worse_metrics": 4,
        "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
        }
      }
    },
    {
      "index": 12,
      "step": "market_blend",
      "description": "Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated",
      "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
      }
    },
    {
      "index": 13,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "stats": {
        "predicted_2B": 1.0,
        "predicted_3B": 0.0,
        "predicted_AB": 5.0,
        "predicted_BB": 0.0,
        "predicted_H": 2.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 0.0,
        "predicted_RBI": 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_AB",
          "before": 3.0,
          "after": 5.0,
          "delta": 2.0,
          "percent_delta": 0.6667,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.0,
          "after": 2.0,
          "delta": 2.0,
          "percent_delta": null,
          "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": 4,
        "boosted_metrics": 4,
        "deboosted_metrics": 0,
        "better_metrics": 3,
        "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
      }
    },
    {
      "index": 14,
      "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_H": 2.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.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
      },
      "reference_only": true
    },
    {
      "index": 15,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_2B": 1.0,
        "predicted_3B": 0.0,
        "predicted_AB": 5.0,
        "predicted_AVG": 0.236,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 2.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.28,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.364,
        "predicted_SO": 1.0,
        "predicted_TB": 3.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.227,
          "after": 0.236,
          "delta": 0.009,
          "percent_delta": 0.0396,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.272,
          "after": 0.28,
          "delta": 0.008,
          "percent_delta": 0.0294,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.352,
          "after": 0.364,
          "delta": 0.012,
          "percent_delta": 0.0341,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 3,
        "boosted_metrics": 3,
        "deboosted_metrics": 0,
        "better_metrics": 3,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_SLG",
          "before": 0.352,
          "after": 0.364,
          "delta": 0.012,
          "percent_delta": 0.0341,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    }
  ],
  "total_change": {
    "from_step": "xgboost_raw",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_2B",
        "before": 0.188,
        "after": 1.0,
        "delta": 0.812,
        "percent_delta": 4.3191,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AB",
        "before": 2.5,
        "after": 5.0,
        "delta": 2.5,
        "percent_delta": 1.0,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.359,
        "after": 0.236,
        "delta": -0.123,
        "percent_delta": -0.3426,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.144,
        "after": 0.0,
        "delta": -0.144,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.56,
        "after": 2.0,
        "delta": 1.44,
        "percent_delta": 2.5714,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.06,
        "after": 0.0,
        "delta": -0.06,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.359,
        "after": 0.28,
        "delta": -0.079,
        "percent_delta": -0.2201,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.243,
        "after": 0.0,
        "delta": -0.243,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.23,
        "after": 0.0,
        "delta": -0.23,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.495,
        "after": 0.364,
        "delta": -0.131,
        "percent_delta": -0.2646,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.299,
        "after": 1.0,
        "delta": 0.701,
        "percent_delta": 2.3445,
        "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.5,
        "after": 5.0,
        "delta": 2.5,
        "percent_delta": 1.0,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_R",
        "before": 0.243,
        "after": 0.0,
        "delta": -0.243,
        "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.188-
predicted_3B0.000-
predicted_AB2.500-
predicted_AVG0.359-
predicted_BB0.144-
predicted_H0.560-
predicted_HR0.060-
predicted_OBP0.359-
predicted_R0.243-
predicted_RBI0.230-
predicted_SLG0.495-
predicted_SO0.299-
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.1910.003
predicted_3B0.0000.000
predicted_AB2.418-0.082
predicted_AVG0.320-0.039
predicted_BB0.1880.044
predicted_H0.5830.023
predicted_HBP0.008-
predicted_HR0.056-0.004
predicted_OBP0.348-0.011
predicted_R0.2510.008
predicted_RBI0.2450.015
predicted_SLG0.463-0.032
predicted_SO0.297-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.1910.000
predicted_3B0.0000.000
predicted_AB2.4180.000
predicted_AVG0.244-0.076
predicted_BB0.1900.002
predicted_H0.5910.008
predicted_HBP0.0080.000
predicted_HR0.0560.000
predicted_OBP0.300-0.049
predicted_R0.2580.007
predicted_RBI0.2520.007
predicted_SLG0.393-0.069
predicted_SO0.294-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.50), rates preserved: AVG=0.225 HR/AB=0.022

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=13.0, weight=0.121, BvP AVG=0.154)

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.1520.152
3B0.0090.009
BB0.1770.177
H0.756-0.244
HR0.0810.081
RBI0.3280.328
SO0.4910.491
9. 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.009
AB3.0000.000
AVG0.244-
BB0.000-0.177
H1.0000.244
HR0.000-0.081
OBP0.291-
R0.0000.000
RBI0.000-0.328
SLG0.378-
SO0.000-0.491
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.191
predicted_3B0.000-0.000
predicted_AB3.0000.582
predicted_AVG0.244-0.001
predicted_BB0.000-0.190
predicted_H1.0000.409
predicted_HR0.000-0.056
predicted_OBP0.291-0.009
predicted_R0.000-0.258
predicted_RBI0.000-0.252
predicted_SLG0.378-0.015
predicted_SO0.000-0.294
11. kpi_run_environment

KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
AVG0.227-0.017
BB0.0000.000
H0.000-1.000
HR0.0000.000
OBP0.272-0.019
R0.0000.000
RBI0.0000.000
SLG0.352-0.026
SO0.0000.000
12. market_blend

Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated

MetricValueDelta vs Prev Step
13. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

MetricValueDelta vs Prev Step
2B1.0001.000
3B0.0000.000
AB5.0002.000
BB0.0000.000
H2.0002.000
HBP0.0000.000
HR0.0000.000
PA5.000-
R0.0000.000
RBI0.0000.000
SF0.0000.000
SO1.0001.000
14. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B1.0000.000
3B0.0000.000
AB5.0000.000
BB0.0000.000
H2.0000.000
HBP0.0000.000
HR0.0000.000
PA5.0000.000
R0.0000.000
RBI0.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: 98
Reference playing time: 3.801
WindowWeightGamesTotal PATotal ABTotal HTotal 2BTotal 3BTotal HRTotal RBITotal RTotal BBTotal SOAVGOBPSLGH_per_ABHR_per_ABRBI_per_ABBB_per_ABSO_per_AB
last_50.205-8.0002.0001.0000.0000.0001.0001.0002.0001.0000.25000.40000.37500.25000.00000.12500.25000.1250
last_100.2010-21.0006.0002.0000.0001.0003.0003.0003.0002.0000.28570.37500.52380.28570.04760.14290.14290.0952
season0.6098-226.00061.00017.0000.0004.00023.00022.00013.00027.0000.26990.30360.39820.26990.01770.10180.05750.1195
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1950
predicted_3B0.0010
predicted_AB2.3050
predicted_AVG0.2668
predicted_BB0.2500
predicted_H0.6150
predicted_HBP0.0080
predicted_HR0.0500
predicted_OBP0.3337
predicted_R0.2630
predicted_RBI0.2670
predicted_SLG0.4174
predicted_SO0.2940
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.18800.19500.1909model_form_blend
predicted_3B0.00000.00100.0004model_form_blend
predicted_AB2.50002.30502.4184model_form_blend
predicted_AVG0.35900.26680.3204model_form_blend
predicted_BB0.14400.25000.1883model_form_blend
predicted_H0.56000.61500.5830model_form_blend
predicted_HBP-0.00800.0080form_only
predicted_HR0.06000.05000.0558model_form_blend
predicted_OBP0.35900.33370.3484model_form_blend
predicted_R0.24300.26300.2514model_form_blend
predicted_RBI0.23000.26700.2455model_form_blend
predicted_SLG0.49500.41740.4625model_form_blend
predicted_SO0.29900.29400.2969model_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 date251
Season rows before report date251
Report year2026
Profile rows used98
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
HR0
R0
RBI0
BB0
SO1
SF0
HBP0

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_AB1
Hitting_AVG1.0
Hitting_BB0
Hitting_GIDP0
Hitting_H1
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
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
allPositionsPlayed3B
gameID20261004_ATL@LAD
game_typeshort
mlbID500743
playerID500743
playerNameMiguel Rojas
pos2B
startedTrue
startingPosition3B
teamLAD
teamID14
game_date2026-10-04
sl_k_percent10.7
sl_bb_percent6.3
sl_woba0.306
sl_xwoba0.309
sl_xba0.277
sl_xslg0.386
sl_sweet_spot_percent36.2
sl_barrel_batted_rate4.8
sl_hard_hit_percent36.2
sl_exit_velocity_avg87.3
sl_launch_angle_avg14.6
sl_whiff_percent17.0
sl_swing_percent48.8
Andy Pages (681624) · BATTER · CF · Team LAD
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 559
All-history rows before 20261006: 559
System season_avg: 0.2700
Data season_avg (2026 season-to-date): 0.2749
Diff (system - data): -0.0049
System opponent_avg: 0.1350

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1870.0000.000Hitting_2B0.1990.000-0.1990.000
predicted_3B0.0150.0000.000Hitting_3B0.0180.000-0.0180.000
predicted_AB4.5204.0004.000Hitting_AB3.9573.0000.0431.000
predicted_AVG0.2010.0000.000Hitting_AVG0.2750.000-0.2750.000
predicted_BB0.3730.0000.000Hitting_BB0.3811.000-0.381-1.000
predicted_CS-0.0000.000BaseRunning_CS0.0540.000-0.0540.000
predicted_H0.9100.0000.000Hitting_H1.0880.000-1.0880.000
predicted_HR0.2000.0000.000Hitting_HR0.1740.000-0.1740.000
predicted_OBP0.3310.2000.200Hitting_OBP0.3420.250-0.142-0.050
predicted_R0.5601.0001.000Hitting_R0.6240.0000.3761.000
predicted_RBI0.7200.0000.000Hitting_RBI0.6530.000-0.6530.000
predicted_SLG0.4330.0000.000Hitting_SLG0.4660.000-0.4660.000
predicted_SO0.8581.0001.000Hitting_SO0.8431.0000.1570.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics12
Boosted Metrics4
Deboosted Metrics8
Better Metrics3
Worse Metrics9
Biggest Boostpredicted_HBP: 0.0730 -> 1.0000 (boost 0.9270, better)
Biggest Deboostpredicted_H: 0.9100 -> 0.0000 (deboost -0.9100, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend43122predicted_SO: 0.8580 -> 0.9442 (boost 0.0862, worse)predicted_AB: 4.5200 -> 4.1075 (deboost -0.4125, 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.3324 -> 0.2916 (deboost -0.0408, 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_scaling83526predicted_RBI: 0.7208 -> 1.0000 (boost 0.2792, better)predicted_AB: 4.1075 -> 3.0000 (deboost -1.1075, worse)AB rounded to 3 (raw=4.52), rates preserved: AVG=0.191 HR/AB=0.047
6bvp_blend00000--Sample-size BvP blend (BvP AB=5.0, weight=0.057, BvP AVG=0.000)
7consistency_constraints11010predicted_R: 0.5456 -> 1.0000 (boost 0.4544, better)-Enforced H<=AB, HR<=H, safety nets, derived R
8hitter_rate_engine63342predicted_BB: 0.0000 -> 0.2652 (boost 0.2652, better)predicted_RBI: 1.0000 -> 0.5022 (deboost -0.4978, 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_allocation96354predicted_RBI: 0.5022 -> 1.0000 (boost 0.4978, better)predicted_BB: 0.2652 -> 0.0000 (deboost -0.2652, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
10embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
11kpi_run_environment30303-predicted_SLG: 0.4270 -> 0.3970 (deboost -0.0300, worse)KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup
12market_blend00000--Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated
13play_by_play_realization42222predicted_AB: 3.0000 -> 4.0000 (boost 1.0000, better)predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse)Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
14simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
15current_json_final11010predicted_OBP: 0.2850 -> 0.2950 (boost 0.0100, better)-Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "681624",
  "player_name": "Andy Pages",
  "position": "CF",
  "team": "LAD",
  "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.015,
        "predicted_AB": 4.52,
        "predicted_AVG": 0.201,
        "predicted_BB": 0.373,
        "predicted_H": 0.91,
        "predicted_HR": 0.2,
        "predicted_OBP": 0.331,
        "predicted_R": 0.56,
        "predicted_RBI": 0.72,
        "predicted_SLG": 0.433,
        "predicted_SO": 0.858
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "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.1617,
        "predicted_3B": 0.0124,
        "predicted_AB": 4.1075,
        "predicted_AVG": 0.2202,
        "predicted_BB": 0.4052,
        "predicted_H": 0.8952,
        "predicted_HBP": 0.073,
        "predicted_HR": 0.2113,
        "predicted_OBP": 0.3324,
        "predicted_R": 0.5308,
        "predicted_RBI": 0.7013,
        "predicted_SLG": 0.4517,
        "predicted_SO": 0.9442
      },
      "changed_metrics": [
        {
          "metric": "predicted_AB",
          "before": 4.52,
          "after": 4.1075,
          "delta": -0.4125,
          "percent_delta": -0.0913,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.201,
          "after": 0.2202,
          "delta": 0.0192,
          "percent_delta": 0.0955,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.433,
          "after": 0.4517,
          "delta": 0.0187,
          "percent_delta": 0.0432,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.858,
          "after": 0.9442,
          "delta": 0.0862,
          "percent_delta": 0.1005,
          "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": 0.858,
          "after": 0.9442,
          "delta": 0.0862,
          "percent_delta": 0.1005,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 4.52,
          "after": 4.1075,
          "delta": -0.4125,
          "percent_delta": -0.0913,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      },
      "weights": {
        "xgboost_raw": 0.55,
        "weighted_form": 0.45,
        "form_windows": {
          "last_5": 0.2,
          "last_10": 0.2,
          "season": 0.6
        }
      },
      "window_games": {
        "last_5": 5,
        "last_10": 10,
        "season": 134
      }
    },
    {
      "index": 3,
      "step": "team_form_snapshot",
      "description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
      "stats": {
        "predicted_2B": 0.1617,
        "predicted_3B": 0.0124,
        "predicted_AB": 4.1075,
        "predicted_AVG": 0.221,
        "predicted_BB": 0.4093,
        "predicted_H": 0.9079,
        "predicted_HBP": 0.073,
        "predicted_HR": 0.2126,
        "predicted_OBP": 0.2916,
        "predicted_R": 0.5456,
        "predicted_RBI": 0.7208,
        "predicted_SLG": 0.4217,
        "predicted_SO": 0.9347
      },
      "changed_metrics": [
        {
          "metric": "predicted_OBP",
          "before": 0.3324,
          "after": 0.2916,
          "delta": -0.0408,
          "percent_delta": -0.1227,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4517,
          "after": 0.4217,
          "delta": -0.03,
          "percent_delta": -0.0664,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.3324,
          "after": 0.2916,
          "delta": -0.0408,
          "percent_delta": -0.1227,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 3 (raw=4.52), rates preserved: AVG=0.191 HR/AB=0.047",
      "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.1617,
          "after": 0.0,
          "delta": -0.1617,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AB",
          "before": 4.1075,
          "after": 3.0,
          "delta": -1.1075,
          "percent_delta": -0.2696,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.4093,
          "after": 0.0,
          "delta": -0.4093,
          "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.073,
          "after": 0.0,
          "delta": -0.073,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.2126,
          "after": 0.0,
          "delta": -0.2126,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.7208,
          "after": 1.0,
          "delta": 0.2792,
          "percent_delta": 0.3873,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.9347,
          "after": 1.0,
          "delta": 0.0653,
          "percent_delta": 0.0699,
          "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.7208,
          "after": 1.0,
          "delta": 0.2792,
          "percent_delta": 0.3873,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 4.1075,
          "after": 3.0,
          "delta": -1.1075,
          "percent_delta": -0.2696,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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": 3.0,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_RBI": 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": {
        "model_expectation": 0.9429,
        "bvp": 0.0571
      }
    },
    {
      "index": 7,
      "step": "consistency_constraints",
      "description": "Enforced H<=AB, HR<=H, safety nets, derived R",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 3.0,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_R",
          "before": 0.5456,
          "after": 1.0,
          "delta": 0.4544,
          "percent_delta": 0.8328,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 1,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_R",
          "before": 0.5456,
          "after": 1.0,
          "delta": 0.4544,
          "percent_delta": 0.8328,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "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.1575,
        "predicted_3B": 0.0132,
        "predicted_BB": 0.2652,
        "predicted_H": 0.8378,
        "predicted_HR": 0.1471,
        "predicted_RBI": 0.5022,
        "predicted_SO": 0.8407
      },
      "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_BB",
          "before": 0.0,
          "after": 0.2652,
          "delta": 0.2652,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8378,
          "delta": -0.1622,
          "percent_delta": -0.1622,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1471,
          "delta": 0.1471,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.5022,
          "delta": -0.4978,
          "percent_delta": -0.4978,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.8407,
          "delta": -0.1593,
          "percent_delta": -0.1593,
          "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.2652,
          "delta": 0.2652,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.5022,
          "delta": -0.4978,
          "percent_delta": -0.4978,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_AVG": 0.244,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.304,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.427,
        "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_AVG",
          "before": 0.221,
          "after": 0.244,
          "delta": 0.023,
          "percent_delta": 0.1041,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.2652,
          "after": 0.0,
          "delta": -0.2652,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8378,
          "after": 1.0,
          "delta": 0.1622,
          "percent_delta": 0.1936,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1471,
          "after": 0.0,
          "delta": -0.1471,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2916,
          "after": 0.304,
          "delta": 0.0124,
          "percent_delta": 0.0425,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5022,
          "after": 1.0,
          "delta": 0.4978,
          "percent_delta": 0.9912,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4217,
          "after": 0.427,
          "delta": 0.0053,
          "percent_delta": 0.0126,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.8407,
          "after": 1.0,
          "delta": 0.1593,
          "percent_delta": 0.1895,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 9,
        "boosted_metrics": 6,
        "deboosted_metrics": 3,
        "better_metrics": 5,
        "worse_metrics": 4,
        "biggest_boost": {
          "metric": "predicted_RBI",
          "before": 0.5022,
          "after": 1.0,
          "delta": 0.4978,
          "percent_delta": 0.9912,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.2652,
          "after": 0.0,
          "delta": -0.2652,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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.244,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.304,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.427,
        "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
      }
    },
    {
      "index": 11,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 3.0,
        "predicted_AVG": 0.227,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.285,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.397,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.244,
          "after": 0.227,
          "delta": -0.017,
          "percent_delta": -0.0697,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.304,
          "after": 0.285,
          "delta": -0.019,
          "percent_delta": -0.0625,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.427,
          "after": 0.397,
          "delta": -0.03,
          "percent_delta": -0.0703,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.427,
          "after": 0.397,
          "delta": -0.03,
          "percent_delta": -0.0703,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 12,
      "step": "market_blend",
      "description": "Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated",
      "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
      }
    },
    {
      "index": 13,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_BB": 0.0,
        "predicted_H": 0.0,
        "predicted_HBP": 1.0,
        "predicted_HR": 0.0,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "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_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": 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
        }
      ],
      "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
        }
      }
    },
    {
      "index": 14,
      "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_H": 0.0,
        "predicted_HBP": 1.0,
        "predicted_HR": 0.0,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.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
      },
      "reference_only": true
    },
    {
      "index": 15,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.229,
        "predicted_BB": 0.0,
        "predicted_CF": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 0.0,
        "predicted_HBP": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.295,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.398,
        "predicted_SO": 1.0,
        "predicted_TB": 0.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_OBP",
          "before": 0.285,
          "after": 0.295,
          "delta": 0.01,
          "percent_delta": 0.0351,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 1,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_OBP",
          "before": 0.285,
          "after": 0.295,
          "delta": 0.01,
          "percent_delta": 0.0351,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    }
  ],
  "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_AB",
        "before": 4.52,
        "after": 4.0,
        "delta": -0.52,
        "percent_delta": -0.115,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.201,
        "after": 0.229,
        "delta": 0.028,
        "percent_delta": 0.1393,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.373,
        "after": 0.0,
        "delta": -0.373,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.91,
        "after": 0.0,
        "delta": -0.91,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HBP",
        "before": 0.073,
        "after": 1.0,
        "delta": 0.927,
        "percent_delta": 12.6986,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.2,
        "after": 0.0,
        "delta": -0.2,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.331,
        "after": 0.295,
        "delta": -0.036,
        "percent_delta": -0.1088,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "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.72,
        "after": 0.0,
        "delta": -0.72,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.433,
        "after": 0.398,
        "delta": -0.035,
        "percent_delta": -0.0808,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.858,
        "after": 1.0,
        "delta": 0.142,
        "percent_delta": 0.1655,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 12,
      "boosted_metrics": 4,
      "deboosted_metrics": 8,
      "better_metrics": 3,
      "worse_metrics": 9,
      "biggest_boost": {
        "metric": "predicted_HBP",
        "before": 0.073,
        "after": 1.0,
        "delta": 0.927,
        "percent_delta": 12.6986,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_H",
        "before": 0.91,
        "after": 0.0,
        "delta": -0.91,
        "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.015-
predicted_AB4.520-
predicted_AVG0.201-
predicted_BB0.373-
predicted_H0.910-
predicted_HR0.200-
predicted_OBP0.331-
predicted_R0.560-
predicted_RBI0.720-
predicted_SLG0.433-
predicted_SO0.858-
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.162-0.025
predicted_3B0.012-0.003
predicted_AB4.107-0.412
predicted_AVG0.2200.019
predicted_BB0.4050.032
predicted_H0.895-0.015
predicted_HBP0.073-
predicted_HR0.2110.011
predicted_OBP0.3320.001
predicted_R0.531-0.029
predicted_RBI0.701-0.019
predicted_SLG0.4520.019
predicted_SO0.9440.086
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.0120.000
predicted_AB4.1070.000
predicted_AVG0.2210.001
predicted_BB0.4090.004
predicted_H0.9080.013
predicted_HBP0.0730.000
predicted_HR0.2130.001
predicted_OBP0.292-0.041
predicted_R0.5460.015
predicted_RBI0.7210.019
predicted_SLG0.422-0.030
predicted_SO0.935-0.010
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.52), rates preserved: AVG=0.191 HR/AB=0.047

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. 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
AB3.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
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
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.0130.013
BB0.2650.265
H0.838-0.162
HR0.1470.147
RBI0.502-0.498
SO0.841-0.159
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.013
AB3.0000.000
AVG0.244-
BB0.000-0.265
H1.0000.162
HR0.000-0.147
OBP0.304-
R1.0000.000
RBI1.0000.498
SLG0.427-
SO1.0000.159
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.162
predicted_3B0.000-0.012
predicted_AB3.000-1.107
predicted_AVG0.2440.023
predicted_BB0.000-0.409
predicted_H1.0000.092
predicted_HR0.000-0.213
predicted_OBP0.3040.012
predicted_R1.0000.454
predicted_RBI1.0000.279
predicted_SLG0.4270.005
predicted_SO1.0000.065
11. kpi_run_environment

KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
AVG0.227-0.017
BB0.0000.000
H1.0000.000
HR0.0000.000
OBP0.285-0.019
R1.0000.000
RBI1.0000.000
SLG0.397-0.030
SO1.0000.000
12. market_blend

Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated

MetricValueDelta vs Prev Step
13. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0001.000
BB0.0000.000
H0.000-1.000
HBP1.0001.000
HR0.0000.000
PA5.000-
R1.0000.000
RBI0.000-1.000
SF0.0000.000
SO1.0000.000
14. 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
H0.0000.000
HBP1.0000.000
HR0.0000.000
PA5.0000.000
R1.0000.000
RBI0.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: 134
Reference playing time: 4.520
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.0005.0002.0003.0007.0000.18750.30000.56250.18750.12500.31250.18750.4375
last_100.2010-31.0007.0001.0000.0002.0005.0004.0005.00012.0000.22580.35900.45160.22580.06450.16130.16130.3871
season0.60134-514.000139.00025.0002.00023.00084.00075.00050.000115.0000.27040.33970.46110.27040.04470.16340.09730.2237
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1290
predicted_3B0.0090
predicted_AB3.5730
predicted_AVG0.2451
predicted_BB0.4470
predicted_H0.8760
predicted_HBP0.0730
predicted_HR0.2260
predicted_OBP0.3341
predicted_R0.4930
predicted_RBI0.6770
predicted_SLG0.4759
predicted_SO1.0560
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.18700.12900.1617model_form_blend
predicted_3B0.01500.00900.0124model_form_blend
predicted_AB4.52003.57304.1075model_form_blend
predicted_AVG0.20100.24510.2202model_form_blend
predicted_BB0.37300.44700.4052model_form_blend
predicted_H0.91000.87600.8952model_form_blend
predicted_HBP-0.07300.0730form_only
predicted_HR0.20000.22600.2113model_form_blend
predicted_OBP0.33100.33410.3324model_form_blend
predicted_R0.56000.49300.5308model_form_blend
predicted_RBI0.72000.67700.7013model_form_blend
predicted_SLG0.43300.47590.4517model_form_blend
predicted_SO0.85801.05600.9442model_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 date559
Season rows before report date559
Report year2026
Profile rows used134
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
RBI0
BB0
SO1
SF0
HBP1

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_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
gameID20261004_ATL@LAD
game_typefull
mlbID681624
playerID681624
playerNameAndy Pages
posCF
startedTrue
startingPositionCF
teamLAD
teamID14
game_date2026-10-04
sl_k_percent19.7
sl_bb_percent8.5
sl_woba0.352
sl_xwoba0.343
sl_xba0.274
sl_xslg0.442
sl_sweet_spot_percent37.4
sl_barrel_batted_rate7.9
sl_hard_hit_percent42.3
sl_exit_velocity_avg88.9
sl_launch_angle_avg15.7
sl_whiff_percent22.1
sl_swing_percent47.2
Kyle Tucker (663656) · BATTER · RF · Team LAD
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 600
All-history rows before 20261006: 600
System season_avg: 0.2360
Data season_avg (2026 season-to-date): 0.2395
Diff (system - data): -0.0035
System opponent_avg: 0.0830

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1511.0001.000Hitting_2B0.1680.0000.8321.000
predicted_3B0.0260.0000.000Hitting_3B0.0300.000-0.0300.000
predicted_AB3.6303.0003.000Hitting_AB3.6954.000-0.695-1.000
predicted_AVG0.2390.3330.333Hitting_AVG0.2400.2500.0940.083
predicted_BB0.4801.0001.000Hitting_BB0.5220.0000.4781.000
predicted_CS-0.0000.000BaseRunning_CS0.0000.0000.0000.000
predicted_H0.8701.0001.000Hitting_H0.8851.0000.1150.000
predicted_HR0.1300.0000.000Hitting_HR0.1220.000-0.1220.000
predicted_OBP0.3110.5000.500Hitting_OBP0.3330.2500.1670.250
predicted_R0.5920.0000.000Hitting_R0.6320.000-0.6320.000
predicted_RBI0.4101.0001.000Hitting_RBI0.5150.0000.4851.000
predicted_SLG0.3920.6670.667Hitting_SLG0.4000.2500.2670.417
predicted_SO0.6970.0000.000Hitting_SO0.7230.000-0.7230.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_2B: 0.1510 -> 1.0000 (boost 0.8490, better)
Biggest Deboostpredicted_SO: 0.6970 -> 0.0000 (deboost -0.6970, better)
#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_snapshot22020predicted_OBP: 0.3108 -> 0.3246 (boost 0.0138, 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_scaling72516predicted_SO: 0.6848 -> 1.0000 (boost 0.3152, worse)predicted_AB: 3.6475 -> 3.0000 (deboost -0.6475, worse)AB rounded to 3 (raw=3.65), rates preserved: AVG=0.232 HR/AB=0.036
6bvp_blend00000--Sample-size BvP blend (BvP AB=12.0, weight=0.114, BvP AVG=0.083)
7consistency_constraints11010predicted_R: 0.5910 -> 1.0000 (boost 0.4090, better)-Enforced H<=AB, HR<=H, safety nets, derived R
8hitter_rate_engine64251predicted_RBI: 0.0000 -> 0.4827 (boost 0.4827, better)predicted_H: 1.0000 -> 0.7943 (deboost -0.2057, 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_allocation92718predicted_H: 0.7943 -> 1.0000 (boost 0.2057, better)predicted_RBI: 0.4827 -> 0.0000 (deboost -0.4827, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
10embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
11kpi_run_environment30303-predicted_SLG: 0.3760 -> 0.3500 (deboost -0.0260, worse)KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup
12market_blend00000--Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated
13play_by_play_realization53241predicted_2B: 0.0000 -> 1.0000 (boost 1.0000, better)predicted_R: 1.0000 -> 0.0000 (deboost -1.0000, worse)Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
14simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
15current_json_final22020predicted_OBP: 0.2760 -> 0.2840 (boost 0.0080, better)-Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "663656",
  "player_name": "Kyle Tucker",
  "position": "RF",
  "team": "LAD",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.151,
        "predicted_3B": 0.026,
        "predicted_AB": 3.63,
        "predicted_AVG": 0.239,
        "predicted_BB": 0.48,
        "predicted_H": 0.87,
        "predicted_HR": 0.13,
        "predicted_OBP": 0.311,
        "predicted_R": 0.592,
        "predicted_RBI": 0.41,
        "predicted_SLG": 0.392,
        "predicted_SO": 0.697
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "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.1274,
        "predicted_3B": 0.0216,
        "predicted_AB": 3.6475,
        "predicted_AVG": 0.2402,
        "predicted_BB": 0.4311,
        "predicted_H": 0.8774,
        "predicted_HBP": 0.013,
        "predicted_HR": 0.13,
        "predicted_OBP": 0.3108,
        "predicted_R": 0.575,
        "predicted_RBI": 0.4096,
        "predicted_SLG": 0.3882,
        "predicted_SO": 0.6918
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      },
      "weights": {
        "xgboost_raw": 0.55,
        "weighted_form": 0.45,
        "form_windows": {
          "last_5": 0.2,
          "last_10": 0.2,
          "season": 0.6
        }
      },
      "window_games": {
        "last_5": 5,
        "last_10": 10,
        "season": 152
      }
    },
    {
      "index": 3,
      "step": "team_form_snapshot",
      "description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
      "stats": {
        "predicted_2B": 0.1274,
        "predicted_3B": 0.0216,
        "predicted_AB": 3.6475,
        "predicted_AVG": 0.244,
        "predicted_BB": 0.4355,
        "predicted_H": 0.8899,
        "predicted_HBP": 0.013,
        "predicted_HR": 0.1308,
        "predicted_OBP": 0.3246,
        "predicted_R": 0.591,
        "predicted_RBI": 0.421,
        "predicted_SLG": 0.3983,
        "predicted_SO": 0.6848
      },
      "changed_metrics": [
        {
          "metric": "predicted_OBP",
          "before": 0.3108,
          "after": 0.3246,
          "delta": 0.0138,
          "percent_delta": 0.0444,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3882,
          "after": 0.3983,
          "delta": 0.0101,
          "percent_delta": 0.026,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 2,
        "boosted_metrics": 2,
        "deboosted_metrics": 0,
        "better_metrics": 2,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_OBP",
          "before": 0.3108,
          "after": 0.3246,
          "delta": 0.0138,
          "percent_delta": 0.0444,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 3 (raw=3.65), rates preserved: AVG=0.232 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.1274,
          "after": 0.0,
          "delta": -0.1274,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AB",
          "before": 3.6475,
          "after": 3.0,
          "delta": -0.6475,
          "percent_delta": -0.1775,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.4355,
          "after": 0.0,
          "delta": -0.4355,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8899,
          "after": 1.0,
          "delta": 0.1101,
          "percent_delta": 0.1237,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1308,
          "after": 0.0,
          "delta": -0.1308,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.421,
          "after": 0.0,
          "delta": -0.421,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.6848,
          "after": 1.0,
          "delta": 0.3152,
          "percent_delta": 0.4603,
          "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.6848,
          "after": 1.0,
          "delta": 0.3152,
          "percent_delta": 0.4603,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 3.6475,
          "after": 3.0,
          "delta": -0.6475,
          "percent_delta": -0.1775,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 6,
      "step": "bvp_blend",
      "description": "Sample-size BvP blend (BvP AB=12.0, weight=0.114, BvP AVG=0.083)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 3.0,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_RBI": 0.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": {
        "model_expectation": 0.8857,
        "bvp": 0.1143
      }
    },
    {
      "index": 7,
      "step": "consistency_constraints",
      "description": "Enforced H<=AB, HR<=H, safety nets, derived R",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 3.0,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_R",
          "before": 0.591,
          "after": 1.0,
          "delta": 0.409,
          "percent_delta": 0.692,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 1,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_R",
          "before": 0.591,
          "after": 1.0,
          "delta": 0.409,
          "percent_delta": 0.692,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "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.1503,
        "predicted_3B": 0.019,
        "predicted_BB": 0.2959,
        "predicted_H": 0.7943,
        "predicted_HR": 0.1086,
        "predicted_RBI": 0.4827,
        "predicted_SO": 0.8874
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1503,
          "delta": 0.1503,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.2959,
          "delta": 0.2959,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7943,
          "delta": -0.2057,
          "percent_delta": -0.2057,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1086,
          "delta": 0.1086,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.4827,
          "delta": 0.4827,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.8874,
          "delta": -0.1126,
          "percent_delta": -0.1126,
          "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.4827,
          "delta": 0.4827,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7943,
          "delta": -0.2057,
          "percent_delta": -0.2057,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_AVG": 0.228,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.294,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.376,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1503,
          "after": 0.0,
          "delta": -0.1503,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.244,
          "after": 0.228,
          "delta": -0.016,
          "percent_delta": -0.0656,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.2959,
          "after": 0.0,
          "delta": -0.2959,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.7943,
          "after": 1.0,
          "delta": 0.2057,
          "percent_delta": 0.259,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1086,
          "after": 0.0,
          "delta": -0.1086,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3246,
          "after": 0.294,
          "delta": -0.0306,
          "percent_delta": -0.0943,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4827,
          "after": 0.0,
          "delta": -0.4827,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3983,
          "after": 0.376,
          "delta": -0.0223,
          "percent_delta": -0.056,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.8874,
          "after": 1.0,
          "delta": 0.1126,
          "percent_delta": 0.1269,
          "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_H",
          "before": 0.7943,
          "after": 1.0,
          "delta": 0.2057,
          "percent_delta": 0.259,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.4827,
          "after": 0.0,
          "delta": -0.4827,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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.228,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.294,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.376,
        "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
      }
    },
    {
      "index": 11,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 3.0,
        "predicted_AVG": 0.212,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.276,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.35,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.228,
          "after": 0.212,
          "delta": -0.016,
          "percent_delta": -0.0702,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.294,
          "after": 0.276,
          "delta": -0.018,
          "percent_delta": -0.0612,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.376,
          "after": 0.35,
          "delta": -0.026,
          "percent_delta": -0.0691,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 3,
        "boosted_metrics": 0,
        "deboosted_metrics": 3,
        "better_metrics": 0,
        "worse_metrics": 3,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_SLG",
          "before": 0.376,
          "after": 0.35,
          "delta": -0.026,
          "percent_delta": -0.0691,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 12,
      "step": "market_blend",
      "description": "Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated",
      "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
      }
    },
    {
      "index": 13,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "stats": {
        "predicted_2B": 1.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_R": 0.0,
        "predicted_RBI": 1.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_BB",
          "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": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "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_SO",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 5,
        "boosted_metrics": 3,
        "deboosted_metrics": 2,
        "better_metrics": 4,
        "worse_metrics": 1,
        "biggest_boost": {
          "metric": "predicted_2B",
          "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
        }
      }
    },
    {
      "index": 14,
      "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_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SF": 0.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
      },
      "reference_only": true
    },
    {
      "index": 15,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_2B": 1.0,
        "predicted_3B": 0.0,
        "predicted_AB": 3.0,
        "predicted_AVG": 0.214,
        "predicted_BB": 1.0,
        "predicted_CS": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.284,
        "predicted_R": 0.0,
        "predicted_RBI": 1.0,
        "predicted_RF": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.357,
        "predicted_SO": 0.0,
        "predicted_TB": 2.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_OBP",
          "before": 0.276,
          "after": 0.284,
          "delta": 0.008,
          "percent_delta": 0.029,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.35,
          "after": 0.357,
          "delta": 0.007,
          "percent_delta": 0.02,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 2,
        "boosted_metrics": 2,
        "deboosted_metrics": 0,
        "better_metrics": 2,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_OBP",
          "before": 0.276,
          "after": 0.284,
          "delta": 0.008,
          "percent_delta": 0.029,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    }
  ],
  "total_change": {
    "from_step": "xgboost_raw",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_2B",
        "before": 0.151,
        "after": 1.0,
        "delta": 0.849,
        "percent_delta": 5.6225,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AB",
        "before": 3.63,
        "after": 3.0,
        "delta": -0.63,
        "percent_delta": -0.1736,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.239,
        "after": 0.214,
        "delta": -0.025,
        "percent_delta": -0.1046,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.48,
        "after": 1.0,
        "delta": 0.52,
        "percent_delta": 1.0833,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.87,
        "after": 1.0,
        "delta": 0.13,
        "percent_delta": 0.1494,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.13,
        "after": 0.0,
        "delta": -0.13,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.311,
        "after": 0.284,
        "delta": -0.027,
        "percent_delta": -0.0868,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.592,
        "after": 0.0,
        "delta": -0.592,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.41,
        "after": 1.0,
        "delta": 0.59,
        "percent_delta": 1.439,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.392,
        "after": 0.357,
        "delta": -0.035,
        "percent_delta": -0.0893,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.697,
        "after": 0.0,
        "delta": -0.697,
        "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_2B",
        "before": 0.151,
        "after": 1.0,
        "delta": 0.849,
        "percent_delta": 5.6225,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_SO",
        "before": 0.697,
        "after": 0.0,
        "delta": -0.697,
        "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.151-
predicted_3B0.026-
predicted_AB3.630-
predicted_AVG0.239-
predicted_BB0.480-
predicted_H0.870-
predicted_HR0.130-
predicted_OBP0.311-
predicted_R0.592-
predicted_RBI0.410-
predicted_SLG0.392-
predicted_SO0.697-
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.127-0.024
predicted_3B0.022-0.004
predicted_AB3.6470.018
predicted_AVG0.2400.001
predicted_BB0.431-0.049
predicted_H0.8770.007
predicted_HBP0.013-
predicted_HR0.1300.000
predicted_OBP0.311-0.000
predicted_R0.575-0.017
predicted_RBI0.410-0.000
predicted_SLG0.388-0.004
predicted_SO0.692-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.1270.000
predicted_3B0.0220.000
predicted_AB3.6470.000
predicted_AVG0.2440.004
predicted_BB0.4350.004
predicted_H0.8900.013
predicted_HBP0.0130.000
predicted_HR0.1310.001
predicted_OBP0.3250.014
predicted_R0.5910.016
predicted_RBI0.4210.011
predicted_SLG0.3980.010
predicted_SO0.685-0.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=3.65), rates preserved: AVG=0.232 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. bvp_blend

Sample-size BvP blend (BvP AB=12.0, weight=0.114, BvP AVG=0.083)

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
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.1500.150
3B0.0190.019
BB0.2960.296
H0.794-0.206
HR0.1090.109
RBI0.4830.483
SO0.887-0.113
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.019
AB3.0000.000
AVG0.228-
BB0.000-0.296
H1.0000.206
HR0.000-0.109
OBP0.294-
R1.0000.000
RBI0.000-0.483
SLG0.376-
SO1.0000.113
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.127
predicted_3B0.000-0.022
predicted_AB3.000-0.647
predicted_AVG0.228-0.016
predicted_BB0.000-0.435
predicted_H1.0000.110
predicted_HR0.000-0.131
predicted_OBP0.294-0.031
predicted_R1.0000.409
predicted_RBI0.000-0.421
predicted_SLG0.376-0.022
predicted_SO1.0000.315
11. kpi_run_environment

KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
AVG0.212-0.016
BB0.0000.000
H1.0000.000
HR0.0000.000
OBP0.276-0.018
R1.0000.000
RBI0.0000.000
SLG0.350-0.026
SO1.0000.000
12. market_blend

Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated

MetricValueDelta vs Prev Step
13. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

MetricValueDelta vs Prev Step
2B1.0001.000
3B0.0000.000
AB3.0000.000
BB1.0001.000
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R0.000-1.000
RBI1.0001.000
SF0.0000.000
SO0.000-1.000
14. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B1.0000.000
3B0.0000.000
AB3.0000.000
BB1.0000.000
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA4.0000.000
R0.0000.000
RBI1.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: 152
Reference playing time: 3.801
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.0005.0000.0000.0001.0002.0003.0001.0004.0000.25000.28570.40000.25000.05000.10000.05000.2000
last_100.2010-36.0009.0000.0000.0001.0002.0004.0002.0005.0000.25000.28950.33330.25000.02780.05560.05560.1389
season0.60152-543.000128.00023.0004.00018.00072.00090.00073.000106.0000.23570.32640.39230.23570.03310.13260.13440.1952
Weighted Prediction From Real Data
MetricValue
predicted_2B0.0970
predicted_3B0.0160
predicted_AB3.6700
predicted_AVG0.2417
predicted_BB0.3680
predicted_H0.8870
predicted_HBP0.0130
predicted_HR0.1300
predicted_OBP0.3106
predicted_R0.5530
predicted_RBI0.4090
predicted_SLG0.3832
predicted_SO0.6850
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.15100.09700.1274model_form_blend
predicted_3B0.02600.01600.0216model_form_blend
predicted_AB3.63003.67003.6475model_form_blend
predicted_AVG0.23900.24170.2402model_form_blend
predicted_BB0.48000.36800.4311model_form_blend
predicted_H0.87000.88700.8774model_form_blend
predicted_HBP-0.01300.0130form_only
predicted_HR0.13000.13000.1300model_form_blend
predicted_OBP0.31100.31060.3108model_form_blend
predicted_R0.59200.55300.5750model_form_blend
predicted_RBI0.41000.40900.4096model_form_blend
predicted_SLG0.39200.38320.3882model_form_blend
predicted_SO0.69700.68500.6918model_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 date600
Season rows before report date600
Report year2026
Profile rows used152
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
R0
RBI1
BB1
SO0
SF0
HBP0

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_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
gameID20261004_ATL@LAD
game_typefull
mlbID663656
playerID663656
playerNameKyle Tucker
posRF
startedTrue
startingPositionRF
teamLAD
teamID14
game_date2026-10-04
sl_k_percent16.7
sl_bb_percent12.4
sl_woba0.318
sl_xwoba0.331
sl_xba0.256
sl_xslg0.393
sl_sweet_spot_percent34.2
sl_barrel_batted_rate6.4
sl_hard_hit_percent36.3
sl_exit_velocity_avg88.5
sl_launch_angle_avg18.1
sl_whiff_percent20.8
sl_swing_percent48.5
Enrique Hernández (571771) · BATTER · 3B · Team LAD
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 91
All-history rows before 20261006: 91
System season_avg: 0.2220
Data season_avg (2026 season-to-date): 0.2255
Diff (system - data): -0.0035
System opponent_avg: 0.1670

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1110.0000.000Hitting_2B0.0990.000-0.0990.000
predicted_3B0.0000.0000.000Hitting_3B0.0000.0000.0000.000
predicted_AB2.5004.0004.000Hitting_AB2.5820.0001.4184.000
predicted_AVG0.2000.2500.250Hitting_AVG0.226-0.024-
predicted_BB0.1670.0000.000Hitting_BB0.2090.000-0.2090.000
predicted_CS-0.0000.000BaseRunning_CS0.0000.0000.0000.000
predicted_H0.2001.0001.000Hitting_H0.5820.0000.4181.000
predicted_HR0.0701.0001.000Hitting_HR0.1210.0000.8791.000
predicted_OBP0.2440.2500.250Hitting_OBP0.283--0.033-
predicted_R0.3331.0001.000Hitting_R0.3850.0000.6151.000
predicted_RBI0.1501.0001.000Hitting_RBI0.4180.0000.5821.000
predicted_SLG0.3681.0001.000Hitting_SLG0.404-0.596-
predicted_SO0.7781.0001.000Hitting_SO0.8680.0000.1321.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics11
Boosted Metrics9
Deboosted Metrics2
Better Metrics8
Worse Metrics3
Biggest Boostpredicted_AB: 2.5000 -> 4.0000 (boost 1.5000, better)
Biggest Deboostpredicted_BB: 0.1670 -> 0.0000 (deboost -0.1670, worse)
#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.6932 (boost 0.1932, 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.3897 -> 0.3030 (deboost -0.0867, 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.6932 -> 3.0000 (boost 0.3068, better)predicted_H: 0.3907 -> 0.0000 (deboost -0.3907, worse)AB rounded to 3 (raw=2.69), rates preserved: AVG=0.138 HR/AB=0.037
6bvp_blend00000--Sample-size BvP blend (BvP AB=12.0, weight=0.114, BvP AVG=0.167)
7consistency_constraints21111predicted_H: 0.0000 -> 1.0000 (boost 1.0000, better)predicted_R: 0.3489 -> 0.0000 (deboost -0.3489, worse)Enforced H<=AB, HR<=H, safety nets, derived R
8hitter_rate_engine65142predicted_RBI: 0.0000 -> 0.3746 (boost 0.3746, better)predicted_H: 1.0000 -> 0.7265 (deboost -0.2735, 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_allocation93645predicted_SLG: 0.3030 -> 0.4050 (boost 0.1020, better)predicted_H: 0.7265 -> 0.0000 (deboost -0.7265, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
10embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
11kpi_run_environment30303-predicted_SLG: 0.4050 -> 0.3760 (deboost -0.0290, worse)KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup
12market_blend00000--Market blend not applied: no props for this hitter
13play_by_play_realization55050predicted_AB: 3.0000 -> 4.0000 (boost 1.0000, better)-Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
14simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
15current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "571771",
  "player_name": "Enrique Hernández",
  "position": "3B",
  "team": "LAD",
  "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.5,
        "predicted_AVG": 0.2,
        "predicted_BB": 0.167,
        "predicted_H": 0.2,
        "predicted_HR": 0.07,
        "predicted_OBP": 0.244,
        "predicted_R": 0.333,
        "predicted_RBI": 0.15,
        "predicted_SLG": 0.368,
        "predicted_SO": 0.778
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "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.127,
        "predicted_3B": 0.0011,
        "predicted_AB": 2.6932,
        "predicted_AVG": 0.2108,
        "predicted_BB": 0.1628,
        "predicted_H": 0.3852,
        "predicted_HBP": 0.006,
        "predicted_HR": 0.0981,
        "predicted_OBP": 0.2531,
        "predicted_R": 0.3395,
        "predicted_RBI": 0.2584,
        "predicted_SLG": 0.3897,
        "predicted_SO": 0.7776
      },
      "changed_metrics": [
        {
          "metric": "predicted_AB",
          "before": 2.5,
          "after": 2.6932,
          "delta": 0.1932,
          "percent_delta": 0.0773,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2,
          "after": 0.2108,
          "delta": 0.0108,
          "percent_delta": 0.054,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.2,
          "after": 0.3852,
          "delta": 0.1852,
          "percent_delta": 0.926,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.244,
          "after": 0.2531,
          "delta": 0.0091,
          "percent_delta": 0.0373,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.15,
          "after": 0.2584,
          "delta": 0.1084,
          "percent_delta": 0.7227,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.368,
          "after": 0.3897,
          "delta": 0.0217,
          "percent_delta": 0.059,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "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.6932,
          "delta": 0.1932,
          "percent_delta": 0.0773,
          "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": 36
      }
    },
    {
      "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.127,
        "predicted_3B": 0.0011,
        "predicted_AB": 2.6932,
        "predicted_AVG": 0.1451,
        "predicted_BB": 0.1644,
        "predicted_H": 0.3907,
        "predicted_HBP": 0.006,
        "predicted_HR": 0.0987,
        "predicted_OBP": 0.1943,
        "predicted_R": 0.3489,
        "predicted_RBI": 0.2656,
        "predicted_SLG": 0.303,
        "predicted_SO": 0.7697
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.2108,
          "after": 0.1451,
          "delta": -0.0657,
          "percent_delta": -0.3117,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2531,
          "after": 0.1943,
          "delta": -0.0588,
          "percent_delta": -0.2323,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3897,
          "after": 0.303,
          "delta": -0.0867,
          "percent_delta": -0.2225,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.3897,
          "after": 0.303,
          "delta": -0.0867,
          "percent_delta": -0.2225,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 3 (raw=2.69), rates preserved: AVG=0.138 HR/AB=0.037",
      "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.127,
          "after": 0.0,
          "delta": -0.127,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AB",
          "before": 2.6932,
          "after": 3.0,
          "delta": 0.3068,
          "percent_delta": 0.1139,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.1644,
          "after": 0.0,
          "delta": -0.1644,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.3907,
          "after": 0.0,
          "delta": -0.3907,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0987,
          "after": 0.0,
          "delta": -0.0987,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.2656,
          "after": 0.0,
          "delta": -0.2656,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.7697,
          "after": 1.0,
          "delta": 0.2303,
          "percent_delta": 0.2992,
          "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.6932,
          "after": 3.0,
          "delta": 0.3068,
          "percent_delta": 0.1139,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 0.3907,
          "after": 0.0,
          "delta": -0.3907,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 6,
      "step": "bvp_blend",
      "description": "Sample-size BvP blend (BvP AB=12.0, weight=0.114, BvP AVG=0.167)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 3.0,
        "predicted_BB": 0.0,
        "predicted_H": 0.0,
        "predicted_HR": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      },
      "weights": {
        "model_expectation": 0.8857,
        "bvp": 0.1143
      }
    },
    {
      "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_H",
          "before": 0.0,
          "after": 1.0,
          "delta": 1.0,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.3489,
          "after": 0.0,
          "delta": -0.3489,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 2,
        "boosted_metrics": 1,
        "deboosted_metrics": 1,
        "better_metrics": 1,
        "worse_metrics": 1,
        "biggest_boost": {
          "metric": "predicted_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.3489,
          "after": 0.0,
          "delta": -0.3489,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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.0106,
        "predicted_BB": 0.2103,
        "predicted_H": 0.7265,
        "predicted_HR": 0.1164,
        "predicted_RBI": 0.3746,
        "predicted_SO": 1.0779
      },
      "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_BB",
          "before": 0.0,
          "after": 0.2103,
          "delta": 0.2103,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7265,
          "delta": -0.2735,
          "percent_delta": -0.2735,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1164,
          "delta": 0.1164,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.3746,
          "delta": 0.3746,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 1.0779,
          "delta": 0.0779,
          "percent_delta": 0.0779,
          "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.3746,
          "delta": 0.3746,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7265,
          "delta": -0.2735,
          "percent_delta": -0.2735,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_AVG": 0.235,
        "predicted_BB": 0.0,
        "predicted_H": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.29,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.405,
        "predicted_SO": 1.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_AVG",
          "before": 0.1451,
          "after": 0.235,
          "delta": 0.0899,
          "percent_delta": 0.6196,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.2103,
          "after": 0.0,
          "delta": -0.2103,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.7265,
          "after": 0.0,
          "delta": -0.7265,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1164,
          "after": 0.0,
          "delta": -0.1164,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.1943,
          "after": 0.29,
          "delta": 0.0957,
          "percent_delta": 0.4925,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3746,
          "after": 0.0,
          "delta": -0.3746,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.303,
          "after": 0.405,
          "delta": 0.102,
          "percent_delta": 0.3366,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0779,
          "after": 1.0,
          "delta": -0.0779,
          "percent_delta": -0.0723,
          "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_SLG",
          "before": 0.303,
          "after": 0.405,
          "delta": 0.102,
          "percent_delta": 0.3366,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 0.7265,
          "after": 0.0,
          "delta": -0.7265,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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.235,
        "predicted_BB": 0.0,
        "predicted_H": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.29,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.405,
        "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
      }
    },
    {
      "index": 11,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 3.0,
        "predicted_AVG": 0.219,
        "predicted_BB": 0.0,
        "predicted_H": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.271,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.376,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.235,
          "after": 0.219,
          "delta": -0.016,
          "percent_delta": -0.0681,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.29,
          "after": 0.271,
          "delta": -0.019,
          "percent_delta": -0.0655,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.405,
          "after": 0.376,
          "delta": -0.029,
          "percent_delta": -0.0716,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.405,
          "after": 0.376,
          "delta": -0.029,
          "percent_delta": -0.0716,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 12,
      "step": "market_blend",
      "description": "Market blend not applied: no props for this hitter",
      "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
      }
    },
    {
      "index": 13,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "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": 1.0,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SF": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "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_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": 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
        }
      ],
      "summary": {
        "changed_metrics": 5,
        "boosted_metrics": 5,
        "deboosted_metrics": 0,
        "better_metrics": 5,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_AB",
          "before": 3.0,
          "after": 4.0,
          "delta": 1.0,
          "percent_delta": 0.3333,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "index": 14,
      "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_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 1.0,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SF": 0.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
      },
      "reference_only": true
    },
    {
      "index": 15,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.219,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 1.0,
        "predicted_OBP": 0.271,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.376,
        "predicted_SO": 1.0,
        "predicted_TB": 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
      }
    }
  ],
  "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_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.2,
        "after": 0.219,
        "delta": 0.019,
        "percent_delta": 0.095,
        "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.2,
        "after": 1.0,
        "delta": 0.8,
        "percent_delta": 4.0,
        "direction": "boost",
        "projection_effect": "better",
        "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.244,
        "after": 0.271,
        "delta": 0.027,
        "percent_delta": 0.1107,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.333,
        "after": 1.0,
        "delta": 0.667,
        "percent_delta": 2.003,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.15,
        "after": 1.0,
        "delta": 0.85,
        "percent_delta": 5.6667,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.368,
        "after": 0.376,
        "delta": 0.008,
        "percent_delta": 0.0217,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.778,
        "after": 1.0,
        "delta": 0.222,
        "percent_delta": 0.2853,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 11,
      "boosted_metrics": 9,
      "deboosted_metrics": 2,
      "better_metrics": 8,
      "worse_metrics": 3,
      "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.167,
        "after": 0.0,
        "delta": -0.167,
        "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.111-
predicted_3B0.000-
predicted_AB2.500-
predicted_AVG0.200-
predicted_BB0.167-
predicted_H0.200-
predicted_HR0.070-
predicted_OBP0.244-
predicted_R0.333-
predicted_RBI0.150-
predicted_SLG0.368-
predicted_SO0.778-
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.1270.016
predicted_3B0.0010.001
predicted_AB2.6930.193
predicted_AVG0.2110.011
predicted_BB0.163-0.004
predicted_H0.3850.185
predicted_HBP0.006-
predicted_HR0.0980.028
predicted_OBP0.2530.009
predicted_R0.3400.007
predicted_RBI0.2580.108
predicted_SLG0.3900.022
predicted_SO0.778-0.000
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.1270.000
predicted_3B0.0010.000
predicted_AB2.6930.000
predicted_AVG0.145-0.066
predicted_BB0.1640.002
predicted_H0.3910.006
predicted_HBP0.0060.000
predicted_HR0.0990.001
predicted_OBP0.194-0.059
predicted_R0.3490.009
predicted_RBI0.2660.007
predicted_SLG0.303-0.087
predicted_SO0.770-0.008
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.138 HR/AB=0.037

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. bvp_blend

Sample-size BvP blend (BvP AB=12.0, weight=0.114, BvP AVG=0.167)

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB0.0000.000
H0.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.0001.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.1540.154
3B0.0110.011
BB0.2100.210
H0.727-0.273
HR0.1160.116
RBI0.3750.375
SO1.0780.078
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.011
AB3.0000.000
AVG0.235-
BB0.000-0.210
H0.000-0.727
HR0.000-0.116
OBP0.290-
R0.0000.000
RBI0.000-0.375
SLG0.405-
SO1.000-0.078
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.127
predicted_3B0.000-0.001
predicted_AB3.0000.307
predicted_AVG0.2350.090
predicted_BB0.000-0.164
predicted_H0.000-0.391
predicted_HR0.000-0.099
predicted_OBP0.2900.096
predicted_R0.000-0.349
predicted_RBI0.000-0.266
predicted_SLG0.4050.102
predicted_SO1.0000.230
11. kpi_run_environment

KPI club run ratio x0.866 applied to runs and RBI, x0.931 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
AVG0.219-0.016
BB0.0000.000
H0.0000.000
HR0.0000.000
OBP0.271-0.019
R0.0000.000
RBI0.0000.000
SLG0.376-0.029
SO1.0000.000
12. market_blend

Market blend not applied: no props for this hitter

MetricValueDelta vs Prev Step
13. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0001.000
BB0.0000.000
H1.0001.000
HBP0.0000.000
HR1.0001.000
PA4.000-
R1.0001.000
RBI1.0001.000
SF0.0000.000
SO1.0000.000
14. 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
H1.0000.000
HBP0.0000.000
HR1.0000.000
PA4.0000.000
R1.0000.000
RBI1.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: 36
Reference playing time: 3.801
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.0001.0000.0001.0002.0001.0000.0003.0000.18750.18750.43750.18750.06250.12500.00000.1875
last_100.2010-31.0008.0002.0000.0002.0007.0003.0001.0007.0000.25810.28120.51610.25810.06450.22580.03230.2258
season0.6036-90.00020.0004.0000.0004.00012.00012.0006.00028.0000.22220.27080.40000.22220.04440.13330.06670.3111
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1530
predicted_3B0.0030
predicted_AB3.0080
predicted_AVG0.2285
predicted_BB0.1560
predicted_H0.6870
predicted_HBP0.0060
predicted_HR0.1440
predicted_OBP0.2679
predicted_R0.3500
predicted_RBI0.4350
predicted_SLG0.4251
predicted_SO0.7770
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.11100.15300.1270model_form_blend
predicted_3B0.00000.00300.0011model_form_blend
predicted_AB2.50003.00802.6932model_form_blend
predicted_AVG0.20000.22850.2108model_form_blend
predicted_BB0.16700.15600.1628model_form_blend
predicted_H0.20000.68700.3852model_form_blend
predicted_HBP-0.00600.0060form_only
predicted_HR0.07000.14400.0981model_form_blend
predicted_OBP0.24400.26790.2531model_form_blend
predicted_R0.33300.35000.3395model_form_blend
predicted_RBI0.15000.43500.2584model_form_blend
predicted_SLG0.36800.42510.3897model_form_blend
predicted_SO0.77800.77700.7776model_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 date91
Season rows before report date91
Report year2026
Profile rows used36
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
RBI1
BB0
SO1
SF0
HBP0

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_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
allPositionsPlayedLF
gameID20261003_ATL@LAD
game_typeshort
mlbID571771
playerID571771
playerNameEnrique Hernández
pos3B
startedFalse
startingPositionLF
teamLAD
teamID14
game_date2026-10-03
sl_k_percent29.2
sl_bb_percent6.3
sl_woba0.293
sl_xwoba0.279
sl_xba0.22
sl_xslg0.367
sl_sweet_spot_percent27.4
sl_barrel_batted_rate8.1
sl_hard_hit_percent40.3
sl_exit_velocity_avg89.0
sl_launch_angle_avg10.9
sl_whiff_percent25.0
sl_swing_percent52.6
Yoshinobu Yamamoto (808967) · PITCHER · Starter · Team LAD
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 28
All-history rows before 20261006: 28

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB1.0001.0001.000Pitching_BB1.5001.000-0.5000.000
predicted_ER1.0001.0001.000Pitching_ER1.8572.000-0.857-1.000
predicted_H3.0003.0003.000Pitching_H4.2505.000-1.250-2.000
predicted_IP6.1006.1006.100Pitching_InningsPitched6.5326.000-0.4320.100
predicted_SO4.0004.0004.000Pitching_SO6.5004.000-2.5000.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_rate_projection
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics5
Boosted Metrics0
Deboosted Metrics5
Better Metrics3
Worse Metrics2
Biggest Boost-
Biggest Deboostpredicted_H: 6.0000 -> 3.0000 (deboost -3.0000, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_rate_projection00000--Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty
2pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
3team_form_adjustment00000--Club form: innings, run prevention and strikeout factors
4savant_pitcher_quality00000--Statcast pitch quality: strikeout, walk, home-run and run-prevention factors
5opposing_lineup_context00000--The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances
6kpi_run_environment00000--KPI blend published; the staff line follows the published score, not a KPI rescale
7pitcher_quality_guardrail10101-predicted_IP: 6.6667 -> 6.2000 (deboost -0.4667, worse)Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.
8market_blend00000--Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score
9play_by_play_realization50532-predicted_H: 6.0000 -> 3.0000 (deboost -3.0000, better)Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play
10current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "pitcher",
  "player_id": "808967",
  "player_name": "Yoshinobu Yamamoto",
  "position": "Starter",
  "team": "LAD",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_rate_projection",
      "description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
      "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
      }
    },
    {
      "index": 2,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 2.0,
        "predicted_ER": 3.0,
        "predicted_H": 6.0,
        "predicted_HR": 0.0,
        "predicted_IP": 6.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
      }
    },
    {
      "index": 3,
      "step": "team_form_adjustment",
      "description": "Club form: innings, run prevention and strikeout factors",
      "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
      }
    },
    {
      "index": 4,
      "step": "savant_pitcher_quality",
      "description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
      "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
      }
    },
    {
      "index": 5,
      "step": "opposing_lineup_context",
      "description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
      "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": {
        "H": 0.0,
        "BB": 0.15,
        "SO": 0.35,
        "HR": 0.0
      }
    },
    {
      "index": 6,
      "step": "kpi_run_environment",
      "description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
      "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
      }
    },
    {
      "index": 7,
      "step": "pitcher_quality_guardrail",
      "description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
      "stats": {
        "predicted_BB": 2.0,
        "predicted_ER": 3.0,
        "predicted_H": 6.0,
        "predicted_HR": 0.0,
        "predicted_IP": 6.2,
        "predicted_SO": 7.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_IP",
          "before": 6.6667,
          "after": 6.2,
          "delta": -0.4667,
          "percent_delta": -0.07,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 0,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 1,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_IP",
          "before": 6.6667,
          "after": 6.2,
          "delta": -0.4667,
          "percent_delta": -0.07,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 8,
      "step": "market_blend",
      "description": "Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score",
      "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
      }
    },
    {
      "index": 9,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
      "stats": {
        "predicted_BB": 1.0,
        "predicted_ER": 1.0,
        "predicted_H": 3.0,
        "predicted_HR": 0.0,
        "predicted_IP": 6.1,
        "predicted_R": 1.0,
        "predicted_SO": 4.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_BB",
          "before": 2.0,
          "after": 1.0,
          "delta": -1.0,
          "percent_delta": -0.5,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_ER",
          "before": 3.0,
          "after": 1.0,
          "delta": -2.0,
          "percent_delta": -0.6667,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 6.0,
          "after": 3.0,
          "delta": -3.0,
          "percent_delta": -0.5,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_IP",
          "before": 6.2,
          "after": 6.1,
          "delta": -0.1,
          "percent_delta": -0.0161,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 7.0,
          "after": 4.0,
          "delta": -3.0,
          "percent_delta": -0.4286,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 5,
        "boosted_metrics": 0,
        "deboosted_metrics": 5,
        "better_metrics": 3,
        "worse_metrics": 2,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 6.0,
          "after": 3.0,
          "delta": -3.0,
          "percent_delta": -0.5,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      }
    },
    {
      "index": 10,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_BB": 1.0,
        "predicted_ER": 1.0,
        "predicted_H": 3.0,
        "predicted_HR": 0.0,
        "predicted_IP": 6.1,
        "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
      }
    }
  ],
  "total_change": {
    "from_step": "pitcher_rate_projection",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_BB",
        "before": 2.0,
        "after": 1.0,
        "delta": -1.0,
        "percent_delta": -0.5,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_ER",
        "before": 3.0,
        "after": 1.0,
        "delta": -2.0,
        "percent_delta": -0.6667,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 6.0,
        "after": 3.0,
        "delta": -3.0,
        "percent_delta": -0.5,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_IP",
        "before": 6.6667,
        "after": 6.1,
        "delta": -0.5667,
        "percent_delta": -0.085,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 7.0,
        "after": 4.0,
        "delta": -3.0,
        "percent_delta": -0.4286,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 5,
      "boosted_metrics": 0,
      "deboosted_metrics": 5,
      "better_metrics": 3,
      "worse_metrics": 2,
      "biggest_boost": null,
      "biggest_deboost": {
        "metric": "predicted_H",
        "before": 6.0,
        "after": 3.0,
        "delta": -3.0,
        "percent_delta": -0.5,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "better"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_rate_projection

Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty

MetricValueDelta vs Prev Step
2. 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_HR0.000-
predicted_IP6.667-
predicted_SO7.000-
3. team_form_adjustment

Club form: innings, run prevention and strikeout factors

MetricValueDelta vs Prev Step
4. savant_pitcher_quality

Statcast pitch quality: strikeout, walk, home-run and run-prevention factors

MetricValueDelta vs Prev Step
5. opposing_lineup_context

The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances

MetricValueDelta vs Prev Step
6. kpi_run_environment

KPI blend published; the staff line follows the published score, not a KPI rescale

MetricValueDelta vs Prev Step
7. pitcher_quality_guardrail

Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.

MetricValueDelta vs Prev Step
predicted_BB2.0000.000
predicted_ER3.0000.000
predicted_H6.0000.000
predicted_HR0.0000.000
predicted_IP6.200-0.467
predicted_SO7.0000.000
8. market_blend

Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score

MetricValueDelta vs Prev Step
9. play_by_play_realization

Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play

MetricValueDelta vs Prev Step
BB1.000-
BF23.000-
ER1.000-
H3.000-
HR0.000-
IP6.100-
Pitches81.000-
R1.000-
SO4.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 28
Reference playing time: 6.667
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.45533.1008.00018.0007.00037.0005.0002.16000.75000.24000.54000.21001.11000.1500
last_100.351065.10015.00039.00017.00069.0007.0002.06630.85710.22960.59690.26021.05610.1071
season0.2028185.00052.000119.00042.000182.00020.0002.52970.87030.28110.64320.22700.98380.1081
Weighted Prediction From Real Data
MetricValue
predicted_BB1.6910
predicted_ER1.9020
predicted_ERA2.5672
predicted_H4.2780
predicted_HR0.8660
predicted_IP6.2000
predicted_SO6.9720
predicted_WHIP0.8954
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB2.00001.69101.8189model_form_blend
predicted_ER3.00001.90202.3566model_form_blend
predicted_ERA-2.56722.5672form_only
predicted_H6.00004.27804.9909model_form_blend
predicted_HR0.00000.86600.5075model_form_blend
predicted_IP6.20006.20006.2000model_form_blend
predicted_SO7.00006.97206.9836model_form_blend
predicted_WHIP-0.89540.8954form_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 date28
Season rows before report date28
Report year2026
Profile rows used28
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP6.1
H3
R1
ER1
BB1
SO4
HR0
BF23
Pitches81

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_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 Faced26
Pitching_ER2
Pitching_ERA2.53
Pitching_Flyouts2
Pitching_Groundouts8
Pitching_H5
Pitching_HBP1
Pitching_HR1
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched6.0
Pitching_Pitches88
Pitching_R4
Pitching_SO4
Pitching_Strikes63
Pitching_Wild Pitch0
Pitching_decisionL
Pitching_pitchingOrder1
allPositionsPlayedP
gameID20260923_SD@LAD
game_typefull
mlbID808967
playerID808967
playerNameYoshinobu Yamamoto
posP
startedTrue
startingPositionP
teamLAD
teamID14
game_date2026-09-23
sl_k_percent25.7
sl_bb_percent5.9
sl_woba0.242
sl_xwoba0.266
sl_sweet_spot_percent29.1
sl_barrel_batted_rate6.5
sl_hard_hit_percent35.5
sl_whiff_percent27.9
sl_swing_percent49.6
sl_avg_best_speed76.04979859
sl_avg_hyper_speed93.786488889
Brock Stewart (592779) · PITCHER · Middle Reliever · Team LAD
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 30
All-history rows before 20261006: 30

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB0.0000.0000.000Pitching_BB0.3330.000-0.3330.000
predicted_ER1.0001.0001.000Pitching_ER0.2670.0000.7331.000
predicted_H1.0001.0001.000Pitching_H0.5670.0000.4331.000
predicted_IP1.0001.0001.000Pitching_InningsPitched0.8400.1000.1600.900
predicted_SO0.0000.0000.000Pitching_SO0.8670.000-0.8670.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_rate_projection
Tocurrent_json_final
Dominant Effectworse
Changed Metrics4
Boosted Metrics2
Deboosted Metrics2
Better Metrics1
Worse Metrics3
Biggest Boostpredicted_ER: 0.0000 -> 1.0000 (boost 1.0000, worse)
Biggest Deboostpredicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_rate_projection00000--Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty
2pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
3team_form_adjustment00000--Club form: innings, run prevention and strikeout factors
4savant_pitcher_quality00000--Statcast pitch quality: strikeout, walk, home-run and run-prevention factors
5opposing_lineup_context00000--The nine hitters he faces: batter quality, weighted by plate appearances
6kpi_run_environment00000--KPI blend published; the staff line follows the published score, not a KPI rescale
7play_by_play_realization42213predicted_ER: 0.0000 -> 1.0000 (boost 1.0000, worse)predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, better)Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play
8current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "pitcher",
  "player_id": "592779",
  "player_name": "Brock Stewart",
  "position": "Middle Reliever",
  "team": "LAD",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_rate_projection",
      "description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
      "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
      }
    },
    {
      "index": 2,
      "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
      }
    },
    {
      "index": 3,
      "step": "team_form_adjustment",
      "description": "Club form: innings, run prevention and strikeout factors",
      "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
      }
    },
    {
      "index": 4,
      "step": "savant_pitcher_quality",
      "description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
      "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
      }
    },
    {
      "index": 5,
      "step": "opposing_lineup_context",
      "description": "The nine hitters he faces: batter quality, weighted by plate appearances",
      "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": {
        "H": 0.0,
        "BB": 0.15,
        "SO": 0.35,
        "HR": 0.0
      }
    },
    {
      "index": 6,
      "step": "kpi_run_environment",
      "description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
      "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
      }
    },
    {
      "index": 7,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
      "stats": {
        "predicted_BB": 0.0,
        "predicted_ER": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_IP": 1.0,
        "predicted_R": 1.0,
        "predicted_SO": 0.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_BB",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_ER",
          "before": 0.0,
          "after": 1.0,
          "delta": 1.0,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.0,
          "after": 1.0,
          "delta": 1.0,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "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_ER",
          "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": "better",
          "material": true
        }
      }
    },
    {
      "index": 8,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_BB": 0.0,
        "predicted_ER": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_IP": 1.0,
        "predicted_SO": 0.0
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    }
  ],
  "total_change": {
    "from_step": "pitcher_rate_projection",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_BB",
        "before": 1.0,
        "after": 0.0,
        "delta": -1.0,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_ER",
        "before": 0.0,
        "after": 1.0,
        "delta": 1.0,
        "percent_delta": null,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.0,
        "after": 1.0,
        "delta": 1.0,
        "percent_delta": null,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 1.0,
        "after": 0.0,
        "delta": -1.0,
        "percent_delta": -1.0,
        "direction": "deboost",
        "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_ER",
        "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": "better",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_rate_projection

Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty

MetricValueDelta vs Prev Step
2. 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-
3. team_form_adjustment

Club form: innings, run prevention and strikeout factors

MetricValueDelta vs Prev Step
4. savant_pitcher_quality

Statcast pitch quality: strikeout, walk, home-run and run-prevention factors

MetricValueDelta vs Prev Step
5. opposing_lineup_context

The nine hitters he faces: batter quality, weighted by plate appearances

MetricValueDelta vs Prev Step
6. kpi_run_environment

KPI blend published; the staff line follows the published score, not a KPI rescale

MetricValueDelta vs Prev Step
7. play_by_play_realization

Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play

MetricValueDelta vs Prev Step
BB0.000-
BF5.000-
ER1.000-
H1.000-
HR0.000-
IP1.000-
Pitches17.000-
R1.000-
SO0.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 29
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.1001.0002.0001.0005.0000.0002.07690.69230.23080.46150.23081.15390.0000
last_100.35109.0003.0007.0002.0008.0000.0003.00001.00000.33330.77780.22220.88890.0000
season0.202928.0007.00016.00010.00026.0002.0002.25000.92860.25000.57140.35710.92860.0714
Weighted Prediction From Real Data
MetricValue
predicted_BB0.3120
predicted_ER0.3830
predicted_ERA3.4466
predicted_H0.7750
predicted_HR0.0760
predicted_IP1.0000
predicted_SO0.9780
predicted_WHIP1.0873
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB1.00000.31200.6876model_form_blend
predicted_ER0.00000.38300.1739model_form_blend
predicted_ERA-3.44663.4466form_only
predicted_H0.00000.77500.3519model_form_blend
predicted_HR0.00000.07600.0345model_form_blend
predicted_IP1.00001.00001.0000model_form_blend
predicted_SO1.00000.97800.9900model_form_blend
predicted_WHIP-1.08731.0873form_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 used29
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP1.0
H1
R1
ER1
BB0
SO0
HR0
BF5
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 Faced1
Pitching_ER0
Pitching_ERA0.00
Pitching_Flyouts0
Pitching_Groundouts1
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners2
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.1
Pitching_Pitches2
Pitching_R0
Pitching_SO0
Pitching_Strikes2
Pitching_Wild Pitch0
Pitching_pitchingOrder2
allPositionsPlayedP
gameID20261004_ATL@LAD
game_typefull
mlbID592779
playerID592779
playerNameBrock Stewart
posP
startedFalse
startingPositionP
teamLAD
teamID14
game_date2026-10-04
sl_k_percent24.3
sl_bb_percent9.7
sl_woba0.258
sl_xwoba0.248
sl_sweet_spot_percent23.5
sl_barrel_batted_rate4.4
sl_hard_hit_percent27.9
sl_whiff_percent28.2
sl_swing_percent49.2
sl_avg_best_speed65.876245588
sl_avg_hyper_speed92.388121765
Evan Phillips (623465) · PITCHER · Middle Reliever · Team LAD
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 33
All-history rows before 20261006: 33

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB0.0000.0000.000Pitching_BB0.2120.000-0.2120.000
predicted_ER1.0001.0001.000Pitching_ER0.3030.0000.6971.000
predicted_H1.0001.0001.000Pitching_H0.6670.0000.3331.000
predicted_IP0.2000.2000.200Pitching_InningsPitched0.6880.100-0.4880.100
predicted_SO1.0001.0001.000Pitching_SO1.0000.0000.0001.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_rate_projection
Tocurrent_json_final
Dominant Effectworse
Changed Metrics4
Boosted Metrics3
Deboosted Metrics1
Better Metrics1
Worse Metrics3
Biggest Boostpredicted_ER: 0.0000 -> 1.0000 (boost 1.0000, worse)
Biggest Deboostpredicted_IP: 0.6667 -> 0.2000 (deboost -0.4667, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_rate_projection00000--Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty
2pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
3team_form_adjustment00000--Club form: innings, run prevention and strikeout factors
4savant_pitcher_quality00000--Statcast pitch quality: strikeout, walk, home-run and run-prevention factors
5opposing_lineup_context00000--The nine hitters he faces: batter quality, weighted by plate appearances
6kpi_run_environment00000--KPI blend published; the staff line follows the published score, not a KPI rescale
7play_by_play_realization43113predicted_ER: 0.0000 -> 1.0000 (boost 1.0000, worse)predicted_IP: 0.6667 -> 0.2000 (deboost -0.4667, worse)Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play
8current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "pitcher",
  "player_id": "623465",
  "player_name": "Evan Phillips",
  "position": "Middle Reliever",
  "team": "LAD",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_rate_projection",
      "description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
      "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
      }
    },
    {
      "index": 2,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 0.0,
        "predicted_ER": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_IP": 0.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
      }
    },
    {
      "index": 3,
      "step": "team_form_adjustment",
      "description": "Club form: innings, run prevention and strikeout factors",
      "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
      }
    },
    {
      "index": 4,
      "step": "savant_pitcher_quality",
      "description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
      "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
      }
    },
    {
      "index": 5,
      "step": "opposing_lineup_context",
      "description": "The nine hitters he faces: batter quality, weighted by plate appearances",
      "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": {
        "H": 0.0,
        "BB": 0.15,
        "SO": 0.35,
        "HR": 0.0
      }
    },
    {
      "index": 6,
      "step": "kpi_run_environment",
      "description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
      "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
      }
    },
    {
      "index": 7,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
      "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_ER",
          "before": 0.0,
          "after": 1.0,
          "delta": 1.0,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 1.0,
          "delta": 1.0,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_IP",
          "before": 0.6667,
          "after": 0.2,
          "delta": -0.4667,
          "percent_delta": -0.7,
          "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": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 4,
        "boosted_metrics": 3,
        "deboosted_metrics": 1,
        "better_metrics": 1,
        "worse_metrics": 3,
        "biggest_boost": {
          "metric": "predicted_ER",
          "before": 0.0,
          "after": 1.0,
          "delta": 1.0,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_IP",
          "before": 0.6667,
          "after": 0.2,
          "delta": -0.4667,
          "percent_delta": -0.7,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 8,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_BB": 0.0,
        "predicted_ER": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 1.0,
        "predicted_IP": 0.2,
        "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
      }
    }
  ],
  "total_change": {
    "from_step": "pitcher_rate_projection",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_ER",
        "before": 0.0,
        "after": 1.0,
        "delta": 1.0,
        "percent_delta": null,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.0,
        "after": 1.0,
        "delta": 1.0,
        "percent_delta": null,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_IP",
        "before": 0.6667,
        "after": 0.2,
        "delta": -0.4667,
        "percent_delta": -0.7,
        "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": "better",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 4,
      "boosted_metrics": 3,
      "deboosted_metrics": 1,
      "better_metrics": 1,
      "worse_metrics": 3,
      "biggest_boost": {
        "metric": "predicted_ER",
        "before": 0.0,
        "after": 1.0,
        "delta": 1.0,
        "percent_delta": null,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_IP",
        "before": 0.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_rate_projection

Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty

MetricValueDelta vs Prev Step
2. 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_IP0.667-
predicted_SO0.000-
3. team_form_adjustment

Club form: innings, run prevention and strikeout factors

MetricValueDelta vs Prev Step
4. savant_pitcher_quality

Statcast pitch quality: strikeout, walk, home-run and run-prevention factors

MetricValueDelta vs Prev Step
5. opposing_lineup_context

The nine hitters he faces: batter quality, weighted by plate appearances

MetricValueDelta vs Prev Step
6. kpi_run_environment

KPI blend published; the staff line follows the published score, not a KPI rescale

MetricValueDelta vs Prev Step
7. play_by_play_realization

Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play

MetricValueDelta vs Prev Step
BB0.000-
BF3.000-
ER1.000-
H1.000-
HR1.000-
IP0.200-
Pitches11.000-
R1.000-
SO1.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: 0.667
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.4553.2001.0001.0001.0005.0000.0002.45450.54550.27270.27270.27271.36360.0000
last_100.35108.0002.0003.0002.00011.0001.0002.25000.62500.25000.37500.25001.37500.1250
season0.203326.20010.00022.0007.00033.0005.0003.37501.08750.37500.82500.26251.23750.1875
Weighted Prediction From Real Data
MetricValue
predicted_BB0.2130
predicted_ER0.2620
predicted_ERA3.5426
predicted_H0.4590
predicted_HR0.0750
predicted_IP0.2000
predicted_SO0.7650
predicted_WHIP1.0069
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB0.00000.21300.0956model_form_blend
predicted_ER0.00000.26200.1176model_form_blend
predicted_ERA-3.54263.5426form_only
predicted_H1.00000.45900.7571model_form_blend
predicted_HR0.00000.07500.0337model_form_blend
predicted_IP0.20000.20000.2000model_form_blend
predicted_SO0.00000.76500.3434model_form_blend
predicted_WHIP-1.00691.0069form_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
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_BB0
Pitching_Balk0
Pitching_Batters Faced1
Pitching_ER0
Pitching_ERA0.00
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners1
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.1
Pitching_Pitches4
Pitching_R0
Pitching_SO0
Pitching_Strikes3
Pitching_Wild Pitch0
Pitching_pitchingOrder4
allPositionsPlayedP
gameID20261004_ATL@LAD
game_typefull
mlbID623465
playerID623465
playerNameEvan Phillips
posP
startedFalse
startingPositionP
teamLAD
teamID14
game_date2026-10-04
sl_k_percent31.1
sl_bb_percent5.7
sl_woba0.292
sl_xwoba0.321
sl_sweet_spot_percent33.3
sl_barrel_batted_rate16.7
sl_hard_hit_percent39.4
sl_whiff_percent26.7
sl_swing_percent48.7
sl_avg_best_speed80.133585455
sl_avg_hyper_speed95.348925152
Alex Vesia (681911) · PITCHER · Middle Reliever (High Leverage) · Team LAD
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 73
All-history rows before 20261006: 73

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB1.0001.0001.000Pitching_BB0.4380.0000.5621.000
predicted_ER0.0000.0000.000Pitching_ER0.2330.000-0.2330.000
predicted_H1.0001.0001.000Pitching_H0.4110.0000.5891.000
predicted_IP2.0002.0002.000Pitching_InningsPitched0.6641.0001.3361.000
predicted_SO2.0002.0002.000Pitching_SO1.0271.0000.9731.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_rate_projection
Tocurrent_json_final
Dominant Effectworse
Changed Metrics3
Boosted Metrics3
Deboosted Metrics0
Better Metrics1
Worse Metrics2
Biggest Boostpredicted_IP: 0.6667 -> 2.0000 (boost 1.3333, better)
Biggest Deboost-
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_rate_projection00000--Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty
2pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
3team_form_adjustment00000--Club form: innings, run prevention and strikeout factors
4savant_pitcher_quality00000--Statcast pitch quality: strikeout, walk, home-run and run-prevention factors
5opposing_lineup_context00000--The nine hitters he faces: batter quality, weighted by plate appearances
6kpi_run_environment00000--KPI blend published; the staff line follows the published score, not a KPI rescale
7play_by_play_realization33012predicted_IP: 0.6667 -> 2.0000 (boost 1.3333, better)-Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play
8current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "pitcher",
  "player_id": "681911",
  "player_name": "Alex Vesia",
  "position": "Middle Reliever (High Leverage)",
  "team": "LAD",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_rate_projection",
      "description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
      "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
      }
    },
    {
      "index": 2,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 0.0,
        "predicted_ER": 0.0,
        "predicted_H": 0.0,
        "predicted_HR": 0.0,
        "predicted_IP": 0.6667,
        "predicted_SO": 2.0
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "index": 3,
      "step": "team_form_adjustment",
      "description": "Club form: innings, run prevention and strikeout factors",
      "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
      }
    },
    {
      "index": 4,
      "step": "savant_pitcher_quality",
      "description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
      "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
      }
    },
    {
      "index": 5,
      "step": "opposing_lineup_context",
      "description": "The nine hitters he faces: batter quality, weighted by plate appearances",
      "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": {
        "H": 0.0,
        "BB": 0.15,
        "SO": 0.35,
        "HR": 0.0
      }
    },
    {
      "index": 6,
      "step": "kpi_run_environment",
      "description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
      "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
      }
    },
    {
      "index": 7,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
      "stats": {
        "predicted_BB": 1.0,
        "predicted_ER": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_IP": 2.0,
        "predicted_R": 0.0,
        "predicted_SO": 2.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 1.0,
          "delta": 1.0,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.0,
          "after": 1.0,
          "delta": 1.0,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_IP",
          "before": 0.6667,
          "after": 2.0,
          "delta": 1.3333,
          "percent_delta": 2.0,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 3,
        "boosted_metrics": 3,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 2,
        "biggest_boost": {
          "metric": "predicted_IP",
          "before": 0.6667,
          "after": 2.0,
          "delta": 1.3333,
          "percent_delta": 2.0,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "index": 8,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_BB": 1.0,
        "predicted_ER": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_IP": 2.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
      }
    }
  ],
  "total_change": {
    "from_step": "pitcher_rate_projection",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_BB",
        "before": 0.0,
        "after": 1.0,
        "delta": 1.0,
        "percent_delta": null,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.0,
        "after": 1.0,
        "delta": 1.0,
        "percent_delta": null,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_IP",
        "before": 0.6667,
        "after": 2.0,
        "delta": 1.3333,
        "percent_delta": 2.0,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 3,
      "boosted_metrics": 3,
      "deboosted_metrics": 0,
      "better_metrics": 1,
      "worse_metrics": 2,
      "biggest_boost": {
        "metric": "predicted_IP",
        "before": 0.6667,
        "after": 2.0,
        "delta": 1.3333,
        "percent_delta": 2.0,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": null,
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_rate_projection

Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty

MetricValueDelta vs Prev Step
2. 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.667-
predicted_SO2.000-
3. team_form_adjustment

Club form: innings, run prevention and strikeout factors

MetricValueDelta vs Prev Step
4. savant_pitcher_quality

Statcast pitch quality: strikeout, walk, home-run and run-prevention factors

MetricValueDelta vs Prev Step
5. opposing_lineup_context

The nine hitters he faces: batter quality, weighted by plate appearances

MetricValueDelta vs Prev Step
6. kpi_run_environment

KPI blend published; the staff line follows the published score, not a KPI rescale

MetricValueDelta vs Prev Step
7. play_by_play_realization

Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play

MetricValueDelta vs Prev Step
BB1.000-
BF8.000-
ER0.000-
H1.000-
HR0.000-
IP2.000-
Pitches38.000-
R0.000-
SO2.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 73
Reference playing time: 0.667
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.4555.0000.0000.0001.0008.0000.0000.00000.20000.00000.00000.20001.60000.0000
last_100.35109.0000.0002.0001.00013.0000.0000.00000.33330.00000.22220.11111.44440.0000
season0.207359.00017.00030.00032.00075.0004.0002.59321.05080.28810.50850.54241.27120.0678
Weighted Prediction From Real Data
MetricValue
predicted_BB0.2390
predicted_ER0.1630
predicted_ERA1.7113
predicted_H0.3540
predicted_HR0.0450
predicted_IP1.0000
predicted_SO1.1300
predicted_WHIP0.6927
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB0.00000.23900.1260model_form_blend
predicted_ER0.00000.16300.0859model_form_blend
predicted_ERA-1.71131.7113form_only
predicted_H0.00000.35400.1866model_form_blend
predicted_HR0.00000.04500.0237model_form_blend
predicted_IP0.20001.00001.0000model_form_blend
predicted_SO2.00001.13001.5415model_form_blend
predicted_WHIP-0.69270.6927form_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 used73
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP2.0
H1
R0
ER0
BB1
SO2
HR0
BF8
Pitches38

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_ERA0.00
Pitching_Flyouts1
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched1.0
Pitching_Pitches15
Pitching_R0
Pitching_SO1
Pitching_Strikes10
Pitching_Wild Pitch0
Pitching_pitchingOrder3
allPositionsPlayedP
gameID20261003_ATL@LAD
game_typefull
mlbID681911
playerID681911
playerNameAlex Vesia
posP
startedFalse
startingPositionP
teamLAD
teamID14
game_date2026-10-03
sl_k_percent31.2
sl_bb_percent13.5
sl_woba0.233
sl_xwoba0.254
sl_sweet_spot_percent29.0
sl_barrel_batted_rate6.1
sl_hard_hit_percent33.6
sl_whiff_percent33.6
sl_swing_percent48.3
sl_avg_best_speed77.487421364
sl_avg_hyper_speed92.757592977

Home Team: ATL

Home Pitcher Deep Analysis

FieldValue
PitcherChris Sale
RoleStarter
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score0.7139
ESPN Rank-
Movement AvailableTrue
Primary Pitch-
Movement Score-0.0655
Avg Velo88.6943
Avg Spin2357.2805
HB Inches0
IVB Inches0
Release Extension0
Pre IP6
Pre ER2
Pre H6
Pre BB1
Pre SO5
Season ERA2.2192
Season WHIP0.9746
Role Avg IP6.0360
Recent Avg IP6.8000
Last Start IP6.1000
Team Form Snapshot
{
  "team": {
    "team": "ATL",
    "games": 162,
    "wins": 94,
    "losses": 68,
    "win_pct": 0.5802,
    "runs_scored": 742.0,
    "runs_allowed": 626.0,
    "run_differential": 116.0,
    "run_differential_per_game": 0.716,
    "avg_runs_scored": 4.5802,
    "avg_runs_allowed": 3.8642,
    "offense_index": 1.0201,
    "defense_index": 1.1619,
    "current_streak": "L1",
    "recent": {
      "games": 10,
      "wins": 5,
      "losses": 5,
      "win_pct": 0.5,
      "avg_runs_scored": 4.0,
      "avg_runs_allowed": 3.9,
      "run_differential": 1.0
    },
    "available": true,
    "quality_score": 0.1559
  },
  "opponent": {
    "team": "LAD",
    "games": 162,
    "wins": 100,
    "losses": 62,
    "win_pct": 0.6173,
    "runs_scored": 801.0,
    "runs_allowed": 600.0,
    "run_differential": 201.0,
    "run_differential_per_game": 1.2407,
    "avg_runs_scored": 4.9444,
    "avg_runs_allowed": 3.7037,
    "offense_index": 1.1012,
    "defense_index": 1.2123,
    "current_streak": "W3",
    "recent": {
      "games": 10,
      "wins": 8,
      "losses": 2,
      "win_pct": 0.8,
      "avg_runs_scored": 5.0,
      "avg_runs_allowed": 2.2,
      "run_differential": 28.0
    },
    "available": true,
    "quality_score": 0.3567
  },
  "method": "team_form_snapshot",
  "role": "pitcher",
  "edges": {
    "quality_edge": -0.2008,
    "offense_edge": 0.0201,
    "opponent_offense_edge": 0.1012,
    "defense_strength": 0.1619,
    "opponent_defense_weakness": -0.2123,
    "recent_win_pct_edge": -0.3
  },
  "player_factors": {
    "ip": 0.9928,
    "run_prevention": 1.01,
    "strikeout": 0.9859
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "519242",
    "profile": {
      "available": true,
      "pitcher_id": "519242",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 601.0,
        "k_percent": 30.9,
        "bb_percent": 4.8,
        "woba": 0.259,
        "xwoba": 0.267,
        "sweet_spot_percent": 34.3,
        "barrel_batted_rate": 6.2,
        "hard_hit_percent": 35.1,
        "avg_best_speed": 76.8972,
        "avg_hyper_speed": 93.4361,
        "whiff_percent": 30.4,
        "swing_percent": 50.7
      },
      "league_medians": {
        "pa": 134.0,
        "k_percent": 22.1,
        "bb_percent": 9.2,
        "woba": 0.315,
        "xwoba": 0.312,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6432,
        "avg_hyper_speed": 93.9005,
        "whiff_percent": 25.2,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": 0.8395,
        "command_and_miss": 1.0457,
        "regression_edge": -0.2286,
        "xwoba_edge": 1.2857,
        "barrel_edge": 0.2222,
        "hard_hit_edge": 0.4,
        "whiff_edge": 0.7429,
        "bb_edge": 1.1,
        "pitch_design_score": -0.0655
      },
      "quality_score": 0.7139,
      "sample_weight": 1.0,
      "run_prevention_factor": 0.9393,
      "strikeout_factor": 1.08,
      "walk_factor": 0.912,
      "homer_factor": 0.9277,
      "woba_minus_xwoba": -0.008,
      "regression_flag": "neutral",
      "espn_rank": {
        "available": false,
        "player_id": "519242",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 2.0,
        "factor": 0.9393,
        "adjusted": 2
      },
      "predicted_H": {
        "original": 4.0,
        "factor": 0.9393,
        "adjusted": 4
      },
      "predicted_BB": {
        "original": 1.0,
        "factor": 0.912,
        "adjusted": 1
      },
      "predicted_HR": {
        "original": 0.0,
        "factor": 0.9277,
        "adjusted": 0
      },
      "predicted_SO": {
        "original": 8.0,
        "factor": 1.08,
        "adjusted": 9
      }
    }
  },
  "club_form": "game.<side>_team.predicted_performance.team_form"
}
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": 59.1,
    "ER": 15,
    "H": 43,
    "BB": 6,
    "SO": 78,
    "HR": 2,
    "ERA": 2.2752808988764044,
    "WHIP": 0.8258426966292135,
    "K9": 11.831460674157302,
    "HR9": 0.3033707865168539,
    "games_pitched": 10,
    "quality_starts": 8,
    "dominant_form": false,
    "struggling_form": false
  },
  "fielding": {
    "errors": 0,
    "assists": 0,
    "games_fielded": 10,
    "error_prone": false
  },
  "games_count": 10,
  "latest_game_date": "2026-10-01T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": true,
  "pitcher_id": "519242",
  "player_name": null,
  "source": "all_players_stats.csv embedded Savant pitcher movement features",
  "total_pitches": 102,
  "primary_pitch": {
    "pitch_type": null,
    "pitch_name": null,
    "pitches": 102,
    "pitch_usage": 0.0,
    "release_speed": 88.69431015805822,
    "release_spin_rate": 2357.280511373259,
    "spin_axis": null,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": null,
    "release_pos_x": null,
    "release_pos_z": null,
    "release_extension": 0.0,
    "arm_angle": 0.0,
    "whiff_percent": 0.0,
    "xwoba": 0.0,
    "hard_hit_percent": 0.0
  },
  "pitch_mix": [
    {
      "pitch_type": null,
      "pitch_name": null,
      "pitches": 102,
      "pitch_usage": 0.0,
      "release_speed": 88.69431015805822,
      "release_spin_rate": 2357.280511373259,
      "spin_axis": null,
      "horizontal_break_inches": 0.0,
      "induced_vertical_break_inches": 0.0,
      "vertical_break_with_gravity_inches": null,
      "release_pos_x": null,
      "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.6943,
    "release_spin_rate": 2357.2805,
    "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.0655,
    "horizontal_break_edge": 0.0,
    "induced_vertical_break_edge": 0.0,
    "extension_edge": 0.0,
    "velocity_edge": -0.4679,
    "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": 29.0,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.8529,
    "prior_weight": 0.1471
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "519242",
  "report_date": "20261006",
  "season_year": 2026,
  "rows_used": 29,
  "reference_playing_time": 6.333,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 26.1,
        "ER": 9.0,
        "R": 9.0,
        "H": 18.0,
        "BB": 4.0,
        "SO": 35.0,
        "HR": 2.0,
        "BF": 102.0,
        "Pitches": 410.0
      },
      "per_game": {
        "IP": 5.1,
        "ER": 1.8,
        "R": 1.8,
        "H": 3.6,
        "BB": 0.8,
        "SO": 7.0,
        "HR": 0.4,
        "BF": 20.4,
        "Pitches": 82.0
      },
      "rates": {
        "ERA": 3.0759,
        "WHIP": 0.8354,
        "ER_per_IP": 0.34177,
        "H_per_IP": 0.68354,
        "BB_per_IP": 0.1519,
        "SO_per_IP": 1.32911,
        "HR_per_IP": 0.07595
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 59.1,
        "ER": 15.0,
        "R": 15.0,
        "H": 43.0,
        "BB": 6.0,
        "SO": 78.0,
        "HR": 2.0,
        "BF": 227.0,
        "Pitches": 918.0
      },
      "per_game": {
        "IP": 6.0,
        "ER": 1.5,
        "R": 1.5,
        "H": 4.3,
        "BB": 0.6,
        "SO": 7.8,
        "HR": 0.2,
        "BF": 22.7,
        "Pitches": 91.8
      },
      "rates": {
        "ERA": 2.2753,
        "WHIP": 0.8258,
        "ER_per_IP": 0.25281,
        "H_per_IP": 0.72472,
        "BB_per_IP": 0.10112,
        "SO_per_IP": 1.31461,
        "HR_per_IP": 0.03371
      }
    },
    "season": {
      "games": 29,
      "totals": {
        "IP": 170.1,
        "ER": 42.0,
        "R": 47.0,
        "H": 134.0,
        "BB": 32.0,
        "SO": 212.0,
        "HR": 10.0,
        "BF": 678.0,
        "Pitches": 2690.0
      },
      "per_game": {
        "IP": 6.0,
        "ER": 1.4483,
        "R": 1.6207,
        "H": 4.6207,
        "BB": 1.1034,
        "SO": 7.3103,
        "HR": 0.3448,
        "BF": 23.3793,
        "Pitches": 92.7586
      },
      "rates": {
        "ERA": 2.2192,
        "WHIP": 0.9746,
        "ER_per_IP": 0.24658,
        "H_per_IP": 0.78669,
        "BB_per_IP": 0.18787,
        "SO_per_IP": 1.24462,
        "HR_per_IP": 0.05871
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 5.2,
    "predicted_ER": 1.878,
    "predicted_H": 4.389,
    "predicted_BB": 1.023,
    "predicted_SO": 7.254,
    "predicted_HR": 0.411,
    "predicted_ERA": 2.9175,
    "predicted_WHIP": 0.9342
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.4121,
  "form_weight": 0.5879,
  "form_reliability": 0.8529,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 29.0,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.8529,
    "prior_weight": 0.1471
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 6.1,
      "form": 5.2,
      "final": 6.0,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 3.0,
      "form": 1.878,
      "final": 2.3404,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 4.0,
      "form": 4.389,
      "final": 4.2287,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 1.0,
      "form": 1.023,
      "final": 1.0135,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 6.0,
      "form": 7.254,
      "final": 6.7372,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 1.0,
      "form": 0.411,
      "final": 0.6538,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 2.9175,
      "final": 2.9175,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 0.9342,
      "final": 0.9342,
      "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 Dodd
RoleMiddle Reliever
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score0.2871
ESPN Rank-
Movement AvailableTrue
Primary Pitch-
Movement Score0.0466
Avg Velo90.6954
Avg Spin2142.6259
HB Inches0
IVB Inches0
Release Extension0
Pre IP1
Pre ER0
Pre H1
Pre BB0
Pre SO0
Season ERA2.5312
Season WHIP0.9000
Role Avg IP1.0270
Recent Avg IP1
Last Start IP0
Team Form Snapshot
{
  "team": {
    "team": "ATL",
    "games": 162,
    "wins": 94,
    "losses": 68,
    "win_pct": 0.5802,
    "runs_scored": 742.0,
    "runs_allowed": 626.0,
    "run_differential": 116.0,
    "run_differential_per_game": 0.716,
    "avg_runs_scored": 4.5802,
    "avg_runs_allowed": 3.8642,
    "offense_index": 1.0201,
    "defense_index": 1.1619,
    "current_streak": "L1",
    "recent": {
      "games": 10,
      "wins": 5,
      "losses": 5,
      "win_pct": 0.5,
      "avg_runs_scored": 4.0,
      "avg_runs_allowed": 3.9,
      "run_differential": 1.0
    },
    "available": true,
    "quality_score": 0.1559
  },
  "opponent": {
    "team": "LAD",
    "games": 162,
    "wins": 100,
    "losses": 62,
    "win_pct": 0.6173,
    "runs_scored": 801.0,
    "runs_allowed": 600.0,
    "run_differential": 201.0,
    "run_differential_per_game": 1.2407,
    "avg_runs_scored": 4.9444,
    "avg_runs_allowed": 3.7037,
    "offense_index": 1.1012,
    "defense_index": 1.2123,
    "current_streak": "W3",
    "recent": {
      "games": 10,
      "wins": 8,
      "losses": 2,
      "win_pct": 0.8,
      "avg_runs_scored": 5.0,
      "avg_runs_allowed": 2.2,
      "run_differential": 28.0
    },
    "available": true,
    "quality_score": 0.3567
  },
  "method": "team_form_snapshot",
  "role": "pitcher",
  "edges": {
    "quality_edge": -0.2008,
    "offense_edge": 0.0201,
    "opponent_offense_edge": 0.1012,
    "defense_strength": 0.1619,
    "opponent_defense_weakness": -0.2123,
    "recent_win_pct_edge": -0.3
  },
  "player_factors": {
    "ip": 0.9928,
    "run_prevention": 1.01,
    "strikeout": 0.9859
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "689266",
    "profile": {
      "available": true,
      "pitcher_id": "689266",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 168.0,
        "k_percent": 27.3,
        "bb_percent": 7.2,
        "woba": 0.26,
        "xwoba": 0.273,
        "sweet_spot_percent": 37.9,
        "barrel_batted_rate": 8.9,
        "hard_hit_percent": 37.1,
        "avg_best_speed": 80.0941,
        "avg_hyper_speed": 93.4986,
        "whiff_percent": 29.5,
        "swing_percent": 54.4
      },
      "league_medians": {
        "pa": 134.0,
        "k_percent": 22.1,
        "bb_percent": 9.2,
        "woba": 0.315,
        "xwoba": 0.312,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6432,
        "avg_hyper_speed": 93.9005,
        "whiff_percent": 25.2,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": 0.5212,
        "command_and_miss": 0.6493,
        "regression_edge": -0.3714,
        "xwoba_edge": 1.1143,
        "barrel_edge": -0.3778,
        "hard_hit_edge": 0.1143,
        "whiff_edge": 0.6143,
        "bb_edge": 0.5,
        "pitch_design_score": 0.0466
      },
      "quality_score": 0.2871,
      "sample_weight": 0.672,
      "run_prevention_factor": 0.9756,
      "strikeout_factor": 1.0365,
      "walk_factor": 0.9731,
      "homer_factor": 0.9948,
      "woba_minus_xwoba": -0.013,
      "regression_flag": "neutral",
      "espn_rank": {
        "available": false,
        "player_id": "689266",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 0.0,
        "factor": 0.9836,
        "adjusted": 0
      },
      "predicted_H": {
        "original": 1.0,
        "factor": 0.9836,
        "adjusted": 1
      },
      "predicted_BB": {
        "original": 0.0,
        "factor": 0.9819,
        "adjusted": 0
      },
      "predicted_HR": {
        "original": 0.0,
        "factor": 0.9965,
        "adjusted": 0
      },
      "predicted_SO": {
        "original": 2.0,
        "factor": 1.0245,
        "adjusted": 2
      }
    }
  },
  "club_form": "game.<side>_team.predicted_performance.team_form"
}
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": 5,
    "H": 9,
    "BB": 1,
    "SO": 14,
    "HR": 3,
    "ERA": 3.9705882352941173,
    "WHIP": 0.8823529411764706,
    "K9": 11.117647058823529,
    "HR9": 2.3823529411764706,
    "games_pitched": 10,
    "quality_starts": 0,
    "dominant_form": false,
    "struggling_form": false
  },
  "fielding": {
    "errors": 0,
    "assists": 0,
    "games_fielded": 10,
    "error_prone": false
  },
  "games_count": 10,
  "latest_game_date": "2026-10-03T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": true,
  "pitcher_id": "689266",
  "player_name": null,
  "source": "all_players_stats.csv embedded Savant pitcher movement features",
  "total_pitches": 4,
  "primary_pitch": {
    "pitch_type": null,
    "pitch_name": null,
    "pitches": 4,
    "pitch_usage": 0.0,
    "release_speed": 90.69542798085439,
    "release_spin_rate": 2142.6259128208435,
    "spin_axis": null,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": null,
    "release_pos_x": null,
    "release_pos_z": null,
    "release_extension": 0.0,
    "arm_angle": 0.0,
    "whiff_percent": 0.0,
    "xwoba": 0.0,
    "hard_hit_percent": 0.0
  },
  "pitch_mix": [
    {
      "pitch_type": null,
      "pitch_name": null,
      "pitches": 4,
      "pitch_usage": 0.0,
      "release_speed": 90.69542798085439,
      "release_spin_rate": 2142.6259128208435,
      "spin_axis": null,
      "horizontal_break_inches": 0.0,
      "induced_vertical_break_inches": 0.0,
      "vertical_break_with_gravity_inches": null,
      "release_pos_x": null,
      "release_pos_z": null,
      "release_extension": 0.0,
      "arm_angle": 0.0,
      "whiff_percent": 0.0,
      "xwoba": 0.0,
      "hard_hit_percent": 0.0
    }
  ],
  "summary": {
    "release_speed": 90.6954,
    "release_spin_rate": 2142.6259,
    "spin_axis": 0.0,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": 0.0,
    "release_pos_x": 0.0,
    "release_pos_z": 0.0,
    "release_extension": 0.0,
    "arm_angle": 0.0,
    "whiff_percent": 0.0,
    "xwoba": 0.0,
    "hard_hit_percent": 0.0
  },
  "components": {
    "movement_score": 0.0466,
    "horizontal_break_edge": 0.0,
    "induced_vertical_break_edge": 0.0,
    "extension_edge": 0.0,
    "velocity_edge": 0.3325,
    "whiff_edge": 0.0,
    "xwoba_edge": -0.0,
    "hard_hit_edge": -0.0
  },
  "spin_efficiency_note": "Savant statcast CSV provides spin rate and spin axis here; true spin efficiency is not exposed in this feed."
}
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.013,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.6878,
    "prior_weight": 0.3122
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "689266",
  "report_date": "20261006",
  "season_year": 2026,
  "rows_used": 50,
  "reference_playing_time": 1.0,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 7.2,
        "ER": 3.0,
        "R": 3.0,
        "H": 6.0,
        "BB": 0.0,
        "SO": 10.0,
        "HR": 1.0,
        "BF": 30.0,
        "Pitches": 120.0
      },
      "per_game": {
        "IP": 1.2,
        "ER": 0.6,
        "R": 0.6,
        "H": 1.2,
        "BB": 0.0,
        "SO": 2.0,
        "HR": 0.2,
        "BF": 6.0,
        "Pitches": 24.0
      },
      "rates": {
        "ERA": 3.5217,
        "WHIP": 0.7826,
        "ER_per_IP": 0.3913,
        "H_per_IP": 0.78261,
        "BB_per_IP": 0.0,
        "SO_per_IP": 1.30435,
        "HR_per_IP": 0.13043
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 11.1,
        "ER": 5.0,
        "R": 5.0,
        "H": 9.0,
        "BB": 1.0,
        "SO": 14.0,
        "HR": 3.0,
        "BF": 45.0,
        "Pitches": 176.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.5,
        "R": 0.5,
        "H": 0.9,
        "BB": 0.1,
        "SO": 1.4,
        "HR": 0.3,
        "BF": 4.5,
        "Pitches": 17.6
      },
      "rates": {
        "ERA": 3.9706,
        "WHIP": 0.8824,
        "ER_per_IP": 0.44118,
        "H_per_IP": 0.79412,
        "BB_per_IP": 0.08824,
        "SO_per_IP": 1.23529,
        "HR_per_IP": 0.26471
      }
    },
    "season": {
      "games": 50,
      "totals": {
        "IP": 53.1,
        "ER": 15.0,
        "R": 15.0,
        "H": 34.0,
        "BB": 14.0,
        "SO": 57.0,
        "HR": 7.0,
        "BF": 208.0,
        "Pitches": 840.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.3,
        "R": 0.3,
        "H": 0.68,
        "BB": 0.28,
        "SO": 1.14,
        "HR": 0.14,
        "BF": 4.16,
        "Pitches": 16.8
      },
      "rates": {
        "ERA": 2.5312,
        "WHIP": 0.9,
        "ER_per_IP": 0.28125,
        "H_per_IP": 0.6375,
        "BB_per_IP": 0.2625,
        "SO_per_IP": 1.06875,
        "HR_per_IP": 0.13125
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 1.1,
    "predicted_ER": 0.514,
    "predicted_H": 0.999,
    "predicted_BB": 0.213,
    "predicted_SO": 1.375,
    "predicted_HR": 0.203,
    "predicted_ERA": 3.8355,
    "predicted_WHIP": 1.0046
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.4819,
  "form_weight": 0.5181,
  "form_reliability": 0.6878,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 11.013,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.6878,
    "prior_weight": 0.3122
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 1.0,
      "form": 1.1,
      "final": 1.2,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 0.0,
      "form": 0.514,
      "final": 0.2663,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 1.0,
      "form": 0.999,
      "final": 0.9995,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 0.0,
      "form": 0.213,
      "final": 0.1104,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 1.0,
      "form": 1.375,
      "final": 1.1943,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 0.0,
      "form": 0.203,
      "final": 0.1052,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 3.8355,
      "final": 3.8355,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 1.0046,
      "final": 1.0046,
      "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
PitcherRobert Suarez
RoleMiddle Reliever (High Leverage)
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score0.2103
ESPN Rank-
Movement AvailableTrue
Primary Pitch-
Movement Score0.2800
Avg Velo95.5990
Avg Spin2227.5546
HB Inches0
IVB Inches0
Release Extension0
Pre IP1
Pre ER0
Pre H1
Pre BB0
Pre SO0
Season ERA1.0093
Season WHIP0.8692
Role Avg IP1.0190
Recent Avg IP1
Last Start IP0
Team Form Snapshot
{
  "team": {
    "team": "ATL",
    "games": 162,
    "wins": 94,
    "losses": 68,
    "win_pct": 0.5802,
    "runs_scored": 742.0,
    "runs_allowed": 626.0,
    "run_differential": 116.0,
    "run_differential_per_game": 0.716,
    "avg_runs_scored": 4.5802,
    "avg_runs_allowed": 3.8642,
    "offense_index": 1.0201,
    "defense_index": 1.1619,
    "current_streak": "L1",
    "recent": {
      "games": 10,
      "wins": 5,
      "losses": 5,
      "win_pct": 0.5,
      "avg_runs_scored": 4.0,
      "avg_runs_allowed": 3.9,
      "run_differential": 1.0
    },
    "available": true,
    "quality_score": 0.1559
  },
  "opponent": {
    "team": "LAD",
    "games": 162,
    "wins": 100,
    "losses": 62,
    "win_pct": 0.6173,
    "runs_scored": 801.0,
    "runs_allowed": 600.0,
    "run_differential": 201.0,
    "run_differential_per_game": 1.2407,
    "avg_runs_scored": 4.9444,
    "avg_runs_allowed": 3.7037,
    "offense_index": 1.1012,
    "defense_index": 1.2123,
    "current_streak": "W3",
    "recent": {
      "games": 10,
      "wins": 8,
      "losses": 2,
      "win_pct": 0.8,
      "avg_runs_scored": 5.0,
      "avg_runs_allowed": 2.2,
      "run_differential": 28.0
    },
    "available": true,
    "quality_score": 0.3567
  },
  "method": "team_form_snapshot",
  "role": "pitcher",
  "edges": {
    "quality_edge": -0.2008,
    "offense_edge": 0.0201,
    "opponent_offense_edge": 0.1012,
    "defense_strength": 0.1619,
    "opponent_defense_weakness": -0.2123,
    "recent_win_pct_edge": -0.3
  },
  "player_factors": {
    "ip": 0.9928,
    "run_prevention": 1.01,
    "strikeout": 0.9859
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "663158",
    "profile": {
      "available": true,
      "pitcher_id": "663158",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 120.0,
        "k_percent": 20.0,
        "bb_percent": 4.6,
        "woba": 0.221,
        "xwoba": 0.283,
        "sweet_spot_percent": 34.0,
        "barrel_batted_rate": 3.1,
        "hard_hit_percent": 33.0,
        "avg_best_speed": 72.2171,
        "avg_hyper_speed": 92.7069,
        "whiff_percent": 23.1,
        "swing_percent": 54.2
      },
      "league_medians": {
        "pa": 134.0,
        "k_percent": 22.1,
        "bb_percent": 9.2,
        "woba": 0.315,
        "xwoba": 0.312,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6432,
        "avg_hyper_speed": 93.9005,
        "whiff_percent": 25.2,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": 1.0632,
        "command_and_miss": -0.01,
        "regression_edge": -1.7714,
        "xwoba_edge": 0.8286,
        "barrel_edge": 0.9111,
        "hard_hit_edge": 0.7,
        "whiff_edge": -0.3,
        "bb_edge": 1.15,
        "pitch_design_score": 0.28
      },
      "quality_score": 0.2103,
      "sample_weight": 0.48,
      "run_prevention_factor": 0.9821,
      "strikeout_factor": 0.9885,
      "walk_factor": 0.9558,
      "homer_factor": 0.9396,
      "woba_minus_xwoba": -0.062,
      "regression_flag": "negative_pitcher_regression",
      "espn_rank": {
        "available": false,
        "player_id": "663158",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 0.0,
        "factor": 0.9914,
        "adjusted": 0
      },
      "predicted_H": {
        "original": 1.0,
        "factor": 0.9914,
        "adjusted": 1
      },
      "predicted_BB": {
        "original": 0.0,
        "factor": 0.9788,
        "adjusted": 0
      },
      "predicted_HR": {
        "original": 0.0,
        "factor": 0.971,
        "adjusted": 0
      },
      "predicted_SO": {
        "original": 2.0,
        "factor": 0.9945,
        "adjusted": 2
      }
    }
  },
  "club_form": "game.<side>_team.predicted_performance.team_form"
}
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.1,
    "ER": 2,
    "H": 9,
    "BB": 1,
    "SO": 5,
    "HR": 0,
    "ERA": 1.7419354838709677,
    "WHIP": 0.9677419354838709,
    "K9": 4.354838709677419,
    "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-10-04T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": true,
  "pitcher_id": "663158",
  "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": 95.59900800338181,
    "release_spin_rate": 2227.5545719144866,
    "spin_axis": null,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": null,
    "release_pos_x": null,
    "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": 95.59900800338181,
      "release_spin_rate": 2227.5545719144866,
      "spin_axis": null,
      "horizontal_break_inches": 0.0,
      "induced_vertical_break_inches": 0.0,
      "vertical_break_with_gravity_inches": null,
      "release_pos_x": null,
      "release_pos_z": null,
      "release_extension": 0.0,
      "arm_angle": 0.0,
      "whiff_percent": 0.0,
      "xwoba": 0.0,
      "hard_hit_percent": 0.0
    }
  ],
  "summary": {
    "release_speed": 95.599,
    "release_spin_rate": 2227.5546,
    "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": 7.365,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.5956,
    "prior_weight": 0.4044
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "663158",
  "report_date": "20261006",
  "season_year": 2026,
  "rows_used": 35,
  "reference_playing_time": 1.0,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 5.0,
        "ER": 2.0,
        "R": 2.0,
        "H": 6.0,
        "BB": 1.0,
        "SO": 1.0,
        "HR": 0.0,
        "BF": 22.0,
        "Pitches": 75.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.4,
        "R": 0.4,
        "H": 1.2,
        "BB": 0.2,
        "SO": 0.2,
        "HR": 0.0,
        "BF": 4.4,
        "Pitches": 15.0
      },
      "rates": {
        "ERA": 3.6,
        "WHIP": 1.4,
        "ER_per_IP": 0.4,
        "H_per_IP": 1.2,
        "BB_per_IP": 0.2,
        "SO_per_IP": 0.2,
        "HR_per_IP": 0.0
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 10.1,
        "ER": 2.0,
        "R": 2.0,
        "H": 9.0,
        "BB": 1.0,
        "SO": 5.0,
        "HR": 0.0,
        "BF": 40.0,
        "Pitches": 137.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.2,
        "R": 0.2,
        "H": 0.9,
        "BB": 0.1,
        "SO": 0.5,
        "HR": 0.0,
        "BF": 4.0,
        "Pitches": 13.7
      },
      "rates": {
        "ERA": 1.7419,
        "WHIP": 0.9677,
        "ER_per_IP": 0.19355,
        "H_per_IP": 0.87097,
        "BB_per_IP": 0.09677,
        "SO_per_IP": 0.48387,
        "HR_per_IP": 0.0
      }
    },
    "season": {
      "games": 35,
      "totals": {
        "IP": 35.2,
        "ER": 4.0,
        "R": 4.0,
        "H": 25.0,
        "BB": 6.0,
        "SO": 27.0,
        "HR": 1.0,
        "BF": 136.0,
        "Pitches": 513.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.1143,
        "R": 0.1143,
        "H": 0.7143,
        "BB": 0.1714,
        "SO": 0.7714,
        "HR": 0.0286,
        "BF": 3.8857,
        "Pitches": 14.6571
      },
      "rates": {
        "ERA": 1.0093,
        "WHIP": 0.8692,
        "ER_per_IP": 0.11215,
        "H_per_IP": 0.70093,
        "BB_per_IP": 0.16822,
        "SO_per_IP": 0.75701,
        "HR_per_IP": 0.02804
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 1.0,
    "predicted_ER": 0.368,
    "predicted_H": 0.985,
    "predicted_BB": 0.248,
    "predicted_SO": 0.622,
    "predicted_HR": 0.063,
    "predicted_ERA": 3.3153,
    "predicted_WHIP": 1.2325
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.5209,
  "form_weight": 0.4791,
  "form_reliability": 0.5956,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 7.365,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.5956,
    "prior_weight": 0.4044
  },
  "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.1763,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 0.0,
      "form": 0.985,
      "final": 0.472,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 0.0,
      "form": 0.248,
      "final": 0.1188,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 1.0,
      "form": 0.622,
      "final": 0.8189,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 0.0,
      "form": 0.063,
      "final": 0.0302,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 3.3153,
      "final": 3.3153,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 1.2325,
      "final": 1.2325,
      "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 Lee
RoleMiddle Reliever (High Leverage)
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score0.8871
ESPN Rank-
Movement AvailableFalse
Primary Pitch-
Movement Score-
Avg Velo-
Avg Spin-
HB Inches-
IVB Inches-
Release Extension-
Pre IP2
Pre ER0
Pre H1
Pre BB0
Pre SO2
Season ERA2.9856
Season WHIP0.9375
Role Avg IP0.9500
Recent Avg IP0.8670
Last Start IP0
Team Form Snapshot
{
  "team": {
    "team": "ATL",
    "games": 162,
    "wins": 94,
    "losses": 68,
    "win_pct": 0.5802,
    "runs_scored": 742.0,
    "runs_allowed": 626.0,
    "run_differential": 116.0,
    "run_differential_per_game": 0.716,
    "avg_runs_scored": 4.5802,
    "avg_runs_allowed": 3.8642,
    "offense_index": 1.0201,
    "defense_index": 1.1619,
    "current_streak": "L1",
    "recent": {
      "games": 10,
      "wins": 5,
      "losses": 5,
      "win_pct": 0.5,
      "avg_runs_scored": 4.0,
      "avg_runs_allowed": 3.9,
      "run_differential": 1.0
    },
    "available": true,
    "quality_score": 0.1559
  },
  "opponent": {
    "team": "LAD",
    "games": 162,
    "wins": 100,
    "losses": 62,
    "win_pct": 0.6173,
    "runs_scored": 801.0,
    "runs_allowed": 600.0,
    "run_differential": 201.0,
    "run_differential_per_game": 1.2407,
    "avg_runs_scored": 4.9444,
    "avg_runs_allowed": 3.7037,
    "offense_index": 1.1012,
    "defense_index": 1.2123,
    "current_streak": "W3",
    "recent": {
      "games": 10,
      "wins": 8,
      "losses": 2,
      "win_pct": 0.8,
      "avg_runs_scored": 5.0,
      "avg_runs_allowed": 2.2,
      "run_differential": 28.0
    },
    "available": true,
    "quality_score": 0.3567
  },
  "method": "team_form_snapshot",
  "role": "pitcher",
  "edges": {
    "quality_edge": -0.2008,
    "offense_edge": 0.0201,
    "opponent_offense_edge": 0.1012,
    "defense_strength": 0.1619,
    "opponent_defense_weakness": -0.2123,
    "recent_win_pct_edge": -0.3
  },
  "player_factors": {
    "ip": 0.9928,
    "run_prevention": 1.01,
    "strikeout": 0.9859
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "669276",
    "profile": {
      "available": true,
      "pitcher_id": "669276",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 247.0,
        "k_percent": 29.4,
        "bb_percent": 6.5,
        "woba": 0.248,
        "xwoba": 0.252,
        "sweet_spot_percent": 35.7,
        "barrel_batted_rate": 5.4,
        "hard_hit_percent": 32.7,
        "avg_best_speed": 77.001,
        "avg_hyper_speed": 93.1922,
        "whiff_percent": 35.7,
        "swing_percent": 52.7
      },
      "league_medians": {
        "pa": 134.0,
        "k_percent": 22.1,
        "bb_percent": 9.2,
        "woba": 0.315,
        "xwoba": 0.312,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6432,
        "avg_hyper_speed": 93.9005,
        "whiff_percent": 25.2,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": 1.0994,
        "command_and_miss": 1.1293,
        "regression_edge": -0.1143,
        "xwoba_edge": 1.7143,
        "barrel_edge": 0.4,
        "hard_hit_edge": 0.7429,
        "whiff_edge": 1.5,
        "bb_edge": 0.675,
        "pitch_design_score": 0.0
      },
      "quality_score": 0.8871,
      "sample_weight": 0.988,
      "run_prevention_factor": 0.9246,
      "strikeout_factor": 1.1005,
      "walk_factor": 0.9466,
      "homer_factor": 0.8882,
      "woba_minus_xwoba": -0.004,
      "regression_flag": "neutral",
      "espn_rank": {
        "available": false,
        "player_id": "669276",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 0.0,
        "factor": 0.9255,
        "adjusted": 0
      },
      "predicted_H": {
        "original": 1.0,
        "factor": 0.9255,
        "adjusted": 1
      },
      "predicted_BB": {
        "original": 0.0,
        "factor": 0.9472,
        "adjusted": 0
      },
      "predicted_HR": {
        "original": 0.0,
        "factor": 0.8895,
        "adjusted": 0
      },
      "predicted_SO": {
        "original": 2.0,
        "factor": 1.0993,
        "adjusted": 2
      }
    }
  },
  "club_form": "game.<side>_team.predicted_performance.team_form"
}
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": 8,
    "H": 13,
    "BB": 3,
    "SO": 6,
    "HR": 2,
    "ERA": 8.307692307692308,
    "WHIP": 1.8461538461538463,
    "K9": 6.230769230769231,
    "HR9": 2.076923076923077,
    "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-10-04T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": false,
  "pitcher_id": "669276",
  "reason": "pitcher_movement_profile_has_no_pitches"
}
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.317,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.7412,
    "prior_weight": 0.2588
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "669276",
  "report_date": "20261006",
  "season_year": 2026,
  "rows_used": 73,
  "reference_playing_time": 0.667,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 4.1,
        "ER": 2.0,
        "R": 2.0,
        "H": 4.0,
        "BB": 1.0,
        "SO": 4.0,
        "HR": 2.0,
        "BF": 17.0,
        "Pitches": 68.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.4,
        "R": 0.4,
        "H": 0.8,
        "BB": 0.2,
        "SO": 0.8,
        "HR": 0.4,
        "BF": 3.4,
        "Pitches": 13.6
      },
      "rates": {
        "ERA": 4.1538,
        "WHIP": 1.1538,
        "ER_per_IP": 0.46154,
        "H_per_IP": 0.92308,
        "BB_per_IP": 0.23077,
        "SO_per_IP": 0.92308,
        "HR_per_IP": 0.46154
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 8.2,
        "ER": 8.0,
        "R": 8.0,
        "H": 13.0,
        "BB": 3.0,
        "SO": 6.0,
        "HR": 2.0,
        "BF": 40.0,
        "Pitches": 149.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.8,
        "R": 0.8,
        "H": 1.3,
        "BB": 0.3,
        "SO": 0.6,
        "HR": 0.2,
        "BF": 4.0,
        "Pitches": 14.9
      },
      "rates": {
        "ERA": 8.3077,
        "WHIP": 1.8462,
        "ER_per_IP": 0.92308,
        "H_per_IP": 1.5,
        "BB_per_IP": 0.34615,
        "SO_per_IP": 0.69231,
        "HR_per_IP": 0.23077
      }
    },
    "season": {
      "games": 73,
      "totals": {
        "IP": 69.1,
        "ER": 23.0,
        "R": 25.0,
        "H": 48.0,
        "BB": 17.0,
        "SO": 80.0,
        "HR": 5.0,
        "BF": 269.0,
        "Pitches": 1088.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.3151,
        "R": 0.3425,
        "H": 0.6575,
        "BB": 0.2329,
        "SO": 1.0959,
        "HR": 0.0685,
        "BF": 3.6849,
        "Pitches": 14.9041
      },
      "rates": {
        "ERA": 2.9856,
        "WHIP": 0.9375,
        "ER_per_IP": 0.33173,
        "H_per_IP": 0.69231,
        "BB_per_IP": 0.24519,
        "SO_per_IP": 1.15385,
        "HR_per_IP": 0.07212
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 1.0,
    "predicted_ER": 0.526,
    "predicted_H": 0.963,
    "predicted_BB": 0.276,
    "predicted_SO": 0.823,
    "predicted_HR": 0.24,
    "predicted_ERA": 5.1781,
    "predicted_WHIP": 1.356
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.4593,
  "form_weight": 0.5407,
  "form_reliability": 0.7412,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 14.317,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.7412,
    "prior_weight": 0.2588
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 0.2,
      "form": 1.0,
      "final": 1.0,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 1.0,
      "form": 0.526,
      "final": 0.7437,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 2.0,
      "form": 0.963,
      "final": 1.4393,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 0.0,
      "form": 0.276,
      "final": 0.1492,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 2.0,
      "form": 0.823,
      "final": 1.3636,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 0.0,
      "form": 0.24,
      "final": 0.1298,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 5.1781,
      "final": 5.1781,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 1.356,
      "final": 1.356,
      "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."
}
Drake Baldwin (686948) · BATTER · C · Team ATL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 587
All-history rows before 20261006: 587
System season_avg: 0.2800
Data season_avg (2026 season-to-date): 0.2831
Diff (system - data): -0.0031
System opponent_avg: 0.2960

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1480.0000.000Hitting_2B0.1410.000-0.1410.000
predicted_3B0.0000.0000.000Hitting_3B0.0000.0000.0000.000
predicted_AB4.5705.0005.000Hitting_AB3.9782.0001.0223.000
predicted_AVG0.2320.0000.000Hitting_AVG0.2830.000-0.2830.000
predicted_BB0.4080.0000.000Hitting_BB0.4223.000-0.422-3.000
predicted_CS-0.0000.000BaseRunning_CS0.0050.000-0.0050.000
predicted_H1.0600.0000.000Hitting_H1.1260.000-1.1260.000
predicted_HR0.1400.0000.000Hitting_HR0.1810.000-0.1810.000
predicted_OBP0.3340.0000.000Hitting_OBP0.3610.600-0.361-0.600
predicted_R0.5920.0000.000Hitting_R0.6220.000-0.6220.000
predicted_RBI0.5300.0000.000Hitting_RBI0.6060.000-0.6060.000
predicted_SLG0.3860.0000.000Hitting_SLG0.4550.000-0.4550.000
predicted_SO0.9370.0000.000Hitting_SO0.9520.000-0.9520.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics11
Boosted Metrics2
Deboosted Metrics9
Better Metrics3
Worse Metrics8
Biggest Boostpredicted_AB: 4.5700 -> 5.0000 (boost 0.4300, better)
Biggest Deboostpredicted_H: 1.0600 -> 0.0000 (deboost -1.0600, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend31212predicted_AVG: 0.2320 -> 0.2397 (boost 0.0077, better)predicted_AB: 4.5700 -> 4.2866 (deboost -0.2834, 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_OBP: 0.3338 -> 0.2998 (deboost -0.0340, 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.9089 -> 1.0000 (boost 0.0911, worse)predicted_RBI: 0.4642 -> 0.0000 (deboost -0.4642, worse)AB rounded to 4 (raw=4.57), rates preserved: AVG=0.192 HR/AB=0.028
6consistency_constraints10101-predicted_R: 0.4803 -> 0.0000 (deboost -0.4803, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine44040predicted_RBI: 0.0000 -> 0.5466 (boost 0.5466, 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_allocation53232predicted_BB: 0.3340 -> 1.0000 (boost 0.6660, better)predicted_HR: 0.1800 -> 0.0000 (deboost -0.1800, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10kpi_run_environment33030predicted_SLG: 0.4140 -> 0.4290 (boost 0.0150, better)-KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup
11market_blend00000--Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated
12play_by_play_realization51423predicted_AB: 4.0000 -> 5.0000 (boost 1.0000, better)predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse)Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
13simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
14current_json_final30303-predicted_OBP: 0.3090 -> 0.3000 (deboost -0.0090, worse)Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "686948",
  "player_name": "Drake Baldwin",
  "position": "C",
  "team": "ATL",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.148,
        "predicted_3B": 0.0,
        "predicted_AB": 4.57,
        "predicted_AVG": 0.232,
        "predicted_BB": 0.408,
        "predicted_H": 1.06,
        "predicted_HR": 0.14,
        "predicted_OBP": 0.334,
        "predicted_R": 0.592,
        "predicted_RBI": 0.53,
        "predicted_SLG": 0.386,
        "predicted_SO": 0.937
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "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.1572,
        "predicted_3B": 0.0004,
        "predicted_AB": 4.2866,
        "predicted_AVG": 0.2397,
        "predicted_BB": 0.4211,
        "predicted_H": 1.0246,
        "predicted_HBP": 0.056,
        "predicted_HR": 0.1334,
        "predicted_OBP": 0.3338,
        "predicted_R": 0.5073,
        "predicted_RBI": 0.4903,
        "predicted_SLG": 0.3873,
        "predicted_SO": 0.9042
      },
      "changed_metrics": [
        {
          "metric": "predicted_AB",
          "before": 4.57,
          "after": 4.2866,
          "delta": -0.2834,
          "percent_delta": -0.062,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.232,
          "after": 0.2397,
          "delta": 0.0077,
          "percent_delta": 0.0332,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.592,
          "after": 0.5073,
          "delta": -0.0847,
          "percent_delta": -0.1431,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 3,
        "boosted_metrics": 1,
        "deboosted_metrics": 2,
        "better_metrics": 1,
        "worse_metrics": 2,
        "biggest_boost": {
          "metric": "predicted_AVG",
          "before": 0.232,
          "after": 0.2397,
          "delta": 0.0077,
          "percent_delta": 0.0332,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 4.57,
          "after": 4.2866,
          "delta": -0.2834,
          "percent_delta": -0.062,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      },
      "weights": {
        "xgboost_raw": 0.55,
        "weighted_form": 0.45,
        "form_windows": {
          "last_5": 0.2,
          "last_10": 0.2,
          "season": 0.6
        }
      },
      "window_games": {
        "last_5": 5,
        "last_10": 10,
        "season": 142
      }
    },
    {
      "index": 3,
      "step": "team_form_snapshot",
      "description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
      "stats": {
        "predicted_2B": 0.1572,
        "predicted_3B": 0.0004,
        "predicted_AB": 4.2866,
        "predicted_AVG": 0.2314,
        "predicted_BB": 0.4189,
        "predicted_H": 0.9918,
        "predicted_HBP": 0.056,
        "predicted_HR": 0.1295,
        "predicted_OBP": 0.2998,
        "predicted_R": 0.4803,
        "predicted_RBI": 0.4642,
        "predicted_SLG": 0.3589,
        "predicted_SO": 0.9089
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.2397,
          "after": 0.2314,
          "delta": -0.0083,
          "percent_delta": -0.0346,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3338,
          "after": 0.2998,
          "delta": -0.034,
          "percent_delta": -0.1019,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3873,
          "after": 0.3589,
          "delta": -0.0284,
          "percent_delta": -0.0733,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.3338,
          "after": 0.2998,
          "delta": -0.034,
          "percent_delta": -0.1019,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 4 (raw=4.57), rates preserved: AVG=0.192 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.1572,
          "after": 0.0,
          "delta": -0.1572,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AB",
          "before": 4.2866,
          "after": 4.0,
          "delta": -0.2866,
          "percent_delta": -0.0669,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.4189,
          "after": 0.0,
          "delta": -0.4189,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HBP",
          "before": 0.056,
          "after": 0.0,
          "delta": -0.056,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1295,
          "after": 0.0,
          "delta": -0.1295,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4642,
          "after": 0.0,
          "delta": -0.4642,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.9089,
          "after": 1.0,
          "delta": 0.0911,
          "percent_delta": 0.1002,
          "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.9089,
          "after": 1.0,
          "delta": 0.0911,
          "percent_delta": 0.1002,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.4642,
          "after": 0.0,
          "delta": -0.4642,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_R",
          "before": 0.4803,
          "after": 0.0,
          "delta": -0.4803,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 0,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 1,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_R",
          "before": 0.4803,
          "after": 0.0,
          "delta": -0.4803,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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.1681,
        "predicted_3B": 0.0081,
        "predicted_BB": 0.334,
        "predicted_H": 0.9553,
        "predicted_HR": 0.18,
        "predicted_RBI": 0.5466,
        "predicted_SO": 0.9859
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1681,
          "delta": 0.1681,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.334,
          "delta": 0.334,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.18,
          "delta": 0.18,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.5466,
          "delta": 0.5466,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 4,
        "boosted_metrics": 4,
        "deboosted_metrics": 0,
        "better_metrics": 4,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.5466,
          "delta": 0.5466,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "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_AVG": 0.235,
        "predicted_BB": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.299,
        "predicted_R": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.414,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1681,
          "after": 0.0,
          "delta": -0.1681,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.334,
          "after": 1.0,
          "delta": 0.666,
          "percent_delta": 1.994,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.18,
          "after": 0.0,
          "delta": -0.18,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5466,
          "after": 1.0,
          "delta": 0.4534,
          "percent_delta": 0.8295,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3589,
          "after": 0.414,
          "delta": 0.0551,
          "percent_delta": 0.1535,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 5,
        "boosted_metrics": 3,
        "deboosted_metrics": 2,
        "better_metrics": 3,
        "worse_metrics": 2,
        "biggest_boost": {
          "metric": "predicted_BB",
          "before": 0.334,
          "after": 1.0,
          "delta": 0.666,
          "percent_delta": 1.994,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_HR",
          "before": 0.18,
          "after": 0.0,
          "delta": -0.18,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 9,
      "step": "embedded_savant_player_context",
      "description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.235,
        "predicted_BB": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.299,
        "predicted_R": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.414,
        "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
      }
    },
    {
      "index": 10,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.244,
        "predicted_BB": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.309,
        "predicted_R": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.429,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.235,
          "after": 0.244,
          "delta": 0.009,
          "percent_delta": 0.0383,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.299,
          "after": 0.309,
          "delta": 0.01,
          "percent_delta": 0.0334,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.414,
          "after": 0.429,
          "delta": 0.015,
          "percent_delta": 0.0362,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 3,
        "boosted_metrics": 3,
        "deboosted_metrics": 0,
        "better_metrics": 3,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_SLG",
          "before": 0.414,
          "after": 0.429,
          "delta": 0.015,
          "percent_delta": 0.0362,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "index": 11,
      "step": "market_blend",
      "description": "Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated",
      "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
      }
    },
    {
      "index": 12,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 5.0,
        "predicted_BB": 0.0,
        "predicted_H": 0.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.0,
        "predicted_SO": 0.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AB",
          "before": 4.0,
          "after": 5.0,
          "delta": 1.0,
          "percent_delta": 0.25,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "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_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": 4.0,
          "after": 5.0,
          "delta": 1.0,
          "percent_delta": 0.25,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 13,
      "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_H": 0.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.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
      },
      "reference_only": true
    },
    {
      "index": 14,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 5.0,
        "predicted_AVG": 0.237,
        "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.3,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.423,
        "predicted_SO": 0.0,
        "predicted_TB": 0.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.244,
          "after": 0.237,
          "delta": -0.007,
          "percent_delta": -0.0287,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.309,
          "after": 0.3,
          "delta": -0.009,
          "percent_delta": -0.0291,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.429,
          "after": 0.423,
          "delta": -0.006,
          "percent_delta": -0.014,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.309,
          "after": 0.3,
          "delta": -0.009,
          "percent_delta": -0.0291,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    }
  ],
  "total_change": {
    "from_step": "xgboost_raw",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_2B",
        "before": 0.148,
        "after": 0.0,
        "delta": -0.148,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AB",
        "before": 4.57,
        "after": 5.0,
        "delta": 0.43,
        "percent_delta": 0.0941,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.408,
        "after": 0.0,
        "delta": -0.408,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 1.06,
        "after": 0.0,
        "delta": -1.06,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HBP",
        "before": 0.056,
        "after": 0.0,
        "delta": -0.056,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.14,
        "after": 0.0,
        "delta": -0.14,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.334,
        "after": 0.3,
        "delta": -0.034,
        "percent_delta": -0.1018,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.592,
        "after": 0.0,
        "delta": -0.592,
        "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.386,
        "after": 0.423,
        "delta": 0.037,
        "percent_delta": 0.0959,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.937,
        "after": 0.0,
        "delta": -0.937,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 11,
      "boosted_metrics": 2,
      "deboosted_metrics": 9,
      "better_metrics": 3,
      "worse_metrics": 8,
      "biggest_boost": {
        "metric": "predicted_AB",
        "before": 4.57,
        "after": 5.0,
        "delta": 0.43,
        "percent_delta": 0.0941,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_H",
        "before": 1.06,
        "after": 0.0,
        "delta": -1.06,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

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.148-
predicted_3B0.000-
predicted_AB4.570-
predicted_AVG0.232-
predicted_BB0.408-
predicted_H1.060-
predicted_HR0.140-
predicted_OBP0.334-
predicted_R0.592-
predicted_RBI0.530-
predicted_SLG0.386-
predicted_SO0.937-
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.1570.009
predicted_3B0.0000.000
predicted_AB4.287-0.283
predicted_AVG0.2400.008
predicted_BB0.4210.013
predicted_H1.025-0.035
predicted_HBP0.056-
predicted_HR0.133-0.007
predicted_OBP0.334-0.000
predicted_R0.507-0.085
predicted_RBI0.490-0.040
predicted_SLG0.3870.001
predicted_SO0.904-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.1570.000
predicted_3B0.0000.000
predicted_AB4.2870.000
predicted_AVG0.231-0.008
predicted_BB0.419-0.002
predicted_H0.992-0.033
predicted_HBP0.0560.000
predicted_HR0.130-0.004
predicted_OBP0.300-0.034
predicted_R0.480-0.027
predicted_RBI0.464-0.026
predicted_SLG0.359-0.028
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=4.57), rates preserved: AVG=0.192 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.1680.168
3B0.0080.008
BB0.3340.334
H0.955-0.045
HR0.1800.180
RBI0.5470.547
SO0.986-0.014
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.008
AB4.0000.000
AVG0.235-
BB1.0000.666
H1.0000.045
HR0.000-0.180
OBP0.299-
R0.0000.000
RBI1.0000.453
SLG0.414-
SO1.0000.014
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.157
predicted_3B0.000-0.000
predicted_AB4.000-0.287
predicted_AVG0.2350.004
predicted_BB1.0000.581
predicted_H1.0000.008
predicted_HR0.000-0.130
predicted_OBP0.299-0.001
predicted_R0.000-0.480
predicted_RBI1.0000.536
predicted_SLG0.4140.055
predicted_SO1.0000.091
10. kpi_run_environment

KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
AVG0.2440.009
BB1.0000.000
H1.0000.000
HR0.0000.000
OBP0.3090.010
R0.0000.000
RBI1.0000.000
SLG0.4290.015
SO1.0000.000
11. market_blend

Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated

MetricValueDelta vs Prev Step
12. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB5.0001.000
BB0.000-1.000
H0.000-1.000
HBP0.0000.000
HR0.0000.000
PA5.000-
R0.0000.000
RBI0.000-1.000
SF0.0000.000
SO0.000-1.000
13. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB5.0000.000
BB0.0000.000
H0.0000.000
HBP0.0000.000
HR0.0000.000
PA5.0000.000
R0.0000.000
RBI0.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: 142
Reference playing time: 4.570
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.0001.0000.0000.0001.0000.0003.0004.0000.15790.27270.21050.15790.00000.05260.15790.2105
last_100.2010-40.00010.0002.0000.0001.0003.0002.0004.0007.0000.25000.33330.37500.25000.02500.07500.10000.1750
season0.60142-560.000157.00021.0000.00025.00080.00084.00058.000133.0000.28040.35610.45180.28040.04460.14290.10360.2375
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1690
predicted_3B0.0010
predicted_AB3.9210
predicted_AVG0.2497
predicted_BB0.4380
predicted_H0.9790
predicted_HBP0.0560
predicted_HR0.1250
predicted_OBP0.3335
predicted_R0.3980
predicted_RBI0.4390
predicted_SLG0.3890
predicted_SO0.8620
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.14800.16900.1572model_form_blend
predicted_3B0.00000.00100.0004model_form_blend
predicted_AB4.57003.92104.2866model_form_blend
predicted_AVG0.23200.24970.2397model_form_blend
predicted_BB0.40800.43800.4211model_form_blend
predicted_H1.06000.97901.0246model_form_blend
predicted_HBP-0.05600.0560form_only
predicted_HR0.14000.12500.1334model_form_blend
predicted_OBP0.33400.33350.3338model_form_blend
predicted_R0.59200.39800.5073model_form_blend
predicted_RBI0.53000.43900.4903model_form_blend
predicted_SLG0.38600.38900.3873model_form_blend
predicted_SO0.93700.86200.9042model_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 date587
Season rows before report date587
Report year2026
Profile rows used142
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
SO0
SF0
HBP0

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_BB3
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB1
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO0
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
allPositionsPlayedC
gameID20261004_ATL@LAD
game_typefull
mlbID686948
playerID686948
playerNameDrake Baldwin
posC
startedTrue
startingPositionC
teamATL
teamID2
game_date2026-10-04
sl_k_percent21.5
sl_bb_percent8.9
sl_woba0.358
sl_xwoba0.37
sl_xba0.279
sl_xslg0.505
sl_sweet_spot_percent37.5
sl_barrel_batted_rate12.9
sl_hard_hit_percent50.6
sl_exit_velocity_avg91.5
sl_launch_angle_avg11.0
sl_whiff_percent24.4
sl_swing_percent51.2
Ronald Acuña Jr. (660670) · BATTER · DH · Team ATL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 446
All-history rows before 20261006: 446
System season_avg: 0.2530
Data season_avg (2026 season-to-date): 0.2569
Diff (system - data): -0.0039
System opponent_avg: 0.1670

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1620.0000.000Hitting_2B0.1790.000-0.1790.000
predicted_3B0.0090.0000.000Hitting_3B0.0090.000-0.0090.000
predicted_AB3.8115.0005.000Hitting_AB3.8745.0001.1260.000
predicted_AVG0.2530.0000.000Hitting_AVG0.2570.200-0.257-0.200
predicted_BB0.4950.0000.000Hitting_BB0.5290.000-0.5290.000
predicted_CS-0.0000.000BaseRunning_CS0.0760.000-0.0760.000
predicted_H0.9640.0000.000Hitting_H0.9961.000-0.996-1.000
predicted_HR0.1800.0000.000Hitting_HR0.1860.000-0.1860.000
predicted_OBP0.3390.0000.000Hitting_OBP0.3500.200-0.350-0.200
predicted_R0.5860.0000.000Hitting_R0.5831.000-0.583-1.000
predicted_RBI0.4950.0000.000Hitting_RBI0.5090.000-0.5090.000
predicted_SLG0.4420.0000.000Hitting_SLG0.4520.200-0.452-0.200
predicted_SO0.9461.0001.000Hitting_SO0.9781.0000.0220.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics12
Boosted Metrics2
Deboosted Metrics10
Better Metrics1
Worse Metrics11
Biggest Boostpredicted_AB: 3.8110 -> 5.0000 (boost 1.1890, better)
Biggest Deboostpredicted_H: 0.9640 -> 0.0000 (deboost -0.9640, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend60615-predicted_RBI: 0.4950 -> 0.4114 (deboost -0.0836, 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_OBP: 0.3322 -> 0.3192 (deboost -0.0130, 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_scaling83526predicted_AB: 3.7764 -> 4.0000 (boost 0.2236, better)predicted_BB: 0.4877 -> 0.0000 (deboost -0.4877, worse)AB rounded to 4 (raw=3.81), rates preserved: AVG=0.203 HR/AB=0.038
6consistency_constraints11010predicted_R: 0.5630 -> 1.0000 (boost 0.4370, better)-Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine54141predicted_RBI: 0.0000 -> 0.4871 (boost 0.4871, better)predicted_H: 1.0000 -> 0.8540 (deboost -0.1460, 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_allocation84444predicted_BB: 0.3508 -> 1.0000 (boost 0.6492, better)predicted_HR: 0.1707 -> 0.0000 (deboost -0.1707, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10kpi_run_environment33030predicted_SLG: 0.3980 -> 0.4120 (boost 0.0140, better)-KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup
11market_blend00000--Market blend not applied: no props for this hitter
12play_by_play_realization51414predicted_AB: 4.0000 -> 5.0000 (boost 1.0000, better)predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse)Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
13simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
14current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "660670",
  "player_name": "Ronald Acuña Jr.",
  "position": "DH",
  "team": "ATL",
  "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.009,
        "predicted_AB": 3.811,
        "predicted_AVG": 0.253,
        "predicted_BB": 0.495,
        "predicted_H": 0.964,
        "predicted_HR": 0.18,
        "predicted_OBP": 0.339,
        "predicted_R": 0.586,
        "predicted_RBI": 0.495,
        "predicted_SLG": 0.442,
        "predicted_SO": 0.946
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "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.1352,
        "predicted_3B": 0.0077,
        "predicted_AB": 3.7764,
        "predicted_AVG": 0.2388,
        "predicted_BB": 0.4902,
        "predicted_H": 0.9021,
        "predicted_HBP": 0.09,
        "predicted_HR": 0.1484,
        "predicted_OBP": 0.3322,
        "predicted_R": 0.5947,
        "predicted_RBI": 0.4114,
        "predicted_SLG": 0.3962,
        "predicted_SO": 0.8854
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.253,
          "after": 0.2388,
          "delta": -0.0142,
          "percent_delta": -0.0561,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.964,
          "after": 0.9021,
          "delta": -0.0619,
          "percent_delta": -0.0642,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.339,
          "after": 0.3322,
          "delta": -0.0068,
          "percent_delta": -0.0201,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.495,
          "after": 0.4114,
          "delta": -0.0836,
          "percent_delta": -0.1689,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.442,
          "after": 0.3962,
          "delta": -0.0458,
          "percent_delta": -0.1036,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.946,
          "after": 0.8854,
          "delta": -0.0606,
          "percent_delta": -0.0641,
          "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.495,
          "after": 0.4114,
          "delta": -0.0836,
          "percent_delta": -0.1689,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      },
      "weights": {
        "xgboost_raw": 0.55,
        "weighted_form": 0.45,
        "form_windows": {
          "last_5": 0.2,
          "last_10": 0.2,
          "season": 0.6
        }
      },
      "window_games": {
        "last_5": 5,
        "last_10": 10,
        "season": 111
      }
    },
    {
      "index": 3,
      "step": "team_form_snapshot",
      "description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
      "stats": {
        "predicted_2B": 0.1352,
        "predicted_3B": 0.0077,
        "predicted_AB": 3.7764,
        "predicted_AVG": 0.2312,
        "predicted_BB": 0.4877,
        "predicted_H": 0.8732,
        "predicted_HBP": 0.09,
        "predicted_HR": 0.1441,
        "predicted_OBP": 0.3192,
        "predicted_R": 0.563,
        "predicted_RBI": 0.3895,
        "predicted_SLG": 0.3856,
        "predicted_SO": 0.89
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.2388,
          "after": 0.2312,
          "delta": -0.0076,
          "percent_delta": -0.0318,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3322,
          "after": 0.3192,
          "delta": -0.013,
          "percent_delta": -0.0391,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3962,
          "after": 0.3856,
          "delta": -0.0106,
          "percent_delta": -0.0268,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.3322,
          "after": 0.3192,
          "delta": -0.013,
          "percent_delta": -0.0391,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 4 (raw=3.81), rates preserved: AVG=0.203 HR/AB=0.038",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1352,
          "after": 0.0,
          "delta": -0.1352,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AB",
          "before": 3.7764,
          "after": 4.0,
          "delta": 0.2236,
          "percent_delta": 0.0592,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.4877,
          "after": 0.0,
          "delta": -0.4877,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8732,
          "after": 1.0,
          "delta": 0.1268,
          "percent_delta": 0.1452,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HBP",
          "before": 0.09,
          "after": 0.0,
          "delta": -0.09,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1441,
          "after": 0.0,
          "delta": -0.1441,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3895,
          "after": 0.0,
          "delta": -0.3895,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.89,
          "after": 1.0,
          "delta": 0.11,
          "percent_delta": 0.1236,
          "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_AB",
          "before": 3.7764,
          "after": 4.0,
          "delta": 0.2236,
          "percent_delta": 0.0592,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.4877,
          "after": 0.0,
          "delta": -0.4877,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_R",
          "before": 0.563,
          "after": 1.0,
          "delta": 0.437,
          "percent_delta": 0.7762,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 1,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_R",
          "before": 0.563,
          "after": 1.0,
          "delta": 0.437,
          "percent_delta": 0.7762,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "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.1588,
        "predicted_3B": 0.0108,
        "predicted_BB": 0.3508,
        "predicted_H": 0.854,
        "predicted_HR": 0.1707,
        "predicted_RBI": 0.4871,
        "predicted_SO": 0.9896
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1588,
          "delta": 0.1588,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.3508,
          "delta": 0.3508,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.854,
          "delta": -0.146,
          "percent_delta": -0.146,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1707,
          "delta": 0.1707,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.4871,
          "delta": 0.4871,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "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.4871,
          "delta": 0.4871,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.854,
          "delta": -0.146,
          "percent_delta": -0.146,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_AVG": 0.22,
        "predicted_BB": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.29,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.398,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1588,
          "after": 0.0,
          "delta": -0.1588,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2312,
          "after": 0.22,
          "delta": -0.0112,
          "percent_delta": -0.0484,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3508,
          "after": 1.0,
          "delta": 0.6492,
          "percent_delta": 1.8506,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.854,
          "after": 1.0,
          "delta": 0.146,
          "percent_delta": 0.171,
          "direction": "boost",
          "projection_effect": "better",
          "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_OBP",
          "before": 0.3192,
          "after": 0.29,
          "delta": -0.0292,
          "percent_delta": -0.0915,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4871,
          "after": 1.0,
          "delta": 0.5129,
          "percent_delta": 1.053,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3856,
          "after": 0.398,
          "delta": 0.0124,
          "percent_delta": 0.0322,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 8,
        "boosted_metrics": 4,
        "deboosted_metrics": 4,
        "better_metrics": 4,
        "worse_metrics": 4,
        "biggest_boost": {
          "metric": "predicted_BB",
          "before": 0.3508,
          "after": 1.0,
          "delta": 0.6492,
          "percent_delta": 1.8506,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_HR",
          "before": 0.1707,
          "after": 0.0,
          "delta": -0.1707,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 9,
      "step": "embedded_savant_player_context",
      "description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.22,
        "predicted_BB": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.29,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.398,
        "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
      }
    },
    {
      "index": 10,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.228,
        "predicted_BB": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.299,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.412,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.22,
          "after": 0.228,
          "delta": 0.008,
          "percent_delta": 0.0364,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.29,
          "after": 0.299,
          "delta": 0.009,
          "percent_delta": 0.031,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.398,
          "after": 0.412,
          "delta": 0.014,
          "percent_delta": 0.0352,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 3,
        "boosted_metrics": 3,
        "deboosted_metrics": 0,
        "better_metrics": 3,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_SLG",
          "before": 0.398,
          "after": 0.412,
          "delta": 0.014,
          "percent_delta": 0.0352,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "index": 11,
      "step": "market_blend",
      "description": "Market blend not applied: no props for this hitter",
      "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
      }
    },
    {
      "index": 12,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 5.0,
        "predicted_BB": 0.0,
        "predicted_H": 0.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AB",
          "before": 4.0,
          "after": 5.0,
          "delta": 1.0,
          "percent_delta": 0.25,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "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": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 5,
        "boosted_metrics": 1,
        "deboosted_metrics": 4,
        "better_metrics": 1,
        "worse_metrics": 4,
        "biggest_boost": {
          "metric": "predicted_AB",
          "before": 4.0,
          "after": 5.0,
          "delta": 1.0,
          "percent_delta": 0.25,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 13,
      "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_H": 0.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.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
      },
      "reference_only": true
    },
    {
      "index": 14,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 5.0,
        "predicted_AVG": 0.228,
        "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.299,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.412,
        "predicted_SO": 1.0,
        "predicted_TB": 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
      }
    }
  ],
  "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_AB",
        "before": 3.811,
        "after": 5.0,
        "delta": 1.189,
        "percent_delta": 0.312,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.253,
        "after": 0.228,
        "delta": -0.025,
        "percent_delta": -0.0988,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.495,
        "after": 0.0,
        "delta": -0.495,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.964,
        "after": 0.0,
        "delta": -0.964,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HBP",
        "before": 0.09,
        "after": 0.0,
        "delta": -0.09,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.18,
        "after": 0.0,
        "delta": -0.18,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.339,
        "after": 0.299,
        "delta": -0.04,
        "percent_delta": -0.118,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.586,
        "after": 0.0,
        "delta": -0.586,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.495,
        "after": 0.0,
        "delta": -0.495,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.442,
        "after": 0.412,
        "delta": -0.03,
        "percent_delta": -0.0679,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.946,
        "after": 1.0,
        "delta": 0.054,
        "percent_delta": 0.0571,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 12,
      "boosted_metrics": 2,
      "deboosted_metrics": 10,
      "better_metrics": 1,
      "worse_metrics": 11,
      "biggest_boost": {
        "metric": "predicted_AB",
        "before": 3.811,
        "after": 5.0,
        "delta": 1.189,
        "percent_delta": 0.312,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_H",
        "before": 0.964,
        "after": 0.0,
        "delta": -0.964,
        "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.162-
predicted_3B0.009-
predicted_AB3.811-
predicted_AVG0.253-
predicted_BB0.495-
predicted_H0.964-
predicted_HR0.180-
predicted_OBP0.339-
predicted_R0.586-
predicted_RBI0.495-
predicted_SLG0.442-
predicted_SO0.946-
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.135-0.027
predicted_3B0.008-0.001
predicted_AB3.776-0.035
predicted_AVG0.239-0.014
predicted_BB0.490-0.005
predicted_H0.902-0.062
predicted_HBP0.090-
predicted_HR0.148-0.032
predicted_OBP0.332-0.007
predicted_R0.5950.009
predicted_RBI0.411-0.084
predicted_SLG0.396-0.046
predicted_SO0.885-0.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.1350.000
predicted_3B0.0080.000
predicted_AB3.7760.000
predicted_AVG0.231-0.008
predicted_BB0.488-0.003
predicted_H0.873-0.029
predicted_HBP0.0900.000
predicted_HR0.144-0.004
predicted_OBP0.319-0.013
predicted_R0.563-0.032
predicted_RBI0.390-0.022
predicted_SLG0.386-0.011
predicted_SO0.8900.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.81), rates preserved: AVG=0.203 HR/AB=0.038

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.0110.011
BB0.3510.351
H0.854-0.146
HR0.1710.171
RBI0.4870.487
SO0.990-0.010
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.011
AB4.0000.000
AVG0.220-
BB1.0000.649
H1.0000.146
HR0.000-0.171
OBP0.290-
R1.0000.000
RBI1.0000.513
SLG0.398-
SO1.0000.010
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.135
predicted_3B0.000-0.008
predicted_AB4.0000.224
predicted_AVG0.220-0.011
predicted_BB1.0000.512
predicted_H1.0000.127
predicted_HR0.000-0.144
predicted_OBP0.290-0.029
predicted_R1.0000.437
predicted_RBI1.0000.611
predicted_SLG0.3980.012
predicted_SO1.0000.110
10. kpi_run_environment

KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
AVG0.2280.008
BB1.0000.000
H1.0000.000
HR0.0000.000
OBP0.2990.009
R1.0000.000
RBI1.0000.000
SLG0.4120.014
SO1.0000.000
11. market_blend

Market blend not applied: no props for this hitter

MetricValueDelta vs Prev Step
12. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB5.0001.000
BB0.000-1.000
H0.000-1.000
HBP0.0000.000
HR0.0000.000
PA5.000-
R0.000-1.000
RBI0.000-1.000
SF0.0000.000
SO1.0000.000
13. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB5.0000.000
BB0.0000.000
H0.0000.000
HBP0.0000.000
HR0.0000.000
PA5.0000.000
R0.0000.000
RBI0.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: 111
Reference playing time: 3.811
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.0000.0000.0000.0000.0004.0003.0003.0000.16670.31820.16670.16670.00000.00000.16670.1667
last_100.2010-36.0006.0000.0000.0000.0000.0005.0004.0006.0000.16670.26830.16670.16670.00000.00000.11110.1667
season0.60111-423.000107.00018.0001.00020.00055.00065.00055.000105.0000.25300.34500.44210.25300.04730.13000.13000.2482
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1000
predicted_3B0.0060
predicted_AB3.7310
predicted_AVG0.2202
predicted_BB0.4840
predicted_H0.8210
predicted_HBP0.0900
predicted_HR0.1070
predicted_OBP0.3232
predicted_R0.6060
predicted_RBI0.3020
predicted_SLG0.3363
predicted_SO0.8060
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.16200.10000.1352model_form_blend
predicted_3B0.00900.00600.0077model_form_blend
predicted_AB3.81103.73103.7764model_form_blend
predicted_AVG0.25300.22020.2388model_form_blend
predicted_BB0.49500.48400.4902model_form_blend
predicted_H0.96400.82100.9021model_form_blend
predicted_HBP-0.09000.0900form_only
predicted_HR0.18000.10700.1484model_form_blend
predicted_OBP0.33900.32320.3322model_form_blend
predicted_R0.58600.60600.5947model_form_blend
predicted_RBI0.49500.30200.4114model_form_blend
predicted_SLG0.44200.33630.3962model_form_blend
predicted_SO0.94600.80600.8854model_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 date446
Season rows before report date446
Report year2026
Profile rows used111
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
SO1
SF0
HBP0

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_AB5
Hitting_AVG0.2
Hitting_BB0
Hitting_GIDP1
Hitting_H1
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R1
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO1
Hitting_TB1
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
allPositionsPlayedRF
gameID20261004_ATL@LAD
game_typefull
mlbID660670
playerID660670
playerNameRonald Acuña Jr.
posRF
startedTrue
startingPositionRF
teamATL
teamID2
game_date2026-10-04
sl_k_percent22.0
sl_bb_percent11.3
sl_woba0.348
sl_xwoba0.366
sl_xba0.261
sl_xslg0.495
sl_sweet_spot_percent34.7
sl_barrel_batted_rate13.0
sl_hard_hit_percent43.5
sl_exit_velocity_avg89.6
sl_launch_angle_avg15.7
sl_whiff_percent29.0
sl_swing_percent49.4
Matt Olson (621566) · BATTER · 1B · Team ATL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 670
All-history rows before 20261006: 670
System season_avg: 0.2480
Data season_avg (2026 season-to-date): 0.2532
Diff (system - data): -0.0052
System opponent_avg: 0.0990

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.2050.0000.000Hitting_2B0.2270.000-0.2270.000
predicted_3B0.0000.0000.000Hitting_3B0.0000.0000.0000.000
predicted_AB4.1605.0005.000Hitting_AB3.8974.0001.1031.000
predicted_AVG0.2190.2000.200Hitting_AVG0.2530.250-0.053-0.050
predicted_BB0.3920.0000.000Hitting_BB0.4301.000-0.430-1.000
predicted_CS-0.0000.000BaseRunning_CS0.0000.0000.0000.000
predicted_H0.9101.0001.000Hitting_H0.9871.0000.0130.000
predicted_HR0.2301.0001.000Hitting_HR0.2640.0000.7361.000
predicted_OBP0.2790.2000.200Hitting_OBP0.3280.400-0.128-0.200
predicted_R0.6081.0001.000Hitting_R0.6571.0000.3430.000
predicted_RBI0.6402.0002.000Hitting_RBI0.5930.0001.4072.000
predicted_SLG0.4260.8000.800Hitting_SLG0.5150.2500.2850.550
predicted_SO1.0601.0001.000Hitting_SO1.0932.000-0.093-1.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics10
Boosted Metrics7
Deboosted Metrics3
Better Metrics8
Worse Metrics2
Biggest Boostpredicted_RBI: 0.6400 -> 2.0000 (boost 1.3600, better)
Biggest Deboostpredicted_BB: 0.3920 -> 0.0000 (deboost -0.3920, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend10101-predicted_AB: 4.1600 -> 3.9878 (deboost -0.1722, 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.4289 -> 0.4215 (deboost -0.0074, 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_RBI: 0.5885 -> 1.0000 (boost 0.4115, better)predicted_BB: 0.3804 -> 0.0000 (deboost -0.3804, worse)AB rounded to 4 (raw=4.16), rates preserved: AVG=0.179 HR/AB=0.053
6bvp_blend00000--Sample-size BvP blend (BvP AB=6.0, weight=0.067, BvP AVG=0.000)
7consistency_constraints11010predicted_R: 0.5557 -> 1.0000 (boost 0.4443, better)-Enforced H<=AB, HR<=H, safety nets, derived R
8hitter_rate_engine64233predicted_BB: 0.0000 -> 0.3117 (boost 0.3117, better)predicted_RBI: 1.0000 -> 0.5077 (deboost -0.4923, 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_allocation74352predicted_HR: 0.2203 -> 1.0000 (boost 0.7797, better)predicted_BB: 0.3117 -> 0.0000 (deboost -0.3117, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
10embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
11kpi_run_environment33030predicted_SLG: 0.4330 -> 0.4490 (boost 0.0160, better)-KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup
12market_blend00000--Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated
13play_by_play_realization22020predicted_AB: 4.0000 -> 5.0000 (boost 1.0000, better)-Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
14simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
15current_json_final11010predicted_OBP: 0.2860 -> 0.2920 (boost 0.0060, better)-Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "621566",
  "player_name": "Matt Olson",
  "position": "1B",
  "team": "ATL",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.205,
        "predicted_3B": 0.0,
        "predicted_AB": 4.16,
        "predicted_AVG": 0.219,
        "predicted_BB": 0.392,
        "predicted_H": 0.91,
        "predicted_HR": 0.23,
        "predicted_OBP": 0.279,
        "predicted_R": 0.608,
        "predicted_RBI": 0.64,
        "predicted_SLG": 0.426,
        "predicted_SO": 1.06
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "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.1778,
        "predicted_3B": 0.0004,
        "predicted_AB": 3.9878,
        "predicted_AVG": 0.2176,
        "predicted_BB": 0.3824,
        "predicted_H": 0.8675,
        "predicted_HBP": 0.012,
        "predicted_HR": 0.2274,
        "predicted_OBP": 0.2797,
        "predicted_R": 0.587,
        "predicted_RBI": 0.6216,
        "predicted_SLG": 0.4289,
        "predicted_SO": 1.071
      },
      "changed_metrics": [
        {
          "metric": "predicted_AB",
          "before": 4.16,
          "after": 3.9878,
          "delta": -0.1722,
          "percent_delta": -0.0414,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 0,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 1,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 4.16,
          "after": 3.9878,
          "delta": -0.1722,
          "percent_delta": -0.0414,
          "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": 166
      }
    },
    {
      "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.1778,
        "predicted_3B": 0.0004,
        "predicted_AB": 3.9878,
        "predicted_AVG": 0.2106,
        "predicted_BB": 0.3804,
        "predicted_H": 0.8397,
        "predicted_HBP": 0.012,
        "predicted_HR": 0.2208,
        "predicted_OBP": 0.2793,
        "predicted_R": 0.5557,
        "predicted_RBI": 0.5885,
        "predicted_SLG": 0.4215,
        "predicted_SO": 1.0766
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.2176,
          "after": 0.2106,
          "delta": -0.007,
          "percent_delta": -0.0322,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4289,
          "after": 0.4215,
          "delta": -0.0074,
          "percent_delta": -0.0173,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.4289,
          "after": 0.4215,
          "delta": -0.0074,
          "percent_delta": -0.0173,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 4 (raw=4.16), rates preserved: AVG=0.179 HR/AB=0.053",
      "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.1778,
          "after": 0.0,
          "delta": -0.1778,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3804,
          "after": 0.0,
          "delta": -0.3804,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8397,
          "after": 1.0,
          "delta": 0.1603,
          "percent_delta": 0.1909,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.2208,
          "after": 0.0,
          "delta": -0.2208,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5885,
          "after": 1.0,
          "delta": 0.4115,
          "percent_delta": 0.6992,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0766,
          "after": 1.0,
          "delta": -0.0766,
          "percent_delta": -0.0711,
          "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.5885,
          "after": 1.0,
          "delta": 0.4115,
          "percent_delta": 0.6992,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.3804,
          "after": 0.0,
          "delta": -0.3804,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 6,
      "step": "bvp_blend",
      "description": "Sample-size BvP blend (BvP AB=6.0, weight=0.067, BvP AVG=0.000)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      },
      "weights": {
        "model_expectation": 0.9333,
        "bvp": 0.0667
      }
    },
    {
      "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_R",
          "before": 0.5557,
          "after": 1.0,
          "delta": 0.4443,
          "percent_delta": 0.7995,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 1,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_R",
          "before": 0.5557,
          "after": 1.0,
          "delta": 0.4443,
          "percent_delta": 0.7995,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "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.1741,
        "predicted_3B": 0.0069,
        "predicted_BB": 0.3117,
        "predicted_H": 0.8068,
        "predicted_HR": 0.2203,
        "predicted_RBI": 0.5077,
        "predicted_SO": 1.0797
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1741,
          "delta": 0.1741,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.3117,
          "delta": 0.3117,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8068,
          "delta": -0.1932,
          "percent_delta": -0.1932,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.2203,
          "delta": 0.2203,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.5077,
          "delta": -0.4923,
          "percent_delta": -0.4923,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 1.0797,
          "delta": 0.0797,
          "percent_delta": 0.0797,
          "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.3117,
          "delta": 0.3117,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.5077,
          "delta": -0.4923,
          "percent_delta": -0.4923,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_AVG": 0.211,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 1.0,
        "predicted_OBP": 0.277,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.433,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1741,
          "after": 0.0,
          "delta": -0.1741,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3117,
          "after": 0.0,
          "delta": -0.3117,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8068,
          "after": 1.0,
          "delta": 0.1932,
          "percent_delta": 0.2395,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.2203,
          "after": 1.0,
          "delta": 0.7797,
          "percent_delta": 3.5393,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5077,
          "after": 1.0,
          "delta": 0.4923,
          "percent_delta": 0.9697,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4215,
          "after": 0.433,
          "delta": 0.0115,
          "percent_delta": 0.0273,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0797,
          "after": 1.0,
          "delta": -0.0797,
          "percent_delta": -0.0738,
          "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_HR",
          "before": 0.2203,
          "after": 1.0,
          "delta": 0.7797,
          "percent_delta": 3.5393,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.3117,
          "after": 0.0,
          "delta": -0.3117,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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.211,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 1.0,
        "predicted_OBP": 0.277,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.433,
        "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
      }
    },
    {
      "index": 11,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.219,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 1.0,
        "predicted_OBP": 0.286,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.449,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.211,
          "after": 0.219,
          "delta": 0.008,
          "percent_delta": 0.0379,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.277,
          "after": 0.286,
          "delta": 0.009,
          "percent_delta": 0.0325,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.433,
          "after": 0.449,
          "delta": 0.016,
          "percent_delta": 0.037,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 3,
        "boosted_metrics": 3,
        "deboosted_metrics": 0,
        "better_metrics": 3,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_SLG",
          "before": 0.433,
          "after": 0.449,
          "delta": 0.016,
          "percent_delta": 0.037,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "index": 12,
      "step": "market_blend",
      "description": "Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated",
      "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
      }
    },
    {
      "index": 13,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 5.0,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 1.0,
        "predicted_R": 1.0,
        "predicted_RBI": 2.0,
        "predicted_SF": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "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_RBI",
          "before": 1.0,
          "after": 2.0,
          "delta": 1.0,
          "percent_delta": 1.0,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 2,
        "boosted_metrics": 2,
        "deboosted_metrics": 0,
        "better_metrics": 2,
        "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
      }
    },
    {
      "index": 14,
      "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_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 1.0,
        "predicted_R": 1.0,
        "predicted_RBI": 2.0,
        "predicted_SF": 0.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
      },
      "reference_only": true
    },
    {
      "index": 15,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "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_FB": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 1.0,
        "predicted_OBP": 0.292,
        "predicted_R": 1.0,
        "predicted_RBI": 2.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.447,
        "predicted_SO": 1.0,
        "predicted_TB": 4.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_OBP",
          "before": 0.286,
          "after": 0.292,
          "delta": 0.006,
          "percent_delta": 0.021,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 1,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_OBP",
          "before": 0.286,
          "after": 0.292,
          "delta": 0.006,
          "percent_delta": 0.021,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    }
  ],
  "total_change": {
    "from_step": "xgboost_raw",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_2B",
        "before": 0.205,
        "after": 0.0,
        "delta": -0.205,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AB",
        "before": 4.16,
        "after": 5.0,
        "delta": 0.84,
        "percent_delta": 0.2019,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.392,
        "after": 0.0,
        "delta": -0.392,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.91,
        "after": 1.0,
        "delta": 0.09,
        "percent_delta": 0.0989,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.23,
        "after": 1.0,
        "delta": 0.77,
        "percent_delta": 3.3478,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.279,
        "after": 0.292,
        "delta": 0.013,
        "percent_delta": 0.0466,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.608,
        "after": 1.0,
        "delta": 0.392,
        "percent_delta": 0.6447,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.64,
        "after": 2.0,
        "delta": 1.36,
        "percent_delta": 2.125,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.426,
        "after": 0.447,
        "delta": 0.021,
        "percent_delta": 0.0493,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 1.06,
        "after": 1.0,
        "delta": -0.06,
        "percent_delta": -0.0566,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 10,
      "boosted_metrics": 7,
      "deboosted_metrics": 3,
      "better_metrics": 8,
      "worse_metrics": 2,
      "biggest_boost": {
        "metric": "predicted_RBI",
        "before": 0.64,
        "after": 2.0,
        "delta": 1.36,
        "percent_delta": 2.125,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_BB",
        "before": 0.392,
        "after": 0.0,
        "delta": -0.392,
        "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.205-
predicted_3B0.000-
predicted_AB4.160-
predicted_AVG0.219-
predicted_BB0.392-
predicted_H0.910-
predicted_HR0.230-
predicted_OBP0.279-
predicted_R0.608-
predicted_RBI0.640-
predicted_SLG0.426-
predicted_SO1.060-
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.178-0.027
predicted_3B0.0000.000
predicted_AB3.988-0.172
predicted_AVG0.218-0.001
predicted_BB0.382-0.010
predicted_H0.868-0.042
predicted_HBP0.012-
predicted_HR0.227-0.003
predicted_OBP0.2800.001
predicted_R0.587-0.021
predicted_RBI0.622-0.018
predicted_SLG0.4290.003
predicted_SO1.0710.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.1780.000
predicted_3B0.0000.000
predicted_AB3.9880.000
predicted_AVG0.211-0.007
predicted_BB0.380-0.002
predicted_H0.840-0.028
predicted_HBP0.0120.000
predicted_HR0.221-0.007
predicted_OBP0.279-0.000
predicted_R0.556-0.031
predicted_RBI0.589-0.033
predicted_SLG0.421-0.007
predicted_SO1.0770.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.16), rates preserved: AVG=0.179 HR/AB=0.053

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=6.0, weight=0.067, BvP AVG=0.000)

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.1740.174
3B0.0070.007
BB0.3120.312
H0.807-0.193
HR0.2200.220
RBI0.508-0.492
SO1.0800.080
9. lineup_integer_allocation

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

MetricValueDelta vs Prev Step
2B0.000-0.174
3B0.000-0.007
AB4.0000.000
AVG0.211-
BB0.000-0.312
H1.0000.193
HR1.0000.780
OBP0.277-
R1.0000.000
RBI1.0000.492
SLG0.433-
SO1.000-0.080
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.178
predicted_3B0.000-0.000
predicted_AB4.0000.012
predicted_AVG0.2110.000
predicted_BB0.000-0.380
predicted_H1.0000.160
predicted_HR1.0000.779
predicted_OBP0.277-0.002
predicted_R1.0000.444
predicted_RBI1.0000.411
predicted_SLG0.4330.012
predicted_SO1.000-0.077
11. kpi_run_environment

KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
AVG0.2190.008
BB0.0000.000
H1.0000.000
HR1.0000.000
OBP0.2860.009
R1.0000.000
RBI1.0000.000
SLG0.4490.016
SO1.0000.000
12. market_blend

Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated

MetricValueDelta vs Prev Step
13. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

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

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB5.0000.000
BB0.0000.000
H1.0000.000
HBP0.0000.000
HR1.0000.000
PA5.0000.000
R1.0000.000
RBI2.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: 166
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-19.0003.0000.0000.0001.0003.0003.0002.0007.0000.15790.22730.31580.15790.05260.15790.10530.3684
last_100.2010-35.0006.0001.0000.0002.0007.0004.0003.0009.0000.17140.21950.37140.17140.05710.20000.08570.2571
season0.60166-638.000158.00034.0000.00041.00094.000101.00065.000176.0000.24760.31700.49370.24770.06430.14730.10190.2759
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1430
predicted_3B0.0010
predicted_AB3.7670
predicted_AVG0.2158
predicted_BB0.3700
predicted_H0.8130
predicted_HBP0.0120
predicted_HR0.2240
predicted_OBP0.2806
predicted_R0.5600
predicted_RBI0.5980
predicted_SLG0.4326
predicted_SO1.0850
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.20500.14300.1778model_form_blend
predicted_3B0.00000.00100.0004model_form_blend
predicted_AB4.16003.76703.9878model_form_blend
predicted_AVG0.21900.21580.2176model_form_blend
predicted_BB0.39200.37000.3824model_form_blend
predicted_H0.91000.81300.8675model_form_blend
predicted_HBP-0.01200.0120form_only
predicted_HR0.23000.22400.2274model_form_blend
predicted_OBP0.27900.28060.2797model_form_blend
predicted_R0.60800.56000.5870model_form_blend
predicted_RBI0.64000.59800.6216model_form_blend
predicted_SLG0.42600.43260.4289model_form_blend
predicted_SO1.06001.08501.0710model_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 date670
Season rows before report date670
Report year2026
Profile rows used166
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

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_BB1
Hitting_GIDP0
Hitting_H1
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R1
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO2
Hitting_TB1
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
gameID20261004_ATL@LAD
game_typefull
mlbID621566
playerID621566
playerNameMatt Olson
pos1B
startedTrue
startingPosition1B
teamATL
teamID2
game_date2026-10-04
sl_k_percent24.5
sl_bb_percent9.2
sl_woba0.351
sl_xwoba0.351
sl_xba0.247
sl_xslg0.503
sl_sweet_spot_percent32.0
sl_barrel_batted_rate14.2
sl_hard_hit_percent52.0
sl_exit_velocity_avg92.5
sl_launch_angle_avg18.1
sl_whiff_percent25.4
sl_swing_percent46.9
Ozzie Albies (645277) · BATTER · 2B · Team ATL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 659
All-history rows before 20261006: 659
System season_avg: 0.2400
Data season_avg (2026 season-to-date): 0.2439
Diff (system - data): -0.0039
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.1630.0000.000Hitting_2B0.1910.000-0.1910.000
predicted_3B0.0120.0000.000Hitting_3B0.0030.000-0.0030.000
predicted_AB3.9904.0004.000Hitting_AB3.8514.0000.1490.000
predicted_AVG0.1990.2500.250Hitting_AVG0.2440.0000.0060.250
predicted_BB0.3070.0000.000Hitting_BB0.3191.000-0.319-1.000
predicted_CS-0.0000.000BaseRunning_CS0.0270.000-0.0270.000
predicted_H0.8001.0001.000Hitting_H0.9390.0000.0611.000
predicted_HR0.2200.0000.000Hitting_HR0.1370.000-0.1370.000
predicted_OBP0.3240.2500.250Hitting_OBP0.3030.200-0.0530.050
predicted_R0.5360.0000.000Hitting_R0.5540.000-0.5540.000
predicted_RBI0.6800.0000.000Hitting_RBI0.4610.000-0.4610.000
predicted_SB-0.0000.000BaseRunning_SB0.0210.000-0.0210.000
predicted_SLG0.4320.2500.250Hitting_SLG0.4010.000-0.1510.250
predicted_SO0.6451.0001.000Hitting_SO0.6651.0000.3350.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_SO: 0.6450 -> 1.0000 (boost 0.3550, worse)
Biggest Deboostpredicted_RBI: 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_blend43131predicted_BB: 0.3070 -> 0.3893 (boost 0.0823, better)predicted_AB: 3.9900 -> 3.8043 (deboost -0.1857, 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_OBP: 0.3289 -> 0.2797 (deboost -0.0492, 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_scaling84435predicted_RBI: 0.6160 -> 1.0000 (boost 0.3840, better)predicted_BB: 0.3873 -> 0.0000 (deboost -0.3873, worse)AB rounded to 4 (raw=3.99), rates preserved: AVG=0.174 HR/AB=0.053
6bvp_blend00000--Sample-size BvP blend (BvP AB=5.0, weight=0.057, BvP AVG=0.200)
7consistency_constraints11010predicted_R: 0.5198 -> 1.0000 (boost 0.4802, better)-Enforced H<=AB, HR<=H, safety nets, derived R
8hitter_rate_engine63342predicted_BB: 0.0000 -> 0.2481 (boost 0.2481, better)predicted_RBI: 1.0000 -> 0.4326 (deboost -0.5674, 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_allocation93627predicted_SO: 0.6968 -> 1.0000 (boost 0.3032, worse)predicted_RBI: 0.4326 -> 0.0000 (deboost -0.4326, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
10embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
11kpi_run_environment33030predicted_SLG: 0.3800 -> 0.3940 (boost 0.0140, better)-KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup
12market_blend00000--Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated
13play_by_play_realization10101-predicted_R: 1.0000 -> 0.0000 (deboost -1.0000, worse)Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
14simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
15current_json_final10101-predicted_SLG: 0.3940 -> 0.3800 (deboost -0.0140, worse)Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "645277",
  "player_name": "Ozzie Albies",
  "position": "2B",
  "team": "ATL",
  "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.012,
        "predicted_AB": 3.99,
        "predicted_AVG": 0.199,
        "predicted_BB": 0.307,
        "predicted_H": 0.8,
        "predicted_HR": 0.22,
        "predicted_OBP": 0.324,
        "predicted_R": 0.536,
        "predicted_RBI": 0.68,
        "predicted_SLG": 0.432,
        "predicted_SO": 0.645
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "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.1337,
        "predicted_3B": 0.0378,
        "predicted_AB": 3.8043,
        "predicted_AVG": 0.2131,
        "predicted_BB": 0.3893,
        "predicted_H": 0.8109,
        "predicted_HBP": 0.115,
        "predicted_HR": 0.2161,
        "predicted_OBP": 0.3289,
        "predicted_R": 0.5491,
        "predicted_RBI": 0.6507,
        "predicted_SLG": 0.4509,
        "predicted_SO": 0.6498
      },
      "changed_metrics": [
        {
          "metric": "predicted_AB",
          "before": 3.99,
          "after": 3.8043,
          "delta": -0.1857,
          "percent_delta": -0.0465,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.199,
          "after": 0.2131,
          "delta": 0.0141,
          "percent_delta": 0.0709,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.307,
          "after": 0.3893,
          "delta": 0.0823,
          "percent_delta": 0.2681,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.432,
          "after": 0.4509,
          "delta": 0.0189,
          "percent_delta": 0.0438,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 4,
        "boosted_metrics": 3,
        "deboosted_metrics": 1,
        "better_metrics": 3,
        "worse_metrics": 1,
        "biggest_boost": {
          "metric": "predicted_BB",
          "before": 0.307,
          "after": 0.3893,
          "delta": 0.0823,
          "percent_delta": 0.2681,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 3.99,
          "after": 3.8043,
          "delta": -0.1857,
          "percent_delta": -0.0465,
          "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": 166
      }
    },
    {
      "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.1337,
        "predicted_3B": 0.0378,
        "predicted_AB": 3.8043,
        "predicted_AVG": 0.2063,
        "predicted_BB": 0.3873,
        "predicted_H": 0.785,
        "predicted_HBP": 0.115,
        "predicted_HR": 0.2099,
        "predicted_OBP": 0.2797,
        "predicted_R": 0.5198,
        "predicted_RBI": 0.616,
        "predicted_SLG": 0.4268,
        "predicted_SO": 0.6532
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.2131,
          "after": 0.2063,
          "delta": -0.0068,
          "percent_delta": -0.0319,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3289,
          "after": 0.2797,
          "delta": -0.0492,
          "percent_delta": -0.1496,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4509,
          "after": 0.4268,
          "delta": -0.0241,
          "percent_delta": -0.0534,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.3289,
          "after": 0.2797,
          "delta": -0.0492,
          "percent_delta": -0.1496,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 4 (raw=3.99), rates preserved: AVG=0.174 HR/AB=0.053",
      "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.1337,
          "after": 0.0,
          "delta": -0.1337,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AB",
          "before": 3.8043,
          "after": 4.0,
          "delta": 0.1957,
          "percent_delta": 0.0514,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3873,
          "after": 0.0,
          "delta": -0.3873,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.785,
          "after": 1.0,
          "delta": 0.215,
          "percent_delta": 0.2739,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HBP",
          "before": 0.115,
          "after": 0.0,
          "delta": -0.115,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.2099,
          "after": 0.0,
          "delta": -0.2099,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.616,
          "after": 1.0,
          "delta": 0.384,
          "percent_delta": 0.6234,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.6532,
          "after": 1.0,
          "delta": 0.3468,
          "percent_delta": 0.5309,
          "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.616,
          "after": 1.0,
          "delta": 0.384,
          "percent_delta": 0.6234,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.3873,
          "after": 0.0,
          "delta": -0.3873,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 6,
      "step": "bvp_blend",
      "description": "Sample-size BvP blend (BvP AB=5.0, weight=0.057, BvP AVG=0.200)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [],
      "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
      }
    },
    {
      "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_R",
          "before": 0.5198,
          "after": 1.0,
          "delta": 0.4802,
          "percent_delta": 0.9238,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 1,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_R",
          "before": 0.5198,
          "after": 1.0,
          "delta": 0.4802,
          "percent_delta": 0.9238,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "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.1543,
        "predicted_3B": 0.0108,
        "predicted_BB": 0.2481,
        "predicted_H": 0.793,
        "predicted_HR": 0.1412,
        "predicted_RBI": 0.4326,
        "predicted_SO": 0.6968
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1543,
          "delta": 0.1543,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.2481,
          "delta": 0.2481,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.793,
          "delta": -0.207,
          "percent_delta": -0.207,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1412,
          "delta": 0.1412,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.4326,
          "delta": -0.5674,
          "percent_delta": -0.5674,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.6968,
          "delta": -0.3032,
          "percent_delta": -0.3032,
          "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.2481,
          "delta": 0.2481,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.4326,
          "delta": -0.5674,
          "percent_delta": -0.5674,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_AVG": 0.217,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.272,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.38,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1543,
          "after": 0.0,
          "delta": -0.1543,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2063,
          "after": 0.217,
          "delta": 0.0107,
          "percent_delta": 0.0519,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.2481,
          "after": 0.0,
          "delta": -0.2481,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.793,
          "after": 1.0,
          "delta": 0.207,
          "percent_delta": 0.261,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1412,
          "after": 0.0,
          "delta": -0.1412,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2797,
          "after": 0.272,
          "delta": -0.0077,
          "percent_delta": -0.0275,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4326,
          "after": 0.0,
          "delta": -0.4326,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4268,
          "after": 0.38,
          "delta": -0.0468,
          "percent_delta": -0.1097,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.6968,
          "after": 1.0,
          "delta": 0.3032,
          "percent_delta": 0.4351,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 9,
        "boosted_metrics": 3,
        "deboosted_metrics": 6,
        "better_metrics": 2,
        "worse_metrics": 7,
        "biggest_boost": {
          "metric": "predicted_SO",
          "before": 0.6968,
          "after": 1.0,
          "delta": 0.3032,
          "percent_delta": 0.4351,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.4326,
          "after": 0.0,
          "delta": -0.4326,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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.217,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.272,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.38,
        "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
      }
    },
    {
      "index": 11,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.224,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.281,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.394,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.217,
          "after": 0.224,
          "delta": 0.007,
          "percent_delta": 0.0323,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.272,
          "after": 0.281,
          "delta": 0.009,
          "percent_delta": 0.0331,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.38,
          "after": 0.394,
          "delta": 0.014,
          "percent_delta": 0.0368,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 3,
        "boosted_metrics": 3,
        "deboosted_metrics": 0,
        "better_metrics": 3,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_SLG",
          "before": 0.38,
          "after": 0.394,
          "delta": 0.014,
          "percent_delta": 0.0368,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "index": 12,
      "step": "market_blend",
      "description": "Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated",
      "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
      }
    },
    {
      "index": 13,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "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_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_R",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 0,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 1,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_R",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 14,
      "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_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.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
      },
      "reference_only": true
    },
    {
      "index": 15,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.221,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.282,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.38,
        "predicted_SO": 1.0,
        "predicted_TB": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_SLG",
          "before": 0.394,
          "after": 0.38,
          "delta": -0.014,
          "percent_delta": -0.0355,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 0,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 1,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_SLG",
          "before": 0.394,
          "after": 0.38,
          "delta": -0.014,
          "percent_delta": -0.0355,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    }
  ],
  "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_AVG",
        "before": 0.199,
        "after": 0.221,
        "delta": 0.022,
        "percent_delta": 0.1106,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.307,
        "after": 0.0,
        "delta": -0.307,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.8,
        "after": 1.0,
        "delta": 0.2,
        "percent_delta": 0.25,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_HBP",
        "before": 0.115,
        "after": 0.0,
        "delta": -0.115,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.22,
        "after": 0.0,
        "delta": -0.22,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.324,
        "after": 0.282,
        "delta": -0.042,
        "percent_delta": -0.1296,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.536,
        "after": 0.0,
        "delta": -0.536,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.68,
        "after": 0.0,
        "delta": -0.68,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.432,
        "after": 0.38,
        "delta": -0.052,
        "percent_delta": -0.1204,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.645,
        "after": 1.0,
        "delta": 0.355,
        "percent_delta": 0.5504,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 11,
      "boosted_metrics": 3,
      "deboosted_metrics": 8,
      "better_metrics": 2,
      "worse_metrics": 9,
      "biggest_boost": {
        "metric": "predicted_SO",
        "before": 0.645,
        "after": 1.0,
        "delta": 0.355,
        "percent_delta": 0.5504,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_RBI",
        "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.163-
predicted_3B0.012-
predicted_AB3.990-
predicted_AVG0.199-
predicted_BB0.307-
predicted_H0.800-
predicted_HR0.220-
predicted_OBP0.324-
predicted_R0.536-
predicted_RBI0.680-
predicted_SLG0.432-
predicted_SO0.645-
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.134-0.029
predicted_3B0.0380.026
predicted_AB3.804-0.186
predicted_AVG0.2130.014
predicted_BB0.3890.082
predicted_H0.8110.011
predicted_HBP0.115-
predicted_HR0.216-0.004
predicted_OBP0.3290.005
predicted_R0.5490.013
predicted_RBI0.651-0.029
predicted_SLG0.4510.019
predicted_SO0.6500.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.1340.000
predicted_3B0.0380.000
predicted_AB3.8040.000
predicted_AVG0.206-0.007
predicted_BB0.387-0.002
predicted_H0.785-0.026
predicted_HBP0.1150.000
predicted_HR0.210-0.006
predicted_OBP0.280-0.049
predicted_R0.520-0.029
predicted_RBI0.616-0.035
predicted_SLG0.427-0.024
predicted_SO0.6530.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.99), rates preserved: AVG=0.174 HR/AB=0.053

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.200)

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.1540.154
3B0.0110.011
BB0.2480.248
H0.793-0.207
HR0.1410.141
RBI0.433-0.567
SO0.697-0.303
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.011
AB4.0000.000
AVG0.217-
BB0.000-0.248
H1.0000.207
HR0.000-0.141
OBP0.272-
R1.0000.000
RBI0.000-0.433
SLG0.380-
SO1.0000.303
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.134
predicted_3B0.000-0.038
predicted_AB4.0000.196
predicted_AVG0.2170.011
predicted_BB0.000-0.387
predicted_H1.0000.215
predicted_HR0.000-0.210
predicted_OBP0.272-0.008
predicted_R1.0000.480
predicted_RBI0.000-0.616
predicted_SLG0.380-0.047
predicted_SO1.0000.347
11. kpi_run_environment

KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
AVG0.2240.007
BB0.0000.000
H1.0000.000
HR0.0000.000
OBP0.2810.009
R1.0000.000
RBI0.0000.000
SLG0.3940.014
SO1.0000.000
12. market_blend

Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated

MetricValueDelta vs Prev Step
13. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R0.000-1.000
RBI0.0000.000
SF0.0000.000
SO1.0000.000
14. 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
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA4.0000.000
R0.0000.000
RBI0.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: 166
Reference playing time: 3.990
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.0000.0001.0002.0005.0004.0005.0002.0000.25000.45450.75000.25000.12500.31250.31250.1250
last_100.2010-33.0006.0000.0001.0002.0006.0004.0005.0009.0000.18180.32500.42420.18180.06060.18180.15150.2727
season0.60166-624.000150.00027.0002.00024.00078.00089.00051.000107.0000.24040.30090.40540.24040.03850.12500.08170.1715
Weighted Prediction From Real Data
MetricValue
predicted_2B0.0960
predicted_3B0.0710
predicted_AB3.5660
predicted_AVG0.2313
predicted_BB0.4950
predicted_H0.8250
predicted_HBP0.1150
predicted_HR0.2110
predicted_OBP0.3352
predicted_R0.5660
predicted_RBI0.6130
predicted_SLG0.4752
predicted_SO0.6560
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.16300.09600.1337model_form_blend
predicted_3B0.01200.07100.0378model_form_blend
predicted_AB3.99003.56603.8043model_form_blend
predicted_AVG0.19900.23130.2131model_form_blend
predicted_BB0.30700.49500.3893model_form_blend
predicted_H0.80000.82500.8109model_form_blend
predicted_HBP-0.11500.1150form_only
predicted_HR0.22000.21100.2161model_form_blend
predicted_OBP0.32400.33520.3289model_form_blend
predicted_R0.53600.56600.5491model_form_blend
predicted_RBI0.68000.61300.6507model_form_blend
predicted_SLG0.43200.47520.4509model_form_blend
predicted_SO0.64500.65600.6498model_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 date659
Season rows before report date659
Report year2026
Profile rows used166
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

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_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
gameID20261004_ATL@LAD
game_typefull
mlbID645277
playerID645277
playerNameOzzie Albies
pos2B
startedTrue
startingPosition2B
teamATL
teamID2
game_date2026-10-04
sl_k_percent15.4
sl_bb_percent6.7
sl_woba0.298
sl_xwoba0.273
sl_xba0.221
sl_xslg0.337
sl_sweet_spot_percent32.3
sl_barrel_batted_rate3.8
sl_hard_hit_percent27.7
sl_exit_velocity_avg87.1
sl_launch_angle_avg17.8
sl_whiff_percent21.2
sl_swing_percent56.1
Michael Harris II (671739) · BATTER · CF · Team ATL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 600
All-history rows before 20261006: 600
System season_avg: 0.3000
Data season_avg (2026 season-to-date): 0.2976
Diff (system - data): 0.0024
System opponent_avg: 0.3200

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.2330.0000.000Hitting_2B0.2371.000-0.237-1.000
predicted_3B0.0130.0000.000Hitting_3B0.0101.000-0.010-1.000
predicted_AB5.4404.0004.000Hitting_AB4.0275.000-0.027-1.000
predicted_AVG0.3080.2500.250Hitting_AVG0.2980.600-0.048-0.350
predicted_BB0.1320.0000.000Hitting_BB0.1430.000-0.1430.000
predicted_CS-0.0000.000BaseRunning_CS0.0220.000-0.0220.000
predicted_H1.6801.0001.000Hitting_H1.1983.000-0.198-2.000
predicted_HR0.1900.0000.000Hitting_HR0.1780.000-0.1780.000
predicted_OBP0.3440.2500.250Hitting_OBP0.3230.600-0.073-0.350
predicted_R0.5281.0001.000Hitting_R0.5531.0000.4470.000
predicted_RBI0.7400.0000.000Hitting_RBI0.6001.000-0.600-1.000
predicted_SLG0.5430.2500.250Hitting_SLG0.4941.200-0.244-0.950
predicted_SO0.7671.0001.000Hitting_SO0.8170.0000.1831.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics12
Boosted Metrics2
Deboosted Metrics10
Better Metrics1
Worse Metrics11
Biggest Boostpredicted_R: 0.5280 -> 1.0000 (boost 0.4720, better)
Biggest Deboostpredicted_AB: 5.4400 -> 4.0000 (deboost -1.4400, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend63333predicted_AVG: 0.3080 -> 0.3215 (boost 0.0135, better)predicted_AB: 5.4400 -> 4.7729 (deboost -0.6671, 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.5525 -> 0.4849 (deboost -0.0676, 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_scaling81708predicted_SO: 0.7380 -> 1.0000 (boost 0.2620, worse)predicted_AB: 4.7729 -> 4.0000 (deboost -0.7729, worse)AB rounded to 4 (raw=5.44), rates preserved: AVG=0.240 HR/AB=0.032
6bvp_blend00000--Sample-size BvP blend (BvP AB=6.0, weight=0.067, BvP AVG=0.333)
7consistency_constraints11010predicted_R: 0.5412 -> 1.0000 (boost 0.4588, better)-Enforced H<=AB, HR<=H, safety nets, derived R
8hitter_rate_engine54150predicted_RBI: 0.0000 -> 0.5463 (boost 0.5463, better)predicted_SO: 1.0000 -> 0.8775 (deboost -0.1225, 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_allocation83526predicted_2B: 0.1919 -> 1.0000 (boost 0.8081, better)predicted_HR: 0.1728 -> 0.0000 (deboost -0.1728, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
10embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
11kpi_run_environment33030predicted_SLG: 0.4470 -> 0.4630 (boost 0.0160, better)-KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup
12market_blend00000--Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated
13play_by_play_realization20202-predicted_2B: 1.0000 -> 0.0000 (deboost -1.0000, worse)Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
14simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
15current_json_final30303-predicted_SLG: 0.4630 -> 0.4350 (deboost -0.0280, worse)Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "671739",
  "player_name": "Michael Harris II",
  "position": "CF",
  "team": "ATL",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.233,
        "predicted_3B": 0.013,
        "predicted_AB": 5.44,
        "predicted_AVG": 0.308,
        "predicted_BB": 0.132,
        "predicted_H": 1.68,
        "predicted_HR": 0.19,
        "predicted_OBP": 0.344,
        "predicted_R": 0.528,
        "predicted_RBI": 0.74,
        "predicted_SLG": 0.543,
        "predicted_SO": 0.767
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "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.2505,
        "predicted_3B": 0.0353,
        "predicted_AB": 4.7729,
        "predicted_AVG": 0.3215,
        "predicted_BB": 0.1137,
        "predicted_H": 1.5254,
        "predicted_HBP": 0.068,
        "predicted_HR": 0.1773,
        "predicted_OBP": 0.3527,
        "predicted_R": 0.5717,
        "predicted_RBI": 0.6858,
        "predicted_SLG": 0.5525,
        "predicted_SO": 0.7342
      },
      "changed_metrics": [
        {
          "metric": "predicted_AB",
          "before": 5.44,
          "after": 4.7729,
          "delta": -0.6671,
          "percent_delta": -0.1226,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.308,
          "after": 0.3215,
          "delta": 0.0135,
          "percent_delta": 0.0438,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.68,
          "after": 1.5254,
          "delta": -0.1546,
          "percent_delta": -0.092,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.344,
          "after": 0.3527,
          "delta": 0.0087,
          "percent_delta": 0.0253,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.74,
          "after": 0.6858,
          "delta": -0.0542,
          "percent_delta": -0.0732,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.543,
          "after": 0.5525,
          "delta": 0.0095,
          "percent_delta": 0.0175,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 6,
        "boosted_metrics": 3,
        "deboosted_metrics": 3,
        "better_metrics": 3,
        "worse_metrics": 3,
        "biggest_boost": {
          "metric": "predicted_AVG",
          "before": 0.308,
          "after": 0.3215,
          "delta": 0.0135,
          "percent_delta": 0.0438,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 5.44,
          "after": 4.7729,
          "delta": -0.6671,
          "percent_delta": -0.1226,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      },
      "weights": {
        "xgboost_raw": 0.55,
        "weighted_form": 0.45,
        "form_windows": {
          "last_5": 0.2,
          "last_10": 0.2,
          "season": 0.6
        }
      },
      "window_games": {
        "last_5": 5,
        "last_10": 10,
        "season": 159
      }
    },
    {
      "index": 3,
      "step": "team_form_snapshot",
      "description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
      "stats": {
        "predicted_2B": 0.2505,
        "predicted_3B": 0.0353,
        "predicted_AB": 4.7729,
        "predicted_AVG": 0.3094,
        "predicted_BB": 0.1131,
        "predicted_H": 1.4766,
        "predicted_HBP": 0.068,
        "predicted_HR": 0.1722,
        "predicted_OBP": 0.3254,
        "predicted_R": 0.5412,
        "predicted_RBI": 0.6492,
        "predicted_SLG": 0.4849,
        "predicted_SO": 0.738
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.3215,
          "after": 0.3094,
          "delta": -0.0121,
          "percent_delta": -0.0376,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3527,
          "after": 0.3254,
          "delta": -0.0273,
          "percent_delta": -0.0774,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.5525,
          "after": 0.4849,
          "delta": -0.0676,
          "percent_delta": -0.1224,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.5525,
          "after": 0.4849,
          "delta": -0.0676,
          "percent_delta": -0.1224,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 4 (raw=5.44), rates preserved: AVG=0.240 HR/AB=0.032",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.2505,
          "after": 0.0,
          "delta": -0.2505,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AB",
          "before": 4.7729,
          "after": 4.0,
          "delta": -0.7729,
          "percent_delta": -0.1619,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.1131,
          "after": 0.0,
          "delta": -0.1131,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.4766,
          "after": 1.0,
          "delta": -0.4766,
          "percent_delta": -0.3228,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HBP",
          "before": 0.068,
          "after": 0.0,
          "delta": -0.068,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1722,
          "after": 0.0,
          "delta": -0.1722,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.6492,
          "after": 0.0,
          "delta": -0.6492,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.738,
          "after": 1.0,
          "delta": 0.262,
          "percent_delta": 0.355,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 8,
        "boosted_metrics": 1,
        "deboosted_metrics": 7,
        "better_metrics": 0,
        "worse_metrics": 8,
        "biggest_boost": {
          "metric": "predicted_SO",
          "before": 0.738,
          "after": 1.0,
          "delta": 0.262,
          "percent_delta": 0.355,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 4.7729,
          "after": 4.0,
          "delta": -0.7729,
          "percent_delta": -0.1619,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 6,
      "step": "bvp_blend",
      "description": "Sample-size BvP blend (BvP AB=6.0, weight=0.067, BvP AVG=0.333)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SO": 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": {
        "model_expectation": 0.9333,
        "bvp": 0.0667
      }
    },
    {
      "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_R",
          "before": 0.5412,
          "after": 1.0,
          "delta": 0.4588,
          "percent_delta": 0.8477,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 1,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_R",
          "before": 0.5412,
          "after": 1.0,
          "delta": 0.4588,
          "percent_delta": 0.8477,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "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.1919,
        "predicted_3B": 0.0117,
        "predicted_BB": 0.146,
        "predicted_H": 0.9945,
        "predicted_HR": 0.1728,
        "predicted_RBI": 0.5463,
        "predicted_SO": 0.8775
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1919,
          "delta": 0.1919,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.146,
          "delta": 0.146,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1728,
          "delta": 0.1728,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.5463,
          "delta": 0.5463,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.8775,
          "delta": -0.1225,
          "percent_delta": -0.1225,
          "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.5463,
          "delta": 0.5463,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.8775,
          "delta": -0.1225,
          "percent_delta": -0.1225,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      }
    },
    {
      "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_AVG": 0.257,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.29,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.447,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1919,
          "after": 1.0,
          "delta": 0.8081,
          "percent_delta": 4.211,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.3094,
          "after": 0.257,
          "delta": -0.0524,
          "percent_delta": -0.1694,
          "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_HR",
          "before": 0.1728,
          "after": 0.0,
          "delta": -0.1728,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3254,
          "after": 0.29,
          "delta": -0.0354,
          "percent_delta": -0.1088,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5463,
          "after": 1.0,
          "delta": 0.4537,
          "percent_delta": 0.8305,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4849,
          "after": 0.447,
          "delta": -0.0379,
          "percent_delta": -0.0782,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.8775,
          "after": 1.0,
          "delta": 0.1225,
          "percent_delta": 0.1396,
          "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_2B",
          "before": 0.1919,
          "after": 1.0,
          "delta": 0.8081,
          "percent_delta": 4.211,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_HR",
          "before": 0.1728,
          "after": 0.0,
          "delta": -0.1728,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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": 1.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.29,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.447,
        "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
      }
    },
    {
      "index": 11,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup",
      "stats": {
        "predicted_2B": 1.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.266,
        "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.463,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.257,
          "after": 0.266,
          "delta": 0.009,
          "percent_delta": 0.035,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.29,
          "after": 0.3,
          "delta": 0.01,
          "percent_delta": 0.0345,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.447,
          "after": 0.463,
          "delta": 0.016,
          "percent_delta": 0.0358,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 3,
        "boosted_metrics": 3,
        "deboosted_metrics": 0,
        "better_metrics": 3,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_SLG",
          "before": 0.447,
          "after": 0.463,
          "delta": 0.016,
          "percent_delta": 0.0358,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "index": 12,
      "step": "market_blend",
      "description": "Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated",
      "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
      }
    },
    {
      "index": 13,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "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_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.0,
        "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_RBI",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 2,
        "boosted_metrics": 0,
        "deboosted_metrics": 2,
        "better_metrics": 0,
        "worse_metrics": 2,
        "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
        }
      }
    },
    {
      "index": 14,
      "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_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.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
      },
      "reference_only": true
    },
    {
      "index": 15,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.249,
        "predicted_BB": 0.0,
        "predicted_CF": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.284,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.435,
        "predicted_SO": 1.0,
        "predicted_TB": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.266,
          "after": 0.249,
          "delta": -0.017,
          "percent_delta": -0.0639,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3,
          "after": 0.284,
          "delta": -0.016,
          "percent_delta": -0.0533,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.463,
          "after": 0.435,
          "delta": -0.028,
          "percent_delta": -0.0605,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.463,
          "after": 0.435,
          "delta": -0.028,
          "percent_delta": -0.0605,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    }
  ],
  "total_change": {
    "from_step": "xgboost_raw",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_2B",
        "before": 0.233,
        "after": 0.0,
        "delta": -0.233,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AB",
        "before": 5.44,
        "after": 4.0,
        "delta": -1.44,
        "percent_delta": -0.2647,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.308,
        "after": 0.249,
        "delta": -0.059,
        "percent_delta": -0.1916,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.132,
        "after": 0.0,
        "delta": -0.132,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 1.68,
        "after": 1.0,
        "delta": -0.68,
        "percent_delta": -0.4048,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HBP",
        "before": 0.068,
        "after": 0.0,
        "delta": -0.068,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.19,
        "after": 0.0,
        "delta": -0.19,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.344,
        "after": 0.284,
        "delta": -0.06,
        "percent_delta": -0.1744,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.528,
        "after": 1.0,
        "delta": 0.472,
        "percent_delta": 0.8939,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.74,
        "after": 0.0,
        "delta": -0.74,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.543,
        "after": 0.435,
        "delta": -0.108,
        "percent_delta": -0.1989,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.767,
        "after": 1.0,
        "delta": 0.233,
        "percent_delta": 0.3038,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 12,
      "boosted_metrics": 2,
      "deboosted_metrics": 10,
      "better_metrics": 1,
      "worse_metrics": 11,
      "biggest_boost": {
        "metric": "predicted_R",
        "before": 0.528,
        "after": 1.0,
        "delta": 0.472,
        "percent_delta": 0.8939,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_AB",
        "before": 5.44,
        "after": 4.0,
        "delta": -1.44,
        "percent_delta": -0.2647,
        "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.233-
predicted_3B0.013-
predicted_AB5.440-
predicted_AVG0.308-
predicted_BB0.132-
predicted_H1.680-
predicted_HR0.190-
predicted_OBP0.344-
predicted_R0.528-
predicted_RBI0.740-
predicted_SLG0.543-
predicted_SO0.767-
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.2510.017
predicted_3B0.0350.022
predicted_AB4.773-0.667
predicted_AVG0.3220.014
predicted_BB0.114-0.018
predicted_H1.525-0.155
predicted_HBP0.068-
predicted_HR0.177-0.013
predicted_OBP0.3530.009
predicted_R0.5720.044
predicted_RBI0.686-0.054
predicted_SLG0.5520.009
predicted_SO0.734-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.2510.000
predicted_3B0.0350.000
predicted_AB4.7730.000
predicted_AVG0.309-0.012
predicted_BB0.113-0.001
predicted_H1.477-0.049
predicted_HBP0.0680.000
predicted_HR0.172-0.005
predicted_OBP0.325-0.027
predicted_R0.541-0.030
predicted_RBI0.649-0.037
predicted_SLG0.485-0.068
predicted_SO0.7380.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=5.44), rates preserved: AVG=0.240 HR/AB=0.032

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=6.0, weight=0.067, BvP AVG=0.333)

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.1920.192
3B0.0120.012
BB0.1460.146
H0.995-0.005
HR0.1730.173
RBI0.5460.546
SO0.877-0.123
9. lineup_integer_allocation

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

MetricValueDelta vs Prev Step
2B1.0000.808
3B0.000-0.012
AB4.0000.000
AVG0.257-
BB0.000-0.146
H1.0000.005
HR0.000-0.173
OBP0.290-
R1.0000.000
RBI1.0000.454
SLG0.447-
SO1.0000.123
10. embedded_savant_player_context

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

MetricValueDelta vs Prev Step
predicted_2B1.0000.750
predicted_3B0.000-0.035
predicted_AB4.000-0.773
predicted_AVG0.257-0.052
predicted_BB0.000-0.113
predicted_H1.000-0.477
predicted_HR0.000-0.172
predicted_OBP0.290-0.035
predicted_R1.0000.459
predicted_RBI1.0000.351
predicted_SLG0.447-0.038
predicted_SO1.0000.262
11. kpi_run_environment

KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B1.0000.000
3B0.0000.000
AB4.0000.000
AVG0.2660.009
BB0.0000.000
H1.0000.000
HR0.0000.000
OBP0.3000.010
R1.0000.000
RBI1.0000.000
SLG0.4630.016
SO1.0000.000
12. market_blend

Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated

MetricValueDelta vs Prev Step
13. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

MetricValueDelta vs Prev Step
2B0.000-1.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R1.0000.000
RBI0.000-1.000
SF0.0000.000
SO1.0000.000
14. 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
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA4.0000.000
R1.0000.000
RBI0.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: 159
Reference playing time: 5.440
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.0001.0001.0001.0004.0004.0000.0003.0000.40000.42860.70000.40000.05000.20000.00000.1500
last_100.2010-41.00017.0005.0001.0001.0006.0008.0000.0005.0000.41460.42860.65850.41460.02440.14630.00000.1220
season0.60159-609.000183.00037.0002.00027.00091.00084.00021.000122.0000.30050.32550.50080.30050.04430.14940.03450.2003
Weighted Prediction From Real Data
MetricValue
predicted_2B0.2730
predicted_3B0.0640
predicted_AB3.9130
predicted_AVG0.3389
predicted_BB0.0900
predicted_H1.3260
predicted_HBP0.0680
predicted_HR0.1610
predicted_OBP0.3640
predicted_R0.6280
predicted_RBI0.6160
predicted_SLG0.5648
predicted_SO0.6920
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.23300.27300.2505model_form_blend
predicted_3B0.01300.06400.0353model_form_blend
predicted_AB5.44003.91304.7729model_form_blend
predicted_AVG0.30800.33890.3215model_form_blend
predicted_BB0.13200.09000.1137model_form_blend
predicted_H1.68001.32601.5254model_form_blend
predicted_HBP-0.06800.0680form_only
predicted_HR0.19000.16100.1773model_form_blend
predicted_OBP0.34400.36400.3527model_form_blend
predicted_R0.52800.62800.5717model_form_blend
predicted_RBI0.74000.61600.6858model_form_blend
predicted_SLG0.54300.56480.5525model_form_blend
predicted_SO0.76700.69200.7342model_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 date600
Season rows before report date600
Report year2026
Profile rows used159
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
R1
RBI0
BB0
SO1
SF0
HBP0

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_3B1
Hitting_AB5
Hitting_AVG0.6
Hitting_BB0
Hitting_GIDP0
Hitting_H3
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R1
Hitting_RBI1
Hitting_SAC0
Hitting_SF0
Hitting_SO0
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
allPositionsPlayedCF
gameID20261004_ATL@LAD
game_typefull
mlbID671739
playerID671739
playerNameMichael Harris II
posCF
startedTrue
startingPositionCF
teamATL
teamID2
game_date2026-10-04
sl_k_percent19.2
sl_bb_percent3.7
sl_woba0.349
sl_xwoba0.342
sl_xba0.29
sl_xslg0.477
sl_sweet_spot_percent31.9
sl_barrel_batted_rate10.3
sl_hard_hit_percent47.6
sl_exit_velocity_avg90.5
sl_launch_angle_avg10.0
sl_whiff_percent24.6
sl_swing_percent56.4
Mauricio Dubón (643289) · BATTER · LF · Team ATL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 594
All-history rows before 20261006: 594
System season_avg: 0.2760
Data season_avg (2026 season-to-date): 0.2780
Diff (system - data): -0.0020
System opponent_avg: 0.1930

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1850.0000.000Hitting_2B0.1920.000-0.1920.000
predicted_3B0.0190.0000.000Hitting_3B0.0220.000-0.0220.000
predicted_AB4.2504.0004.000Hitting_AB3.8223.0000.1781.000
predicted_AVG0.2380.5000.500Hitting_AVG0.2780.3330.2220.167
predicted_BB0.2360.0000.000Hitting_BB0.2471.000-0.247-1.000
predicted_CS-0.0000.000BaseRunning_CS0.0220.000-0.0220.000
predicted_H1.0102.0002.000Hitting_H1.0621.0000.9381.000
predicted_HR0.0800.0000.000Hitting_HR0.0810.000-0.0810.000
predicted_OBP0.3110.5000.500Hitting_OBP0.3250.5000.1750.000
predicted_R0.4200.0000.000Hitting_R0.4460.000-0.4460.000
predicted_RBI0.4600.0000.000Hitting_RBI0.5101.000-0.510-1.000
predicted_SLG0.3740.5000.500Hitting_SLG0.4030.3330.0970.167
predicted_SO0.5030.0000.000Hitting_SO0.4882.000-0.488-2.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_H: 1.0100 -> 2.0000 (boost 0.9900, better)
Biggest Deboostpredicted_SO: 0.5030 -> 0.0000 (deboost -0.5030, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend32112predicted_SO: 0.5030 -> 0.5833 (boost 0.0803, worse)predicted_AB: 4.2500 -> 4.0334 (deboost -0.2166, 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_OBP: 0.3140 -> 0.2856 (deboost -0.0284, 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_scaling51405predicted_SO: 0.5863 -> 1.0000 (boost 0.4137, worse)predicted_RBI: 0.4136 -> 0.0000 (deboost -0.4136, worse)AB rounded to 4 (raw=4.25), rates preserved: AVG=0.202 HR/AB=0.017
6consistency_constraints10101-predicted_R: 0.3571 -> 0.0000 (deboost -0.3571, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine64251predicted_RBI: 0.0000 -> 0.4685 (boost 0.4685, better)predicted_SO: 1.0000 -> 0.5687 (deboost -0.4313, 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_allocation72534predicted_H: 0.8661 -> 1.0000 (boost 0.1339, better)predicted_SO: 0.5687 -> 0.0000 (deboost -0.5687, better)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10kpi_run_environment33030predicted_SLG: 0.3700 -> 0.3830 (boost 0.0130, better)-KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup
11market_blend00000--Market blend not applied: no props for this hitter
12play_by_play_realization11010predicted_H: 1.0000 -> 2.0000 (boost 1.0000, better)-Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
13simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
14current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "643289",
  "player_name": "Mauricio Dubón",
  "position": "LF",
  "team": "ATL",
  "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.019,
        "predicted_AB": 4.25,
        "predicted_AVG": 0.238,
        "predicted_BB": 0.236,
        "predicted_H": 1.01,
        "predicted_HR": 0.08,
        "predicted_OBP": 0.311,
        "predicted_R": 0.42,
        "predicted_RBI": 0.46,
        "predicted_SLG": 0.374,
        "predicted_SO": 0.503
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "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.1789,
        "predicted_3B": 0.0159,
        "predicted_AB": 4.0334,
        "predicted_AVG": 0.2496,
        "predicted_BB": 0.2552,
        "predicted_H": 1.0026,
        "predicted_HBP": 0.016,
        "predicted_HR": 0.0752,
        "predicted_OBP": 0.314,
        "predicted_R": 0.3772,
        "predicted_RBI": 0.4369,
        "predicted_SLG": 0.373,
        "predicted_SO": 0.5833
      },
      "changed_metrics": [
        {
          "metric": "predicted_AB",
          "before": 4.25,
          "after": 4.0334,
          "delta": -0.2166,
          "percent_delta": -0.051,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.238,
          "after": 0.2496,
          "delta": 0.0116,
          "percent_delta": 0.0487,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.503,
          "after": 0.5833,
          "delta": 0.0803,
          "percent_delta": 0.1596,
          "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.503,
          "after": 0.5833,
          "delta": 0.0803,
          "percent_delta": 0.1596,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 4.25,
          "after": 4.0334,
          "delta": -0.2166,
          "percent_delta": -0.051,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      },
      "weights": {
        "xgboost_raw": 0.55,
        "weighted_form": 0.45,
        "form_windows": {
          "last_5": 0.2,
          "last_10": 0.2,
          "season": 0.6
        }
      },
      "window_games": {
        "last_5": 5,
        "last_10": 10,
        "season": 157
      }
    },
    {
      "index": 3,
      "step": "team_form_snapshot",
      "description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
      "stats": {
        "predicted_2B": 0.1789,
        "predicted_3B": 0.0159,
        "predicted_AB": 4.0334,
        "predicted_AVG": 0.2406,
        "predicted_BB": 0.2539,
        "predicted_H": 0.9705,
        "predicted_HBP": 0.016,
        "predicted_HR": 0.073,
        "predicted_OBP": 0.2856,
        "predicted_R": 0.3571,
        "predicted_RBI": 0.4136,
        "predicted_SLG": 0.3472,
        "predicted_SO": 0.5863
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.2496,
          "after": 0.2406,
          "delta": -0.009,
          "percent_delta": -0.0361,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.314,
          "after": 0.2856,
          "delta": -0.0284,
          "percent_delta": -0.0904,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.373,
          "after": 0.3472,
          "delta": -0.0258,
          "percent_delta": -0.0692,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.314,
          "after": 0.2856,
          "delta": -0.0284,
          "percent_delta": -0.0904,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 4 (raw=4.25), rates preserved: AVG=0.202 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.1789,
          "after": 0.0,
          "delta": -0.1789,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.2539,
          "after": 0.0,
          "delta": -0.2539,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.073,
          "after": 0.0,
          "delta": -0.073,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4136,
          "after": 0.0,
          "delta": -0.4136,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.5863,
          "after": 1.0,
          "delta": 0.4137,
          "percent_delta": 0.7056,
          "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.5863,
          "after": 1.0,
          "delta": 0.4137,
          "percent_delta": 0.7056,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.4136,
          "after": 0.0,
          "delta": -0.4136,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_R",
          "before": 0.3571,
          "after": 0.0,
          "delta": -0.3571,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 0,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 1,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_R",
          "before": 0.3571,
          "after": 0.0,
          "delta": -0.3571,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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.1604,
        "predicted_3B": 0.0133,
        "predicted_BB": 0.1931,
        "predicted_H": 0.8661,
        "predicted_HR": 0.0952,
        "predicted_RBI": 0.4685,
        "predicted_SO": 0.5687
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1604,
          "delta": 0.1604,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.1931,
          "delta": 0.1931,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8661,
          "delta": -0.1339,
          "percent_delta": -0.1339,
          "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.4685,
          "delta": 0.4685,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.5687,
          "delta": -0.4313,
          "percent_delta": -0.4313,
          "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.4685,
          "delta": 0.4685,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.5687,
          "delta": -0.4313,
          "percent_delta": -0.4313,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      }
    },
    {
      "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_AVG": 0.239,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.284,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.37,
        "predicted_SO": 0.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1604,
          "after": 0.0,
          "delta": -0.1604,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.1931,
          "after": 0.0,
          "delta": -0.1931,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8661,
          "after": 1.0,
          "delta": 0.1339,
          "percent_delta": 0.1546,
          "direction": "boost",
          "projection_effect": "better",
          "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_RBI",
          "before": 0.4685,
          "after": 0.0,
          "delta": -0.4685,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3472,
          "after": 0.37,
          "delta": 0.0228,
          "percent_delta": 0.0657,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.5687,
          "after": 0.0,
          "delta": -0.5687,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 7,
        "boosted_metrics": 2,
        "deboosted_metrics": 5,
        "better_metrics": 3,
        "worse_metrics": 4,
        "biggest_boost": {
          "metric": "predicted_H",
          "before": 0.8661,
          "after": 1.0,
          "delta": 0.1339,
          "percent_delta": 0.1546,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 0.5687,
          "after": 0.0,
          "delta": -0.5687,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      }
    },
    {
      "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.284,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.37,
        "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
      }
    },
    {
      "index": 10,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.248,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.293,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.383,
        "predicted_SO": 0.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.239,
          "after": 0.248,
          "delta": 0.009,
          "percent_delta": 0.0377,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.284,
          "after": 0.293,
          "delta": 0.009,
          "percent_delta": 0.0317,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.37,
          "after": 0.383,
          "delta": 0.013,
          "percent_delta": 0.0351,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 3,
        "boosted_metrics": 3,
        "deboosted_metrics": 0,
        "better_metrics": 3,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_SLG",
          "before": 0.37,
          "after": 0.383,
          "delta": 0.013,
          "percent_delta": 0.0351,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "index": 11,
      "step": "market_blend",
      "description": "Market blend not applied: no props for this hitter",
      "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
      }
    },
    {
      "index": 12,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_BB": 0.0,
        "predicted_H": 2.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.0,
        "predicted_SO": 0.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 2.0,
          "delta": 1.0,
          "percent_delta": 1.0,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 1,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 2.0,
          "delta": 1.0,
          "percent_delta": 1.0,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "index": 13,
      "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_H": 2.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.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
      },
      "reference_only": true
    },
    {
      "index": 14,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.248,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 2.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_LF": 0.0,
        "predicted_OBP": 0.293,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.383,
        "predicted_SO": 0.0,
        "predicted_TB": 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
      }
    }
  ],
  "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_AB",
        "before": 4.25,
        "after": 4.0,
        "delta": -0.25,
        "percent_delta": -0.0588,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.238,
        "after": 0.248,
        "delta": 0.01,
        "percent_delta": 0.042,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.236,
        "after": 0.0,
        "delta": -0.236,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 1.01,
        "after": 2.0,
        "delta": 0.99,
        "percent_delta": 0.9802,
        "direction": "boost",
        "projection_effect": "better",
        "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.311,
        "after": 0.293,
        "delta": -0.018,
        "percent_delta": -0.0579,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.42,
        "after": 0.0,
        "delta": -0.42,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.46,
        "after": 0.0,
        "delta": -0.46,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.374,
        "after": 0.383,
        "delta": 0.009,
        "percent_delta": 0.0241,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.503,
        "after": 0.0,
        "delta": -0.503,
        "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_H",
        "before": 1.01,
        "after": 2.0,
        "delta": 0.99,
        "percent_delta": 0.9802,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_SO",
        "before": 0.503,
        "after": 0.0,
        "delta": -0.503,
        "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.185-
predicted_3B0.019-
predicted_AB4.250-
predicted_AVG0.238-
predicted_BB0.236-
predicted_H1.010-
predicted_HR0.080-
predicted_OBP0.311-
predicted_R0.420-
predicted_RBI0.460-
predicted_SLG0.374-
predicted_SO0.503-
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.179-0.006
predicted_3B0.016-0.003
predicted_AB4.033-0.217
predicted_AVG0.2500.012
predicted_BB0.2550.019
predicted_H1.003-0.007
predicted_HBP0.016-
predicted_HR0.075-0.005
predicted_OBP0.3140.003
predicted_R0.377-0.043
predicted_RBI0.437-0.023
predicted_SLG0.373-0.001
predicted_SO0.5830.080
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.0160.000
predicted_AB4.0330.000
predicted_AVG0.241-0.009
predicted_BB0.254-0.001
predicted_H0.971-0.032
predicted_HBP0.0160.000
predicted_HR0.073-0.002
predicted_OBP0.286-0.028
predicted_R0.357-0.020
predicted_RBI0.414-0.023
predicted_SLG0.347-0.026
predicted_SO0.5860.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.25), rates preserved: AVG=0.202 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. 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.1600.160
3B0.0130.013
BB0.1930.193
H0.866-0.134
HR0.0950.095
RBI0.4690.469
SO0.569-0.431
8. lineup_integer_allocation

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

MetricValueDelta vs Prev Step
2B0.000-0.160
3B0.000-0.013
AB4.0000.000
AVG0.239-
BB0.000-0.193
H1.0000.134
HR0.000-0.095
OBP0.284-
R0.0000.000
RBI0.000-0.469
SLG0.370-
SO0.000-0.569
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.016
predicted_AB4.000-0.033
predicted_AVG0.239-0.002
predicted_BB0.000-0.254
predicted_H1.0000.029
predicted_HR0.000-0.073
predicted_OBP0.284-0.002
predicted_R0.000-0.357
predicted_RBI0.000-0.414
predicted_SLG0.3700.023
predicted_SO0.000-0.586
10. kpi_run_environment

KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
AVG0.2480.009
BB0.0000.000
H1.0000.000
HR0.0000.000
OBP0.2930.009
R0.0000.000
RBI0.0000.000
SLG0.3830.013
SO0.0000.000
11. market_blend

Market blend not applied: no props for this hitter

MetricValueDelta vs Prev Step
12. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
H2.0001.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R0.0000.000
RBI0.0000.000
SF0.0000.000
SO0.0000.000
13. 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
H2.0000.000
HBP0.0000.000
HR0.0000.000
PA4.0000.000
R0.0000.000
RBI0.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: 157
Reference playing time: 4.250
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.0001.0000.0002.0006.0000.21050.28570.26320.21050.00000.05260.10530.3158
last_100.2010-38.00011.0001.0000.0001.0004.0003.0003.0007.0000.28950.34150.39470.28950.02630.10530.07900.1842
season0.60157-584.000161.00029.0003.00012.00074.00066.00037.00079.0000.27570.32170.39730.27570.02050.12670.06340.1353
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1710
predicted_3B0.0120
predicted_AB3.7540
predicted_AVG0.2646
predicted_BB0.2800
predicted_H0.9930
predicted_HBP0.0160
predicted_HR0.0690
predicted_OBP0.3179
predicted_R0.3220
predicted_RBI0.4070
predicted_SLG0.3717
predicted_SO0.6870
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.18500.17100.1789model_form_blend
predicted_3B0.01900.01200.0159model_form_blend
predicted_AB4.25003.75404.0334model_form_blend
predicted_AVG0.23800.26460.2496model_form_blend
predicted_BB0.23600.28000.2552model_form_blend
predicted_H1.01000.99301.0026model_form_blend
predicted_HBP-0.01600.0160form_only
predicted_HR0.08000.06900.0752model_form_blend
predicted_OBP0.31100.31790.3140model_form_blend
predicted_R0.42000.32200.3772model_form_blend
predicted_RBI0.46000.40700.4369model_form_blend
predicted_SLG0.37400.37170.3730model_form_blend
predicted_SO0.50300.68700.5833model_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 date594
Season rows before report date594
Report year2026
Profile rows used157
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
R0
RBI0
BB0
SO0
SF0
HBP0

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_RBI1
Hitting_SAC0
Hitting_SF0
Hitting_SO2
Hitting_TB1
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
allPositionsPlayedSS
gameID20261004_ATL@LAD
game_typefull
mlbID643289
playerID643289
playerNameMauricio Dubón
posLF
startedTrue
startingPositionSS
teamATL
teamID2
game_date2026-10-04
sl_k_percent11.8
sl_bb_percent5.7
sl_woba0.317
sl_xwoba0.304
sl_xba0.268
sl_xslg0.375
sl_sweet_spot_percent36.5
sl_barrel_batted_rate4.0
sl_hard_hit_percent29.4
sl_exit_velocity_avg86.5
sl_launch_angle_avg16.1
sl_whiff_percent15.3
sl_swing_percent53.7
Lane Thomas (657041) · BATTER · RF · Team ATL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 50
All-history rows before 20261006: 50
System season_avg: 0.2220
Data season_avg (2026 season-to-date): 0.1712
Diff (system - data): 0.0508
System opponent_avg: 0.1330
System season_avg diverges from 2026 season-to-date by 0.0508. 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.1700.0000.000Hitting_2B0.1800.000-0.1800.000
predicted_3B0.0000.0000.000Hitting_3B0.0000.0000.0000.000
predicted_AB2.9383.0003.000Hitting_AB2.2202.0000.7801.000
predicted_AVG0.2220.0000.000Hitting_AVG0.1710.000-0.1710.000
predicted_BB0.3660.0000.000Hitting_BB0.2800.000-0.2800.000
predicted_CS-0.0000.000BaseRunning_CS0.0000.0000.0000.000
predicted_H0.6520.0000.000Hitting_H0.3800.000-0.3800.000
predicted_HR0.0980.0000.000Hitting_HR0.0400.000-0.0400.000
predicted_OBP0.3080.0000.000Hitting_OBP0.2640.000-0.2640.000
predicted_R0.3120.0000.000Hitting_R0.3000.000-0.3000.000
predicted_RBI0.3481.0001.000Hitting_RBI0.1400.0000.8601.000
predicted_SLG0.3800.0000.000Hitting_SLG0.3060.000-0.3060.000
predicted_SO0.8481.0001.000Hitting_SO0.8001.0000.2000.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics10
Boosted Metrics4
Deboosted Metrics6
Better Metrics2
Worse Metrics7
Biggest Boostpredicted_SF: 0.0000 -> 1.0000 (boost 1.0000, higher)
Biggest Deboostpredicted_H: 0.6520 -> 0.0000 (deboost -0.6520, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend60606-predicted_AB: 2.9380 -> 2.8327 (deboost -0.1053, 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.3350 -> 0.3282 (deboost -0.0068, 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.5470 -> 1.0000 (boost 0.4530, better)predicted_BB: 0.3339 -> 0.0000 (deboost -0.3339, worse)AB rounded to 3 (raw=2.94), rates preserved: AVG=0.165 HR/AB=0.027
6consistency_constraints10101-predicted_R: 0.2824 -> 0.0000 (deboost -0.2824, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine54141predicted_RBI: 0.0000 -> 0.3861 (boost 0.3861, better)predicted_H: 1.0000 -> 0.6788 (deboost -0.3212, 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_allocation72525predicted_SLG: 0.3282 -> 0.3650 (boost 0.0368, better)predicted_H: 0.6788 -> 0.0000 (deboost -0.6788, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10kpi_run_environment33030predicted_SLG: 0.3650 -> 0.3780 (boost 0.0130, better)-KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup
11market_blend00000--Market blend not applied: no props for this hitter
12play_by_play_realization22010predicted_RBI: 0.0000 -> 1.0000 (boost 1.0000, better)-Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
13simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
14current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "657041",
  "player_name": "Lane Thomas",
  "position": "RF",
  "team": "ATL",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.17,
        "predicted_3B": 0.0,
        "predicted_AB": 2.938,
        "predicted_AVG": 0.222,
        "predicted_BB": 0.366,
        "predicted_H": 0.652,
        "predicted_HR": 0.098,
        "predicted_OBP": 0.308,
        "predicted_R": 0.312,
        "predicted_RBI": 0.348,
        "predicted_SLG": 0.38,
        "predicted_SO": 0.848
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "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.1477,
        "predicted_3B": 0.0004,
        "predicted_AB": 2.8327,
        "predicted_AVG": 0.1984,
        "predicted_BB": 0.3356,
        "predicted_H": 0.5651,
        "predicted_HBP": 0.011,
        "predicted_HR": 0.0804,
        "predicted_OBP": 0.2835,
        "predicted_R": 0.2983,
        "predicted_RBI": 0.2859,
        "predicted_SLG": 0.335,
        "predicted_SO": 0.8848
      },
      "changed_metrics": [
        {
          "metric": "predicted_AB",
          "before": 2.938,
          "after": 2.8327,
          "delta": -0.1053,
          "percent_delta": -0.0358,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.222,
          "after": 0.1984,
          "delta": -0.0236,
          "percent_delta": -0.1063,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.652,
          "after": 0.5651,
          "delta": -0.0869,
          "percent_delta": -0.1333,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.308,
          "after": 0.2835,
          "delta": -0.0245,
          "percent_delta": -0.0795,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.348,
          "after": 0.2859,
          "delta": -0.0621,
          "percent_delta": -0.1784,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.38,
          "after": 0.335,
          "delta": -0.045,
          "percent_delta": -0.1184,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 6,
        "boosted_metrics": 0,
        "deboosted_metrics": 6,
        "better_metrics": 0,
        "worse_metrics": 6,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 2.938,
          "after": 2.8327,
          "delta": -0.1053,
          "percent_delta": -0.0358,
          "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": 112
      }
    },
    {
      "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.1477,
        "predicted_3B": 0.0004,
        "predicted_AB": 2.8327,
        "predicted_AVG": 0.1931,
        "predicted_BB": 0.3339,
        "predicted_H": 0.547,
        "predicted_HBP": 0.011,
        "predicted_HR": 0.0781,
        "predicted_OBP": 0.2782,
        "predicted_R": 0.2824,
        "predicted_RBI": 0.2707,
        "predicted_SLG": 0.3282,
        "predicted_SO": 0.8894
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.1984,
          "after": 0.1931,
          "delta": -0.0053,
          "percent_delta": -0.0267,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2835,
          "after": 0.2782,
          "delta": -0.0053,
          "percent_delta": -0.0187,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.335,
          "after": 0.3282,
          "delta": -0.0068,
          "percent_delta": -0.0203,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.335,
          "after": 0.3282,
          "delta": -0.0068,
          "percent_delta": -0.0203,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 3 (raw=2.94), rates preserved: AVG=0.165 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.1477,
          "after": 0.0,
          "delta": -0.1477,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AB",
          "before": 2.8327,
          "after": 3.0,
          "delta": 0.1673,
          "percent_delta": 0.0591,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3339,
          "after": 0.0,
          "delta": -0.3339,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.547,
          "after": 1.0,
          "delta": 0.453,
          "percent_delta": 0.8282,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0781,
          "after": 0.0,
          "delta": -0.0781,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.2707,
          "after": 0.0,
          "delta": -0.2707,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.8894,
          "after": 1.0,
          "delta": 0.1106,
          "percent_delta": 0.1244,
          "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.547,
          "after": 1.0,
          "delta": 0.453,
          "percent_delta": 0.8282,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.3339,
          "after": 0.0,
          "delta": -0.3339,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_R",
          "before": 0.2824,
          "after": 0.0,
          "delta": -0.2824,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 0,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 1,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_R",
          "before": 0.2824,
          "after": 0.0,
          "delta": -0.2824,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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.1454,
        "predicted_3B": 0.0075,
        "predicted_BB": 0.2822,
        "predicted_H": 0.6788,
        "predicted_HR": 0.1133,
        "predicted_RBI": 0.3861,
        "predicted_SO": 0.9534
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1454,
          "delta": 0.1454,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.2822,
          "delta": 0.2822,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.6788,
          "delta": -0.3212,
          "percent_delta": -0.3212,
          "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": 0.0,
          "after": 0.3861,
          "delta": 0.3861,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "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.3861,
          "delta": 0.3861,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.6788,
          "delta": -0.3212,
          "percent_delta": -0.3212,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_AVG": 0.21,
        "predicted_BB": 0.0,
        "predicted_H": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.279,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.365,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1454,
          "after": 0.0,
          "delta": -0.1454,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.1931,
          "after": 0.21,
          "delta": 0.0169,
          "percent_delta": 0.0875,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.2822,
          "after": 0.0,
          "delta": -0.2822,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.6788,
          "after": 0.0,
          "delta": -0.6788,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "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_RBI",
          "before": 0.3861,
          "after": 0.0,
          "delta": -0.3861,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3282,
          "after": 0.365,
          "delta": 0.0368,
          "percent_delta": 0.1121,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 7,
        "boosted_metrics": 2,
        "deboosted_metrics": 5,
        "better_metrics": 2,
        "worse_metrics": 5,
        "biggest_boost": {
          "metric": "predicted_SLG",
          "before": 0.3282,
          "after": 0.365,
          "delta": 0.0368,
          "percent_delta": 0.1121,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 0.6788,
          "after": 0.0,
          "delta": -0.6788,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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.21,
        "predicted_BB": 0.0,
        "predicted_H": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.279,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.365,
        "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
      }
    },
    {
      "index": 10,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 3.0,
        "predicted_AVG": 0.218,
        "predicted_BB": 0.0,
        "predicted_H": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.288,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.378,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.21,
          "after": 0.218,
          "delta": 0.008,
          "percent_delta": 0.0381,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.279,
          "after": 0.288,
          "delta": 0.009,
          "percent_delta": 0.0323,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.365,
          "after": 0.378,
          "delta": 0.013,
          "percent_delta": 0.0356,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 3,
        "boosted_metrics": 3,
        "deboosted_metrics": 0,
        "better_metrics": 3,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_SLG",
          "before": 0.365,
          "after": 0.378,
          "delta": 0.013,
          "percent_delta": 0.0356,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "index": 11,
      "step": "market_blend",
      "description": "Market blend not applied: no props for this hitter",
      "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
      }
    },
    {
      "index": 12,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "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_R": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SF": 1.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 1.0,
          "delta": 1.0,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SF",
          "before": 0.0,
          "after": 1.0,
          "delta": 1.0,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "higher",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 2,
        "boosted_metrics": 2,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 0,
        "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": null
      }
    },
    {
      "index": 13,
      "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_H": 0.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SF": 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
      },
      "reference_only": true
    },
    {
      "index": 14,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 3.0,
        "predicted_AVG": 0.218,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 0.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.288,
        "predicted_R": 0.0,
        "predicted_RBI": 1.0,
        "predicted_RF": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 1.0,
        "predicted_SLG": 0.378,
        "predicted_SO": 1.0,
        "predicted_TB": 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
      }
    }
  ],
  "total_change": {
    "from_step": "xgboost_raw",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_2B",
        "before": 0.17,
        "after": 0.0,
        "delta": -0.17,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AB",
        "before": 2.938,
        "after": 3.0,
        "delta": 0.062,
        "percent_delta": 0.0211,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.366,
        "after": 0.0,
        "delta": -0.366,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.652,
        "after": 0.0,
        "delta": -0.652,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.098,
        "after": 0.0,
        "delta": -0.098,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.308,
        "after": 0.288,
        "delta": -0.02,
        "percent_delta": -0.0649,
        "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.348,
        "after": 1.0,
        "delta": 0.652,
        "percent_delta": 1.8736,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SF",
        "before": 0.0,
        "after": 1.0,
        "delta": 1.0,
        "percent_delta": null,
        "direction": "boost",
        "projection_effect": "higher",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.848,
        "after": 1.0,
        "delta": 0.152,
        "percent_delta": 0.1792,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 10,
      "boosted_metrics": 4,
      "deboosted_metrics": 6,
      "better_metrics": 2,
      "worse_metrics": 7,
      "biggest_boost": {
        "metric": "predicted_SF",
        "before": 0.0,
        "after": 1.0,
        "delta": 1.0,
        "percent_delta": null,
        "direction": "boost",
        "projection_effect": "higher",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_H",
        "before": 0.652,
        "after": 0.0,
        "delta": -0.652,
        "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.170-
predicted_3B0.000-
predicted_AB2.938-
predicted_AVG0.222-
predicted_BB0.366-
predicted_H0.652-
predicted_HR0.098-
predicted_OBP0.308-
predicted_R0.312-
predicted_RBI0.348-
predicted_SLG0.380-
predicted_SO0.848-
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.148-0.022
predicted_3B0.0000.000
predicted_AB2.833-0.105
predicted_AVG0.198-0.024
predicted_BB0.336-0.030
predicted_H0.565-0.087
predicted_HBP0.011-
predicted_HR0.080-0.018
predicted_OBP0.283-0.025
predicted_R0.298-0.014
predicted_RBI0.286-0.062
predicted_SLG0.335-0.045
predicted_SO0.8850.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.1480.000
predicted_3B0.0000.000
predicted_AB2.8330.000
predicted_AVG0.193-0.005
predicted_BB0.334-0.002
predicted_H0.547-0.018
predicted_HBP0.0110.000
predicted_HR0.078-0.002
predicted_OBP0.278-0.005
predicted_R0.282-0.016
predicted_RBI0.271-0.015
predicted_SLG0.328-0.007
predicted_SO0.8890.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.94), rates preserved: AVG=0.165 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.1450.145
3B0.0070.007
BB0.2820.282
H0.679-0.321
HR0.1130.113
RBI0.3860.386
SO0.953-0.047
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.007
AB3.0000.000
AVG0.210-
BB0.000-0.282
H0.000-0.679
HR0.000-0.113
OBP0.279-
R0.0000.000
RBI0.000-0.386
SLG0.365-
SO1.0000.047
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.148
predicted_3B0.000-0.000
predicted_AB3.0000.167
predicted_AVG0.2100.017
predicted_BB0.000-0.334
predicted_H0.000-0.547
predicted_HR0.000-0.078
predicted_OBP0.2790.001
predicted_R0.000-0.282
predicted_RBI0.000-0.271
predicted_SLG0.3650.037
predicted_SO1.0000.111
10. kpi_run_environment

KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
AVG0.2180.008
BB0.0000.000
H0.0000.000
HR0.0000.000
OBP0.2880.009
R0.0000.000
RBI0.0000.000
SLG0.3780.013
SO1.0000.000
11. market_blend

Market blend not applied: no props for this hitter

MetricValueDelta vs Prev Step
12. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB0.0000.000
H0.0000.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R0.0000.000
RBI1.0001.000
SF1.0001.000
SO1.0000.000
13. 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.0000.000
H0.0000.000
HBP0.0000.000
HR0.0000.000
PA4.0000.000
R0.0000.000
RBI1.0000.000
SF1.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: 112
Reference playing time: 3.801
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.0000.0000.0000.0000.0000.0001.0001.0006.0000.00000.09090.00000.00000.00000.00000.10000.6000
last_100.2010-22.0003.0001.0000.0000.0000.0002.0002.0007.0000.13640.20830.18180.13640.00000.00000.09090.3182
season0.60112-329.00073.00019.0000.00011.00039.00035.00041.00095.0000.22190.31100.37990.22190.03340.11850.12460.2888
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1180
predicted_3B0.0010
predicted_AB2.6920
predicted_AVG0.1669
predicted_BB0.2950
predicted_H0.4490
predicted_HBP0.0110
predicted_HR0.0570
predicted_OBP0.2508
predicted_R0.2800
predicted_RBI0.2030
predicted_SLG0.2749
predicted_SO0.9340
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.17000.11800.1477model_form_blend
predicted_3B0.00000.00100.0004model_form_blend
predicted_AB2.93802.69202.8327model_form_blend
predicted_AVG0.22200.16690.1984model_form_blend
predicted_BB0.36600.29500.3356model_form_blend
predicted_H0.65200.44900.5651model_form_blend
predicted_HBP-0.01100.0110form_only
predicted_HR0.09800.05700.0804model_form_blend
predicted_OBP0.30800.25080.2835model_form_blend
predicted_R0.31200.28000.2983model_form_blend
predicted_RBI0.34800.20300.2859model_form_blend
predicted_SLG0.38000.27490.3350model_form_blend
predicted_SO0.84800.93400.8848model_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 used112
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
RBI1
BB0
SO1
SF1
HBP0

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_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
allPositionsPlayedLF
gameID20261004_ATL@LAD
game_typefull
mlbID657041
playerID657041
playerNameLane Thomas
posLF
startedTrue
startingPositionLF
teamATL
teamID2
game_date2026-10-04
sl_k_percent24.9
sl_bb_percent11.8
sl_woba0.313
sl_xwoba0.311
sl_xba0.238
sl_xslg0.365
sl_sweet_spot_percent36.2
sl_barrel_batted_rate6.4
sl_hard_hit_percent40.9
sl_exit_velocity_avg89.3
sl_launch_angle_avg17.4
sl_whiff_percent22.9
sl_swing_percent41.3
Austin Riley (663586) · BATTER · 3B · Team ATL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 607
All-history rows before 20261006: 607
System season_avg: 0.2170
Data season_avg (2026 season-to-date): 0.2263
Diff (system - data): -0.0093
System opponent_avg: 0.2090

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1230.0000.000Hitting_2B0.1370.000-0.1370.000
predicted_3B0.0120.0000.000Hitting_3B0.0130.000-0.0130.000
predicted_AB3.5282.0002.000Hitting_AB3.6113.000-1.611-1.000
predicted_AVG0.1920.0000.000Hitting_AVG0.2260.000-0.2260.000
predicted_BB0.3132.0002.000Hitting_BB0.3180.0001.6822.000
predicted_CS-0.0000.000BaseRunning_CS0.0150.000-0.0150.000
predicted_H0.6600.0000.000Hitting_H0.8170.000-0.8170.000
predicted_HR0.1700.0000.000Hitting_HR0.1170.000-0.1170.000
predicted_OBP0.2930.5000.500Hitting_OBP0.3020.2500.1980.250
predicted_R0.4050.0000.000Hitting_R0.4300.000-0.4300.000
predicted_RBI0.4700.0000.000Hitting_RBI0.4780.000-0.4780.000
predicted_SLG0.3570.0000.000Hitting_SLG0.3690.000-0.3690.000
predicted_SO1.2331.0001.000Hitting_SO1.2621.000-0.2620.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics12
Boosted Metrics3
Deboosted Metrics9
Better Metrics4
Worse Metrics8
Biggest Boostpredicted_BB: 0.3130 -> 2.0000 (boost 1.6870, better)
Biggest Deboostpredicted_AB: 3.5280 -> 2.0000 (deboost -1.5280, 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_snapshot20202-predicted_OBP: 0.2967 -> 0.2568 (deboost -0.0399, 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_scaling81726predicted_H: 0.6334 -> 1.0000 (boost 0.3666, better)predicted_AB: 3.4869 -> 3.0000 (deboost -0.4869, worse)AB rounded to 3 (raw=3.53), rates preserved: AVG=0.159 HR/AB=0.047
6bvp_blend00000--Sample-size BvP blend (BvP AB=5.0, weight=0.057, BvP AVG=0.200)
7consistency_constraints10101-predicted_R: 0.3846 -> 0.0000 (deboost -0.3846, worse)Enforced H<=AB, HR<=H, safety nets, derived R
8hitter_rate_engine65142predicted_RBI: 0.0000 -> 0.4127 (boost 0.4127, better)predicted_H: 1.0000 -> 0.6860 (deboost -0.3140, 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_allocation83544predicted_H: 0.6860 -> 1.0000 (boost 0.3140, better)predicted_RBI: 0.4127 -> 0.0000 (deboost -0.4127, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
10embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
11kpi_run_environment33030predicted_SLG: 0.3610 -> 0.3740 (boost 0.0130, better)-KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup
12market_blend00000--Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated
13play_by_play_realization31212predicted_BB: 0.0000 -> 2.0000 (boost 2.0000, better)predicted_AB: 3.0000 -> 2.0000 (deboost -1.0000, worse)Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
14simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
15current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "663586",
  "player_name": "Austin Riley",
  "position": "3B",
  "team": "ATL",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.123,
        "predicted_3B": 0.012,
        "predicted_AB": 3.528,
        "predicted_AVG": 0.192,
        "predicted_BB": 0.313,
        "predicted_H": 0.66,
        "predicted_HR": 0.17,
        "predicted_OBP": 0.293,
        "predicted_R": 0.405,
        "predicted_RBI": 0.47,
        "predicted_SLG": 0.357,
        "predicted_SO": 1.233
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "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.1025,
        "predicted_3B": 0.0098,
        "predicted_AB": 3.4869,
        "predicted_AVG": 0.1905,
        "predicted_BB": 0.3545,
        "predicted_H": 0.6543,
        "predicted_HBP": 0.168,
        "predicted_HR": 0.1717,
        "predicted_OBP": 0.2967,
        "predicted_R": 0.4063,
        "predicted_RBI": 0.491,
        "predicted_SLG": 0.3615,
        "predicted_SO": 1.1858
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      },
      "weights": {
        "xgboost_raw": 0.55,
        "weighted_form": 0.45,
        "form_windows": {
          "last_5": 0.2,
          "last_10": 0.2,
          "season": 0.6
        }
      },
      "window_games": {
        "last_5": 5,
        "last_10": 10,
        "season": 163
      }
    },
    {
      "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.1025,
        "predicted_3B": 0.0098,
        "predicted_AB": 3.4869,
        "predicted_AVG": 0.1816,
        "predicted_BB": 0.3527,
        "predicted_H": 0.6334,
        "predicted_HBP": 0.168,
        "predicted_HR": 0.1667,
        "predicted_OBP": 0.2568,
        "predicted_R": 0.3846,
        "predicted_RBI": 0.4648,
        "predicted_SLG": 0.3601,
        "predicted_SO": 1.192
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.1905,
          "after": 0.1816,
          "delta": -0.0089,
          "percent_delta": -0.0467,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2967,
          "after": 0.2568,
          "delta": -0.0399,
          "percent_delta": -0.1345,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.2967,
          "after": 0.2568,
          "delta": -0.0399,
          "percent_delta": -0.1345,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 3 (raw=3.53), rates preserved: AVG=0.159 HR/AB=0.047",
      "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.1025,
          "after": 0.0,
          "delta": -0.1025,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AB",
          "before": 3.4869,
          "after": 3.0,
          "delta": -0.4869,
          "percent_delta": -0.1396,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3527,
          "after": 0.0,
          "delta": -0.3527,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.6334,
          "after": 1.0,
          "delta": 0.3666,
          "percent_delta": 0.5788,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HBP",
          "before": 0.168,
          "after": 0.0,
          "delta": -0.168,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1667,
          "after": 0.0,
          "delta": -0.1667,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4648,
          "after": 0.0,
          "delta": -0.4648,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.192,
          "after": 1.0,
          "delta": -0.192,
          "percent_delta": -0.1611,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 8,
        "boosted_metrics": 1,
        "deboosted_metrics": 7,
        "better_metrics": 2,
        "worse_metrics": 6,
        "biggest_boost": {
          "metric": "predicted_H",
          "before": 0.6334,
          "after": 1.0,
          "delta": 0.3666,
          "percent_delta": 0.5788,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 3.4869,
          "after": 3.0,
          "delta": -0.4869,
          "percent_delta": -0.1396,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 6,
      "step": "bvp_blend",
      "description": "Sample-size BvP blend (BvP AB=5.0, weight=0.057, BvP AVG=0.200)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 3.0,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [],
      "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
      }
    },
    {
      "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_R",
          "before": 0.3846,
          "after": 0.0,
          "delta": -0.3846,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 0,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 1,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_R",
          "before": 0.3846,
          "after": 0.0,
          "delta": -0.3846,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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.1459,
        "predicted_3B": 0.0099,
        "predicted_BB": 0.2247,
        "predicted_H": 0.686,
        "predicted_HR": 0.1167,
        "predicted_RBI": 0.4127,
        "predicted_SO": 1.2091
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1459,
          "delta": 0.1459,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.2247,
          "delta": 0.2247,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.686,
          "delta": -0.314,
          "percent_delta": -0.314,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1167,
          "delta": 0.1167,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.4127,
          "delta": 0.4127,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 1.2091,
          "delta": 0.2091,
          "percent_delta": 0.2091,
          "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.4127,
          "delta": 0.4127,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.686,
          "delta": -0.314,
          "percent_delta": -0.314,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_AVG": 0.206,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.262,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.361,
        "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_AVG",
          "before": 0.1816,
          "after": 0.206,
          "delta": 0.0244,
          "percent_delta": 0.1344,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.2247,
          "after": 0.0,
          "delta": -0.2247,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.686,
          "after": 1.0,
          "delta": 0.314,
          "percent_delta": 0.4577,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1167,
          "after": 0.0,
          "delta": -0.1167,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2568,
          "after": 0.262,
          "delta": 0.0052,
          "percent_delta": 0.0202,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4127,
          "after": 0.0,
          "delta": -0.4127,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.2091,
          "after": 1.0,
          "delta": -0.2091,
          "percent_delta": -0.1729,
          "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_H",
          "before": 0.686,
          "after": 1.0,
          "delta": 0.314,
          "percent_delta": 0.4577,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.4127,
          "after": 0.0,
          "delta": -0.4127,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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.206,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.262,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.361,
        "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
      }
    },
    {
      "index": 11,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 3.0,
        "predicted_AVG": 0.214,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.271,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.374,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.206,
          "after": 0.214,
          "delta": 0.008,
          "percent_delta": 0.0388,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.262,
          "after": 0.271,
          "delta": 0.009,
          "percent_delta": 0.0344,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.361,
          "after": 0.374,
          "delta": 0.013,
          "percent_delta": 0.036,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 3,
        "boosted_metrics": 3,
        "deboosted_metrics": 0,
        "better_metrics": 3,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_SLG",
          "before": 0.361,
          "after": 0.374,
          "delta": 0.013,
          "percent_delta": 0.036,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "index": 12,
      "step": "market_blend",
      "description": "Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated",
      "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
      }
    },
    {
      "index": 13,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 2.0,
        "predicted_BB": 2.0,
        "predicted_H": 0.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "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": 2.0,
          "delta": 2.0,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 3,
        "boosted_metrics": 1,
        "deboosted_metrics": 2,
        "better_metrics": 1,
        "worse_metrics": 2,
        "biggest_boost": {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 2.0,
          "delta": 2.0,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 3.0,
          "after": 2.0,
          "delta": -1.0,
          "percent_delta": -0.3333,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 14,
      "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": 2.0,
        "predicted_H": 0.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.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
      },
      "reference_only": true
    },
    {
      "index": 15,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 2.0,
        "predicted_AVG": 0.21,
        "predicted_BB": 2.0,
        "predicted_CS": 0.0,
        "predicted_H": 0.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.274,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.375,
        "predicted_SO": 1.0,
        "predicted_TB": 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
      }
    }
  ],
  "total_change": {
    "from_step": "xgboost_raw",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_2B",
        "before": 0.123,
        "after": 0.0,
        "delta": -0.123,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AB",
        "before": 3.528,
        "after": 2.0,
        "delta": -1.528,
        "percent_delta": -0.4331,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.192,
        "after": 0.21,
        "delta": 0.018,
        "percent_delta": 0.0937,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.313,
        "after": 2.0,
        "delta": 1.687,
        "percent_delta": 5.3898,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.66,
        "after": 0.0,
        "delta": -0.66,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HBP",
        "before": 0.168,
        "after": 0.0,
        "delta": -0.168,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.17,
        "after": 0.0,
        "delta": -0.17,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.293,
        "after": 0.274,
        "delta": -0.019,
        "percent_delta": -0.0648,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.405,
        "after": 0.0,
        "delta": -0.405,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.47,
        "after": 0.0,
        "delta": -0.47,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.357,
        "after": 0.375,
        "delta": 0.018,
        "percent_delta": 0.0504,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 1.233,
        "after": 1.0,
        "delta": -0.233,
        "percent_delta": -0.189,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 12,
      "boosted_metrics": 3,
      "deboosted_metrics": 9,
      "better_metrics": 4,
      "worse_metrics": 8,
      "biggest_boost": {
        "metric": "predicted_BB",
        "before": 0.313,
        "after": 2.0,
        "delta": 1.687,
        "percent_delta": 5.3898,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_AB",
        "before": 3.528,
        "after": 2.0,
        "delta": -1.528,
        "percent_delta": -0.4331,
        "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.123-
predicted_3B0.012-
predicted_AB3.528-
predicted_AVG0.192-
predicted_BB0.313-
predicted_H0.660-
predicted_HR0.170-
predicted_OBP0.293-
predicted_R0.405-
predicted_RBI0.470-
predicted_SLG0.357-
predicted_SO1.233-
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.021
predicted_3B0.010-0.002
predicted_AB3.487-0.041
predicted_AVG0.191-0.002
predicted_BB0.3540.041
predicted_H0.654-0.006
predicted_HBP0.168-
predicted_HR0.1720.002
predicted_OBP0.2970.004
predicted_R0.4060.001
predicted_RBI0.4910.021
predicted_SLG0.3610.005
predicted_SO1.186-0.047
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.0100.000
predicted_AB3.4870.000
predicted_AVG0.182-0.009
predicted_BB0.353-0.002
predicted_H0.633-0.021
predicted_HBP0.1680.000
predicted_HR0.167-0.005
predicted_OBP0.257-0.040
predicted_R0.385-0.022
predicted_RBI0.465-0.026
predicted_SLG0.360-0.001
predicted_SO1.1920.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 3 (raw=3.53), rates preserved: AVG=0.159 HR/AB=0.047

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.200)

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.1460.146
3B0.0100.010
BB0.2250.225
H0.686-0.314
HR0.1170.117
RBI0.4130.413
SO1.2090.209
9. 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.010
AB3.0000.000
AVG0.206-
BB0.000-0.225
H1.0000.314
HR0.000-0.117
OBP0.262-
R0.0000.000
RBI0.000-0.413
SLG0.361-
SO1.000-0.209
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.102
predicted_3B0.000-0.010
predicted_AB3.000-0.487
predicted_AVG0.2060.024
predicted_BB0.000-0.353
predicted_H1.0000.367
predicted_HR0.000-0.167
predicted_OBP0.2620.005
predicted_R0.000-0.385
predicted_RBI0.000-0.465
predicted_SLG0.3610.001
predicted_SO1.000-0.192
11. kpi_run_environment

KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
AVG0.2140.008
BB0.0000.000
H1.0000.000
HR0.0000.000
OBP0.2710.009
R0.0000.000
RBI0.0000.000
SLG0.3740.013
SO1.0000.000
12. market_blend

Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated

MetricValueDelta vs Prev Step
13. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB2.000-1.000
BB2.0002.000
H0.000-1.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R0.0000.000
RBI0.0000.000
SF0.0000.000
SO1.0000.000
14. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB2.0000.000
BB2.0000.000
H0.0000.000
HBP0.0000.000
HR0.0000.000
PA4.0000.000
R0.0000.000
RBI0.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: 163
Reference playing time: 3.801
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.0001.0003.0002.0003.0004.0000.12500.33330.31250.12500.06250.18750.18750.2500
last_100.2010-33.0005.0000.0000.0003.0006.0004.0005.00012.0000.15150.29270.42420.15150.09090.18180.15150.3636
season0.60163-575.000125.00020.0002.00020.00075.00066.00051.000201.0000.21740.29350.36350.21740.03480.13040.08870.3496
Weighted Prediction From Real Data
MetricValue
predicted_2B0.0760
predicted_3B0.0070
predicted_AB3.4340
predicted_AVG0.1885
predicted_BB0.4080
predicted_H0.6470
predicted_HBP0.1680
predicted_HR0.1740
predicted_OBP0.3015
predicted_R0.4080
predicted_RBI0.5180
predicted_SLG0.3673
predicted_SO1.1250
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.12300.07600.1025model_form_blend
predicted_3B0.01200.00700.0098model_form_blend
predicted_AB3.52803.43403.4869model_form_blend
predicted_AVG0.19200.18850.1905model_form_blend
predicted_BB0.31300.40800.3545model_form_blend
predicted_H0.66000.64700.6543model_form_blend
predicted_HBP-0.16800.1680form_only
predicted_HR0.17000.17400.1717model_form_blend
predicted_OBP0.29300.30150.2967model_form_blend
predicted_R0.40500.40800.4063model_form_blend
predicted_RBI0.47000.51800.4910model_form_blend
predicted_SLG0.35700.36730.3615model_form_blend
predicted_SO1.23301.12501.1858model_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 date607
Season rows before report date607
Report year2026
Profile rows used163
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
AB2
H0
2B0
3B0
HR0
R0
RBI0
BB2
SO1
SF0
HBP0

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_SO1
Hitting_TB0
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
allPositionsPlayed3B
gameID20261004_ATL@LAD
game_typefull
mlbID663586
playerID663586
playerNameAustin Riley
pos3B
startedTrue
startingPosition3B
teamATL
teamID2
game_date2026-10-04
sl_k_percent31.9
sl_bb_percent7.6
sl_woba0.29
sl_xwoba0.299
sl_xba0.213
sl_xslg0.396
sl_sweet_spot_percent34.3
sl_barrel_batted_rate12.4
sl_hard_hit_percent44.3
sl_exit_velocity_avg91.3
sl_launch_angle_avg18.5
sl_whiff_percent31.9
sl_swing_percent48.8
Ha-Seong Kim (673490) · BATTER · SS · Team ATL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 144
All-history rows before 20261006: 144
System season_avg: 0.1130
Data season_avg (2026 season-to-date): 0.1141
Diff (system - data): -0.0011
System opponent_avg: 0.3340

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.0210.0000.000Hitting_2B0.0280.000-0.0280.000
predicted_3B0.0210.0000.000Hitting_3B0.0070.000-0.0070.000
predicted_AB2.7713.0003.000Hitting_AB2.7991.0000.2012.000
predicted_AVG0.1270.3330.333Hitting_AVG0.1140.0000.2190.333
predicted_BB0.3750.0000.000Hitting_BB0.3541.000-0.354-1.000
predicted_CS-0.0000.000BaseRunning_CS0.0000.0000.0000.000
predicted_H0.1601.0001.000Hitting_H0.3190.0000.6811.000
predicted_HR0.0100.0000.000Hitting_HR0.0000.0000.0000.000
predicted_OBP0.2640.5000.500Hitting_OBP0.2210.5000.2790.000
predicted_R0.2291.0001.000Hitting_R0.2220.0000.7781.000
predicted_RBI0.1200.0000.000Hitting_RBI0.1740.000-0.1740.000
predicted_SLG0.1770.3330.333Hitting_SLG0.1290.0000.2040.333
predicted_SO0.8541.0001.000Hitting_SO0.8061.0000.1940.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_HBP: 0.0140 -> 1.0000 (boost 0.9860, better)
Biggest Deboostpredicted_BB: 0.3750 -> 0.0000 (deboost -0.3750, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend44040predicted_R: 0.2290 -> 0.3174 (boost 0.0884, 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.2658 -> 0.2097 (deboost -0.0561, 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_scaling52314predicted_AB: 2.7493 -> 3.0000 (boost 0.2507, better)predicted_BB: 0.4478 -> 0.0000 (deboost -0.4478, worse)AB rounded to 3 (raw=2.77), rates preserved: AVG=0.071 HR/AB=0.004
6bvp_blend00000--Sample-size BvP blend (BvP AB=7.0, weight=0.076, BvP AVG=0.429)
7consistency_constraints10101-predicted_R: 0.3005 -> 0.0000 (deboost -0.3005, worse)Enforced H<=AB, HR<=H, safety nets, derived R
8hitter_rate_engine65160predicted_H: 0.0000 -> 0.5801 (boost 0.5801, better)predicted_SO: 1.0000 -> 0.8657 (deboost -0.1343, 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_allocation94536predicted_SLG: 0.1360 -> 0.3240 (boost 0.1880, better)predicted_H: 0.5801 -> 0.0000 (deboost -0.5801, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
10embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
11kpi_run_environment33030predicted_SLG: 0.3240 -> 0.3360 (boost 0.0120, better)-KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup
12market_blend00000--Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated
13play_by_play_realization33030predicted_H: 0.0000 -> 1.0000 (boost 1.0000, better)-Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
14simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
15current_json_final30303-predicted_AVG: 0.2120 -> 0.2000 (deboost -0.0120, worse)Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "673490",
  "player_name": "Ha-Seong Kim",
  "position": "SS",
  "team": "ATL",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.021,
        "predicted_3B": 0.021,
        "predicted_AB": 2.771,
        "predicted_AVG": 0.127,
        "predicted_BB": 0.375,
        "predicted_H": 0.16,
        "predicted_HR": 0.01,
        "predicted_OBP": 0.264,
        "predicted_R": 0.229,
        "predicted_RBI": 0.12,
        "predicted_SLG": 0.177,
        "predicted_SO": 0.854
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "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.025,
        "predicted_3B": 0.0451,
        "predicted_AB": 2.7493,
        "predicted_AVG": 0.1254,
        "predicted_BB": 0.4501,
        "predicted_H": 0.2299,
        "predicted_HBP": 0.014,
        "predicted_HR": 0.0124,
        "predicted_OBP": 0.2658,
        "predicted_R": 0.3174,
        "predicted_RBI": 0.1317,
        "predicted_SLG": 0.1909,
        "predicted_SO": 0.897
      },
      "changed_metrics": [
        {
          "metric": "predicted_BB",
          "before": 0.375,
          "after": 0.4501,
          "delta": 0.0751,
          "percent_delta": 0.2003,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.16,
          "after": 0.2299,
          "delta": 0.0699,
          "percent_delta": 0.4369,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.229,
          "after": 0.3174,
          "delta": 0.0884,
          "percent_delta": 0.386,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.177,
          "after": 0.1909,
          "delta": 0.0139,
          "percent_delta": 0.0785,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 4,
        "boosted_metrics": 4,
        "deboosted_metrics": 0,
        "better_metrics": 4,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_R",
          "before": 0.229,
          "after": 0.3174,
          "delta": 0.0884,
          "percent_delta": 0.386,
          "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": 48
      }
    },
    {
      "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.025,
        "predicted_3B": 0.0451,
        "predicted_AB": 2.7493,
        "predicted_AVG": 0.0809,
        "predicted_BB": 0.4478,
        "predicted_H": 0.2225,
        "predicted_HBP": 0.014,
        "predicted_HR": 0.012,
        "predicted_OBP": 0.2097,
        "predicted_R": 0.3005,
        "predicted_RBI": 0.1247,
        "predicted_SLG": 0.136,
        "predicted_SO": 0.9017
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.1254,
          "after": 0.0809,
          "delta": -0.0445,
          "percent_delta": -0.3549,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2658,
          "after": 0.2097,
          "delta": -0.0561,
          "percent_delta": -0.2111,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.1909,
          "after": 0.136,
          "delta": -0.0549,
          "percent_delta": -0.2876,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.2658,
          "after": 0.2097,
          "delta": -0.0561,
          "percent_delta": -0.2111,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 3 (raw=2.77), rates preserved: AVG=0.071 HR/AB=0.004",
      "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_AB",
          "before": 2.7493,
          "after": 3.0,
          "delta": 0.2507,
          "percent_delta": 0.0912,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.4478,
          "after": 0.0,
          "delta": -0.4478,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.2225,
          "after": 0.0,
          "delta": -0.2225,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.1247,
          "after": 0.0,
          "delta": -0.1247,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.9017,
          "after": 1.0,
          "delta": 0.0983,
          "percent_delta": 0.109,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 5,
        "boosted_metrics": 2,
        "deboosted_metrics": 3,
        "better_metrics": 1,
        "worse_metrics": 4,
        "biggest_boost": {
          "metric": "predicted_AB",
          "before": 2.7493,
          "after": 3.0,
          "delta": 0.2507,
          "percent_delta": 0.0912,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.4478,
          "after": 0.0,
          "delta": -0.4478,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 6,
      "step": "bvp_blend",
      "description": "Sample-size BvP blend (BvP AB=7.0, weight=0.076, BvP AVG=0.429)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 3.0,
        "predicted_BB": 0.0,
        "predicted_H": 0.0,
        "predicted_HR": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      },
      "weights": {
        "model_expectation": 0.9243,
        "bvp": 0.0757
      }
    },
    {
      "index": 7,
      "step": "consistency_constraints",
      "description": "Enforced H<=AB, HR<=H, safety nets, derived R",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 3.0,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 0.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_R",
          "before": 0.3005,
          "after": 0.0,
          "delta": -0.3005,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 0,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 1,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_R",
          "before": 0.3005,
          "after": 0.0,
          "delta": -0.3005,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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.1021,
        "predicted_3B": 0.0099,
        "predicted_BB": 0.2484,
        "predicted_H": 0.5801,
        "predicted_HR": 0.0732,
        "predicted_RBI": 0.314,
        "predicted_SO": 0.8657
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1021,
          "delta": 0.1021,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.2484,
          "delta": 0.2484,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.0,
          "after": 0.5801,
          "delta": 0.5801,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.0732,
          "delta": 0.0732,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.314,
          "delta": 0.314,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.8657,
          "delta": -0.1343,
          "percent_delta": -0.1343,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 6,
        "boosted_metrics": 5,
        "deboosted_metrics": 1,
        "better_metrics": 6,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_H",
          "before": 0.0,
          "after": 0.5801,
          "delta": 0.5801,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.8657,
          "delta": -0.1343,
          "percent_delta": -0.1343,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      }
    },
    {
      "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_AVG": 0.204,
        "predicted_BB": 0.0,
        "predicted_H": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.274,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.324,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1021,
          "after": 0.0,
          "delta": -0.1021,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.0809,
          "after": 0.204,
          "delta": 0.1231,
          "percent_delta": 1.5216,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.2484,
          "after": 0.0,
          "delta": -0.2484,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.5801,
          "after": 0.0,
          "delta": -0.5801,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0732,
          "after": 0.0,
          "delta": -0.0732,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2097,
          "after": 0.274,
          "delta": 0.0643,
          "percent_delta": 0.3066,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.314,
          "after": 0.0,
          "delta": -0.314,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.136,
          "after": 0.324,
          "delta": 0.188,
          "percent_delta": 1.3824,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.8657,
          "after": 1.0,
          "delta": 0.1343,
          "percent_delta": 0.1551,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 9,
        "boosted_metrics": 4,
        "deboosted_metrics": 5,
        "better_metrics": 3,
        "worse_metrics": 6,
        "biggest_boost": {
          "metric": "predicted_SLG",
          "before": 0.136,
          "after": 0.324,
          "delta": 0.188,
          "percent_delta": 1.3824,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 0.5801,
          "after": 0.0,
          "delta": -0.5801,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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.204,
        "predicted_BB": 0.0,
        "predicted_H": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.274,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.324,
        "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
      }
    },
    {
      "index": 11,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 3.0,
        "predicted_AVG": 0.212,
        "predicted_BB": 0.0,
        "predicted_H": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.283,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.336,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.204,
          "after": 0.212,
          "delta": 0.008,
          "percent_delta": 0.0392,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.274,
          "after": 0.283,
          "delta": 0.009,
          "percent_delta": 0.0328,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.324,
          "after": 0.336,
          "delta": 0.012,
          "percent_delta": 0.037,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 3,
        "boosted_metrics": 3,
        "deboosted_metrics": 0,
        "better_metrics": 3,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_SLG",
          "before": 0.324,
          "after": 0.336,
          "delta": 0.012,
          "percent_delta": 0.037,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "index": 12,
      "step": "market_blend",
      "description": "Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated",
      "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
      }
    },
    {
      "index": 13,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 3.0,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 1.0,
        "predicted_HR": 0.0,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "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": 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
        }
      ],
      "summary": {
        "changed_metrics": 3,
        "boosted_metrics": 3,
        "deboosted_metrics": 0,
        "better_metrics": 3,
        "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
      }
    },
    {
      "index": 14,
      "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_H": 1.0,
        "predicted_HBP": 1.0,
        "predicted_HR": 0.0,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.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
      },
      "reference_only": true
    },
    {
      "index": 15,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 3.0,
        "predicted_AVG": 0.2,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.272,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.326,
        "predicted_SO": 1.0,
        "predicted_SS": 0.0,
        "predicted_TB": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.212,
          "after": 0.2,
          "delta": -0.012,
          "percent_delta": -0.0566,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.283,
          "after": 0.272,
          "delta": -0.011,
          "percent_delta": -0.0389,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.336,
          "after": 0.326,
          "delta": -0.01,
          "percent_delta": -0.0298,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 3,
        "boosted_metrics": 0,
        "deboosted_metrics": 3,
        "better_metrics": 0,
        "worse_metrics": 3,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_AVG",
          "before": 0.212,
          "after": 0.2,
          "delta": -0.012,
          "percent_delta": -0.0566,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    }
  ],
  "total_change": {
    "from_step": "xgboost_raw",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_AB",
        "before": 2.771,
        "after": 3.0,
        "delta": 0.229,
        "percent_delta": 0.0826,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.127,
        "after": 0.2,
        "delta": 0.073,
        "percent_delta": 0.5748,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.375,
        "after": 0.0,
        "delta": -0.375,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.16,
        "after": 1.0,
        "delta": 0.84,
        "percent_delta": 5.25,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_HBP",
        "before": 0.014,
        "after": 1.0,
        "delta": 0.986,
        "percent_delta": 70.4286,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.264,
        "after": 0.272,
        "delta": 0.008,
        "percent_delta": 0.0303,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.229,
        "after": 1.0,
        "delta": 0.771,
        "percent_delta": 3.3668,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.12,
        "after": 0.0,
        "delta": -0.12,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.177,
        "after": 0.326,
        "delta": 0.149,
        "percent_delta": 0.8418,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.854,
        "after": 1.0,
        "delta": 0.146,
        "percent_delta": 0.171,
        "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_HBP",
        "before": 0.014,
        "after": 1.0,
        "delta": 0.986,
        "percent_delta": 70.4286,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_BB",
        "before": 0.375,
        "after": 0.0,
        "delta": -0.375,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "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.021-
predicted_3B0.021-
predicted_AB2.771-
predicted_AVG0.127-
predicted_BB0.375-
predicted_H0.160-
predicted_HR0.010-
predicted_OBP0.264-
predicted_R0.229-
predicted_RBI0.120-
predicted_SLG0.177-
predicted_SO0.854-
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.0250.004
predicted_3B0.0450.024
predicted_AB2.749-0.022
predicted_AVG0.125-0.002
predicted_BB0.4500.075
predicted_H0.2300.070
predicted_HBP0.014-
predicted_HR0.0120.002
predicted_OBP0.2660.002
predicted_R0.3170.088
predicted_RBI0.1320.012
predicted_SLG0.1910.014
predicted_SO0.8970.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.0250.000
predicted_3B0.0450.000
predicted_AB2.7490.000
predicted_AVG0.081-0.045
predicted_BB0.448-0.002
predicted_H0.223-0.007
predicted_HBP0.0140.000
predicted_HR0.012-0.000
predicted_OBP0.210-0.056
predicted_R0.300-0.017
predicted_RBI0.125-0.007
predicted_SLG0.136-0.055
predicted_SO0.9020.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.77), rates preserved: AVG=0.071 HR/AB=0.004

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. bvp_blend

Sample-size BvP blend (BvP AB=7.0, weight=0.076, BvP AVG=0.429)

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB0.0000.000
H0.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-
H0.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.1020.102
3B0.0100.010
BB0.2480.248
H0.5800.580
HR0.0730.073
RBI0.3140.314
SO0.866-0.134
9. lineup_integer_allocation

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

MetricValueDelta vs Prev Step
2B0.000-0.102
3B0.000-0.010
AB3.0000.000
AVG0.204-
BB0.000-0.248
H0.000-0.580
HR0.000-0.073
OBP0.274-
R0.0000.000
RBI0.000-0.314
SLG0.324-
SO1.0000.134
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.025
predicted_3B0.000-0.045
predicted_AB3.0000.251
predicted_AVG0.2040.123
predicted_BB0.000-0.448
predicted_H0.000-0.223
predicted_HR0.000-0.012
predicted_OBP0.2740.064
predicted_R0.000-0.300
predicted_RBI0.000-0.125
predicted_SLG0.3240.188
predicted_SO1.0000.098
11. kpi_run_environment

KPI club run ratio x1.074 applied to runs and RBI, x1.036 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
AVG0.2120.008
BB0.0000.000
H0.0000.000
HR0.0000.000
OBP0.2830.009
R0.0000.000
RBI0.0000.000
SLG0.3360.012
SO1.0000.000
12. market_blend

Continuous line blended with the props market: model x (market/model) ** w per stat, w fitted on settled props; lineup integers re-allocated

MetricValueDelta vs Prev Step
13. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB0.0000.000
H1.0001.000
HBP1.0001.000
HR0.0000.000
PA4.000-
R1.0001.000
RBI0.0000.000
SF0.0000.000
SO1.0000.000
14. 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.0000.000
H1.0000.000
HBP1.0000.000
HR0.0000.000
PA4.0000.000
R1.0000.000
RBI0.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: 48
Reference playing time: 3.801
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.0001.0000.0001.0000.0000.0004.0005.0005.0000.11110.42860.33330.11110.00000.00000.55560.5556
last_100.2010-24.0001.0000.0001.0000.0000.0004.0005.00010.0000.04170.20690.12500.04170.00000.00000.20830.4167
season0.6048-133.00015.0001.0001.0000.0009.00011.00018.00041.0000.11280.22370.13530.11280.00000.06770.13530.3083
Weighted Prediction From Real Data
MetricValue
predicted_2B0.0310
predicted_3B0.0810
predicted_AB2.7170
predicted_AVG0.1229
predicted_BB0.5620
predicted_H0.3340
predicted_HBP0.0140
predicted_HR0.0160
predicted_OBP0.2686
predicted_R0.4490
predicted_RBI0.1490
predicted_SLG0.2115
predicted_SO0.9610
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.02100.03100.0250model_form_blend
predicted_3B0.02100.08100.0451model_form_blend
predicted_AB2.77102.71702.7493model_form_blend
predicted_AVG0.12700.12290.1254model_form_blend
predicted_BB0.37500.56200.4501model_form_blend
predicted_H0.16000.33400.2299model_form_blend
predicted_HBP-0.01400.0140form_only
predicted_HR0.01000.01600.0124model_form_blend
predicted_OBP0.26400.26860.2658model_form_blend
predicted_R0.22900.44900.3174model_form_blend
predicted_RBI0.12000.14900.1317model_form_blend
predicted_SLG0.17700.21150.1909model_form_blend
predicted_SO0.85400.96100.8970model_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 date144
Season rows before report date144
Report year2026
Profile rows used48
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
BB0
SO1
SF0
HBP1

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_BB1
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO1
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
gameID20261003_ATL@LAD
game_typefull
mlbID673490
playerID673490
playerNameHa-Seong Kim
posSS
startedTrue
startingPositionSS
teamATL
teamID2
game_date2026-10-03
sl_k_percent25.9
sl_bb_percent10.9
sl_woba0.18
sl_xwoba0.222
sl_xba0.157
sl_xslg0.206
sl_sweet_spot_percent21.7
sl_barrel_batted_rate2.2
sl_hard_hit_percent25.0
sl_exit_velocity_avg85.9
sl_launch_angle_avg19.9
sl_whiff_percent20.2
sl_swing_percent42.7
Chris Sale (519242) · PITCHER · Starter · Team ATL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 29
All-history rows before 20261006: 29

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB1.0001.0001.000Pitching_BB1.1030.000-0.1031.000
predicted_ER2.0002.0002.000Pitching_ER1.4480.0000.5522.000
predicted_H6.0006.0006.000Pitching_H4.6211.0001.3795.000
predicted_IP6.0006.0006.000Pitching_InningsPitched5.7931.1000.2074.900
predicted_SO5.0005.0005.000Pitching_SO7.3103.000-2.3102.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_rate_projection
Tocurrent_json_final
Dominant Effectworse
Changed Metrics4
Boosted Metrics1
Deboosted Metrics3
Better Metrics1
Worse Metrics3
Biggest Boostpredicted_H: 4.0000 -> 6.0000 (boost 2.0000, worse)
Biggest Deboostpredicted_ER: 3.0000 -> 2.0000 (deboost -1.0000, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_rate_projection00000--Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty
2pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
3team_form_adjustment00000--Club form: innings, run prevention and strikeout factors
4savant_pitcher_quality00000--Statcast pitch quality: strikeout, walk, home-run and run-prevention factors
5opposing_lineup_context00000--The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances
6kpi_run_environment00000--KPI blend published; the staff line follows the published score, not a KPI rescale
7pitcher_quality_guardrail31221predicted_SO: 6.0000 -> 7.0000 (boost 1.0000, better)predicted_ER: 3.0000 -> 2.0000 (deboost -1.0000, better)Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.
8market_blend00000--Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score
9play_by_play_realization21102predicted_H: 4.0000 -> 6.0000 (boost 2.0000, worse)predicted_SO: 7.0000 -> 5.0000 (deboost -2.0000, worse)Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play
10current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "pitcher",
  "player_id": "519242",
  "player_name": "Chris Sale",
  "position": "Starter",
  "team": "ATL",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_rate_projection",
      "description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
      "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
      }
    },
    {
      "index": 2,
      "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": 6.3333,
        "predicted_SO": 6.0
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "index": 3,
      "step": "team_form_adjustment",
      "description": "Club form: innings, run prevention and strikeout factors",
      "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
      }
    },
    {
      "index": 4,
      "step": "savant_pitcher_quality",
      "description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
      "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
      }
    },
    {
      "index": 5,
      "step": "opposing_lineup_context",
      "description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
      "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": {
        "H": 0.0,
        "BB": 0.15,
        "SO": 0.35,
        "HR": 0.0
      }
    },
    {
      "index": 6,
      "step": "kpi_run_environment",
      "description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
      "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
      }
    },
    {
      "index": 7,
      "step": "pitcher_quality_guardrail",
      "description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
      "stats": {
        "predicted_BB": 1.0,
        "predicted_ER": 2.0,
        "predicted_H": 4.0,
        "predicted_HR": 1.0,
        "predicted_IP": 6.1,
        "predicted_SO": 7.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_ER",
          "before": 3.0,
          "after": 2.0,
          "delta": -1.0,
          "percent_delta": -0.3333,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_IP",
          "before": 6.3333,
          "after": 6.1,
          "delta": -0.2333,
          "percent_delta": -0.0368,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 6.0,
          "after": 7.0,
          "delta": 1.0,
          "percent_delta": 0.1667,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 3,
        "boosted_metrics": 1,
        "deboosted_metrics": 2,
        "better_metrics": 2,
        "worse_metrics": 1,
        "biggest_boost": {
          "metric": "predicted_SO",
          "before": 6.0,
          "after": 7.0,
          "delta": 1.0,
          "percent_delta": 0.1667,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_ER",
          "before": 3.0,
          "after": 2.0,
          "delta": -1.0,
          "percent_delta": -0.3333,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      }
    },
    {
      "index": 8,
      "step": "market_blend",
      "description": "Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score",
      "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
      }
    },
    {
      "index": 9,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
      "stats": {
        "predicted_BB": 1.0,
        "predicted_ER": 2.0,
        "predicted_H": 6.0,
        "predicted_HR": 1.0,
        "predicted_IP": 6.0,
        "predicted_R": 3.0,
        "predicted_SO": 5.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_H",
          "before": 4.0,
          "after": 6.0,
          "delta": 2.0,
          "percent_delta": 0.5,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 7.0,
          "after": 5.0,
          "delta": -2.0,
          "percent_delta": -0.2857,
          "direction": "deboost",
          "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_H",
          "before": 4.0,
          "after": 6.0,
          "delta": 2.0,
          "percent_delta": 0.5,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 7.0,
          "after": 5.0,
          "delta": -2.0,
          "percent_delta": -0.2857,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 10,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_BB": 1.0,
        "predicted_ER": 2.0,
        "predicted_H": 6.0,
        "predicted_HR": 1.0,
        "predicted_IP": 6.0,
        "predicted_SO": 5.0
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    }
  ],
  "total_change": {
    "from_step": "pitcher_rate_projection",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_ER",
        "before": 3.0,
        "after": 2.0,
        "delta": -1.0,
        "percent_delta": -0.3333,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 4.0,
        "after": 6.0,
        "delta": 2.0,
        "percent_delta": 0.5,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_IP",
        "before": 6.3333,
        "after": 6.0,
        "delta": -0.3333,
        "percent_delta": -0.0526,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 6.0,
        "after": 5.0,
        "delta": -1.0,
        "percent_delta": -0.1667,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 4,
      "boosted_metrics": 1,
      "deboosted_metrics": 3,
      "better_metrics": 1,
      "worse_metrics": 3,
      "biggest_boost": {
        "metric": "predicted_H",
        "before": 4.0,
        "after": 6.0,
        "delta": 2.0,
        "percent_delta": 0.5,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_ER",
        "before": 3.0,
        "after": 2.0,
        "delta": -1.0,
        "percent_delta": -0.3333,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_rate_projection

Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty

MetricValueDelta vs Prev Step
2. 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_IP6.333-
predicted_SO6.000-
3. team_form_adjustment

Club form: innings, run prevention and strikeout factors

MetricValueDelta vs Prev Step
4. savant_pitcher_quality

Statcast pitch quality: strikeout, walk, home-run and run-prevention factors

MetricValueDelta vs Prev Step
5. opposing_lineup_context

The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances

MetricValueDelta vs Prev Step
6. kpi_run_environment

KPI blend published; the staff line follows the published score, not a KPI rescale

MetricValueDelta vs Prev Step
7. pitcher_quality_guardrail

Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.

MetricValueDelta vs Prev Step
predicted_BB1.0000.000
predicted_ER2.000-1.000
predicted_H4.0000.000
predicted_HR1.0000.000
predicted_IP6.100-0.233
predicted_SO7.0001.000
8. market_blend

Starter continuous line blended with his own props: model x (market/model) ** w; integer line stays reconciled to the club score

MetricValueDelta vs Prev Step
9. play_by_play_realization

Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play

MetricValueDelta vs Prev Step
BB1.000-
BF28.000-
ER2.000-
H6.000-
HR1.000-
IP6.000-
Pitches99.000-
R3.000-
SO5.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 29
Reference playing time: 6.333
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.45526.1009.00018.0004.00035.0002.0003.07590.83540.34180.68350.15191.32910.0760
last_100.351059.10015.00043.0006.00078.0002.0002.27530.82580.25280.72470.10111.31460.0337
season0.2029170.10042.000134.00032.000212.00010.0002.21920.97460.24660.78670.18791.24460.0587
Weighted Prediction From Real Data
MetricValue
predicted_BB1.0230
predicted_ER1.8780
predicted_ERA2.9175
predicted_H4.3890
predicted_HR0.4110
predicted_IP5.2000
predicted_SO7.2540
predicted_WHIP0.9342
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB1.00001.02301.0135model_form_blend
predicted_ER3.00001.87802.3404model_form_blend
predicted_ERA-2.91752.9175form_only
predicted_H4.00004.38904.2287model_form_blend
predicted_HR1.00000.41100.6538model_form_blend
predicted_IP6.10005.20006.0000model_form_blend
predicted_SO6.00007.25406.7372model_form_blend
predicted_WHIP-0.93420.9342form_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 date29
Season rows before report date29
Report year2026
Profile rows used29
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP6.0
H6
R3
ER2
BB1
SO5
HR1
BF28
Pitches99

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 Faced5
Pitching_ER0
Pitching_ERA3.52
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H1
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched1.1
Pitching_Pitches21
Pitching_R0
Pitching_SO3
Pitching_Strikes14
Pitching_Wild Pitch0
Pitching_pitchingOrder6
allPositionsPlayedP
gameID20261001_PHI@ATL
game_typefull
mlbID519242
playerID519242
playerNameChris Sale
posP
startedFalse
startingPositionP
teamATL
teamID2
game_date2026-10-01
sl_k_percent30.9
sl_bb_percent4.8
sl_woba0.259
sl_xwoba0.267
sl_sweet_spot_percent34.3
sl_barrel_batted_rate6.2
sl_hard_hit_percent35.1
sl_whiff_percent30.4
sl_swing_percent50.7
sl_avg_best_speed76.8971828
sl_avg_hyper_speed93.43608195
Dylan Dodd (689266) · PITCHER · Middle Reliever · Team ATL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 50
All-history rows before 20261006: 50

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB0.0000.0000.000Pitching_BB0.2800.000-0.2800.000
predicted_ER0.0000.0000.000Pitching_ER0.3000.000-0.3000.000
predicted_H1.0001.0001.000Pitching_H0.6802.0000.320-1.000
predicted_IP1.0001.0001.000Pitching_InningsPitched0.9503.0000.050-2.000
predicted_SO0.0000.0000.000Pitching_SO1.1404.000-1.140-4.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_rate_projection
Tocurrent_json_final
Dominant Effectworse
Changed Metrics1
Boosted Metrics0
Deboosted Metrics1
Better Metrics0
Worse Metrics1
Biggest Boost-
Biggest Deboostpredicted_SO: 1.0000 -> 0.0000 (deboost -1.0000, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_rate_projection00000--Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty
2pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
3team_form_adjustment00000--Club form: innings, run prevention and strikeout factors
4savant_pitcher_quality00000--Statcast pitch quality: strikeout, walk, home-run and run-prevention factors
5opposing_lineup_context00000--The nine hitters he faces: batter quality, weighted by plate appearances
6kpi_run_environment00000--KPI blend published; the staff line follows the published score, not a KPI rescale
7play_by_play_realization10101-predicted_SO: 1.0000 -> 0.0000 (deboost -1.0000, worse)Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play
8current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "pitcher",
  "player_id": "689266",
  "player_name": "Dylan Dodd",
  "position": "Middle Reliever",
  "team": "ATL",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_rate_projection",
      "description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
      "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
      }
    },
    {
      "index": 2,
      "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
      }
    },
    {
      "index": 3,
      "step": "team_form_adjustment",
      "description": "Club form: innings, run prevention and strikeout factors",
      "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
      }
    },
    {
      "index": 4,
      "step": "savant_pitcher_quality",
      "description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
      "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
      }
    },
    {
      "index": 5,
      "step": "opposing_lineup_context",
      "description": "The nine hitters he faces: batter quality, weighted by plate appearances",
      "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": {
        "H": 0.0,
        "BB": 0.15,
        "SO": 0.35,
        "HR": 0.0
      }
    },
    {
      "index": 6,
      "step": "kpi_run_environment",
      "description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
      "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
      }
    },
    {
      "index": 7,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
      "stats": {
        "predicted_BB": 0.0,
        "predicted_ER": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_IP": 1.0,
        "predicted_R": 0.0,
        "predicted_SO": 0.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 0,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 1,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 8,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_BB": 0.0,
        "predicted_ER": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_IP": 1.0,
        "predicted_SO": 0.0
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    }
  ],
  "total_change": {
    "from_step": "pitcher_rate_projection",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_SO",
        "before": 1.0,
        "after": 0.0,
        "delta": -1.0,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 1,
      "boosted_metrics": 0,
      "deboosted_metrics": 1,
      "better_metrics": 0,
      "worse_metrics": 1,
      "biggest_boost": null,
      "biggest_deboost": {
        "metric": "predicted_SO",
        "before": 1.0,
        "after": 0.0,
        "delta": -1.0,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_rate_projection

Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty

MetricValueDelta vs Prev Step
2. 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-
3. team_form_adjustment

Club form: innings, run prevention and strikeout factors

MetricValueDelta vs Prev Step
4. savant_pitcher_quality

Statcast pitch quality: strikeout, walk, home-run and run-prevention factors

MetricValueDelta vs Prev Step
5. opposing_lineup_context

The nine hitters he faces: batter quality, weighted by plate appearances

MetricValueDelta vs Prev Step
6. kpi_run_environment

KPI blend published; the staff line follows the published score, not a KPI rescale

MetricValueDelta vs Prev Step
7. play_by_play_realization

Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play

MetricValueDelta vs Prev Step
BB0.000-
BF4.000-
ER0.000-
H1.000-
HR0.000-
IP1.000-
Pitches13.000-
R0.000-
SO0.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 50
Reference playing time: 1.000
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.4557.2003.0006.0000.00010.0001.0003.52170.78260.39130.78260.00001.30430.1304
last_100.351011.1005.0009.0001.00014.0003.0003.97060.88240.44120.79410.08821.23530.2647
season0.205053.10015.00034.00014.00057.0007.0002.53120.90000.28120.63750.26251.06880.1313
Weighted Prediction From Real Data
MetricValue
predicted_BB0.2130
predicted_ER0.5140
predicted_ERA3.8355
predicted_H0.9990
predicted_HR0.2030
predicted_IP1.1000
predicted_SO1.3750
predicted_WHIP1.0046
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB0.00000.21300.1104model_form_blend
predicted_ER0.00000.51400.2663model_form_blend
predicted_ERA-3.83553.8355form_only
predicted_H1.00000.99900.9995model_form_blend
predicted_HR0.00000.20300.1052model_form_blend
predicted_IP1.00001.10001.2000model_form_blend
predicted_SO1.00001.37501.1943model_form_blend
predicted_WHIP-1.00461.0046form_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 date50
Season rows before report date50
Report year2026
Profile rows used50
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
HR0
BF4
Pitches13

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.45
Pitching_Flyouts0
Pitching_Groundouts3
Pitching_H2
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched3.0
Pitching_Pitches47
Pitching_R0
Pitching_SO4
Pitching_Strikes30
Pitching_Wild Pitch0
Pitching_pitchingOrder1
allPositionsPlayedP
gameID20261003_ATL@LAD
game_typefull
mlbID689266
playerID689266
playerNameDylan Dodd
posP
startedTrue
startingPositionP
teamATL
teamID2
game_date2026-10-03
sl_k_percent27.3
sl_bb_percent7.2
sl_woba0.26
sl_xwoba0.273
sl_sweet_spot_percent37.9
sl_barrel_batted_rate8.9
sl_hard_hit_percent37.1
sl_whiff_percent29.5
sl_swing_percent54.4
sl_avg_best_speed80.094113934
sl_avg_hyper_speed93.49856377
Robert Suarez (663158) · PITCHER · Middle Reliever (High Leverage) · Team ATL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 35
All-history rows before 20261006: 35

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB0.0000.0000.000Pitching_BB0.1710.000-0.1710.000
predicted_ER0.0000.0000.000Pitching_ER0.1140.000-0.1140.000
predicted_H1.0001.0001.000Pitching_H0.7140.0000.2861.000
predicted_IP1.0001.0001.000Pitching_InningsPitched0.9661.0000.0340.000
predicted_SO0.0000.0000.000Pitching_SO0.7711.000-0.771-1.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_rate_projection
Tocurrent_json_final
Dominant Effectworse
Changed Metrics2
Boosted Metrics1
Deboosted Metrics1
Better Metrics0
Worse Metrics2
Biggest Boostpredicted_H: 0.0000 -> 1.0000 (boost 1.0000, worse)
Biggest Deboostpredicted_SO: 1.0000 -> 0.0000 (deboost -1.0000, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_rate_projection00000--Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty
2pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
3team_form_adjustment00000--Club form: innings, run prevention and strikeout factors
4savant_pitcher_quality00000--Statcast pitch quality: strikeout, walk, home-run and run-prevention factors
5opposing_lineup_context00000--The nine hitters he faces: batter quality, weighted by plate appearances
6kpi_run_environment00000--KPI blend published; the staff line follows the published score, not a KPI rescale
7play_by_play_realization21102predicted_H: 0.0000 -> 1.0000 (boost 1.0000, worse)predicted_SO: 1.0000 -> 0.0000 (deboost -1.0000, worse)Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play
8current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "pitcher",
  "player_id": "663158",
  "player_name": "Robert Suarez",
  "position": "Middle Reliever (High Leverage)",
  "team": "ATL",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_rate_projection",
      "description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
      "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
      }
    },
    {
      "index": 2,
      "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
      }
    },
    {
      "index": 3,
      "step": "team_form_adjustment",
      "description": "Club form: innings, run prevention and strikeout factors",
      "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
      }
    },
    {
      "index": 4,
      "step": "savant_pitcher_quality",
      "description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
      "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
      }
    },
    {
      "index": 5,
      "step": "opposing_lineup_context",
      "description": "The nine hitters he faces: batter quality, weighted by plate appearances",
      "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": {
        "H": 0.0,
        "BB": 0.15,
        "SO": 0.35,
        "HR": 0.0
      }
    },
    {
      "index": 6,
      "step": "kpi_run_environment",
      "description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
      "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
      }
    },
    {
      "index": 7,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
      "stats": {
        "predicted_BB": 0.0,
        "predicted_ER": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_IP": 1.0,
        "predicted_R": 0.0,
        "predicted_SO": 0.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_H",
          "before": 0.0,
          "after": 1.0,
          "delta": 1.0,
          "percent_delta": null,
          "direction": "boost",
          "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": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 2,
        "boosted_metrics": 1,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 2,
        "biggest_boost": {
          "metric": "predicted_H",
          "before": 0.0,
          "after": 1.0,
          "delta": 1.0,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 8,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_BB": 0.0,
        "predicted_ER": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_IP": 1.0,
        "predicted_SO": 0.0
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    }
  ],
  "total_change": {
    "from_step": "pitcher_rate_projection",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_H",
        "before": 0.0,
        "after": 1.0,
        "delta": 1.0,
        "percent_delta": null,
        "direction": "boost",
        "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": "worse",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 2,
      "boosted_metrics": 1,
      "deboosted_metrics": 1,
      "better_metrics": 0,
      "worse_metrics": 2,
      "biggest_boost": {
        "metric": "predicted_H",
        "before": 0.0,
        "after": 1.0,
        "delta": 1.0,
        "percent_delta": null,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_SO",
        "before": 1.0,
        "after": 0.0,
        "delta": -1.0,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_rate_projection

Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty

MetricValueDelta vs Prev Step
2. 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-
3. team_form_adjustment

Club form: innings, run prevention and strikeout factors

MetricValueDelta vs Prev Step
4. savant_pitcher_quality

Statcast pitch quality: strikeout, walk, home-run and run-prevention factors

MetricValueDelta vs Prev Step
5. opposing_lineup_context

The nine hitters he faces: batter quality, weighted by plate appearances

MetricValueDelta vs Prev Step
6. kpi_run_environment

KPI blend published; the staff line follows the published score, not a KPI rescale

MetricValueDelta vs Prev Step
7. play_by_play_realization

Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play

MetricValueDelta vs Prev Step
BB0.000-
BF4.000-
ER0.000-
H1.000-
HR0.000-
IP1.000-
Pitches11.000-
R0.000-
SO0.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 35
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.0002.0006.0001.0001.0000.0003.60001.40000.40001.20000.20000.20000.0000
last_100.351010.1002.0009.0001.0005.0000.0001.74190.96770.19350.87100.09680.48390.0000
season0.203535.2004.00025.0006.00027.0001.0001.00930.86920.11210.70090.16820.75700.0280
Weighted Prediction From Real Data
MetricValue
predicted_BB0.2480
predicted_ER0.3680
predicted_ERA3.3153
predicted_H0.9850
predicted_HR0.0630
predicted_IP1.0000
predicted_SO0.6220
predicted_WHIP1.2325
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB0.00000.24800.1188model_form_blend
predicted_ER0.00000.36800.1763model_form_blend
predicted_ERA-3.31533.3153form_only
predicted_H0.00000.98500.4720model_form_blend
predicted_HR0.00000.06300.0302model_form_blend
predicted_IP1.00001.00001.0000model_form_blend
predicted_SO1.00000.62200.8189model_form_blend
predicted_WHIP-1.23251.2325form_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 date35
Season rows before report date35
Report year2026
Profile rows used35
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
HR0
BF4
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_BB0
Pitching_Balk0
Pitching_Batters Faced3
Pitching_ER0
Pitching_ERA0.00
Pitching_Flyouts2
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners2
Pitching_Inherited Runners Scored0
Pitching_InningsPitched1.0
Pitching_Pitches15
Pitching_R0
Pitching_SO1
Pitching_Strikes9
Pitching_Wild Pitch0
Pitching_decisionH
Pitching_pitchingOrder4
allPositionsPlayedP
gameID20261004_ATL@LAD
game_typefull
mlbID663158
playerID663158
playerNameRobert Suarez
posP
startedFalse
startingPositionP
teamATL
teamID2
game_date2026-10-04
sl_k_percent20.0
sl_bb_percent4.6
sl_woba0.221
sl_xwoba0.283
sl_sweet_spot_percent34.0
sl_barrel_batted_rate3.1
sl_hard_hit_percent33.0
sl_whiff_percent23.1
sl_swing_percent54.2
sl_avg_best_speed72.217095
sl_avg_hyper_speed92.706857579
Dylan Lee (669276) · PITCHER · Middle Reliever (High Leverage) · Team ATL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 74
All-history rows before 20261006: 74

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB0.0000.0000.000Pitching_BB0.2431.000-0.243-1.000
predicted_ER0.0000.0000.000Pitching_ER0.3380.000-0.3380.000
predicted_H1.0001.0001.000Pitching_H0.6891.0000.3110.000
predicted_IP2.0002.0002.000Pitching_InningsPitched0.8110.2001.1891.800
predicted_SO2.0002.0002.000Pitching_SO1.0811.0000.9191.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_rate_projection
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics3
Boosted Metrics1
Deboosted Metrics2
Better Metrics3
Worse Metrics0
Biggest Boostpredicted_IP: 0.6667 -> 2.0000 (boost 1.3333, better)
Biggest Deboostpredicted_ER: 1.0000 -> 0.0000 (deboost -1.0000, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_rate_projection00000--Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty
2pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
3team_form_adjustment00000--Club form: innings, run prevention and strikeout factors
4savant_pitcher_quality00000--Statcast pitch quality: strikeout, walk, home-run and run-prevention factors
5opposing_lineup_context00000--The nine hitters he faces: batter quality, weighted by plate appearances
6kpi_run_environment00000--KPI blend published; the staff line follows the published score, not a KPI rescale
7pitcher_quality_run_redistribution21102predicted_ER: 1.0000 -> 2.0000 (boost 1.0000, worse)predicted_IP: 0.6667 -> 0.2000 (deboost -0.4667, worse)Runs moved off a protected strong starter and assigned to bullpen exposure to keep team totals coherent.
8play_by_play_realization31230predicted_IP: 0.2000 -> 2.0000 (boost 1.8000, better)predicted_ER: 2.0000 -> 0.0000 (deboost -2.0000, better)Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play
9current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "pitcher",
  "player_id": "669276",
  "player_name": "Dylan Lee",
  "position": "Middle Reliever (High Leverage)",
  "team": "ATL",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_rate_projection",
      "description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
      "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
      }
    },
    {
      "index": 2,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 0.0,
        "predicted_ER": 1.0,
        "predicted_H": 2.0,
        "predicted_HR": 0.0,
        "predicted_IP": 0.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
      }
    },
    {
      "index": 3,
      "step": "team_form_adjustment",
      "description": "Club form: innings, run prevention and strikeout factors",
      "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
      }
    },
    {
      "index": 4,
      "step": "savant_pitcher_quality",
      "description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
      "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
      }
    },
    {
      "index": 5,
      "step": "opposing_lineup_context",
      "description": "The nine hitters he faces: batter quality, weighted by plate appearances",
      "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": {
        "H": 0.0,
        "BB": 0.15,
        "SO": 0.35,
        "HR": 0.0
      }
    },
    {
      "index": 6,
      "step": "kpi_run_environment",
      "description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
      "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
      }
    },
    {
      "index": 7,
      "step": "pitcher_quality_run_redistribution",
      "description": "Runs moved off a protected strong starter and assigned to bullpen exposure to keep team totals coherent.",
      "stats": {
        "predicted_BB": 0.0,
        "predicted_ER": 2.0,
        "predicted_H": 2.0,
        "predicted_HR": 0.0,
        "predicted_IP": 0.2,
        "predicted_SO": 2.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_ER",
          "before": 1.0,
          "after": 2.0,
          "delta": 1.0,
          "percent_delta": 1.0,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_IP",
          "before": 0.6667,
          "after": 0.2,
          "delta": -0.4667,
          "percent_delta": -0.7,
          "direction": "deboost",
          "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_ER",
          "before": 1.0,
          "after": 2.0,
          "delta": 1.0,
          "percent_delta": 1.0,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "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
        }
      }
    },
    {
      "index": 8,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
      "stats": {
        "predicted_BB": 0.0,
        "predicted_ER": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_IP": 2.0,
        "predicted_R": 1.0,
        "predicted_SO": 2.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_ER",
          "before": 2.0,
          "after": 0.0,
          "delta": -2.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 2.0,
          "after": 1.0,
          "delta": -1.0,
          "percent_delta": -0.5,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_IP",
          "before": 0.2,
          "after": 2.0,
          "delta": 1.8,
          "percent_delta": 9.0,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 3,
        "boosted_metrics": 1,
        "deboosted_metrics": 2,
        "better_metrics": 3,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_IP",
          "before": 0.2,
          "after": 2.0,
          "delta": 1.8,
          "percent_delta": 9.0,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_ER",
          "before": 2.0,
          "after": 0.0,
          "delta": -2.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      }
    },
    {
      "index": 9,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_BB": 0.0,
        "predicted_ER": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_IP": 2.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
      }
    }
  ],
  "total_change": {
    "from_step": "pitcher_rate_projection",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_ER",
        "before": 1.0,
        "after": 0.0,
        "delta": -1.0,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 2.0,
        "after": 1.0,
        "delta": -1.0,
        "percent_delta": -0.5,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_IP",
        "before": 0.6667,
        "after": 2.0,
        "delta": 1.3333,
        "percent_delta": 2.0,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 3,
      "boosted_metrics": 1,
      "deboosted_metrics": 2,
      "better_metrics": 3,
      "worse_metrics": 0,
      "biggest_boost": {
        "metric": "predicted_IP",
        "before": 0.6667,
        "after": 2.0,
        "delta": 1.3333,
        "percent_delta": 2.0,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_ER",
        "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": "better"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_rate_projection

Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty

MetricValueDelta vs Prev Step
2. 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_IP0.667-
predicted_SO2.000-
3. team_form_adjustment

Club form: innings, run prevention and strikeout factors

MetricValueDelta vs Prev Step
4. savant_pitcher_quality

Statcast pitch quality: strikeout, walk, home-run and run-prevention factors

MetricValueDelta vs Prev Step
5. opposing_lineup_context

The nine hitters he faces: batter quality, weighted by plate appearances

MetricValueDelta vs Prev Step
6. kpi_run_environment

KPI blend published; the staff line follows the published score, not a KPI rescale

MetricValueDelta vs Prev Step
7. pitcher_quality_run_redistribution

Runs moved off a protected strong starter and assigned to bullpen exposure to keep team totals coherent.

MetricValueDelta vs Prev Step
predicted_BB0.0000.000
predicted_ER2.0001.000
predicted_H2.0000.000
predicted_HR0.0000.000
predicted_IP0.200-0.467
predicted_SO2.0000.000
8. play_by_play_realization

Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play

MetricValueDelta vs Prev Step
BB0.000-
BF7.000-
ER0.000-
H1.000-
HR0.000-
IP2.000-
Pitches30.000-
R1.000-
SO2.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 73
Reference playing time: 0.667
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.4554.1002.0004.0001.0004.0002.0004.15381.15380.46150.92310.23080.92310.4615
last_100.35108.2008.00013.0003.0006.0002.0008.30771.84620.92311.50000.34620.69230.2308
season0.207369.10023.00048.00017.00080.0005.0002.98560.93750.33170.69230.24521.15390.0721
Weighted Prediction From Real Data
MetricValue
predicted_BB0.2760
predicted_ER0.5260
predicted_ERA5.1781
predicted_H0.9630
predicted_HR0.2400
predicted_IP1.0000
predicted_SO0.8230
predicted_WHIP1.3560
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB0.00000.27600.1492model_form_blend
predicted_ER1.00000.52600.7437model_form_blend
predicted_ERA-5.17815.1781form_only
predicted_H2.00000.96301.4393model_form_blend
predicted_HR0.00000.24000.1298model_form_blend
predicted_IP0.20001.00001.0000model_form_blend
predicted_SO2.00000.82301.3636model_form_blend
predicted_WHIP-1.35601.3560form_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 date74
Season rows before report date74
Report year2026
Profile rows used73
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP2.0
H1
R1
ER0
BB0
SO2
HR0
BF7
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_BB1
Pitching_Balk0
Pitching_Batters Faced4
Pitching_ER0
Pitching_ERA7.71
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H1
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners2
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.2
Pitching_Pitches14
Pitching_R0
Pitching_SO1
Pitching_Strikes7
Pitching_Wild Pitch0
Pitching_decisionW
Pitching_pitchingOrder3
allPositionsPlayedP
gameID20261004_ATL@LAD
game_typefull
mlbID669276
playerID669276
playerNameDylan Lee
posP
startedFalse
startingPositionP
teamATL
teamID2
game_date2026-10-04
sl_k_percent29.4
sl_bb_percent6.5
sl_woba0.248
sl_xwoba0.252
sl_sweet_spot_percent35.7
sl_barrel_batted_rate5.4
sl_hard_hit_percent32.7
sl_whiff_percent35.7
sl_swing_percent52.7
sl_avg_best_speed77.001041951
sl_avg_hyper_speed93.192195092

20261006_MIL@SD

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": 4, "home_runs": 5, "confidence": 0.56643005, "home_win_probability": 0.56643005, "away_win_probability": 0.43356995, "predicted_score_text": "MIL 4 - 5 SD", "uncapped_home_win_probability": 0.578153, "uncapped_away_win_probability": 0.421847, "confidence_shrinkage": {"policy": "starter_quality_shrinkage_v3", "staged_confidence": 0.578153, "discount_factor": 0.85, "published_confidence": 0.56643, "guardrail_confidence_cap": null, "guardrail_cap_enforced": false, "guardrail_soft_ceiling_applied": false, "confidence_before_ceiling": 0.56643, "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.487268, "incoming_favoured_side": "away", "score_winner_side": "home", "published_home_win_probability": 0.56643, "probability_side_reverted_by_score": true, "note": "An upstream probability step favoured the side the projected score does not, so the published probability follows the score. The upstream flip did not reach the published 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": 4, "home_runs": 5, "predicted_score_text": "MIL 4 - 5 SD", "confidence": 0.56643005, "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": "MIL 4 - 5 SD", "winner": "SD"}, "final_simulation_score": {"away_runs": 4, "home_runs": 5, "score_text": "MIL 4 - 5 SD", "winner": "SD"}, "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.0494, "recent_form_edge_home_minus_away": 0.334, "winner_direction": "home", "thresholds": {"pitcher_matchup": 0.35, "recent_form": 0.75}}, "margin_widening_capped": false, "simulation_winner_agrees": true, "away_run_delta": 0, "home_run_delta": 0, "total_run_delta": 0, "score_source": "enhanced_prediction.pre_simulation_target", "simulation_usage": "organic_simulation_realized_target", "final_prediction_source": "stable_final_prediction_policy", "final_decision_policy": {"policy_version": "model_target_authoritative_simulation_realizes_v3", "away_runs": 4, "home_runs": 5, "winner": "SD", "model_winner": "SD", "simulation_winner": "SD", "simulation_winner_agrees": true, "simulation_agreement_scope": "selected_draw_only", "simulation_distribution_agreement": {"available": true, "draw_count": 5, "published_winner": "SD", "published_winner_draw_share": 0.6, "draw_majority_team": "SD", "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.723, "winner": "SD", "score_reviewed": {"away_runs": 4, "home_runs": 5, "source": "enhanced_prediction.pre_simulation_target"}, "reason": "published margin is directionally supported or within review threshold"}}}
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 predictionMIL 4 - 5 SDSD0.566enhanced_prediction.pre_simulation_targetTrue
Simulation drawMIL 4 - 5 SDSD-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.7212; empirical=0.5714; weight=0.5000; final=0.6463
P1H2H margin as base featureavailablehome net=7; abs=7; home delta=0.0404; away delta=-0.0404
P2Wider score distributionimplemented_above_requested_1.4xvariance multiplier=2.2500; floor=2.7500
P2Simulation flip controldiagnostic_only_unless_independently_supportedcandidate=False; trusted=False; published flip=False
P3Season edge + recent formimplementedwindow=10; season edge=-1.1790; recent edge=0.1240; 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.6000
8. Probability/governorsApplies win probability calibration, matchup guardrails, margin governor and confidence governor.win_probability_calibration, margin_governor, confidence_governor0.5664
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 rendered8 stored score steps are rendered below.game.score_evolution.stepstrue

Score Evolution Steps

StepLayerAway RunsHome RunsConfidenceDescription
1historical_ml3.5314.700-Base ML historical model prediction
2variance_applied45-Deterministic baseline target (variance factor 1.0)
3enhanced_prediction450.5664Enhanced ML with recent form, H2H, low-score analysis (confidence shrunk by projected_margin_is_one_run)
4kpi_layer45-Savant KPI blend applied to the model target
5embedded_savant_run_environment45-Target score adjusted by temporal Savant lineup quality versus opposing starter quality
6fundamental_edge_target_review45-Refreshed score target and win probability after Savant/pitcher/team-strength adjustments
7capped_target45-Capped at max 12 realistic runs
8simulation_result45-Final inning-by-inning simulation result

Governors, Guardrails, and Reconciliation

Low Score Analysis
{
  "low_score_probability": 0.6403404222618158,
  "base_low_score_probability": 0.42711198428290764,
  "low_score_signal_threshold": 0.5071119842829076,
  "low_score_signal_strength": 0.21322843797890811,
  "confidence": 0.8496165476800005,
  "factors": {
    "environmental": 1.1781000000000004,
    "pitcher_form": 1.1,
    "team_form": 1.08,
    "situational": 1.0712000000000002,
    "combined": 1.499233095360001
  },
  "prediction": "low_scoring",
  "expected_total_runs": 9,
  "score_scale_mode": "control",
  "pre_simulation_expected_total_runs": 6.6,
  "low_score_model_expected_total_runs": 6.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": 357,
  "near_bucket_sample_size": 357,
  "medium_bucket_sample_size": 571,
  "wide_bucket_sample_size": 1078,
  "global_sample_size": 1133,
  "bucket_scope": "near_0.05",
  "sparse_bucket": false,
  "empirical_hit_rate": 0.5714,
  "bayesian_hit_rate": 0.568,
  "prior_strength": 18.0,
  "raw_pick_probability": 0.6262,
  "raw_pick_probability_unclamped": 0.6262,
  "score_probability_conflict": false,
  "margin_implied_home_probability": 0.6078,
  "margin_implied_pick_probability": 0.6078,
  "score_blend_weight": 0.45,
  "blended_raw_pick_probability": 0.6179,
  "score_implied_floor_pick_probability": 0.6045,
  "max_published_pick_probability": 0.9,
  "uncapped_home_win_probability": 0.626179,
  "uncapped_away_win_probability": 0.373821,
  "calibrated_pick_probability": 0.6142,
  "predicted_side": "home",
  "reliability": 0.952,
  "shrink_floor": 0.35,
  "empirical_penalty": 1.0,
  "shrinkage_weight": 0.9688
}
Empirical Confidence Calibration
{
  "method": "empirical_hit_rate_weighted_v1",
  "applied": true,
  "reason": "raw confidence blended with verified historical bucket hit rate",
  "raw_confidence": 0.721177,
  "sample_size": 357,
  "empirical_hit_rate": 0.5714,
  "empirical_weight": 0.5,
  "blended_confidence": 0.646289,
  "published_confidence": 0.56643,
  "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": 7.0,
  "absolute_net_margin": 7.0,
  "home_average_margin": 1.4,
  "home_run_delta": 0.0404,
  "away_run_delta": -0.0404,
  "evidence": [
    {
      "game_id": null,
      "home_margin": 1.0
    },
    {
      "game_id": null,
      "home_margin": 9.0
    },
    {
      "game_id": null,
      "home_margin": 1.0
    },
    {
      "game_id": null,
      "home_margin": -6.0
    },
    {
      "game_id": null,
      "home_margin": 2.0
    }
  ],
  "adaptive_parameters": {
    "h2h.history_limit": 5,
    "h2h.maximum_weight": 0.15,
    "h2h.prior_games": 8.0,
    "h2h.maximum_total_shift": 0.65
  }
}
Season Run Differential Adjustment
{
  "applied": true,
  "home": {
    "team": "SD",
    "games": 162,
    "wins": 91,
    "losses": 71,
    "win_pct": 0.5617283950617284,
    "runs_scored": 722,
    "runs_allowed": 681,
    "run_differential": 41,
    "run_differential_per_game": 0.25308641975308643,
    "available": true
  },
  "away": {
    "team": "MIL",
    "games": 162,
    "wins": 103,
    "losses": 59,
    "win_pct": 0.6358024691358025,
    "runs_scored": 832,
    "runs_allowed": 618,
    "run_differential": 214,
    "run_differential_per_game": 1.3209876543209877,
    "available": true
  },
  "run_differential_edge_per_game": -1.0679,
  "win_pct_edge": -0.0741,
  "quality_edge": -0.723,
  "season_quality_edge": -1.179,
  "recent_quality_blend": {
    "method": "season_recent_quality_blend_v2_adaptive",
    "recent_window": 10,
    "season_quality_edge": -1.179,
    "recent_quality_edge": 0.124,
    "season_weight": 0.65,
    "recent_weight": 0.35,
    "recent_reliability": 1.0,
    "alignment": "conflict",
    "blended_quality_edge": -0.723
  },
  "margin_adjustment": -0.3037,
  "reason": "season-to-date run differential and record moved the score toward the stronger team",
  "margin_adjustment_policy": {
    "adjustment": -0.3037,
    "cap": 1.4,
    "scale": 0.42,
    "quality_edge": -0.723,
    "season_quality_edge": -1.179,
    "recent_alignment": "conflict",
    "large_edge_supported_by_recent_form": false,
    "method": "standard_bounded_season_recent_adjustment"
  },
  "adjusted_score": {
    "away_runs": 2.993,
    "home_runs": 5.846,
    "home_win_probability": 0.7425
  }
}
Score Distribution Widening
{
  "most_likely": [
    {
      "home_runs": 5,
      "away_runs": 4,
      "probability": 0.018282124026797165
    },
    {
      "home_runs": 5,
      "away_runs": 3,
      "probability": 0.0179107370638165
    },
    {
      "home_runs": 6,
      "away_runs": 4,
      "probability": 0.01776986977420475
    },
    {
      "home_runs": 6,
      "away_runs": 3,
      "probability": 0.01740888885326085
    },
    {
      "home_runs": 4,
      "away_runs": 4,
      "probability": 0.017259590176132676
    }
  ],
  "home_distribution": {
    "0": 0.0389874502520409,
    "1": 0.05824723506129995,
    "2": 0.07985226113532017,
    "3": 0.10045245258024885,
    "4": 0.11595655216022074,
    "5": 0.12282632708420077,
    "6": 0.1193848063786763,
    "7": 0.1064800082848269,
    "8": 0.08714621228882287,
    "9": 0.06544709553767908,
    "10": 0.04510177796389759,
    "11": 0.028520581104462383,
    "12": 0.01654948562479533,
    "13": 0.008811950576144362,
    "14": 0.00430547456486219,
    "15": 0.0019303294025015856
  },
  "away_distribution": {
    "0": 0.06629352928927651,
    "1": 0.0973172818966363,
    "2": 0.12656304685032707,
    "3": 0.14582164499259354,
    "4": 0.14884532054975702,
    "5": 0.1346004460418045,
    "6": 0.10783405412559349,
    "7": 0.07653559947514474,
    "8": 0.04812482508240616,
    "9": 0.026808527516015153,
    "10": 0.01323045798596238,
    "11": 0.00578462108436347,
    "12": 0.002240645110119733
  },
  "model": "overdispersed_score_distribution",
  "variance_multiplier": 2.25,
  "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": "SD",
    "opponent_team": "MIL",
    "h2h_net_margin": 11,
    "recent_h2h": [
      {
        "date": "2026-08-12",
        "predicted_team_runs": 4,
        "opponent_runs": 3,
        "margin_for_predicted_team": 1,
        "winner": "SD"
      },
      {
        "date": "2026-08-11",
        "predicted_team_runs": 11,
        "opponent_runs": 2,
        "margin_for_predicted_team": 9,
        "winner": "SD"
      },
      {
        "date": "2026-08-10",
        "predicted_team_runs": 3,
        "opponent_runs": 2,
        "margin_for_predicted_team": 1,
        "winner": "SD"
      }
    ],
    "prediction_memory": {
      "available": true,
      "reason": "verified_prior_matchup_predictions_available",
      "verification_policy": "pregame_artifact_matched_to_one_official_final",
      "verified_outcome_count": 5,
      "consecutive_same_pick_count": 0,
      "same_pick_actual_loss_count": 0,
      "same_pick_blowout_loss_count": 0,
      "prior_predictions": [
        {
          "date": "20261004",
          "away": "SD",
          "home": "MIL",
          "game_number": 1,
          "predicted_team": "MIL",
          "actual_winner": "MIL",
          "actual_margin": 1,
          "raw_pick_probability": 0.553789,
          "artifact": "20261004_SD@MIL.json",
          "verification": "pregame_official_final"
        },
        {
          "date": "20261003",
          "away": "SD",
          "home": "MIL",
          "game_number": 1,
          "predicted_team": "MIL",
          "actual_winner": "MIL",
          "actual_margin": 1,
          "raw_pick_probability": 0.53,
          "artifact": "20261003_SD@MIL.json",
          "verification": "pregame_official_final"
        },
        {
          "date": "20260812",
          "away": "MIL",
          "home": "SD",
          "game_number": 1,
          "predicted_team": "SD",
          "actual_winner": "SD",
          "actual_margin": 1,
          "raw_pick_probability": 0.51,
          "artifact": "20260812_MIL@SD.json",
          "verification": "pregame_official_final"
        },
        {
          "date": "20260811",
          "away": "MIL",
          "home": "SD",
          "game_number": 1,
          "predicted_team": "MIL",
          "actual_winner": "SD",
          "actual_margin": 9,
          "raw_pick_probability": 0.51256,
          "artifact": "20260811_MIL@SD.json",
          "verification": "pregame_official_final"
        },
        {
          "date": "20260810",
          "away": "MIL",
          "home": "SD",
          "game_number": 1,
          "predicted_team": "MIL",
          "actual_winner": "SD",
          "actual_margin": 1,
          "raw_pick_probability": 0.6,
          "artifact": "20260810_MIL@SD.json",
          "verification": "pregame_official_final"
        }
      ]
    },
    "guardrail_predicted_team": "SD",
    "guardrail_opponent_team": "MIL",
    "output_pre_simulation_winner": "SD",
    "output_opponent_team": "MIL",
    "simulation_score_winner": "SD",
    "final_score_winner": "SD",
    "pre_simulation_winner": "SD",
    "winner_flipped_by_simulation": false,
    "simulation_would_flip_winner": false
  }
}
Season Quality Guardrail
{
  "applied": false,
  "confidence_cap": null,
  "winner_flipped": false,
  "hard_flip_suppressed": false,
  "policy": "recency_uncertainty_shrinkage_v2",
  "reasons": [],
  "signals": {
    "home": {
      "team": "SD",
      "games": 162,
      "wins": 91,
      "losses": 71,
      "win_pct": 0.5617283950617284,
      "runs_scored": 722,
      "runs_allowed": 681,
      "run_differential": 41,
      "run_differential_per_game": 0.25308641975308643,
      "available": true
    },
    "away": {
      "team": "MIL",
      "games": 162,
      "wins": 103,
      "losses": 59,
      "win_pct": 0.6358024691358025,
      "runs_scored": 832,
      "runs_allowed": 618,
      "run_differential": 214,
      "run_differential_per_game": 1.3209876543209877,
      "available": true
    }
  }
}
Margin Governor
{
  "applied": true,
  "raw_margin": 3.3894,
  "final_margin": 1.5,
  "margin_cap": 1.5,
  "season_quality_edge": 0.723,
  "reason": "large target margin capped because season quality evidence did not justify a decisive prediction",
  "adjusted_score": {
    "away_runs": 3.669,
    "home_runs": 5.169
  }
}
Confidence Governor
{
  "applied": true,
  "policy": "align_to_calibrated_probability_v2",
  "raw_confidence": 0.646289,
  "final_confidence": 0.6142,
  "calibrated_pick_probability": 0.6142,
  "shrinkage_weight": 0.9688,
  "hard_maximum": 0.9,
  "confidence_floor": 0.505,
  "score_gap": 1.5,
  "calibration_sample_size": 357,
  "calibration_empirical_hit_rate": 0.5714,
  "calibration_bayesian_hit_rate": 0.568,
  "calibration_sparse_bucket": false,
  "season_quality_edge": 0.723,
  "reasons": [
    "confidence aligned to the calibrated pick probability"
  ],
  "score_coherence": {
    "policy": "probability_follows_published_score_v1",
    "published_score": {
      "away_runs": 4,
      "home_runs": 5
    },
    "margin": 1,
    "probability_before": 0.614246,
    "margin_implied_home_probability": 0.572388,
    "shrinkage_weight": 0.9688,
    "side_flipped": false,
    "applied": true,
    "probability_after": 0.593317,
    "aligned_pick_probability": 0.593317
  },
  "starter_experience": {
    "applied": true,
    "min_starter_games": 9,
    "per_starter_career_games": {
      "601713": 9,
      "669160": 31
    },
    "shrink_factor": 0.8375,
    "probability_before": 0.593317,
    "probability_after": 0.578153,
    "reason": "inexperienced starter (debut/thin history): confidence shrunk toward 0.5 by career-games factor; winner unchanged"
  }
}
Simulation Reconciliation
{
  "pre_simulation_score": {
    "away_runs": 4,
    "home_runs": 5,
    "score_text": "MIL 4 - 5 SD",
    "winner": "SD"
  },
  "final_simulation_score": {
    "away_runs": 4,
    "home_runs": 5,
    "score_text": "MIL 4 - 5 SD",
    "winner": "SD"
  },
  "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.0494,
    "recent_form_edge_home_minus_away": 0.334,
    "winner_direction": "home",
    "thresholds": {
      "pitcher_matchup": 0.35,
      "recent_form": 0.75
    }
  },
  "margin_widening_capped": false,
  "simulation_winner_agrees": true,
  "away_run_delta": 0,
  "home_run_delta": 0,
  "total_run_delta": 0,
  "score_source": "enhanced_prediction.pre_simulation_target",
  "simulation_usage": "organic_simulation_realized_target",
  "final_prediction_source": "stable_final_prediction_policy",
  "final_decision_policy": {
    "policy_version": "model_target_authoritative_simulation_realizes_v3",
    "away_runs": 4,
    "home_runs": 5,
    "winner": "SD",
    "model_winner": "SD",
    "simulation_winner": "SD",
    "simulation_winner_agrees": true,
    "simulation_agreement_scope": "selected_draw_only",
    "simulation_distribution_agreement": {
      "available": true,
      "draw_count": 5,
      "published_winner": "SD",
      "published_winner_draw_share": 0.6,
      "draw_majority_team": "SD",
      "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.723,
    "winner": "SD",
    "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.56643005,
  "home_win_probability": 0.56643005,
  "away_win_probability": 0.43356995,
  "predicted_score_text": "MIL 4 - 5 SD",
  "uncapped_home_win_probability": 0.578153,
  "uncapped_away_win_probability": 0.421847,
  "confidence_shrinkage": {
    "policy": "starter_quality_shrinkage_v3",
    "staged_confidence": 0.578153,
    "discount_factor": 0.85,
    "published_confidence": 0.56643,
    "guardrail_confidence_cap": null,
    "guardrail_cap_enforced": false,
    "guardrail_soft_ceiling_applied": false,
    "confidence_before_ceiling": 0.56643,
    "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.487268,
    "incoming_favoured_side": "away",
    "score_winner_side": "home",
    "published_home_win_probability": 0.56643,
    "probability_side_reverted_by_score": true,
    "note": "An upstream probability step favoured the side the projected score does not, so the published probability follows the score. The upstream flip did not reach the published 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": 4,
    "home_runs": 5,
    "predicted_score_text": "MIL 4 - 5 SD",
    "confidence": 0.56643005,
    "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": "MIL 4 - 5 SD",
      "winner": "SD"
    },
    "final_simulation_score": {
      "away_runs": 4,
      "home_runs": 5,
      "score_text": "MIL 4 - 5 SD",
      "winner": "SD"
    },
    "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.0494,
      "recent_form_edge_home_minus_away": 0.334,
      "winner_direction": "home",
      "thresholds": {
        "pitcher_matchup": 0.35,
        "recent_form": 0.75
      }
    },
    "margin_widening_capped": false,
    "simulation_winner_agrees": true,
    "away_run_delta": 0,
    "home_run_delta": 0,
    "total_run_delta": 0,
    "score_source": "enhanced_prediction.pre_simulation_target",
    "simulation_usage": "organic_simulation_realized_target",
    "final_prediction_source": "stable_final_prediction_policy",
    "final_decision_policy": {
      "policy_version": "model_target_authoritative_simulation_realizes_v3",
      "away_runs": 4,
      "home_runs": 5,
      "winner": "SD",
      "model_winner": "SD",
      "simulation_winner": "SD",
      "simulation_winner_agrees": true,
      "simulation_agreement_scope": "selected_draw_only",
      "simulation_distribution_agreement": {
        "available": true,
        "draw_count": 5,
        "published_winner": "SD",
        "published_winner_draw_share": 0.6,
        "draw_majority_team": "SD",
        "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.723,
      "winner": "SD",
      "score_reviewed": {
        "away_runs": 4,
        "home_runs": 5,
        "source": "enhanced_prediction.pre_simulation_target"
      },
      "reason": "published margin is directionally supported or within review threshold"
    }
  }
}

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 MILTrue1.03701.0370190
Home SDTrue1.02441.0244190

Away Batter Inputs

PosPlayerESPN RankOff FactorQualityRegressionxwOBAxBAxSLGBarrel%HardHit%EVLAWhiff%K%BB%Regression Edge
LFJackson Chourio-1.07020.9355neutral0.34400.26500.475012.304791.6011.8025.1023.408.20-0.4857
1BJake Bauers-1.09871.3163neutral0.37100.25300.46701451.9092.1012.1029.802716.30-0.2857
CWilliam Contreras-1.05550.7396neutral0.33400.26100.44108.5044.1090.3013.2020.7014.709.500.1143
2BBrice Turang-1.05120.6822neutral0.34400.25500.42807.7041.6090.308.8023.1025.1013.20-0.4000
DHChristian Yelich-1.01680.2241neutral0.30800.23000.38509.6042.9088.90429.60279.800.0857
CFGarrett Mitchell-1.08361.1148neutral0.35300.26800.447011.7052.7093.202.2035.8031.5011.300.3714
SSCooper Pratt-1.00480.0641neutral0.31500.26600.36203.2027.40879.1021.80189.80-0.1429
RFSal Frelick-0.9660-0.4529neutral0.28100.24100.32402.3026.8085.709.8010.109.908.100.1714
3BJoey Ortiz-0.9858-0.1888neutral0.29700.24300.3460437.6089.206.4019.9019.808.40-0.6857

Home Batter Inputs

PosPlayerESPN RankOff FactorQualityRegressionxwOBAxBAxSLGBarrel%HardHit%EVLAWhiff%K%BB%Regression Edge
RFFernando Tatis Jr.-1.12121.6157neutral0.37900.29600.500012.7053.9092.905.3025.9018.509.100.6000
CFJackson Merrill-1.09221.2295neutral0.34700.27000.491012.4048.7091.5014.3027.6024.106.200.7714
3BManny Machado-1.04940.6585neutral0.32800.24300.42009.7043.6090.1014.5025.3021.3011.200.5143
1BTy France-1.03550.4740negative_batter_regression0.32700.24800.42109.1047.4091.5014.6028.1021.607.40-1.3143
CEthan Salas-0.9573-0.5694negative_batter_regression0.22700.18800.31603.3033.3090.1025.7019.4022.502.50-2
SSXander Bogaerts-1.03030.4040neutral0.32500.24800.37605.5042.3089.606.7023.101812.700.5429
LFDustin Harris-0.9964-0.0484neutral0.31400.27800.36001.7019.5085.2015.6019.3013.207.20-0.3429
DHSamad Taylor-0.9823-0.2355negative_batter_regression0.30900.25600.32803.6025.2085.90925.2025.7010.30-1.3429
2BJake Cronenworth-0.9549-0.6015neutral0.27500.21300.30803.9029.7087.2011.4021.3022.808.90-0.3429
Raw Savant Batter Quality JSON
{
  "home": {
    "applied": true,
    "offense_factor": 1.0244,
    "raw_average_factor": 1.0244,
    "team_espn_average_rank": null,
    "coverage_weight": 1.0,
    "covered_batters": 9,
    "missing_batters": 0,
    "players": [
      {
        "position": "RF",
        "player_id": "665487",
        "player_name": "Fernando Tatis Jr.",
        "offense_factor": 1.1212,
        "quality_score": 1.6157,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "665487",
          "espn_rank": null
        },
        "metrics": {
          "pa": 649.0,
          "k_percent": 18.5,
          "bb_percent": 9.1,
          "woba": 0.358,
          "xwoba": 0.379,
          "xba": 0.296,
          "xslg": 0.5,
          "sweet_spot_percent": 32.2,
          "barrel_batted_rate": 12.7,
          "hard_hit_percent": 53.9,
          "exit_velocity_avg": 92.9,
          "launch_angle_avg": 5.3,
          "whiff_percent": 25.9,
          "swing_percent": 46.1
        },
        "components": {
          "expected_quality": 1.7811,
          "regression_edge": 0.6,
          "xwoba_edge": 2.2857,
          "xba_edge": 1.7143,
          "xslg_edge": 1.9571,
          "barrel_edge": 1.3556,
          "hard_hit_edge": 2.3286,
          "exit_velocity_edge": 1.8,
          "sweet_spot_edge": -0.1833,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "CF",
        "player_id": "701538",
        "player_name": "Jackson Merrill",
        "offense_factor": 1.0922,
        "quality_score": 1.2295,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "701538",
          "espn_rank": null
        },
        "metrics": {
          "pa": 619.0,
          "k_percent": 24.1,
          "bb_percent": 6.2,
          "woba": 0.32,
          "xwoba": 0.347,
          "xba": 0.27,
          "xslg": 0.491,
          "sweet_spot_percent": 39.8,
          "barrel_batted_rate": 12.4,
          "hard_hit_percent": 48.7,
          "exit_velocity_avg": 91.5,
          "launch_angle_avg": 14.3,
          "whiff_percent": 27.6,
          "swing_percent": 56.1
        },
        "components": {
          "expected_quality": 1.3041,
          "regression_edge": 0.7714,
          "xwoba_edge": 1.3714,
          "xba_edge": 0.9714,
          "xslg_edge": 1.8286,
          "barrel_edge": 1.2889,
          "hard_hit_edge": 1.5857,
          "exit_velocity_edge": 1.24,
          "sweet_spot_edge": 1.0833,
          "launch_angle_hr_bonus": 0.2
        }
      },
      {
        "position": "3B",
        "player_id": "592518",
        "player_name": "Manny Machado",
        "offense_factor": 1.0494,
        "quality_score": 0.6585,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "592518",
          "espn_rank": null
        },
        "metrics": {
          "pa": 624.0,
          "k_percent": 21.3,
          "bb_percent": 11.2,
          "woba": 0.31,
          "xwoba": 0.328,
          "xba": 0.243,
          "xslg": 0.42,
          "sweet_spot_percent": 32.7,
          "barrel_batted_rate": 9.7,
          "hard_hit_percent": 43.6,
          "exit_velocity_avg": 90.1,
          "launch_angle_avg": 14.5,
          "whiff_percent": 25.3,
          "swing_percent": 47.8
        },
        "components": {
          "expected_quality": 0.682,
          "regression_edge": 0.5143,
          "xwoba_edge": 0.8286,
          "xba_edge": 0.2,
          "xslg_edge": 0.8143,
          "barrel_edge": 0.6889,
          "hard_hit_edge": 0.8571,
          "exit_velocity_edge": 0.68,
          "sweet_spot_edge": -0.1,
          "launch_angle_hr_bonus": 0.2
        }
      },
      {
        "position": "1B",
        "player_id": "664034",
        "player_name": "Ty France",
        "offense_factor": 1.0355,
        "quality_score": 0.474,
        "regression_flag": "negative_batter_regression",
        "espn_rank": {
          "available": false,
          "player_id": "664034",
          "espn_rank": null
        },
        "metrics": {
          "pa": 454.0,
          "k_percent": 21.6,
          "bb_percent": 7.4,
          "woba": 0.373,
          "xwoba": 0.327,
          "xba": 0.248,
          "xslg": 0.421,
          "sweet_spot_percent": 38.5,
          "barrel_batted_rate": 9.1,
          "hard_hit_percent": 47.4,
          "exit_velocity_avg": 91.5,
          "launch_angle_avg": 14.6,
          "whiff_percent": 28.1,
          "swing_percent": 54.3
        },
        "components": {
          "expected_quality": 0.7651,
          "regression_edge": -1.3143,
          "xwoba_edge": 0.8,
          "xba_edge": 0.3429,
          "xslg_edge": 0.8286,
          "barrel_edge": 0.5556,
          "hard_hit_edge": 1.4,
          "exit_velocity_edge": 1.24,
          "sweet_spot_edge": 0.8667,
          "launch_angle_hr_bonus": 0.2
        }
      },
      {
        "position": "C",
        "player_id": "806956",
        "player_name": "Ethan Salas",
        "offense_factor": 0.9573,
        "quality_score": -0.5694,
        "regression_flag": "negative_batter_regression",
        "espn_rank": {
          "available": false,
          "player_id": "806956",
          "espn_rank": null
        },
        "metrics": {
          "pa": 20.0,
          "k_percent": 22.5,
          "bb_percent": 2.5,
          "woba": 0.316,
          "xwoba": 0.227,
          "xba": 0.188,
          "xslg": 0.316,
          "sweet_spot_percent": 23.3,
          "barrel_batted_rate": 3.3,
          "hard_hit_percent": 33.3,
          "exit_velocity_avg": 90.1,
          "launch_angle_avg": 25.7,
          "whiff_percent": 19.4,
          "swing_percent": 48.3
        },
        "components": {
          "expected_quality": -1.1458,
          "regression_edge": -2.0,
          "xwoba_edge": -2.0571,
          "xba_edge": -1.3714,
          "xslg_edge": -0.6714,
          "barrel_edge": -0.7333,
          "hard_hit_edge": -0.6143,
          "exit_velocity_edge": 0.68,
          "sweet_spot_edge": -1.6667,
          "launch_angle_hr_bonus": 0.45
        }
      },
      {
        "position": "SS",
        "player_id": "593428",
        "player_name": "Xander Bogaerts",
        "offense_factor": 1.0303,
        "quality_score": 0.404,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "593428",
          "espn_rank": null
        },
        "metrics": {
          "pa": 568.0,
          "k_percent": 18.0,
          "bb_percent": 12.7,
          "woba": 0.306,
          "xwoba": 0.325,
          "xba": 0.248,
          "xslg": 0.376,
          "sweet_spot_percent": 27.9,
          "barrel_batted_rate": 5.5,
          "hard_hit_percent": 42.3,
          "exit_velocity_avg": 89.6,
          "launch_angle_avg": 6.7,
          "whiff_percent": 23.1,
          "swing_percent": 41.5
        },
        "components": {
          "expected_quality": 0.3813,
          "regression_edge": 0.5429,
          "xwoba_edge": 0.7429,
          "xba_edge": 0.3429,
          "xslg_edge": 0.1857,
          "barrel_edge": -0.2444,
          "hard_hit_edge": 0.6714,
          "exit_velocity_edge": 0.48,
          "sweet_spot_edge": -0.9,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "LF",
        "player_id": "687957",
        "player_name": "Dustin Harris",
        "offense_factor": 0.9964,
        "quality_score": -0.0484,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "687957",
          "espn_rank": null
        },
        "metrics": {
          "pa": 105.0,
          "k_percent": 13.2,
          "bb_percent": 7.2,
          "woba": 0.326,
          "xwoba": 0.314,
          "xba": 0.278,
          "xslg": 0.36,
          "sweet_spot_percent": 39.8,
          "barrel_batted_rate": 1.7,
          "hard_hit_percent": 19.5,
          "exit_velocity_avg": 85.2,
          "launch_angle_avg": 15.6,
          "whiff_percent": 19.3,
          "swing_percent": 48.7
        },
        "components": {
          "expected_quality": -0.0621,
          "regression_edge": -0.3429,
          "xwoba_edge": 0.4286,
          "xba_edge": 1.2,
          "xslg_edge": -0.0429,
          "barrel_edge": -1.0889,
          "hard_hit_edge": -2.5,
          "exit_velocity_edge": -1.28,
          "sweet_spot_edge": 1.0833,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "DH",
        "player_id": "669392",
        "player_name": "Samad Taylor",
        "offense_factor": 0.9823,
        "quality_score": -0.2355,
        "regression_flag": "negative_batter_regression",
        "espn_rank": {
          "available": false,
          "player_id": "669392",
          "espn_rank": null
        },
        "metrics": {
          "pa": 143.0,
          "k_percent": 25.7,
          "bb_percent": 10.3,
          "woba": 0.356,
          "xwoba": 0.309,
          "xba": 0.256,
          "xslg": 0.328,
          "sweet_spot_percent": 33.3,
          "barrel_batted_rate": 3.6,
          "hard_hit_percent": 25.2,
          "exit_velocity_avg": 85.9,
          "launch_angle_avg": 9.0,
          "whiff_percent": 25.2,
          "swing_percent": 44.1
        },
        "components": {
          "expected_quality": -0.2026,
          "regression_edge": -1.3429,
          "xwoba_edge": 0.2857,
          "xba_edge": 0.5714,
          "xslg_edge": -0.5,
          "barrel_edge": -0.6667,
          "hard_hit_edge": -1.7714,
          "exit_velocity_edge": -1.0,
          "sweet_spot_edge": 0.0,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "2B",
        "player_id": "630105",
        "player_name": "Jake Cronenworth",
        "offense_factor": 0.9549,
        "quality_score": -0.6015,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "630105",
          "espn_rank": null
        },
        "metrics": {
          "pa": 383.0,
          "k_percent": 22.8,
          "bb_percent": 8.9,
          "woba": 0.287,
          "xwoba": 0.275,
          "xba": 0.213,
          "xslg": 0.308,
          "sweet_spot_percent": 30.7,
          "barrel_batted_rate": 3.9,
          "hard_hit_percent": 29.7,
          "exit_velocity_avg": 87.2,
          "launch_angle_avg": 11.4,
          "whiff_percent": 21.3,
          "swing_percent": 45.8
        },
        "components": {
          "expected_quality": -0.6436,
          "regression_edge": -0.3429,
          "xwoba_edge": -0.6857,
          "xba_edge": -0.6571,
          "xslg_edge": -0.7857,
          "barrel_edge": -0.6,
          "hard_hit_edge": -1.1286,
          "exit_velocity_edge": -0.48,
          "sweet_spot_edge": -0.4333,
          "launch_angle_hr_bonus": 0.0
        }
      }
    ],
    "source": "all_players_stats.csv embedded Savant batter features"
  },
  "away": {
    "applied": true,
    "offense_factor": 1.037,
    "raw_average_factor": 1.037,
    "team_espn_average_rank": null,
    "coverage_weight": 1.0,
    "covered_batters": 9,
    "missing_batters": 0,
    "players": [
      {
        "position": "LF",
        "player_id": "694192",
        "player_name": "Jackson Chourio",
        "offense_factor": 1.0702,
        "quality_score": 0.9355,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "694192",
          "espn_rank": null
        },
        "metrics": {
          "pa": 523.0,
          "k_percent": 23.4,
          "bb_percent": 8.2,
          "woba": 0.361,
          "xwoba": 0.344,
          "xba": 0.265,
          "xslg": 0.475,
          "sweet_spot_percent": 33.3,
          "barrel_batted_rate": 12.3,
          "hard_hit_percent": 47.0,
          "exit_velocity_avg": 91.6,
          "launch_angle_avg": 11.8,
          "whiff_percent": 25.1,
          "swing_percent": 47.8
        },
        "components": {
          "expected_quality": 1.1669,
          "regression_edge": -0.4857,
          "xwoba_edge": 1.2857,
          "xba_edge": 0.8286,
          "xslg_edge": 1.6,
          "barrel_edge": 1.2667,
          "hard_hit_edge": 1.3429,
          "exit_velocity_edge": 1.28,
          "sweet_spot_edge": 0.0,
          "launch_angle_hr_bonus": 0.2
        }
      },
      {
        "position": "1B",
        "player_id": "641343",
        "player_name": "Jake Bauers",
        "offense_factor": 1.0987,
        "quality_score": 1.3163,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "641343",
          "espn_rank": null
        },
        "metrics": {
          "pa": 526.0,
          "k_percent": 27.0,
          "bb_percent": 16.3,
          "woba": 0.381,
          "xwoba": 0.371,
          "xba": 0.253,
          "xslg": 0.467,
          "sweet_spot_percent": 38.6,
          "barrel_batted_rate": 14.0,
          "hard_hit_percent": 51.9,
          "exit_velocity_avg": 92.1,
          "launch_angle_avg": 12.1,
          "whiff_percent": 29.8,
          "swing_percent": 40.6
        },
        "components": {
          "expected_quality": 1.5771,
          "regression_edge": -0.2857,
          "xwoba_edge": 2.0571,
          "xba_edge": 0.4857,
          "xslg_edge": 1.4857,
          "barrel_edge": 1.6444,
          "hard_hit_edge": 2.0429,
          "exit_velocity_edge": 1.48,
          "sweet_spot_edge": 0.8833,
          "launch_angle_hr_bonus": 0.2
        }
      },
      {
        "position": "C",
        "player_id": "661388",
        "player_name": "William Contreras",
        "offense_factor": 1.0555,
        "quality_score": 0.7396,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "661388",
          "espn_rank": null
        },
        "metrics": {
          "pa": 590.0,
          "k_percent": 14.7,
          "bb_percent": 9.5,
          "woba": 0.33,
          "xwoba": 0.334,
          "xba": 0.261,
          "xslg": 0.441,
          "sweet_spot_percent": 33.3,
          "barrel_batted_rate": 8.5,
          "hard_hit_percent": 44.1,
          "exit_velocity_avg": 90.3,
          "launch_angle_avg": 13.2,
          "whiff_percent": 20.7,
          "swing_percent": 47.2
        },
        "components": {
          "expected_quality": 0.8414,
          "regression_edge": 0.1143,
          "xwoba_edge": 1.0,
          "xba_edge": 0.7143,
          "xslg_edge": 1.1143,
          "barrel_edge": 0.4222,
          "hard_hit_edge": 0.9286,
          "exit_velocity_edge": 0.76,
          "sweet_spot_edge": 0.0,
          "launch_angle_hr_bonus": 0.2
        }
      },
      {
        "position": "2B",
        "player_id": "668930",
        "player_name": "Brice Turang",
        "offense_factor": 1.0512,
        "quality_score": 0.6822,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "668930",
          "espn_rank": null
        },
        "metrics": {
          "pa": 619.0,
          "k_percent": 25.1,
          "bb_percent": 13.2,
          "woba": 0.358,
          "xwoba": 0.344,
          "xba": 0.255,
          "xslg": 0.428,
          "sweet_spot_percent": 38.5,
          "barrel_batted_rate": 7.7,
          "hard_hit_percent": 41.6,
          "exit_velocity_avg": 90.3,
          "launch_angle_avg": 8.8,
          "whiff_percent": 23.1,
          "swing_percent": 43.2
        },
        "components": {
          "expected_quality": 0.8584,
          "regression_edge": -0.4,
          "xwoba_edge": 1.2857,
          "xba_edge": 0.5429,
          "xslg_edge": 0.9286,
          "barrel_edge": 0.2444,
          "hard_hit_edge": 0.5714,
          "exit_velocity_edge": 0.76,
          "sweet_spot_edge": 0.8667,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "DH",
        "player_id": "592885",
        "player_name": "Christian Yelich",
        "offense_factor": 1.0168,
        "quality_score": 0.2241,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "592885",
          "espn_rank": null
        },
        "metrics": {
          "pa": 456.0,
          "k_percent": 27.0,
          "bb_percent": 9.8,
          "woba": 0.305,
          "xwoba": 0.308,
          "xba": 0.23,
          "xslg": 0.385,
          "sweet_spot_percent": 29.5,
          "barrel_batted_rate": 9.6,
          "hard_hit_percent": 42.9,
          "exit_velocity_avg": 88.9,
          "launch_angle_avg": 4.0,
          "whiff_percent": 29.6,
          "swing_percent": 45.4
        },
        "components": {
          "expected_quality": 0.2466,
          "regression_edge": 0.0857,
          "xwoba_edge": 0.2571,
          "xba_edge": -0.1714,
          "xslg_edge": 0.3143,
          "barrel_edge": 0.6667,
          "hard_hit_edge": 0.7571,
          "exit_velocity_edge": 0.2,
          "sweet_spot_edge": -0.6333,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "CF",
        "player_id": "669003",
        "player_name": "Garrett Mitchell",
        "offense_factor": 1.0836,
        "quality_score": 1.1148,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "669003",
          "espn_rank": null
        },
        "metrics": {
          "pa": 480.0,
          "k_percent": 31.5,
          "bb_percent": 11.3,
          "woba": 0.34,
          "xwoba": 0.353,
          "xba": 0.268,
          "xslg": 0.447,
          "sweet_spot_percent": 31.5,
          "barrel_batted_rate": 11.7,
          "hard_hit_percent": 52.7,
          "exit_velocity_avg": 93.2,
          "launch_angle_avg": 2.2,
          "whiff_percent": 35.8,
          "swing_percent": 43.9
        },
        "components": {
          "expected_quality": 1.2358,
          "regression_edge": 0.3714,
          "xwoba_edge": 1.5429,
          "xba_edge": 0.9143,
          "xslg_edge": 1.2,
          "barrel_edge": 1.1333,
          "hard_hit_edge": 2.1571,
          "exit_velocity_edge": 1.92,
          "sweet_spot_edge": -0.3,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "SS",
        "player_id": "806198",
        "player_name": "Cooper Pratt",
        "offense_factor": 1.0048,
        "quality_score": 0.0641,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "806198",
          "espn_rank": null
        },
        "metrics": {
          "pa": 232.0,
          "k_percent": 18.0,
          "bb_percent": 9.8,
          "woba": 0.32,
          "xwoba": 0.315,
          "xba": 0.266,
          "xslg": 0.362,
          "sweet_spot_percent": 41.1,
          "barrel_batted_rate": 3.2,
          "hard_hit_percent": 27.4,
          "exit_velocity_avg": 87.0,
          "launch_angle_avg": 9.1,
          "whiff_percent": 21.8,
          "swing_percent": 46.4
        },
        "components": {
          "expected_quality": 0.0977,
          "regression_edge": -0.1429,
          "xwoba_edge": 0.4571,
          "xba_edge": 0.8571,
          "xslg_edge": -0.0143,
          "barrel_edge": -0.7556,
          "hard_hit_edge": -1.4571,
          "exit_velocity_edge": -0.56,
          "sweet_spot_edge": 1.3,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "RF",
        "player_id": "686217",
        "player_name": "Sal Frelick",
        "offense_factor": 0.966,
        "quality_score": -0.4529,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "686217",
          "espn_rank": null
        },
        "metrics": {
          "pa": 356.0,
          "k_percent": 9.9,
          "bb_percent": 8.1,
          "woba": 0.275,
          "xwoba": 0.281,
          "xba": 0.241,
          "xslg": 0.324,
          "sweet_spot_percent": 27.4,
          "barrel_batted_rate": 2.3,
          "hard_hit_percent": 26.8,
          "exit_velocity_avg": 85.7,
          "launch_angle_avg": 9.8,
          "whiff_percent": 10.1,
          "swing_percent": 42.8
        },
        "components": {
          "expected_quality": -0.5545,
          "regression_edge": 0.1714,
          "xwoba_edge": -0.5143,
          "xba_edge": 0.1429,
          "xslg_edge": -0.5571,
          "barrel_edge": -0.9556,
          "hard_hit_edge": -1.5429,
          "exit_velocity_edge": -1.08,
          "sweet_spot_edge": -0.9833,
          "launch_angle_hr_bonus": 0.0
        }
      },
      {
        "position": "3B",
        "player_id": "687401",
        "player_name": "Joey Ortiz",
        "offense_factor": 0.9858,
        "quality_score": -0.1888,
        "regression_flag": "neutral",
        "espn_rank": {
          "available": false,
          "player_id": "687401",
          "espn_rank": null
        },
        "metrics": {
          "pa": 378.0,
          "k_percent": 19.8,
          "bb_percent": 8.4,
          "woba": 0.321,
          "xwoba": 0.297,
          "xba": 0.243,
          "xslg": 0.346,
          "sweet_spot_percent": 29.2,
          "barrel_batted_rate": 4.0,
          "hard_hit_percent": 37.6,
          "exit_velocity_avg": 89.2,
          "launch_angle_avg": 6.4,
          "whiff_percent": 19.9,
          "swing_percent": 44.8
        },
        "components": {
          "expected_quality": -0.1079,
          "regression_edge": -0.6857,
          "xwoba_edge": -0.0571,
          "xba_edge": 0.2,
          "xslg_edge": -0.2429,
          "barrel_edge": -0.5778,
          "hard_hit_edge": 0.0,
          "exit_velocity_edge": 0.32,
          "sweet_spot_edge": -0.6833,
          "launch_angle_hr_bonus": 0.0
        }
      }
    ],
    "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 MILDustin MayTrue--0.172011.01460.99370.97801.0567neutral0.32300.317023.208.10237.8044.30
Home SDNick PivettaTrue-0.15610.45000.98671.01410.96851.0105neutral0.27700.2490305.7022.8010.1038.20

Pitch Movement And Arsenal

TeamPitcherMovement AvailablePrimary PitchPitchesVeloSpinAxisHBIVBDropRel XRel ZExtensionArm AngleMovement Score
Away MILDustin MayTrueNone7992.672537000000000.1569
Home SDNick PivettaTrueNone5989.21243700000000-0.0365
Run FactorValue
away_runs_vs_home_pitcher0.9976
home_runs_vs_away_pitcher1.0035
home_pitcher_starter_only_factor0.9940
away_pitcher_starter_only_factor1.0146
home_pitcher_workload_share0.5556
away_pitcher_workload_share0.4815
home_pitcher_quality_edge0.1695
Raw Savant Pitcher Quality JSON
{
  "applied": true,
  "home_pitcher": {
    "available": true,
    "pitcher_id": "601713",
    "player_name": "",
    "source": "all_players_stats.csv embedded Savant pitcher features",
    "source_url": null,
    "metrics": {
      "pa": 100.0,
      "k_percent": 30.0,
      "bb_percent": 5.7,
      "woba": 0.249,
      "xwoba": 0.277,
      "sweet_spot_percent": 34.8,
      "barrel_batted_rate": 10.1,
      "hard_hit_percent": 38.2,
      "avg_best_speed": 80.1978,
      "avg_hyper_speed": 93.7991,
      "whiff_percent": 22.8,
      "swing_percent": 47.8
    },
    "league_medians": {
      "pa": 134.0,
      "k_percent": 22.1,
      "bb_percent": 9.2,
      "woba": 0.315,
      "xwoba": 0.312,
      "sweet_spot_percent": 33.3,
      "barrel_batted_rate": 7.2,
      "hard_hit_percent": 37.9,
      "avg_best_speed": 77.6432,
      "avg_hyper_speed": 93.9005,
      "whiff_percent": 25.2,
      "swing_percent": 47.4
    },
    "components": {
      "contact_quality": 0.5062,
      "command_and_miss": 0.5629,
      "regression_edge": -0.8,
      "xwoba_edge": 1.0,
      "barrel_edge": -0.6444,
      "hard_hit_edge": -0.0429,
      "whiff_edge": -0.3429,
      "bb_edge": 0.875,
      "pitch_design_score": -0.0365
    },
    "pitch_movement_profile": {
      "available": true,
      "pitcher_id": "601713",
      "player_name": null,
      "source": "all_players_stats.csv embedded Savant pitcher movement features",
      "total_pitches": 59,
      "primary_pitch": {
        "pitch_type": null,
        "pitch_name": null,
        "pitches": 59,
        "pitch_usage": 0.0,
        "release_speed": 89.21211734682227,
        "release_spin_rate": 2437.193161283574,
        "spin_axis": null,
        "horizontal_break_inches": 0.0,
        "induced_vertical_break_inches": 0.0,
        "vertical_break_with_gravity_inches": null,
        "release_pos_x": null,
        "release_pos_z": null,
        "release_extension": 0.0,
        "arm_angle": 0.0,
        "whiff_percent": 0.0,
        "xwoba": 0.0,
        "hard_hit_percent": 0.0
      },
      "pitch_mix": [
        {
          "pitch_type": null,
          "pitch_name": null,
          "pitches": 59,
          "pitch_usage": 0.0,
          "release_speed": 89.21211734682227,
          "release_spin_rate": 2437.193161283574,
          "spin_axis": null,
          "horizontal_break_inches": 0.0,
          "induced_vertical_break_inches": 0.0,
          "vertical_break_with_gravity_inches": null,
          "release_pos_x": null,
          "release_pos_z": null,
          "release_extension": 0.0,
          "arm_angle": 0.0,
          "whiff_percent": 0.0,
          "xwoba": 0.0,
          "hard_hit_percent": 0.0
        }
      ],
      "summary": {
        "release_speed": 89.2121,
        "release_spin_rate": 2437.1932,
        "spin_axis": 0.0,
        "horizontal_break_inches": 0.0,
        "induced_vertical_break_inches": 0.0,
        "vertical_break_with_gravity_inches": 0.0,
        "release_pos_x": 0.0,
        "release_pos_z": 0.0,
        "release_extension": 0.0,
        "arm_angle": 0.0,
        "whiff_percent": 0.0,
        "xwoba": 0.0,
        "hard_hit_percent": 0.0
      },
      "components": {
        "movement_score": -0.0365,
        "horizontal_break_edge": 0.0,
        "induced_vertical_break_edge": 0.0,
        "extension_edge": 0.0,
        "velocity_edge": -0.2608,
        "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.1561,
    "sample_weight": 0.45,
    "run_prevention_factor": 0.9867,
    "strikeout_factor": 1.0141,
    "walk_factor": 0.9685,
    "homer_factor": 1.0105,
    "woba_minus_xwoba": -0.028,
    "regression_flag": "neutral",
    "espn_rank": {
      "available": false,
      "player_id": "601713",
      "espn_rank": null
    }
  },
  "away_pitcher": {
    "available": true,
    "pitcher_id": "669160",
    "player_name": "",
    "source": "all_players_stats.csv embedded Savant pitcher features",
    "source_url": null,
    "metrics": {
      "pa": 581.0,
      "k_percent": 23.2,
      "bb_percent": 8.1,
      "woba": 0.317,
      "xwoba": 0.323,
      "sweet_spot_percent": 36.1,
      "barrel_batted_rate": 7.8,
      "hard_hit_percent": 44.3,
      "avg_best_speed": 79.2854,
      "avg_hyper_speed": 94.6495,
      "whiff_percent": 23.0,
      "swing_percent": 47.6
    },
    "league_medians": {
      "pa": 134.0,
      "k_percent": 22.1,
      "bb_percent": 9.2,
      "woba": 0.315,
      "xwoba": 0.312,
      "sweet_spot_percent": 33.3,
      "barrel_batted_rate": 7.2,
      "hard_hit_percent": 37.9,
      "avg_best_speed": 77.6432,
      "avg_hyper_speed": 93.9005,
      "whiff_percent": 25.2,
      "swing_percent": 47.4
    },
    "components": {
      "contact_quality": -0.3062,
      "command_and_miss": 0.0157,
      "regression_edge": -0.1714,
      "xwoba_edge": -0.3143,
      "barrel_edge": -0.1333,
      "hard_hit_edge": -0.9143,
      "whiff_edge": -0.3143,
      "bb_edge": 0.275,
      "pitch_design_score": 0.1569
    },
    "pitch_movement_profile": {
      "available": true,
      "pitcher_id": "669160",
      "player_name": null,
      "source": "all_players_stats.csv embedded Savant pitcher movement features",
      "total_pitches": 79,
      "primary_pitch": {
        "pitch_type": null,
        "pitch_name": null,
        "pitches": 79,
        "pitch_usage": 0.0,
        "release_speed": 92.66624874445156,
        "release_spin_rate": 2536.673286155761,
        "spin_axis": null,
        "horizontal_break_inches": 0.0,
        "induced_vertical_break_inches": 0.0,
        "vertical_break_with_gravity_inches": null,
        "release_pos_x": null,
        "release_pos_z": null,
        "release_extension": 0.0,
        "arm_angle": 0.0,
        "whiff_percent": 0.0,
        "xwoba": 0.0,
        "hard_hit_percent": 0.0
      },
      "pitch_mix": [
        {
          "pitch_type": null,
          "pitch_name": null,
          "pitches": 79,
          "pitch_usage": 0.0,
          "release_speed": 92.66624874445156,
          "release_spin_rate": 2536.673286155761,
          "spin_axis": null,
          "horizontal_break_inches": 0.0,
          "induced_vertical_break_inches": 0.0,
          "vertical_break_with_gravity_inches": null,
          "release_pos_x": null,
          "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.6662,
        "release_spin_rate": 2536.6733,
        "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.1569,
        "horizontal_break_edge": 0.0,
        "induced_vertical_break_edge": 0.0,
        "extension_edge": 0.0,
        "velocity_edge": 1.1208,
        "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.172,
    "sample_weight": 1.0,
    "run_prevention_factor": 1.0146,
    "strikeout_factor": 0.9937,
    "walk_factor": 0.978,
    "homer_factor": 1.0567,
    "woba_minus_xwoba": -0.006,
    "regression_flag": "neutral",
    "espn_rank": {
      "available": false,
      "player_id": "669160",
      "espn_rank": null
    }
  },
  "run_factors": {
    "away_runs_vs_home_pitcher": 0.9976,
    "home_runs_vs_away_pitcher": 1.0035,
    "home_pitcher_starter_only_factor": 0.994,
    "away_pitcher_starter_only_factor": 1.0146,
    "home_pitcher_workload_share": 0.5556,
    "away_pitcher_workload_share": 0.4815,
    "home_pitcher_quality_edge": 0.1695
  },
  "score_before": {
    "away_runs": 3.0,
    "home_runs": 6.0
  },
  "score_after": {
    "away_runs": 2.9928,
    "home_runs": 6.0213,
    "home_win_probability": 0.7605
  },
  "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 MIL8-20.8004.403145Waveragestrong
Home SD8-20.8006.304.50182Whotaverage

Season Run Differential

TeamRecordWin %Run DiffRD/GameAvailable
Away MIL103-590.6362141.321True
Home SD91-710.562410.253True
Signal---1.068-0.723applied=True

Recent Head-to-Head

DateMatchupScoreWinnerMarginType
2026-08-12MIL @ SD3 - 4SD1close
2026-08-11MIL @ SD2 - 11SD9blowout
2026-08-10MIL @ SD2 - 3SD1close
2026-05-14SD @ MIL1 - 7MIL6blowout
2026-05-13SD @ MIL3 - 1SD2close

Player/Game Reconciliation

LayerABHRHRRBIBBSO
Game target MIL--4----
Game target SD--5----
Player finalized MIL36841435
Player finalized SD341050527
Player model fractional MIL33.388.104.950.985.003.538.72
Player model fractional SD32.918.564.341.004.132.897.51
Simulation box MIL36841435
Simulation box SD341050527

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 MILStarterDustin May454825.001.35True
Away MILLong RelieverJoJo Romero101102.740.97True
Away MILMiddle Reliever (High Leverage)Antonio Senzatela302103.231.55True
Home SDStarterNick Pivetta432413.001.14True
Home SDMiddle Reliever (High Leverage)Bradgley Rodriguez1.1001211.520.94True
Home SDMiddle Reliever (High Leverage)Adrian Morejon1.1011102.951.14True
Home SDSetup ManJason Adam101014.061.14True
Home SDCloserMason Miller1.1000106.111.59True
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
homeSDpitcherStarterNick Pivettaworse42204predicted_SO-5.0000deboostworse
awayMILpitcherStarterDustin Mayworse53223predicted_H4.0000boostworse
awayMILpitcherMiddle Reliever (High Leverage)Antonio Senzatelabetter52350predicted_IP2.9000boostbetter
awayMILbatterSSCooper Prattworse103728predicted_SO2.3330boostworse
homeSDpitcherMiddle Reliever (High Leverage)Adrian Morejonbetter41331predicted_BB-2.0000deboostbetter
homeSDbatter3BManny Machadoworse123938predicted_AB-1.7500deboostworse
awayMILbatterCFGarrett Mitchellbetter94554predicted_RBI1.6800boostbetter
homeSDbatterLFDustin Harrisboosted106455predicted_RBI1.5800boostbetter
homeSDbatterCEthan Salasworse114738predicted_AB1.5000boostbetter
awayMILbatterLFJackson Chourioworse12111012predicted_H-1.4600deboostworse
homeSDbatterCFJackson Merrillworse113829predicted_AB-1.4000deboostworse
homeSDbatter1BTy Franceworse12210111predicted_H-1.1800deboostworse
awayMILbatter1BJake Bauersbetter126675predicted_H1.1500boostbetter
awayMILbatterDHChristian Yelichworse103746predicted_SO-1.1380deboostbetter
awayMILbatter2BBrice Turangworse102837predicted_SO-1.1210deboostbetter
awayMILbatterCWilliam Contrerasworse101928predicted_H-1.0700deboostworse
homeSDbatterDHSamad Taylorworse102837predicted_H1.0200boostbetter
awayMILpitcherLong RelieverJoJo Romeroworse11001predicted_H1.0000boostworse
homeSDpitcherMiddle Reliever (High Leverage)Bradgley Rodriguezneutral42222predicted_BB-1.0000deboostbetter
homeSDpitcherSetup ManJason Adambetter32121predicted_BB1.0000boostworse
homeSDpitcherCloserMason Millerbetter41331predicted_ER-1.0000deboostbetter
homeSDbatter2BJake Cronenworthbetter126675predicted_SO-0.8930deboostbetter
awayMILbatterRFSal Frelickdeboosted104655predicted_AB0.8790boostbetter
awayMILbatter3BJoey Ortizworse112938predicted_AB0.8630boostbetter
homeSDbatterSSXander Bogaertsworse113847predicted_SO-0.7130deboostbetter
homeSDbatterRFFernando Tatis Jr.worse103728predicted_RBI0.4500boostbetter

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

Away Team: MIL

Away Pitcher Deep Analysis

FieldValue
PitcherDustin May
RoleStarter
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score-0.1720
ESPN Rank-
Movement AvailableTrue
Primary Pitch-
Movement Score0.1569
Avg Velo92.6662
Avg Spin2536.6733
HB Inches0
IVB Inches0
Release Extension0
Pre IP4
Pre ER5
Pre H8
Pre BB2
Pre SO4
Season ERA4.6957
Season WHIP1.3181
Role Avg IP4.6990
Recent Avg IP3.4000
Last Start IP3
Team Form Snapshot
{
  "team": {
    "team": "MIL",
    "games": 162,
    "wins": 103,
    "losses": 59,
    "win_pct": 0.6358,
    "runs_scored": 832.0,
    "runs_allowed": 618.0,
    "run_differential": 214.0,
    "run_differential_per_game": 1.321,
    "avg_runs_scored": 5.1358,
    "avg_runs_allowed": 3.8148,
    "offense_index": 1.1441,
    "defense_index": 1.1767,
    "current_streak": "W5",
    "recent": {
      "games": 10,
      "wins": 8,
      "losses": 2,
      "win_pct": 0.8,
      "avg_runs_scored": 4.4,
      "avg_runs_allowed": 3.0,
      "run_differential": 14.0
    },
    "available": true,
    "quality_score": 0.3823
  },
  "opponent": {
    "team": "SD",
    "games": 162,
    "wins": 91,
    "losses": 71,
    "win_pct": 0.5617,
    "runs_scored": 722.0,
    "runs_allowed": 681.0,
    "run_differential": 41.0,
    "run_differential_per_game": 0.2531,
    "avg_runs_scored": 4.4568,
    "avg_runs_allowed": 4.2037,
    "offense_index": 0.9928,
    "defense_index": 1.0679,
    "current_streak": "W2",
    "recent": {
      "games": 10,
      "wins": 8,
      "losses": 2,
      "win_pct": 0.8,
      "avg_runs_scored": 6.3,
      "avg_runs_allowed": 4.5,
      "run_differential": 18.0
    },
    "available": true,
    "quality_score": 0.1885
  },
  "method": "team_form_snapshot",
  "role": "pitcher",
  "edges": {
    "quality_edge": 0.1938,
    "offense_edge": 0.1441,
    "opponent_offense_edge": -0.0072,
    "defense_strength": 0.1767,
    "opponent_defense_weakness": -0.0679,
    "recent_win_pct_edge": 0.0
  },
  "player_factors": {
    "ip": 1.0133,
    "run_prevention": 0.9715,
    "strikeout": 1.0064
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "669160",
    "profile": {
      "available": true,
      "pitcher_id": "669160",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 581.0,
        "k_percent": 23.2,
        "bb_percent": 8.1,
        "woba": 0.317,
        "xwoba": 0.323,
        "sweet_spot_percent": 36.1,
        "barrel_batted_rate": 7.8,
        "hard_hit_percent": 44.3,
        "avg_best_speed": 79.2854,
        "avg_hyper_speed": 94.6495,
        "whiff_percent": 23.0,
        "swing_percent": 47.6
      },
      "league_medians": {
        "pa": 134.0,
        "k_percent": 22.1,
        "bb_percent": 9.2,
        "woba": 0.315,
        "xwoba": 0.312,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6432,
        "avg_hyper_speed": 93.9005,
        "whiff_percent": 25.2,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": -0.3062,
        "command_and_miss": 0.0157,
        "regression_edge": -0.1714,
        "xwoba_edge": -0.3143,
        "barrel_edge": -0.1333,
        "hard_hit_edge": -0.9143,
        "whiff_edge": -0.3143,
        "bb_edge": 0.275,
        "pitch_design_score": 0.1569
      },
      "quality_score": -0.172,
      "sample_weight": 1.0,
      "run_prevention_factor": 1.0146,
      "strikeout_factor": 0.9937,
      "walk_factor": 0.978,
      "homer_factor": 1.0567,
      "woba_minus_xwoba": -0.006,
      "regression_flag": "neutral",
      "espn_rank": {
        "available": false,
        "player_id": "669160",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 2.0,
        "factor": 1.0146,
        "adjusted": 2
      },
      "predicted_H": {
        "original": 4.0,
        "factor": 1.0146,
        "adjusted": 4
      },
      "predicted_BB": {
        "original": 1.0,
        "factor": 0.978,
        "adjusted": 1
      },
      "predicted_HR": {
        "original": 1.0,
        "factor": 1.0567,
        "adjusted": 1
      },
      "predicted_SO": {
        "original": 5.0,
        "factor": 0.9937,
        "adjusted": 5
      }
    }
  },
  "club_form": "game.<side>_team.predicted_performance.team_form"
}
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": 36.2,
    "ER": 23,
    "H": 37,
    "BB": 15,
    "SO": 38,
    "HR": 7,
    "ERA": 5.645454545454545,
    "WHIP": 1.418181818181818,
    "K9": 9.327272727272726,
    "HR9": 1.718181818181818,
    "games_pitched": 10,
    "quality_starts": 3,
    "dominant_form": false,
    "struggling_form": false
  },
  "fielding": {
    "errors": 0,
    "assists": 0,
    "games_fielded": 10,
    "error_prone": false
  },
  "games_count": 10,
  "latest_game_date": "2026-09-26T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": true,
  "pitcher_id": "669160",
  "player_name": null,
  "source": "all_players_stats.csv embedded Savant pitcher movement features",
  "total_pitches": 79,
  "primary_pitch": {
    "pitch_type": null,
    "pitch_name": null,
    "pitches": 79,
    "pitch_usage": 0.0,
    "release_speed": 92.66624874445156,
    "release_spin_rate": 2536.673286155761,
    "spin_axis": null,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": null,
    "release_pos_x": null,
    "release_pos_z": null,
    "release_extension": 0.0,
    "arm_angle": 0.0,
    "whiff_percent": 0.0,
    "xwoba": 0.0,
    "hard_hit_percent": 0.0
  },
  "pitch_mix": [
    {
      "pitch_type": null,
      "pitch_name": null,
      "pitches": 79,
      "pitch_usage": 0.0,
      "release_speed": 92.66624874445156,
      "release_spin_rate": 2536.673286155761,
      "spin_axis": null,
      "horizontal_break_inches": 0.0,
      "induced_vertical_break_inches": 0.0,
      "vertical_break_with_gravity_inches": null,
      "release_pos_x": null,
      "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.6662,
    "release_spin_rate": 2536.6733,
    "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.1569,
    "horizontal_break_edge": 0.0,
    "induced_vertical_break_edge": 0.0,
    "extension_edge": 0.0,
    "velocity_edge": 1.1208,
    "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": 31.0,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.8611,
    "prior_weight": 0.1389
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "669160",
  "report_date": "20261006",
  "season_year": 2026,
  "rows_used": 31,
  "reference_playing_time": 4.333,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 17.0,
        "ER": 9.0,
        "R": 9.0,
        "H": 17.0,
        "BB": 5.0,
        "SO": 22.0,
        "HR": 4.0,
        "BF": 74.0,
        "Pitches": 304.0
      },
      "per_game": {
        "IP": 3.1,
        "ER": 1.8,
        "R": 1.8,
        "H": 3.4,
        "BB": 1.0,
        "SO": 4.4,
        "HR": 0.8,
        "BF": 14.8,
        "Pitches": 60.8
      },
      "rates": {
        "ERA": 4.7647,
        "WHIP": 1.2941,
        "ER_per_IP": 0.52941,
        "H_per_IP": 1.0,
        "BB_per_IP": 0.29412,
        "SO_per_IP": 1.29412,
        "HR_per_IP": 0.23529
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 36.2,
        "ER": 23.0,
        "R": 23.0,
        "H": 37.0,
        "BB": 15.0,
        "SO": 38.0,
        "HR": 7.0,
        "BF": 162.0,
        "Pitches": 648.0
      },
      "per_game": {
        "IP": 3.2,
        "ER": 2.3,
        "R": 2.3,
        "H": 3.7,
        "BB": 1.5,
        "SO": 3.8,
        "HR": 0.7,
        "BF": 16.2,
        "Pitches": 64.8
      },
      "rates": {
        "ERA": 5.6455,
        "WHIP": 1.4182,
        "ER_per_IP": 0.62727,
        "H_per_IP": 1.00909,
        "BB_per_IP": 0.40909,
        "SO_per_IP": 1.03636,
        "HR_per_IP": 0.19091
      }
    },
    "season": {
      "games": 31,
      "totals": {
        "IP": 145.2,
        "ER": 76.0,
        "R": 79.0,
        "H": 142.0,
        "BB": 50.0,
        "SO": 144.0,
        "HR": 14.0,
        "BF": 621.0,
        "Pitches": 2399.0
      },
      "per_game": {
        "IP": 4.2,
        "ER": 2.4516,
        "R": 2.5484,
        "H": 4.5806,
        "BB": 1.6129,
        "SO": 4.6452,
        "HR": 0.4516,
        "BF": 20.0323,
        "Pitches": 77.3871
      },
      "rates": {
        "ERA": 4.6957,
        "WHIP": 1.3181,
        "ER_per_IP": 0.52174,
        "H_per_IP": 0.97483,
        "BB_per_IP": 0.34325,
        "SO_per_IP": 0.98856,
        "HR_per_IP": 0.09611
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 3.2,
    "predicted_ER": 2.111,
    "predicted_H": 3.788,
    "predicted_BB": 1.328,
    "predicted_SO": 4.235,
    "predicted_HR": 0.706,
    "predicted_ERA": 4.9978,
    "predicted_WHIP": 1.3455
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.4087,
  "form_weight": 0.5913,
  "form_reliability": 0.8611,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 31.0,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.8611,
    "prior_weight": 0.1389
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 4.1,
      "form": 3.2,
      "final": 4.0,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 4.0,
      "form": 2.111,
      "final": 2.883,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 4.0,
      "form": 3.788,
      "final": 3.8746,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 2.0,
      "form": 1.328,
      "final": 1.6026,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 1.0,
      "form": 4.235,
      "final": 2.9129,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 1.0,
      "form": 0.706,
      "final": 0.8262,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 4.9978,
      "final": 4.9978,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 1.3455,
      "final": 1.3455,
      "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
PitcherJoJo Romero
RoleLong Reliever
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score-0.1215
ESPN Rank-
Movement AvailableTrue
Primary Pitch-
Movement Score-0.0616
Avg Velo88.7636
Avg Spin2287.6413
HB Inches0
IVB Inches0
Release Extension0
Pre IP1
Pre ER0
Pre H1
Pre BB0
Pre SO1
Season ERA3.3158
Season WHIP1.2281
Role Avg IP1.0180
Recent Avg IP1.2670
Last Start IP0
Team Form Snapshot
{
  "team": {
    "team": "MIL",
    "games": 162,
    "wins": 103,
    "losses": 59,
    "win_pct": 0.6358,
    "runs_scored": 832.0,
    "runs_allowed": 618.0,
    "run_differential": 214.0,
    "run_differential_per_game": 1.321,
    "avg_runs_scored": 5.1358,
    "avg_runs_allowed": 3.8148,
    "offense_index": 1.1441,
    "defense_index": 1.1767,
    "current_streak": "W5",
    "recent": {
      "games": 10,
      "wins": 8,
      "losses": 2,
      "win_pct": 0.8,
      "avg_runs_scored": 4.4,
      "avg_runs_allowed": 3.0,
      "run_differential": 14.0
    },
    "available": true,
    "quality_score": 0.3823
  },
  "opponent": {
    "team": "SD",
    "games": 162,
    "wins": 91,
    "losses": 71,
    "win_pct": 0.5617,
    "runs_scored": 722.0,
    "runs_allowed": 681.0,
    "run_differential": 41.0,
    "run_differential_per_game": 0.2531,
    "avg_runs_scored": 4.4568,
    "avg_runs_allowed": 4.2037,
    "offense_index": 0.9928,
    "defense_index": 1.0679,
    "current_streak": "W2",
    "recent": {
      "games": 10,
      "wins": 8,
      "losses": 2,
      "win_pct": 0.8,
      "avg_runs_scored": 6.3,
      "avg_runs_allowed": 4.5,
      "run_differential": 18.0
    },
    "available": true,
    "quality_score": 0.1885
  },
  "method": "team_form_snapshot",
  "role": "pitcher",
  "edges": {
    "quality_edge": 0.1938,
    "offense_edge": 0.1441,
    "opponent_offense_edge": -0.0072,
    "defense_strength": 0.1767,
    "opponent_defense_weakness": -0.0679,
    "recent_win_pct_edge": 0.0
  },
  "player_factors": {
    "ip": 1.0133,
    "run_prevention": 0.9715,
    "strikeout": 1.0064
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "668941",
    "profile": {
      "available": true,
      "pitcher_id": "668941",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 216.0,
        "k_percent": 22.7,
        "bb_percent": 7.6,
        "woba": 0.305,
        "xwoba": 0.323,
        "sweet_spot_percent": 34.0,
        "barrel_batted_rate": 7.5,
        "hard_hit_percent": 38.9,
        "avg_best_speed": 79.2613,
        "avg_hyper_speed": 94.9328,
        "whiff_percent": 22.1,
        "swing_percent": 41.8
      },
      "league_medians": {
        "pa": 134.0,
        "k_percent": 22.1,
        "bb_percent": 9.2,
        "woba": 0.315,
        "xwoba": 0.312,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6432,
        "avg_hyper_speed": 93.9005,
        "whiff_percent": 25.2,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": -0.1336,
        "command_and_miss": -0.0364,
        "regression_edge": -0.5143,
        "xwoba_edge": -0.3143,
        "barrel_edge": -0.0667,
        "hard_hit_edge": -0.1429,
        "whiff_edge": -0.4429,
        "bb_edge": 0.4,
        "pitch_design_score": -0.0616
      },
      "quality_score": -0.1215,
      "sample_weight": 0.864,
      "run_prevention_factor": 1.0103,
      "strikeout_factor": 0.9877,
      "walk_factor": 0.9724,
      "homer_factor": 1.0177,
      "woba_minus_xwoba": -0.018,
      "regression_flag": "neutral",
      "espn_rank": {
        "available": false,
        "player_id": "668941",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 0.0,
        "factor": 1.0089,
        "adjusted": 0
      },
      "predicted_H": {
        "original": 1.0,
        "factor": 1.0089,
        "adjusted": 1
      },
      "predicted_BB": {
        "original": 0.0,
        "factor": 0.9762,
        "adjusted": 0
      },
      "predicted_HR": {
        "original": 0.0,
        "factor": 1.0153,
        "adjusted": 0
      },
      "predicted_SO": {
        "original": 2.0,
        "factor": 0.9894,
        "adjusted": 2
      }
    }
  },
  "club_form": "game.<side>_team.predicted_performance.team_form"
}
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.1,
    "ER": 5,
    "H": 9,
    "BB": 3,
    "SO": 12,
    "HR": 2,
    "ERA": 3.6486486486486487,
    "WHIP": 0.9729729729729729,
    "K9": 8.756756756756756,
    "HR9": 1.4594594594594594,
    "games_pitched": 10,
    "quality_starts": 0,
    "dominant_form": false,
    "struggling_form": false
  },
  "fielding": {
    "errors": 0,
    "assists": 0,
    "games_fielded": 10,
    "error_prone": false
  },
  "games_count": 10,
  "latest_game_date": "2026-10-04T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": true,
  "pitcher_id": "668941",
  "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": 88.76358655955353,
    "release_spin_rate": 2287.6413464681536,
    "spin_axis": null,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": null,
    "release_pos_x": null,
    "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": 88.76358655955353,
      "release_spin_rate": 2287.6413464681536,
      "spin_axis": null,
      "horizontal_break_inches": 0.0,
      "induced_vertical_break_inches": 0.0,
      "vertical_break_with_gravity_inches": null,
      "release_pos_x": null,
      "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.7636,
    "release_spin_rate": 2287.6413,
    "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.0616,
    "horizontal_break_edge": 0.0,
    "induced_vertical_break_edge": 0.0,
    "extension_edge": 0.0,
    "velocity_edge": -0.4402,
    "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.77,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.7019,
    "prior_weight": 0.2981
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "668941",
  "report_date": "20261006",
  "season_year": 2026,
  "rows_used": 56,
  "reference_playing_time": 1.0,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 6.1,
        "ER": 0.0,
        "R": 0.0,
        "H": 2.0,
        "BB": 1.0,
        "SO": 8.0,
        "HR": 0.0,
        "BF": 22.0,
        "Pitches": 91.0
      },
      "per_game": {
        "IP": 1.1,
        "ER": 0.0,
        "R": 0.0,
        "H": 0.4,
        "BB": 0.2,
        "SO": 1.6,
        "HR": 0.0,
        "BF": 4.4,
        "Pitches": 18.2
      },
      "rates": {
        "ERA": 0.0,
        "WHIP": 0.4737,
        "ER_per_IP": 0.0,
        "H_per_IP": 0.31579,
        "BB_per_IP": 0.15789,
        "SO_per_IP": 1.26316,
        "HR_per_IP": 0.0
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 12.1,
        "ER": 5.0,
        "R": 5.0,
        "H": 9.0,
        "BB": 3.0,
        "SO": 12.0,
        "HR": 2.0,
        "BF": 48.0,
        "Pitches": 194.0
      },
      "per_game": {
        "IP": 1.1,
        "ER": 0.5,
        "R": 0.5,
        "H": 0.9,
        "BB": 0.3,
        "SO": 1.2,
        "HR": 0.2,
        "BF": 4.8,
        "Pitches": 19.4
      },
      "rates": {
        "ERA": 3.6486,
        "WHIP": 0.973,
        "ER_per_IP": 0.40541,
        "H_per_IP": 0.72973,
        "BB_per_IP": 0.24324,
        "SO_per_IP": 0.97297,
        "HR_per_IP": 0.16216
      }
    },
    "season": {
      "games": 56,
      "totals": {
        "IP": 57.0,
        "ER": 21.0,
        "R": 22.0,
        "H": 51.0,
        "BB": 19.0,
        "SO": 56.0,
        "HR": 7.0,
        "BF": 241.0,
        "Pitches": 937.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.375,
        "R": 0.3929,
        "H": 0.9107,
        "BB": 0.3393,
        "SO": 1.0,
        "HR": 0.125,
        "BF": 4.3036,
        "Pitches": 16.7321
      },
      "rates": {
        "ERA": 3.3158,
        "WHIP": 1.2281,
        "ER_per_IP": 0.36842,
        "H_per_IP": 0.89474,
        "BB_per_IP": 0.33333,
        "SO_per_IP": 0.98246,
        "HR_per_IP": 0.12281
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 1.1,
    "predicted_ER": 0.361,
    "predicted_H": 0.829,
    "predicted_BB": 0.32,
    "predicted_SO": 1.252,
    "predicted_HR": 0.12,
    "predicted_ERA": 2.7381,
    "predicted_WHIP": 0.968
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.4759,
  "form_weight": 0.5241,
  "form_reliability": 0.7019,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 11.77,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.7019,
    "prior_weight": 0.2981
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 1.0,
      "form": 1.1,
      "final": 1.2,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 0.0,
      "form": 0.361,
      "final": 0.1892,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 0.0,
      "form": 0.829,
      "final": 0.4344,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 0.0,
      "form": 0.32,
      "final": 0.1677,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 1.0,
      "form": 1.252,
      "final": 1.1321,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 0.0,
      "form": 0.12,
      "final": 0.0629,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 2.7381,
      "final": 2.7381,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 0.968,
      "final": 0.968,
      "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
PitcherAntonio Senzatela
RoleMiddle Reliever (High Leverage)
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score0.0023
ESPN Rank-
Movement AvailableTrue
Primary Pitch-
Movement Score0.2235
Avg Velo93.8545
Avg Spin2284.6976
HB Inches0
IVB Inches0
Release Extension0
Pre IP3
Pre ER0
Pre H1
Pre BB0
Pre SO2
Season ERA4.0135
Season WHIP1.3784
Role Avg IP1.2080
Recent Avg IP0.8670
Last Start IP0
Team Form Snapshot
{
  "team": {
    "team": "MIL",
    "games": 162,
    "wins": 103,
    "losses": 59,
    "win_pct": 0.6358,
    "runs_scored": 832.0,
    "runs_allowed": 618.0,
    "run_differential": 214.0,
    "run_differential_per_game": 1.321,
    "avg_runs_scored": 5.1358,
    "avg_runs_allowed": 3.8148,
    "offense_index": 1.1441,
    "defense_index": 1.1767,
    "current_streak": "W5",
    "recent": {
      "games": 10,
      "wins": 8,
      "losses": 2,
      "win_pct": 0.8,
      "avg_runs_scored": 4.4,
      "avg_runs_allowed": 3.0,
      "run_differential": 14.0
    },
    "available": true,
    "quality_score": 0.3823
  },
  "opponent": {
    "team": "SD",
    "games": 162,
    "wins": 91,
    "losses": 71,
    "win_pct": 0.5617,
    "runs_scored": 722.0,
    "runs_allowed": 681.0,
    "run_differential": 41.0,
    "run_differential_per_game": 0.2531,
    "avg_runs_scored": 4.4568,
    "avg_runs_allowed": 4.2037,
    "offense_index": 0.9928,
    "defense_index": 1.0679,
    "current_streak": "W2",
    "recent": {
      "games": 10,
      "wins": 8,
      "losses": 2,
      "win_pct": 0.8,
      "avg_runs_scored": 6.3,
      "avg_runs_allowed": 4.5,
      "run_differential": 18.0
    },
    "available": true,
    "quality_score": 0.1885
  },
  "method": "team_form_snapshot",
  "role": "pitcher",
  "edges": {
    "quality_edge": 0.1938,
    "offense_edge": 0.1441,
    "opponent_offense_edge": -0.0072,
    "defense_strength": 0.1767,
    "opponent_defense_weakness": -0.0679,
    "recent_win_pct_edge": 0.0
  },
  "player_factors": {
    "ip": 1.0133,
    "run_prevention": 0.9715,
    "strikeout": 1.0064
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "622608",
    "profile": {
      "available": true,
      "pitcher_id": "622608",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 281.0,
        "k_percent": 19.3,
        "bb_percent": 8.4,
        "woba": 0.31,
        "xwoba": 0.31,
        "sweet_spot_percent": 32.3,
        "barrel_batted_rate": 6.3,
        "hard_hit_percent": 40.4,
        "avg_best_speed": 77.0219,
        "avg_hyper_speed": 94.2889,
        "whiff_percent": 23.5,
        "swing_percent": 49.4
      },
      "league_medians": {
        "pa": 134.0,
        "k_percent": 22.1,
        "bb_percent": 9.2,
        "woba": 0.315,
        "xwoba": 0.312,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6432,
        "avg_hyper_speed": 93.9005,
        "whiff_percent": 25.2,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": 0.0766,
        "command_and_miss": -0.225,
        "regression_edge": 0.0,
        "xwoba_edge": 0.0571,
        "barrel_edge": 0.2,
        "hard_hit_edge": -0.3571,
        "whiff_edge": -0.2429,
        "bb_edge": 0.2,
        "pitch_design_score": 0.2235
      },
      "quality_score": 0.0023,
      "sample_weight": 1.0,
      "run_prevention_factor": 0.9998,
      "strikeout_factor": 0.9743,
      "walk_factor": 0.984,
      "homer_factor": 0.9966,
      "woba_minus_xwoba": 0.0,
      "regression_flag": "neutral",
      "espn_rank": {
        "available": false,
        "player_id": "622608",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 0.0,
        "factor": 0.9998,
        "adjusted": 0
      },
      "predicted_H": {
        "original": 1.0,
        "factor": 0.9998,
        "adjusted": 1
      },
      "predicted_BB": {
        "original": 0.0,
        "factor": 0.984,
        "adjusted": 0
      },
      "predicted_HR": {
        "original": 0.0,
        "factor": 0.9966,
        "adjusted": 0
      },
      "predicted_SO": {
        "original": 2.0,
        "factor": 0.9743,
        "adjusted": 2
      }
    }
  },
  "club_form": "game.<side>_team.predicted_performance.team_form"
}
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": 5,
    "H": 10,
    "BB": 4,
    "SO": 6,
    "HR": 1,
    "ERA": 5.625,
    "WHIP": 1.75,
    "K9": 6.75,
    "HR9": 1.125,
    "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-10-03T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": true,
  "pitcher_id": "622608",
  "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": 93.85453979851486,
    "release_spin_rate": 2284.697574601885,
    "spin_axis": null,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": null,
    "release_pos_x": null,
    "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": 93.85453979851486,
      "release_spin_rate": 2284.697574601885,
      "spin_axis": null,
      "horizontal_break_inches": 0.0,
      "induced_vertical_break_inches": 0.0,
      "vertical_break_with_gravity_inches": null,
      "release_pos_x": null,
      "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.8545,
    "release_spin_rate": 2284.6976,
    "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.2235,
    "horizontal_break_edge": 0.0,
    "induced_vertical_break_edge": 0.0,
    "extension_edge": 0.0,
    "velocity_edge": 1.5962,
    "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.281,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.7535,
    "prior_weight": 0.2465
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "622608",
  "report_date": "20261006",
  "season_year": 2026,
  "rows_used": 58,
  "reference_playing_time": 0.1,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 4.1,
        "ER": 0.0,
        "R": 0.0,
        "H": 5.0,
        "BB": 2.0,
        "SO": 2.0,
        "HR": 0.0,
        "BF": 19.0,
        "Pitches": 70.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.0,
        "R": 0.0,
        "H": 1.0,
        "BB": 0.4,
        "SO": 0.4,
        "HR": 0.0,
        "BF": 3.8,
        "Pitches": 14.0
      },
      "rates": {
        "ERA": 0.0,
        "WHIP": 1.6154,
        "ER_per_IP": 0.0,
        "H_per_IP": 1.15385,
        "BB_per_IP": 0.46154,
        "SO_per_IP": 0.46154,
        "HR_per_IP": 0.0
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 8.0,
        "ER": 5.0,
        "R": 5.0,
        "H": 10.0,
        "BB": 4.0,
        "SO": 6.0,
        "HR": 1.0,
        "BF": 37.0,
        "Pitches": 145.0
      },
      "per_game": {
        "IP": 0.2,
        "ER": 0.5,
        "R": 0.5,
        "H": 1.0,
        "BB": 0.4,
        "SO": 0.6,
        "HR": 0.1,
        "BF": 3.7,
        "Pitches": 14.5
      },
      "rates": {
        "ERA": 5.625,
        "WHIP": 1.75,
        "ER_per_IP": 0.625,
        "H_per_IP": 1.25,
        "BB_per_IP": 0.5,
        "SO_per_IP": 0.75,
        "HR_per_IP": 0.125
      }
    },
    "season": {
      "games": 58,
      "totals": {
        "IP": 74.0,
        "ER": 33.0,
        "R": 37.0,
        "H": 75.0,
        "BB": 27.0,
        "SO": 60.0,
        "HR": 6.0,
        "BF": 315.0,
        "Pitches": 1176.0
      },
      "per_game": {
        "IP": 1.1,
        "ER": 0.569,
        "R": 0.6379,
        "H": 1.2931,
        "BB": 0.4655,
        "SO": 1.0345,
        "HR": 0.1034,
        "BF": 5.431,
        "Pitches": 20.2759
      },
      "rates": {
        "ERA": 4.0135,
        "WHIP": 1.3784,
        "ER_per_IP": 0.44595,
        "H_per_IP": 1.01351,
        "BB_per_IP": 0.36486,
        "SO_per_IP": 0.81081,
        "HR_per_IP": 0.08108
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 0.2,
    "predicted_ER": 0.286,
    "predicted_H": 0.891,
    "predicted_BB": 0.349,
    "predicted_SO": 0.564,
    "predicted_HR": 0.065,
    "predicted_ERA": 3.2264,
    "predicted_WHIP": 1.5535
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.4541,
  "form_weight": 0.5459,
  "form_reliability": 0.7535,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 15.281,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.7535,
    "prior_weight": 0.2465
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 0.1,
      "form": 0.2,
      "final": 0.2,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 1.0,
      "form": 0.286,
      "final": 0.6103,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 3.0,
      "form": 0.891,
      "final": 1.8488,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 1.0,
      "form": 0.349,
      "final": 0.6446,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 1.0,
      "form": 0.564,
      "final": 0.762,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 0.0,
      "form": 0.065,
      "final": 0.0355,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 3.2264,
      "final": 3.2264,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 1.5535,
      "final": 1.5535,
      "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."
}
Jackson Chourio (694192) · BATTER · LF · Team MIL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 543
All-history rows before 20261006: 543
System season_avg: 0.2940
Data season_avg (2026 season-to-date): 0.3000
Diff (system - data): -0.0060
System opponent_avg: 0.2060

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.2130.0000.000Hitting_2B0.2520.000-0.2520.000
predicted_3B0.0000.0000.000Hitting_3B0.0000.0000.0000.000
predicted_AB5.0705.0005.000Hitting_AB4.2734.0000.7271.000
predicted_AVG0.2880.0000.000Hitting_AVG0.3000.250-0.300-0.250
predicted_BB0.3700.0000.000Hitting_BB0.3790.000-0.3790.000
predicted_CS-0.0000.000BaseRunning_CS0.0410.000-0.0410.000
predicted_H1.4600.0000.000Hitting_H1.2821.000-1.282-1.000
predicted_HR0.2200.0000.000Hitting_HR0.2010.000-0.2010.000
predicted_OBP0.3980.0000.000Hitting_OBP0.3580.400-0.358-0.400
predicted_R0.7640.0000.000Hitting_R0.8210.000-0.8210.000
predicted_RBI1.1300.0000.000Hitting_RBI0.6222.000-0.622-2.000
predicted_SLG0.5190.0000.000Hitting_SLG0.5000.250-0.500-0.250
predicted_SO1.0552.0002.000Hitting_SO1.0960.0000.9042.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics12
Boosted Metrics1
Deboosted Metrics11
Better Metrics0
Worse Metrics12
Biggest Boostpredicted_SO: 1.0550 -> 2.0000 (boost 0.9450, worse)
Biggest Deboostpredicted_H: 1.4600 -> 0.0000 (deboost -1.4600, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend51423predicted_AVG: 0.2880 -> 0.3083 (boost 0.0203, better)predicted_AB: 5.0700 -> 4.5151 (deboost -0.5549, 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.3986 -> 0.3612 (deboost -0.0374, 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_scaling81708predicted_SO: 0.9128 -> 1.0000 (boost 0.0872, worse)predicted_AB: 4.5151 -> 4.0000 (deboost -0.5151, worse)AB rounded to 4 (raw=5.07), rates preserved: AVG=0.266 HR/AB=0.043
6consistency_constraints11010predicted_R: 0.8114 -> 1.0000 (boost 0.1886, better)-Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine54132predicted_BB: 0.0000 -> 0.3570 (boost 0.3570, better)predicted_RBI: 1.0000 -> 0.5578 (deboost -0.4422, 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_allocation82635predicted_HR: 0.1762 -> 1.0000 (boost 0.8238, better)predicted_BB: 0.3570 -> 0.0000 (deboost -0.3570, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10kpi_run_environment30303-predicted_SLG: 0.4220 -> 0.4040 (deboost -0.0180, worse)KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup
11play_by_play_realization62415predicted_AB: 4.0000 -> 5.0000 (boost 1.0000, better)predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse)Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
12simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
13current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "694192",
  "player_name": "Jackson Chourio",
  "position": "LF",
  "team": "MIL",
  "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": 5.07,
        "predicted_AVG": 0.288,
        "predicted_BB": 0.37,
        "predicted_H": 1.46,
        "predicted_HR": 0.22,
        "predicted_OBP": 0.398,
        "predicted_R": 0.764,
        "predicted_RBI": 1.13,
        "predicted_SLG": 0.519,
        "predicted_SO": 1.055
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "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.1725,
        "predicted_3B": 0.0004,
        "predicted_AB": 4.5151,
        "predicted_AVG": 0.3083,
        "predicted_BB": 0.3569,
        "predicted_H": 1.3773,
        "predicted_HBP": 0.079,
        "predicted_HR": 0.2117,
        "predicted_OBP": 0.3986,
        "predicted_R": 0.7875,
        "predicted_RBI": 1.0268,
        "predicted_SLG": 0.5221,
        "predicted_SO": 0.9235
      },
      "changed_metrics": [
        {
          "metric": "predicted_AB",
          "before": 5.07,
          "after": 4.5151,
          "delta": -0.5549,
          "percent_delta": -0.1094,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.288,
          "after": 0.3083,
          "delta": 0.0203,
          "percent_delta": 0.0705,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.46,
          "after": 1.3773,
          "delta": -0.0827,
          "percent_delta": -0.0566,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 1.13,
          "after": 1.0268,
          "delta": -0.1032,
          "percent_delta": -0.0913,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.055,
          "after": 0.9235,
          "delta": -0.1315,
          "percent_delta": -0.1246,
          "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_AVG",
          "before": 0.288,
          "after": 0.3083,
          "delta": 0.0203,
          "percent_delta": 0.0705,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 5.07,
          "after": 4.5151,
          "delta": -0.5549,
          "percent_delta": -0.1094,
          "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": 127
      }
    },
    {
      "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.1725,
        "predicted_3B": 0.0004,
        "predicted_AB": 4.5151,
        "predicted_AVG": 0.3101,
        "predicted_BB": 0.361,
        "predicted_H": 1.4003,
        "predicted_HBP": 0.079,
        "predicted_HR": 0.216,
        "predicted_OBP": 0.3612,
        "predicted_R": 0.8114,
        "predicted_RBI": 1.058,
        "predicted_SLG": 0.492,
        "predicted_SO": 0.9128
      },
      "changed_metrics": [
        {
          "metric": "predicted_OBP",
          "before": 0.3986,
          "after": 0.3612,
          "delta": -0.0374,
          "percent_delta": -0.0938,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.5221,
          "after": 0.492,
          "delta": -0.0301,
          "percent_delta": -0.0577,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.3986,
          "after": 0.3612,
          "delta": -0.0374,
          "percent_delta": -0.0938,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 4 (raw=5.07), rates preserved: AVG=0.266 HR/AB=0.043",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SB": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1725,
          "after": 0.0,
          "delta": -0.1725,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AB",
          "before": 4.5151,
          "after": 4.0,
          "delta": -0.5151,
          "percent_delta": -0.1141,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.361,
          "after": 0.0,
          "delta": -0.361,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.4003,
          "after": 1.0,
          "delta": -0.4003,
          "percent_delta": -0.2859,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HBP",
          "before": 0.079,
          "after": 0.0,
          "delta": -0.079,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.216,
          "after": 0.0,
          "delta": -0.216,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 1.058,
          "after": 1.0,
          "delta": -0.058,
          "percent_delta": -0.0548,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.9128,
          "after": 1.0,
          "delta": 0.0872,
          "percent_delta": 0.0955,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 8,
        "boosted_metrics": 1,
        "deboosted_metrics": 7,
        "better_metrics": 0,
        "worse_metrics": 8,
        "biggest_boost": {
          "metric": "predicted_SO",
          "before": 0.9128,
          "after": 1.0,
          "delta": 0.0872,
          "percent_delta": 0.0955,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 4.5151,
          "after": 4.0,
          "delta": -0.5151,
          "percent_delta": -0.1141,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_R",
          "before": 0.8114,
          "after": 1.0,
          "delta": 0.1886,
          "percent_delta": 0.2324,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 1,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_R",
          "before": 0.8114,
          "after": 1.0,
          "delta": 0.1886,
          "percent_delta": 0.2324,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "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.0074,
        "predicted_BB": 0.357,
        "predicted_H": 1.0149,
        "predicted_HR": 0.1762,
        "predicted_RBI": 0.5578,
        "predicted_SO": 1.1689
      },
      "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_BB",
          "before": 0.0,
          "after": 0.357,
          "delta": 0.357,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1762,
          "delta": 0.1762,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.5578,
          "delta": -0.4422,
          "percent_delta": -0.4422,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 1.1689,
          "delta": 0.1689,
          "percent_delta": 0.1689,
          "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.357,
          "delta": 0.357,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.5578,
          "delta": -0.4422,
          "percent_delta": -0.4422,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_AVG": 0.249,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 1.0,
        "predicted_OBP": 0.315,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.422,
        "predicted_SO": 1.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_AVG",
          "before": 0.3101,
          "after": 0.249,
          "delta": -0.0611,
          "percent_delta": -0.197,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.357,
          "after": 0.0,
          "delta": -0.357,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1762,
          "after": 1.0,
          "delta": 0.8238,
          "percent_delta": 4.6754,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3612,
          "after": 0.315,
          "delta": -0.0462,
          "percent_delta": -0.1279,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5578,
          "after": 1.0,
          "delta": 0.4422,
          "percent_delta": 0.7928,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.492,
          "after": 0.422,
          "delta": -0.07,
          "percent_delta": -0.1423,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.1689,
          "after": 1.0,
          "delta": -0.1689,
          "percent_delta": -0.1445,
          "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_HR",
          "before": 0.1762,
          "after": 1.0,
          "delta": 0.8238,
          "percent_delta": 4.6754,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.357,
          "after": 0.0,
          "delta": -0.357,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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.249,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 1.0,
        "predicted_OBP": 0.315,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.422,
        "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
      }
    },
    {
      "index": 10,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup",
      "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": 1.0,
        "predicted_OBP": 0.302,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.404,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.249,
          "after": 0.238,
          "delta": -0.011,
          "percent_delta": -0.0442,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.315,
          "after": 0.302,
          "delta": -0.013,
          "percent_delta": -0.0413,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.422,
          "after": 0.404,
          "delta": -0.018,
          "percent_delta": -0.0427,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.422,
          "after": 0.404,
          "delta": -0.018,
          "percent_delta": -0.0427,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 11,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 5.0,
        "predicted_BB": 0.0,
        "predicted_H": 0.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.0,
        "predicted_SO": 2.0
      },
      "changed_metrics": [
        {
          "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_H",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "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_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_SO",
          "before": 1.0,
          "after": 2.0,
          "delta": 1.0,
          "percent_delta": 1.0,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 6,
        "boosted_metrics": 2,
        "deboosted_metrics": 4,
        "better_metrics": 1,
        "worse_metrics": 5,
        "biggest_boost": {
          "metric": "predicted_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
        }
      }
    },
    {
      "index": 12,
      "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_H": 0.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.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
      },
      "reference_only": true
    },
    {
      "index": 13,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 5.0,
        "predicted_AVG": 0.238,
        "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.302,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.404,
        "predicted_SO": 2.0,
        "predicted_TB": 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
      }
    }
  ],
  "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_AB",
        "before": 5.07,
        "after": 5.0,
        "delta": -0.07,
        "percent_delta": -0.0138,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.288,
        "after": 0.238,
        "delta": -0.05,
        "percent_delta": -0.1736,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.37,
        "after": 0.0,
        "delta": -0.37,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 1.46,
        "after": 0.0,
        "delta": -1.46,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HBP",
        "before": 0.079,
        "after": 0.0,
        "delta": -0.079,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.22,
        "after": 0.0,
        "delta": -0.22,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.398,
        "after": 0.302,
        "delta": -0.096,
        "percent_delta": -0.2412,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.764,
        "after": 0.0,
        "delta": -0.764,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 1.13,
        "after": 0.0,
        "delta": -1.13,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.519,
        "after": 0.404,
        "delta": -0.115,
        "percent_delta": -0.2216,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 1.055,
        "after": 2.0,
        "delta": 0.945,
        "percent_delta": 0.8957,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 12,
      "boosted_metrics": 1,
      "deboosted_metrics": 11,
      "better_metrics": 0,
      "worse_metrics": 12,
      "biggest_boost": {
        "metric": "predicted_SO",
        "before": 1.055,
        "after": 2.0,
        "delta": 0.945,
        "percent_delta": 0.8957,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_H",
        "before": 1.46,
        "after": 0.0,
        "delta": -1.46,
        "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.213-
predicted_3B0.000-
predicted_AB5.070-
predicted_AVG0.288-
predicted_BB0.370-
predicted_H1.460-
predicted_HR0.220-
predicted_OBP0.398-
predicted_R0.764-
predicted_RBI1.130-
predicted_SLG0.519-
predicted_SO1.055-
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.172-0.041
predicted_3B0.0000.000
predicted_AB4.515-0.555
predicted_AVG0.3080.020
predicted_BB0.357-0.013
predicted_H1.377-0.083
predicted_HBP0.079-
predicted_HR0.212-0.008
predicted_OBP0.3990.001
predicted_R0.7870.023
predicted_RBI1.027-0.103
predicted_SLG0.5220.003
predicted_SO0.923-0.131
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.0000.000
predicted_AB4.5150.000
predicted_AVG0.3100.002
predicted_BB0.3610.004
predicted_H1.4000.023
predicted_HBP0.0790.000
predicted_HR0.2160.004
predicted_OBP0.361-0.037
predicted_R0.8110.024
predicted_RBI1.0580.031
predicted_SLG0.492-0.030
predicted_SO0.913-0.011
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.07), rates preserved: AVG=0.266 HR/AB=0.043

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.1650.165
3B0.0070.007
BB0.3570.357
H1.0150.015
HR0.1760.176
RBI0.558-0.442
SO1.1690.169
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.007
AB4.0000.000
AVG0.249-
BB0.000-0.357
H1.000-0.015
HR1.0000.824
OBP0.315-
R1.0000.000
RBI1.0000.442
SLG0.422-
SO1.000-0.169
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.000
predicted_AB4.000-0.515
predicted_AVG0.249-0.061
predicted_BB0.000-0.361
predicted_H1.000-0.400
predicted_HR1.0000.784
predicted_OBP0.315-0.046
predicted_R1.0000.189
predicted_RBI1.000-0.058
predicted_SLG0.422-0.070
predicted_SO1.0000.087
10. kpi_run_environment

KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
AVG0.238-0.011
BB0.0000.000
H1.0000.000
HR1.0000.000
OBP0.302-0.013
R1.0000.000
RBI1.0000.000
SLG0.404-0.018
SO1.0000.000
11. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB5.0001.000
BB0.0000.000
H0.000-1.000
HBP0.0000.000
HR0.000-1.000
PA5.000-
R0.000-1.000
RBI0.000-1.000
SF0.0000.000
SO2.0001.000
12. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB5.0000.000
BB0.0000.000
H0.0000.000
HBP0.0000.000
HR0.0000.000
PA5.0000.000
R0.0000.000
RBI0.0000.000
SF0.0000.000
SO2.0000.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 127
Reference playing time: 5.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-17.0008.0000.0000.0001.0008.0005.0001.0000.0000.47060.52630.64710.47060.05880.47060.05880.0000
last_100.2010-32.00011.0000.0000.0002.0009.0008.0004.0007.0000.34380.43240.53120.34380.06250.28120.12500.2188
season0.60127-524.000154.00027.0000.00026.00079.00097.00047.000134.0000.29390.35420.49430.29390.04960.15080.08970.2557
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1200
predicted_3B0.0010
predicted_AB3.7960
predicted_AVG0.3347
predicted_BB0.3400
predicted_H1.2700
predicted_HBP0.0790
predicted_HR0.2010
predicted_OBP0.3994
predicted_R0.8180
predicted_RBI0.8930
predicted_SLG0.5261
predicted_SO0.7530
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.21300.12000.1725model_form_blend
predicted_3B0.00000.00100.0004model_form_blend
predicted_AB5.07003.79604.5151model_form_blend
predicted_AVG0.28800.33470.3083model_form_blend
predicted_BB0.37000.34000.3569model_form_blend
predicted_H1.46001.27001.3773model_form_blend
predicted_HBP-0.07900.0790form_only
predicted_HR0.22000.20100.2117model_form_blend
predicted_OBP0.39800.39940.3986model_form_blend
predicted_R0.76400.81800.7875model_form_blend
predicted_RBI1.13000.89301.0268model_form_blend
predicted_SLG0.51900.52610.5221model_form_blend
predicted_SO1.05500.75300.9235model_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 date543
Season rows before report date543
Report year2026
Profile rows used127
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

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_HBP1
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI2
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
allPositionsPlayedLF
gameID20261004_SD@MIL
game_typefull
mlbID694192
playerID694192
playerNameJackson Chourio
posLF
startedTrue
startingPositionLF
teamMIL
teamID16
game_date2026-10-04
sl_k_percent23.4
sl_bb_percent8.2
sl_woba0.361
sl_xwoba0.344
sl_xba0.265
sl_xslg0.475
sl_sweet_spot_percent33.3
sl_barrel_batted_rate12.3
sl_hard_hit_percent47.0
sl_exit_velocity_avg91.6
sl_launch_angle_avg11.8
sl_whiff_percent25.1
sl_swing_percent47.8
Jake Bauers (641343) · BATTER · 1B · Team MIL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 549
All-history rows before 20261006: 549
System season_avg: 0.2650
Data season_avg (2026 season-to-date): 0.2693
Diff (system - data): -0.0043
System opponent_avg: 0.2590

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1430.0000.000Hitting_2B0.1420.000-0.1420.000
predicted_3B0.0140.0000.000Hitting_3B0.0160.000-0.0160.000
predicted_AB3.4404.0004.000Hitting_AB3.5104.0000.4900.000
predicted_AVG0.2470.5000.500Hitting_AVG0.2690.0000.2310.500
predicted_BB0.6360.0000.000Hitting_BB0.7360.000-0.7360.000
predicted_CS-0.0000.000BaseRunning_CS0.0350.000-0.0350.000
predicted_H0.8502.0002.000Hitting_H0.9450.0001.0552.000
predicted_HR0.1501.0001.000Hitting_HR0.2020.0000.7981.000
predicted_OBP0.3450.6000.600Hitting_OBP0.3980.0000.2020.600
predicted_R0.6501.0001.000Hitting_R0.7030.0000.2971.000
predicted_RBI0.4901.0001.000Hitting_RBI0.6670.0000.3331.000
predicted_SLG0.4311.2501.250Hitting_SLG0.4920.0000.7581.250
predicted_SO1.1140.0000.000Hitting_SO1.1222.000-1.122-2.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics12
Boosted Metrics6
Deboosted Metrics6
Better Metrics7
Worse Metrics5
Biggest Boostpredicted_H: 0.8500 -> 2.0000 (boost 1.1500, better)
Biggest Deboostpredicted_SO: 1.1140 -> 0.0000 (deboost -1.1140, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend31203predicted_SO: 1.1140 -> 1.1719 (boost 0.0579, worse)predicted_BB: 0.6360 -> 0.5746 (deboost -0.0614, 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_snapshot11010predicted_OBP: 0.3467 -> 0.3599 (boost 0.0132, 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_scaling84453predicted_AB: 3.4544 -> 4.0000 (boost 0.5456, better)predicted_SO: 1.1583 -> 1.0000 (deboost -0.1583, better)AB rounded to 4 (raw=3.45), rates preserved: AVG=0.243 HR/AB=0.039
6consistency_constraints11010predicted_R: 0.6339 -> 1.0000 (boost 0.3661, better)-Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine63324predicted_SO: 1.0000 -> 1.1807 (boost 0.1807, worse)predicted_RBI: 1.0000 -> 0.5184 (deboost -0.4816, 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_allocation93645predicted_RBI: 0.5184 -> 1.0000 (boost 0.4816, better)predicted_SO: 1.1807 -> 1.0000 (deboost -0.1807, better)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10kpi_run_environment30303-predicted_SLG: 0.3980 -> 0.3800 (deboost -0.0180, worse)KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup
11play_by_play_realization53241predicted_H: 1.0000 -> 2.0000 (boost 1.0000, better)predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse)Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
12simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
13current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "641343",
  "player_name": "Jake Bauers",
  "position": "1B",
  "team": "MIL",
  "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.014,
        "predicted_AB": 3.44,
        "predicted_AVG": 0.247,
        "predicted_BB": 0.636,
        "predicted_H": 0.85,
        "predicted_HR": 0.15,
        "predicted_OBP": 0.345,
        "predicted_R": 0.65,
        "predicted_RBI": 0.49,
        "predicted_SLG": 0.431,
        "predicted_SO": 1.114
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "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.1369,
        "predicted_3B": 0.0118,
        "predicted_AB": 3.4544,
        "predicted_AVG": 0.248,
        "predicted_BB": 0.5746,
        "predicted_H": 0.857,
        "predicted_HBP": 0.078,
        "predicted_HR": 0.1326,
        "predicted_OBP": 0.3467,
        "predicted_R": 0.6152,
        "predicted_RBI": 0.4952,
        "predicted_SLG": 0.4118,
        "predicted_SO": 1.1719
      },
      "changed_metrics": [
        {
          "metric": "predicted_BB",
          "before": 0.636,
          "after": 0.5746,
          "delta": -0.0614,
          "percent_delta": -0.0965,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.431,
          "after": 0.4118,
          "delta": -0.0192,
          "percent_delta": -0.0445,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.114,
          "after": 1.1719,
          "delta": 0.0579,
          "percent_delta": 0.052,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 3,
        "boosted_metrics": 1,
        "deboosted_metrics": 2,
        "better_metrics": 0,
        "worse_metrics": 3,
        "biggest_boost": {
          "metric": "predicted_SO",
          "before": 1.114,
          "after": 1.1719,
          "delta": 0.0579,
          "percent_delta": 0.052,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.636,
          "after": 0.5746,
          "delta": -0.0614,
          "percent_delta": -0.0965,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      },
      "weights": {
        "xgboost_raw": 0.55,
        "weighted_form": 0.45,
        "form_windows": {
          "last_5": 0.2,
          "last_10": 0.2,
          "season": 0.6
        }
      },
      "window_games": {
        "last_5": 5,
        "last_10": 10,
        "season": 140
      }
    },
    {
      "index": 3,
      "step": "team_form_snapshot",
      "description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
      "stats": {
        "predicted_2B": 0.1369,
        "predicted_3B": 0.0118,
        "predicted_AB": 3.4544,
        "predicted_AVG": 0.2522,
        "predicted_BB": 0.5813,
        "predicted_H": 0.8713,
        "predicted_HBP": 0.078,
        "predicted_HR": 0.1353,
        "predicted_OBP": 0.3599,
        "predicted_R": 0.6339,
        "predicted_RBI": 0.5103,
        "predicted_SLG": 0.4162,
        "predicted_SO": 1.1583
      },
      "changed_metrics": [
        {
          "metric": "predicted_OBP",
          "before": 0.3467,
          "after": 0.3599,
          "delta": 0.0132,
          "percent_delta": 0.0381,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 1,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_OBP",
          "before": 0.3467,
          "after": 0.3599,
          "delta": 0.0132,
          "percent_delta": 0.0381,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 4 (raw=3.45), rates preserved: AVG=0.243 HR/AB=0.039",
      "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.1369,
          "after": 0.0,
          "delta": -0.1369,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AB",
          "before": 3.4544,
          "after": 4.0,
          "delta": 0.5456,
          "percent_delta": 0.1579,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.5813,
          "after": 1.0,
          "delta": 0.4187,
          "percent_delta": 0.7203,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8713,
          "after": 1.0,
          "delta": 0.1287,
          "percent_delta": 0.1477,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HBP",
          "before": 0.078,
          "after": 0.0,
          "delta": -0.078,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1353,
          "after": 0.0,
          "delta": -0.1353,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5103,
          "after": 1.0,
          "delta": 0.4897,
          "percent_delta": 0.9596,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.1583,
          "after": 1.0,
          "delta": -0.1583,
          "percent_delta": -0.1367,
          "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_AB",
          "before": 3.4544,
          "after": 4.0,
          "delta": 0.5456,
          "percent_delta": 0.1579,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.1583,
          "after": 1.0,
          "delta": -0.1583,
          "percent_delta": -0.1367,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      }
    },
    {
      "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_R",
          "before": 0.6339,
          "after": 1.0,
          "delta": 0.3661,
          "percent_delta": 0.5775,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 1,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_R",
          "before": 0.6339,
          "after": 1.0,
          "delta": 0.3661,
          "percent_delta": 0.5775,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "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.1407,
        "predicted_3B": 0.0109,
        "predicted_BB": 0.5975,
        "predicted_H": 0.8214,
        "predicted_HR": 0.1572,
        "predicted_RBI": 0.5184,
        "predicted_SO": 1.1807
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1407,
          "delta": 0.1407,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 1.0,
          "after": 0.5975,
          "delta": -0.4025,
          "percent_delta": -0.4025,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8214,
          "delta": -0.1786,
          "percent_delta": -0.1786,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1572,
          "delta": 0.1572,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.5184,
          "delta": -0.4816,
          "percent_delta": -0.4816,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 1.1807,
          "delta": 0.1807,
          "percent_delta": 0.1807,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 6,
        "boosted_metrics": 3,
        "deboosted_metrics": 3,
        "better_metrics": 2,
        "worse_metrics": 4,
        "biggest_boost": {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 1.1807,
          "delta": 0.1807,
          "percent_delta": 0.1807,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.5184,
          "delta": -0.4816,
          "percent_delta": -0.4816,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_AVG": 0.224,
        "predicted_BB": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.338,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.398,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1407,
          "after": 0.0,
          "delta": -0.1407,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2522,
          "after": 0.224,
          "delta": -0.0282,
          "percent_delta": -0.1118,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.5975,
          "after": 1.0,
          "delta": 0.4025,
          "percent_delta": 0.6736,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8214,
          "after": 1.0,
          "delta": 0.1786,
          "percent_delta": 0.2174,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1572,
          "after": 0.0,
          "delta": -0.1572,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3599,
          "after": 0.338,
          "delta": -0.0219,
          "percent_delta": -0.0609,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5184,
          "after": 1.0,
          "delta": 0.4816,
          "percent_delta": 0.929,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4162,
          "after": 0.398,
          "delta": -0.0182,
          "percent_delta": -0.0437,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.1807,
          "after": 1.0,
          "delta": -0.1807,
          "percent_delta": -0.153,
          "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_RBI",
          "before": 0.5184,
          "after": 1.0,
          "delta": 0.4816,
          "percent_delta": 0.929,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.1807,
          "after": 1.0,
          "delta": -0.1807,
          "percent_delta": -0.153,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      }
    },
    {
      "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.224,
        "predicted_BB": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.338,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.398,
        "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
      }
    },
    {
      "index": 10,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.215,
        "predicted_BB": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.326,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.38,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.224,
          "after": 0.215,
          "delta": -0.009,
          "percent_delta": -0.0402,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.338,
          "after": 0.326,
          "delta": -0.012,
          "percent_delta": -0.0355,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.398,
          "after": 0.38,
          "delta": -0.018,
          "percent_delta": -0.0452,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.398,
          "after": 0.38,
          "delta": -0.018,
          "percent_delta": -0.0452,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 11,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_BB": 0.0,
        "predicted_H": 2.0,
        "predicted_HBP": 1.0,
        "predicted_HR": 1.0,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SF": 0.0,
        "predicted_SO": 0.0
      },
      "changed_metrics": [
        {
          "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": 2.0,
          "delta": 1.0,
          "percent_delta": 1.0,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "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": 1.0,
          "delta": 1.0,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 5,
        "boosted_metrics": 3,
        "deboosted_metrics": 2,
        "better_metrics": 4,
        "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
        }
      }
    },
    {
      "index": 12,
      "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_H": 2.0,
        "predicted_HBP": 1.0,
        "predicted_HR": 1.0,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SF": 0.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
      },
      "reference_only": true
    },
    {
      "index": 13,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.215,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_FB": 0.0,
        "predicted_H": 2.0,
        "predicted_HBP": 1.0,
        "predicted_HR": 1.0,
        "predicted_OBP": 0.326,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.38,
        "predicted_SO": 0.0,
        "predicted_TB": 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
      }
    }
  ],
  "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_AB",
        "before": 3.44,
        "after": 4.0,
        "delta": 0.56,
        "percent_delta": 0.1628,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.247,
        "after": 0.215,
        "delta": -0.032,
        "percent_delta": -0.1296,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.636,
        "after": 0.0,
        "delta": -0.636,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.85,
        "after": 2.0,
        "delta": 1.15,
        "percent_delta": 1.3529,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_HBP",
        "before": 0.078,
        "after": 1.0,
        "delta": 0.922,
        "percent_delta": 11.8205,
        "direction": "boost",
        "projection_effect": "better",
        "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.345,
        "after": 0.326,
        "delta": -0.019,
        "percent_delta": -0.0551,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.65,
        "after": 1.0,
        "delta": 0.35,
        "percent_delta": 0.5385,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.49,
        "after": 1.0,
        "delta": 0.51,
        "percent_delta": 1.0408,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.431,
        "after": 0.38,
        "delta": -0.051,
        "percent_delta": -0.1183,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 1.114,
        "after": 0.0,
        "delta": -1.114,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 12,
      "boosted_metrics": 6,
      "deboosted_metrics": 6,
      "better_metrics": 7,
      "worse_metrics": 5,
      "biggest_boost": {
        "metric": "predicted_H",
        "before": 0.85,
        "after": 2.0,
        "delta": 1.15,
        "percent_delta": 1.3529,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_SO",
        "before": 1.114,
        "after": 0.0,
        "delta": -1.114,
        "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.014-
predicted_AB3.440-
predicted_AVG0.247-
predicted_BB0.636-
predicted_H0.850-
predicted_HR0.150-
predicted_OBP0.345-
predicted_R0.650-
predicted_RBI0.490-
predicted_SLG0.431-
predicted_SO1.114-
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.137-0.006
predicted_3B0.012-0.002
predicted_AB3.4540.014
predicted_AVG0.2480.001
predicted_BB0.575-0.061
predicted_H0.8570.007
predicted_HBP0.078-
predicted_HR0.133-0.017
predicted_OBP0.3470.002
predicted_R0.615-0.035
predicted_RBI0.4950.005
predicted_SLG0.412-0.019
predicted_SO1.1720.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.1370.000
predicted_3B0.0120.000
predicted_AB3.4540.000
predicted_AVG0.2520.004
predicted_BB0.5810.007
predicted_H0.8710.014
predicted_HBP0.0780.000
predicted_HR0.1350.003
predicted_OBP0.3600.013
predicted_R0.6340.019
predicted_RBI0.5100.015
predicted_SLG0.4160.004
predicted_SO1.158-0.014
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.45), rates preserved: AVG=0.243 HR/AB=0.039

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.1410.141
3B0.0110.011
BB0.598-0.402
H0.821-0.179
HR0.1570.157
RBI0.518-0.482
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.141
3B0.000-0.011
AB4.0000.000
AVG0.224-
BB1.0000.402
H1.0000.179
HR0.000-0.157
OBP0.338-
R1.0000.000
RBI1.0000.482
SLG0.398-
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.137
predicted_3B0.000-0.012
predicted_AB4.0000.546
predicted_AVG0.224-0.028
predicted_BB1.0000.419
predicted_H1.0000.129
predicted_HR0.000-0.135
predicted_OBP0.338-0.022
predicted_R1.0000.366
predicted_RBI1.0000.490
predicted_SLG0.398-0.018
predicted_SO1.000-0.158
10. kpi_run_environment

KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
AVG0.215-0.009
BB1.0000.000
H1.0000.000
HR0.0000.000
OBP0.326-0.012
R1.0000.000
RBI1.0000.000
SLG0.380-0.018
SO1.0000.000
11. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.000-1.000
H2.0001.000
HBP1.0001.000
HR1.0001.000
PA5.000-
R1.0000.000
RBI1.0000.000
SF0.0000.000
SO0.000-1.000
12. 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
H2.0000.000
HBP1.0000.000
HR1.0000.000
PA5.0000.000
R1.0000.000
RBI1.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: 140
Reference playing time: 3.801
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.0002.0001.0007.0000.22220.28570.22220.22220.00000.11110.05560.3889
last_100.2010-35.0008.0002.0000.0000.0003.0005.0004.00016.0000.22860.31710.28570.22860.00000.08570.11430.4571
season0.60140-475.000126.00020.0002.00025.00084.00091.00089.000156.0000.26530.38460.47370.26530.05260.17680.18740.3284
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1290
predicted_3B0.0090
predicted_AB3.4730
predicted_AVG0.2493
predicted_BB0.4950
predicted_H0.8660
predicted_HBP0.0780
predicted_HR0.1100
predicted_OBP0.3490
predicted_R0.5700
predicted_RBI0.5020
predicted_SLG0.3869
predicted_SO1.2470
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.14300.12900.1369model_form_blend
predicted_3B0.01400.00900.0118model_form_blend
predicted_AB3.44003.47303.4544model_form_blend
predicted_AVG0.24700.24930.2480model_form_blend
predicted_BB0.63600.49500.5746model_form_blend
predicted_H0.85000.86600.8570model_form_blend
predicted_HBP-0.07800.0780form_only
predicted_HR0.15000.11000.1326model_form_blend
predicted_OBP0.34500.34900.3467model_form_blend
predicted_R0.65000.57000.6152model_form_blend
predicted_RBI0.49000.50200.4952model_form_blend
predicted_SLG0.43100.38690.4118model_form_blend
predicted_SO1.11401.24701.1719model_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 date549
Season rows before report date549
Report year2026
Profile rows used140
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
HR1
R1
RBI1
BB0
SO0
SF0
HBP1

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
allPositionsPlayed1B
gameID20261004_SD@MIL
game_typefull
mlbID641343
playerID641343
playerNameJake Bauers
pos1B
startedTrue
startingPosition1B
teamMIL
teamID16
game_date2026-10-04
sl_k_percent27.0
sl_bb_percent16.3
sl_woba0.381
sl_xwoba0.371
sl_xba0.253
sl_xslg0.467
sl_sweet_spot_percent38.6
sl_barrel_batted_rate14.0
sl_hard_hit_percent51.9
sl_exit_velocity_avg92.1
sl_launch_angle_avg12.1
sl_whiff_percent29.8
sl_swing_percent40.6
William Contreras (661388) · BATTER · C · Team MIL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 609
All-history rows before 20261006: 609
System season_avg: 0.2680
Data season_avg (2026 season-to-date): 0.2741
Diff (system - data): -0.0061
System opponent_avg: 0.2310

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1770.0000.000Hitting_2B0.1860.000-0.1860.000
predicted_3B0.0070.0000.000Hitting_3B0.0080.000-0.0080.000
predicted_AB4.8204.0004.000Hitting_AB3.9844.0000.0160.000
predicted_AVG0.2210.0000.000Hitting_AVG0.2740.000-0.2740.000
predicted_BB0.4151.0001.000Hitting_BB0.4380.0000.5621.000
predicted_CS-0.0000.000BaseRunning_CS0.0150.000-0.0150.000
predicted_H1.0700.0000.000Hitting_H1.0920.000-1.0920.000
predicted_HR0.1900.0000.000Hitting_HR0.1300.000-0.1300.000
predicted_OBP0.3220.2000.200Hitting_OBP0.3450.000-0.1450.200
predicted_R0.5580.0000.000Hitting_R0.6090.000-0.6090.000
predicted_RBI0.7600.0000.000Hitting_RBI0.6780.000-0.6780.000
predicted_SLG0.4280.0000.000Hitting_SLG0.4230.000-0.4230.000
predicted_SO0.6390.0000.000Hitting_SO0.6421.000-0.642-1.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_BB: 0.4150 -> 1.0000 (boost 0.5850, better)
Biggest Deboostpredicted_H: 1.0700 -> 0.0000 (deboost -1.0700, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend61515predicted_AVG: 0.2210 -> 0.2301 (boost 0.0091, better)predicted_AB: 4.8200 -> 4.3319 (deboost -0.4881, 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.4187 -> 0.3962 (deboost -0.0225, 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_scaling62415predicted_SO: 0.6203 -> 1.0000 (boost 0.3797, worse)predicted_BB: 0.4419 -> 0.0000 (deboost -0.4419, worse)AB rounded to 4 (raw=4.82), rates preserved: AVG=0.202 HR/AB=0.037
6bvp_blend00000--Sample-size BvP blend (BvP AB=13.0, weight=0.121, BvP AVG=0.231)
7consistency_constraints11010predicted_R: 0.5174 -> 1.0000 (boost 0.4826, better)-Enforced H<=AB, HR<=H, safety nets, derived R
8hitter_rate_engine63342predicted_BB: 0.0000 -> 0.3793 (boost 0.3793, better)predicted_RBI: 1.0000 -> 0.5325 (deboost -0.4675, 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_allocation83526predicted_RBI: 0.5325 -> 1.0000 (boost 0.4675, better)predicted_R: 1.0000 -> 0.0000 (deboost -1.0000, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
10embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
11kpi_run_environment30303-predicted_SLG: 0.3650 -> 0.3490 (deboost -0.0160, worse)KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup
12play_by_play_realization41322predicted_BB: 0.0000 -> 1.0000 (boost 1.0000, better)predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse)Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
13simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
14current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "661388",
  "player_name": "William Contreras",
  "position": "C",
  "team": "MIL",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.177,
        "predicted_3B": 0.007,
        "predicted_AB": 4.82,
        "predicted_AVG": 0.221,
        "predicted_BB": 0.415,
        "predicted_H": 1.07,
        "predicted_HR": 0.19,
        "predicted_OBP": 0.322,
        "predicted_R": 0.558,
        "predicted_RBI": 0.76,
        "predicted_SLG": 0.428,
        "predicted_SO": 0.639
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "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.1543,
        "predicted_3B": 0.0057,
        "predicted_AB": 4.3319,
        "predicted_AVG": 0.2301,
        "predicted_BB": 0.4368,
        "predicted_H": 0.994,
        "predicted_HBP": 0.016,
        "predicted_HR": 0.1765,
        "predicted_OBP": 0.3234,
        "predicted_R": 0.5021,
        "predicted_RBI": 0.7063,
        "predicted_SLG": 0.4187,
        "predicted_SO": 0.6276
      },
      "changed_metrics": [
        {
          "metric": "predicted_AB",
          "before": 4.82,
          "after": 4.3319,
          "delta": -0.4881,
          "percent_delta": -0.1013,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.221,
          "after": 0.2301,
          "delta": 0.0091,
          "percent_delta": 0.0412,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.07,
          "after": 0.994,
          "delta": -0.076,
          "percent_delta": -0.071,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.558,
          "after": 0.5021,
          "delta": -0.0559,
          "percent_delta": -0.1002,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.76,
          "after": 0.7063,
          "delta": -0.0537,
          "percent_delta": -0.0707,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.428,
          "after": 0.4187,
          "delta": -0.0093,
          "percent_delta": -0.0217,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 6,
        "boosted_metrics": 1,
        "deboosted_metrics": 5,
        "better_metrics": 1,
        "worse_metrics": 5,
        "biggest_boost": {
          "metric": "predicted_AVG",
          "before": 0.221,
          "after": 0.2301,
          "delta": 0.0091,
          "percent_delta": 0.0412,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 4.82,
          "after": 4.3319,
          "delta": -0.4881,
          "percent_delta": -0.1013,
          "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.1543,
        "predicted_3B": 0.0057,
        "predicted_AB": 4.3319,
        "predicted_AVG": 0.2333,
        "predicted_BB": 0.4419,
        "predicted_H": 1.0106,
        "predicted_HBP": 0.016,
        "predicted_HR": 0.1801,
        "predicted_OBP": 0.3043,
        "predicted_R": 0.5174,
        "predicted_RBI": 0.7278,
        "predicted_SLG": 0.3962,
        "predicted_SO": 0.6203
      },
      "changed_metrics": [
        {
          "metric": "predicted_OBP",
          "before": 0.3234,
          "after": 0.3043,
          "delta": -0.0191,
          "percent_delta": -0.0591,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4187,
          "after": 0.3962,
          "delta": -0.0225,
          "percent_delta": -0.0537,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.4187,
          "after": 0.3962,
          "delta": -0.0225,
          "percent_delta": -0.0537,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 4 (raw=4.82), rates preserved: AVG=0.202 HR/AB=0.037",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SB": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1543,
          "after": 0.0,
          "delta": -0.1543,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AB",
          "before": 4.3319,
          "after": 4.0,
          "delta": -0.3319,
          "percent_delta": -0.0766,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.4419,
          "after": 0.0,
          "delta": -0.4419,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1801,
          "after": 0.0,
          "delta": -0.1801,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.7278,
          "after": 1.0,
          "delta": 0.2722,
          "percent_delta": 0.374,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.6203,
          "after": 1.0,
          "delta": 0.3797,
          "percent_delta": 0.6121,
          "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.6203,
          "after": 1.0,
          "delta": 0.3797,
          "percent_delta": 0.6121,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.4419,
          "after": 0.0,
          "delta": -0.4419,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 6,
      "step": "bvp_blend",
      "description": "Sample-size BvP blend (BvP AB=13.0, weight=0.121, BvP AVG=0.231)",
      "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": [],
      "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.8791,
        "bvp": 0.1209
      }
    },
    {
      "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_R",
          "before": 0.5174,
          "after": 1.0,
          "delta": 0.4826,
          "percent_delta": 0.9327,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 1,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_R",
          "before": 0.5174,
          "after": 1.0,
          "delta": 0.4826,
          "percent_delta": 0.9327,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "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.1539,
        "predicted_3B": 0.008,
        "predicted_BB": 0.3793,
        "predicted_H": 0.8877,
        "predicted_HR": 0.1124,
        "predicted_RBI": 0.5325,
        "predicted_SO": 0.8122
      },
      "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_BB",
          "before": 0.0,
          "after": 0.3793,
          "delta": 0.3793,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8877,
          "delta": -0.1123,
          "percent_delta": -0.1123,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1124,
          "delta": 0.1124,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.5325,
          "delta": -0.4675,
          "percent_delta": -0.4675,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.8122,
          "delta": -0.1878,
          "percent_delta": -0.1878,
          "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.3793,
          "delta": 0.3793,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.5325,
          "delta": -0.4675,
          "percent_delta": -0.4675,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_AVG": 0.232,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.307,
        "predicted_R": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.365,
        "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_BB",
          "before": 0.3793,
          "after": 0.0,
          "delta": -0.3793,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8877,
          "after": 1.0,
          "delta": 0.1123,
          "percent_delta": 0.1265,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1124,
          "after": 0.0,
          "delta": -0.1124,
          "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.5325,
          "after": 1.0,
          "delta": 0.4675,
          "percent_delta": 0.8779,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3962,
          "after": 0.365,
          "delta": -0.0312,
          "percent_delta": -0.0787,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.8122,
          "after": 1.0,
          "delta": 0.1878,
          "percent_delta": 0.2312,
          "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.5325,
          "after": 1.0,
          "delta": 0.4675,
          "percent_delta": 0.8779,
          "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
        }
      }
    },
    {
      "index": 10,
      "step": "embedded_savant_player_context",
      "description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.232,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.307,
        "predicted_R": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.365,
        "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
      }
    },
    {
      "index": 11,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.222,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.295,
        "predicted_R": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.349,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.232,
          "after": 0.222,
          "delta": -0.01,
          "percent_delta": -0.0431,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.307,
          "after": 0.295,
          "delta": -0.012,
          "percent_delta": -0.0391,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.365,
          "after": 0.349,
          "delta": -0.016,
          "percent_delta": -0.0438,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.349,
          "delta": -0.016,
          "percent_delta": -0.0438,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 12,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_BB": 1.0,
        "predicted_H": 0.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.0,
        "predicted_SO": 0.0
      },
      "changed_metrics": [
        {
          "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": 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_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": 1,
        "deboosted_metrics": 3,
        "better_metrics": 2,
        "worse_metrics": 2,
        "biggest_boost": {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 1.0,
          "delta": 1.0,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 13,
      "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_H": 0.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.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
      },
      "reference_only": true
    },
    {
      "index": 14,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.222,
        "predicted_BB": 1.0,
        "predicted_C": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 0.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.295,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.349,
        "predicted_SO": 0.0,
        "predicted_TB": 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
      }
    }
  ],
  "total_change": {
    "from_step": "xgboost_raw",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_2B",
        "before": 0.177,
        "after": 0.0,
        "delta": -0.177,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AB",
        "before": 4.82,
        "after": 4.0,
        "delta": -0.82,
        "percent_delta": -0.1701,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.415,
        "after": 1.0,
        "delta": 0.585,
        "percent_delta": 1.4096,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 1.07,
        "after": 0.0,
        "delta": -1.07,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.19,
        "after": 0.0,
        "delta": -0.19,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.322,
        "after": 0.295,
        "delta": -0.027,
        "percent_delta": -0.0839,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.558,
        "after": 0.0,
        "delta": -0.558,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.76,
        "after": 0.0,
        "delta": -0.76,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.428,
        "after": 0.349,
        "delta": -0.079,
        "percent_delta": -0.1846,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.639,
        "after": 0.0,
        "delta": -0.639,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 10,
      "boosted_metrics": 1,
      "deboosted_metrics": 9,
      "better_metrics": 2,
      "worse_metrics": 8,
      "biggest_boost": {
        "metric": "predicted_BB",
        "before": 0.415,
        "after": 1.0,
        "delta": 0.585,
        "percent_delta": 1.4096,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_H",
        "before": 1.07,
        "after": 0.0,
        "delta": -1.07,
        "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.177-
predicted_3B0.007-
predicted_AB4.820-
predicted_AVG0.221-
predicted_BB0.415-
predicted_H1.070-
predicted_HR0.190-
predicted_OBP0.322-
predicted_R0.558-
predicted_RBI0.760-
predicted_SLG0.428-
predicted_SO0.639-
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.154-0.023
predicted_3B0.006-0.001
predicted_AB4.332-0.488
predicted_AVG0.2300.009
predicted_BB0.4370.022
predicted_H0.994-0.076
predicted_HBP0.016-
predicted_HR0.176-0.014
predicted_OBP0.3230.001
predicted_R0.502-0.056
predicted_RBI0.706-0.054
predicted_SLG0.419-0.009
predicted_SO0.628-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.1540.000
predicted_3B0.0060.000
predicted_AB4.3320.000
predicted_AVG0.2330.003
predicted_BB0.4420.005
predicted_H1.0110.017
predicted_HBP0.0160.000
predicted_HR0.1800.004
predicted_OBP0.304-0.019
predicted_R0.5170.015
predicted_RBI0.7280.021
predicted_SLG0.396-0.023
predicted_SO0.620-0.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=4.82), rates preserved: AVG=0.202 HR/AB=0.037

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=13.0, weight=0.121, BvP AVG=0.231)

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.1540.154
3B0.0080.008
BB0.3790.379
H0.888-0.112
HR0.1120.112
RBI0.532-0.468
SO0.812-0.188
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
AB4.0000.000
AVG0.232-
BB0.000-0.379
H1.0000.112
HR0.000-0.112
OBP0.307-
R0.000-1.000
RBI1.0000.468
SLG0.365-
SO1.0000.188
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.154
predicted_3B0.000-0.006
predicted_AB4.000-0.332
predicted_AVG0.232-0.001
predicted_BB0.000-0.442
predicted_H1.000-0.011
predicted_HR0.000-0.180
predicted_OBP0.3070.003
predicted_R0.000-0.517
predicted_RBI1.0000.272
predicted_SLG0.365-0.031
predicted_SO1.0000.380
11. kpi_run_environment

KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
AVG0.222-0.010
BB0.0000.000
H1.0000.000
HR0.0000.000
OBP0.295-0.012
R0.0000.000
RBI1.0000.000
SLG0.349-0.016
SO1.0000.000
12. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB1.0001.000
H0.000-1.000
HBP0.0000.000
HR0.0000.000
PA5.000-
R0.0000.000
RBI0.000-1.000
SF0.0000.000
SO0.000-1.000
13. 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
H0.0000.000
HBP0.0000.000
HR0.0000.000
PA5.0000.000
R0.0000.000
RBI0.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: 147
Reference playing time: 4.820
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.0003.0000.0000.0001.0002.0001.0003.0002.0000.17650.30000.35290.17650.05880.11770.17650.1177
last_100.2010-35.0008.0001.0000.0002.0009.0003.0005.0007.0000.22860.31710.42860.22860.05710.25710.14290.2000
season0.60147-568.000152.00026.0001.00019.00094.00082.00061.00094.0000.26760.33800.41730.26760.03350.16550.10740.1655
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1250
predicted_3B0.0040
predicted_AB3.7030
predicted_AVG0.2419
predicted_BB0.4650
predicted_H0.8960
predicted_HBP0.0160
predicted_HR0.1590
predicted_OBP0.3253
predicted_R0.4300
predicted_RBI0.6370
predicted_SLG0.4067
predicted_SO0.6130
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.17700.12500.1543model_form_blend
predicted_3B0.00700.00400.0057model_form_blend
predicted_AB4.82003.70304.3319model_form_blend
predicted_AVG0.22100.24190.2301model_form_blend
predicted_BB0.41500.46500.4368model_form_blend
predicted_H1.07000.89600.9940model_form_blend
predicted_HBP-0.01600.0160form_only
predicted_HR0.19000.15900.1765model_form_blend
predicted_OBP0.32200.32530.3234model_form_blend
predicted_R0.55800.43000.5021model_form_blend
predicted_RBI0.76000.63700.7063model_form_blend
predicted_SLG0.42800.40670.4187model_form_blend
predicted_SO0.63900.61300.6276model_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 date609
Season rows before report date609
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
H0
2B0
3B0
HR0
R0
RBI0
BB1
SO0
SF0
HBP0

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_SO1
Hitting_TB0
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
allPositionsPlayedC
gameID20261004_SD@MIL
game_typefull
mlbID661388
playerID661388
playerNameWilliam Contreras
posC
startedTrue
startingPositionC
teamMIL
teamID16
game_date2026-10-04
sl_k_percent14.7
sl_bb_percent9.5
sl_woba0.33
sl_xwoba0.334
sl_xba0.261
sl_xslg0.441
sl_sweet_spot_percent33.3
sl_barrel_batted_rate8.5
sl_hard_hit_percent44.1
sl_exit_velocity_avg90.3
sl_launch_angle_avg13.2
sl_whiff_percent20.7
sl_swing_percent47.2
Brice Turang (668930) · BATTER · 2B · Team MIL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 653
All-history rows before 20261006: 653
System season_avg: 0.2720
Data season_avg (2026 season-to-date): 0.2769
Diff (system - data): -0.0049
System opponent_avg: 0.2090

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.2480.0000.000Hitting_2B0.2600.000-0.2600.000
predicted_3B0.0200.0000.000Hitting_3B0.0280.000-0.0280.000
predicted_AB4.3704.0004.000Hitting_AB3.9604.0000.0400.000
predicted_AVG0.2240.2500.250Hitting_AVG0.2770.000-0.0270.250
predicted_BB0.5841.0001.000Hitting_BB0.5880.0000.4121.000
predicted_CS-0.0000.000BaseRunning_CS0.0370.000-0.0370.000
predicted_H0.9801.0001.000Hitting_H1.0960.000-0.0961.000
predicted_HR0.1600.0000.000Hitting_HR0.1420.000-0.1420.000
predicted_OBP0.3240.4000.400Hitting_OBP0.3700.0000.0300.400
predicted_R0.6851.0001.000Hitting_R0.7140.0000.2861.000
predicted_RBI0.8400.0000.000Hitting_RBI0.7350.000-0.7350.000
predicted_SB-0.0000.000BaseRunning_SB0.1300.000-0.1300.000
predicted_SLG0.4340.2500.250Hitting_SLG0.4640.000-0.2140.250
predicted_SO1.1210.0000.000Hitting_SO1.0811.000-1.081-1.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.5840 -> 1.0000 (boost 0.4160, better)
Biggest Deboostpredicted_SO: 1.1210 -> 0.0000 (deboost -1.1210, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend53232predicted_AVG: 0.2240 -> 0.2434 (boost 0.0194, better)predicted_AB: 4.3700 -> 4.1657 (deboost -0.2043, 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.4510 -> 0.4362 (deboost -0.0148, 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_RBI: 0.8367 -> 1.0000 (boost 0.1633, better)predicted_BB: 0.5377 -> 0.0000 (deboost -0.5377, worse)AB rounded to 4 (raw=4.37), rates preserved: AVG=0.226 HR/AB=0.038
6bvp_blend00000--Sample-size BvP blend (BvP AB=6.0, weight=0.067, BvP AVG=0.167)
7consistency_constraints11010predicted_R: 0.6878 -> 1.0000 (boost 0.3122, better)-Enforced H<=AB, HR<=H, safety nets, derived R
8hitter_rate_engine64233predicted_BB: 0.0000 -> 0.5146 (boost 0.5146, better)predicted_RBI: 1.0000 -> 0.5314 (deboost -0.4686, 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_allocation83544predicted_BB: 0.5146 -> 1.0000 (boost 0.4854, better)predicted_2B: 0.1613 -> 0.0000 (deboost -0.1613, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
10embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
11kpi_run_environment30303-predicted_SLG: 0.3740 -> 0.3580 (deboost -0.0160, worse)KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup
12play_by_play_realization20211-predicted_RBI: 1.0000 -> 0.0000 (deboost -1.0000, worse)Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
13simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
14current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "668930",
  "player_name": "Brice Turang",
  "position": "2B",
  "team": "MIL",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.248,
        "predicted_3B": 0.02,
        "predicted_AB": 4.37,
        "predicted_AVG": 0.224,
        "predicted_BB": 0.584,
        "predicted_H": 0.98,
        "predicted_HR": 0.16,
        "predicted_OBP": 0.324,
        "predicted_R": 0.685,
        "predicted_RBI": 0.84,
        "predicted_SLG": 0.434,
        "predicted_SO": 1.121
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "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.2642,
        "predicted_3B": 0.0165,
        "predicted_AB": 4.1657,
        "predicted_AVG": 0.2434,
        "predicted_BB": 0.5315,
        "predicted_H": 1.0093,
        "predicted_HBP": 0.005,
        "predicted_HR": 0.1613,
        "predicted_OBP": 0.3334,
        "predicted_R": 0.6675,
        "predicted_RBI": 0.812,
        "predicted_SLG": 0.451,
        "predicted_SO": 1.1188
      },
      "changed_metrics": [
        {
          "metric": "predicted_AB",
          "before": 4.37,
          "after": 4.1657,
          "delta": -0.2043,
          "percent_delta": -0.0468,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.224,
          "after": 0.2434,
          "delta": 0.0194,
          "percent_delta": 0.0866,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.584,
          "after": 0.5315,
          "delta": -0.0525,
          "percent_delta": -0.0899,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.324,
          "after": 0.3334,
          "delta": 0.0094,
          "percent_delta": 0.029,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.434,
          "after": 0.451,
          "delta": 0.017,
          "percent_delta": 0.0392,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 5,
        "boosted_metrics": 3,
        "deboosted_metrics": 2,
        "better_metrics": 3,
        "worse_metrics": 2,
        "biggest_boost": {
          "metric": "predicted_AVG",
          "before": 0.224,
          "after": 0.2434,
          "delta": 0.0194,
          "percent_delta": 0.0866,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 4.37,
          "after": 4.1657,
          "delta": -0.2043,
          "percent_delta": -0.0468,
          "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.2642,
        "predicted_3B": 0.0165,
        "predicted_AB": 4.1657,
        "predicted_AVG": 0.2463,
        "predicted_BB": 0.5377,
        "predicted_H": 1.0262,
        "predicted_HBP": 0.005,
        "predicted_HR": 0.1646,
        "predicted_OBP": 0.3325,
        "predicted_R": 0.6878,
        "predicted_RBI": 0.8367,
        "predicted_SLG": 0.4362,
        "predicted_SO": 1.1058
      },
      "changed_metrics": [
        {
          "metric": "predicted_SLG",
          "before": 0.451,
          "after": 0.4362,
          "delta": -0.0148,
          "percent_delta": -0.0328,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 0,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 1,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_SLG",
          "before": 0.451,
          "after": 0.4362,
          "delta": -0.0148,
          "percent_delta": -0.0328,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 4 (raw=4.37), rates preserved: AVG=0.226 HR/AB=0.038",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SB": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.2642,
          "after": 0.0,
          "delta": -0.2642,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AB",
          "before": 4.1657,
          "after": 4.0,
          "delta": -0.1657,
          "percent_delta": -0.0398,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.5377,
          "after": 0.0,
          "delta": -0.5377,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1646,
          "after": 0.0,
          "delta": -0.1646,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.8367,
          "after": 1.0,
          "delta": 0.1633,
          "percent_delta": 0.1952,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.1058,
          "after": 1.0,
          "delta": -0.1058,
          "percent_delta": -0.0957,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 6,
        "boosted_metrics": 1,
        "deboosted_metrics": 5,
        "better_metrics": 2,
        "worse_metrics": 4,
        "biggest_boost": {
          "metric": "predicted_RBI",
          "before": 0.8367,
          "after": 1.0,
          "delta": 0.1633,
          "percent_delta": 0.1952,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.5377,
          "after": 0.0,
          "delta": -0.5377,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 6,
      "step": "bvp_blend",
      "description": "Sample-size BvP blend (BvP AB=6.0, weight=0.067, BvP AVG=0.167)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_RBI": 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": {
        "model_expectation": 0.9333,
        "bvp": 0.0667
      }
    },
    {
      "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_R",
          "before": 0.6878,
          "after": 1.0,
          "delta": 0.3122,
          "percent_delta": 0.4539,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 1,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_R",
          "before": 0.6878,
          "after": 1.0,
          "delta": 0.3122,
          "percent_delta": 0.4539,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "index": 8,
      "step": "hitter_rate_engine",
      "description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
      "stats": {
        "predicted_2B": 0.1613,
        "predicted_3B": 0.0115,
        "predicted_BB": 0.5146,
        "predicted_H": 0.8329,
        "predicted_HR": 0.1177,
        "predicted_RBI": 0.5314,
        "predicted_SO": 1.1177
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1613,
          "delta": 0.1613,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.5146,
          "delta": 0.5146,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8329,
          "delta": -0.1671,
          "percent_delta": -0.1671,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1177,
          "delta": 0.1177,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.5314,
          "delta": -0.4686,
          "percent_delta": -0.4686,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 1.1177,
          "delta": 0.1177,
          "percent_delta": 0.1177,
          "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.5146,
          "delta": 0.5146,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.5314,
          "delta": -0.4686,
          "percent_delta": -0.4686,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_AVG": 0.227,
        "predicted_BB": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.328,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.374,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1613,
          "after": 0.0,
          "delta": -0.1613,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2463,
          "after": 0.227,
          "delta": -0.0193,
          "percent_delta": -0.0784,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.5146,
          "after": 1.0,
          "delta": 0.4854,
          "percent_delta": 0.9433,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8329,
          "after": 1.0,
          "delta": 0.1671,
          "percent_delta": 0.2006,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1177,
          "after": 0.0,
          "delta": -0.1177,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5314,
          "after": 1.0,
          "delta": 0.4686,
          "percent_delta": 0.8818,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4362,
          "after": 0.374,
          "delta": -0.0622,
          "percent_delta": -0.1426,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.1177,
          "after": 1.0,
          "delta": -0.1177,
          "percent_delta": -0.1053,
          "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.5146,
          "after": 1.0,
          "delta": 0.4854,
          "percent_delta": 0.9433,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_2B",
          "before": 0.1613,
          "after": 0.0,
          "delta": -0.1613,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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.227,
        "predicted_BB": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.328,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.374,
        "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
      }
    },
    {
      "index": 11,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.218,
        "predicted_BB": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.316,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.358,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.227,
          "after": 0.218,
          "delta": -0.009,
          "percent_delta": -0.0396,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.328,
          "after": 0.316,
          "delta": -0.012,
          "percent_delta": -0.0366,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.374,
          "after": 0.358,
          "delta": -0.016,
          "percent_delta": -0.0428,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.374,
          "after": 0.358,
          "delta": -0.016,
          "percent_delta": -0.0428,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 12,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "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_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.0,
        "predicted_SO": 0.0
      },
      "changed_metrics": [
        {
          "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_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_RBI",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 13,
      "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_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.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
      },
      "reference_only": true
    },
    {
      "index": 14,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.218,
        "predicted_BB": 1.0,
        "predicted_CS": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.316,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.358,
        "predicted_SO": 0.0,
        "predicted_TB": 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
      }
    }
  ],
  "total_change": {
    "from_step": "xgboost_raw",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_2B",
        "before": 0.248,
        "after": 0.0,
        "delta": -0.248,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AB",
        "before": 4.37,
        "after": 4.0,
        "delta": -0.37,
        "percent_delta": -0.0847,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.224,
        "after": 0.218,
        "delta": -0.006,
        "percent_delta": -0.0268,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.584,
        "after": 1.0,
        "delta": 0.416,
        "percent_delta": 0.7123,
        "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.324,
        "after": 0.316,
        "delta": -0.008,
        "percent_delta": -0.0247,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.685,
        "after": 1.0,
        "delta": 0.315,
        "percent_delta": 0.4599,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.84,
        "after": 0.0,
        "delta": -0.84,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.434,
        "after": 0.358,
        "delta": -0.076,
        "percent_delta": -0.1751,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 1.121,
        "after": 0.0,
        "delta": -1.121,
        "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.584,
        "after": 1.0,
        "delta": 0.416,
        "percent_delta": 0.7123,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_SO",
        "before": 1.121,
        "after": 0.0,
        "delta": -1.121,
        "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.248-
predicted_3B0.020-
predicted_AB4.370-
predicted_AVG0.224-
predicted_BB0.584-
predicted_H0.980-
predicted_HR0.160-
predicted_OBP0.324-
predicted_R0.685-
predicted_RBI0.840-
predicted_SLG0.434-
predicted_SO1.121-
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.2640.016
predicted_3B0.017-0.003
predicted_AB4.166-0.204
predicted_AVG0.2430.019
predicted_BB0.531-0.052
predicted_H1.0090.029
predicted_HBP0.005-
predicted_HR0.1610.001
predicted_OBP0.3330.009
predicted_R0.667-0.018
predicted_RBI0.812-0.028
predicted_SLG0.4510.017
predicted_SO1.119-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.2640.000
predicted_3B0.0170.000
predicted_AB4.1660.000
predicted_AVG0.2460.003
predicted_BB0.5380.006
predicted_H1.0260.017
predicted_HBP0.0050.000
predicted_HR0.1650.003
predicted_OBP0.333-0.001
predicted_R0.6880.020
predicted_RBI0.8370.025
predicted_SLG0.436-0.015
predicted_SO1.106-0.013
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.37), rates preserved: AVG=0.226 HR/AB=0.038

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=6.0, weight=0.067, BvP AVG=0.167)

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.1610.161
3B0.0110.011
BB0.5150.515
H0.833-0.167
HR0.1180.118
RBI0.531-0.469
SO1.1180.118
9. lineup_integer_allocation

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

MetricValueDelta vs Prev Step
2B0.000-0.161
3B0.000-0.011
AB4.0000.000
AVG0.227-
BB1.0000.485
H1.0000.167
HR0.000-0.118
OBP0.328-
R1.0000.000
RBI1.0000.469
SLG0.374-
SO1.000-0.118
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.264
predicted_3B0.000-0.017
predicted_AB4.000-0.166
predicted_AVG0.227-0.019
predicted_BB1.0000.462
predicted_H1.000-0.026
predicted_HR0.000-0.165
predicted_OBP0.328-0.005
predicted_R1.0000.312
predicted_RBI1.0000.163
predicted_SLG0.374-0.062
predicted_SO1.000-0.106
11. kpi_run_environment

KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
AVG0.218-0.009
BB1.0000.000
H1.0000.000
HR0.0000.000
OBP0.316-0.012
R1.0000.000
RBI1.0000.000
SLG0.358-0.016
SO1.0000.000
12. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB1.0000.000
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA5.000-
R1.0000.000
RBI0.000-1.000
SF0.0000.000
SO0.000-1.000
13. 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
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA5.0000.000
R1.0000.000
RBI0.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: 149
Reference playing time: 4.370
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.0005.0002.0000.0001.0006.0003.0002.0004.0000.26320.33330.52630.26320.05260.31580.10530.2105
last_100.2010-41.00011.0003.0000.0002.0007.0006.0002.00015.0000.26830.30230.48780.26830.04880.17070.04880.3659
season0.60149-578.000157.00037.0003.00021.000101.000102.00087.000167.0000.27160.36680.45500.27160.03630.17470.15050.2889
Weighted Prediction From Real Data
MetricValue
predicted_2B0.2850
predicted_3B0.0120
predicted_AB3.9030
predicted_AVG0.2683
predicted_BB0.4640
predicted_H1.0470
predicted_HBP0.0050
predicted_HR0.1630
predicted_OBP0.3454
predicted_R0.6450
predicted_RBI0.7760
predicted_SLG0.4729
predicted_SO1.1160
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.24800.28500.2642model_form_blend
predicted_3B0.02000.01200.0165model_form_blend
predicted_AB4.37003.90304.1657model_form_blend
predicted_AVG0.22400.26830.2434model_form_blend
predicted_BB0.58400.46400.5315model_form_blend
predicted_H0.98001.04701.0093model_form_blend
predicted_HBP-0.00500.0050form_only
predicted_HR0.16000.16300.1613model_form_blend
predicted_OBP0.32400.34540.3334model_form_blend
predicted_R0.68500.64500.6675model_form_blend
predicted_RBI0.84000.77600.8120model_form_blend
predicted_SLG0.43400.47290.4510model_form_blend
predicted_SO1.12101.11601.1188model_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 date653
Season rows before report date653
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
PA5
AB4
H1
2B0
3B0
HR0
R1
RBI0
BB1
SO0
SF0
HBP0

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_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_SO1
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
gameID20261004_SD@MIL
game_typefull
mlbID668930
playerID668930
playerNameBrice Turang
pos2B
startedTrue
startingPosition2B
teamMIL
teamID16
game_date2026-10-04
sl_k_percent25.1
sl_bb_percent13.2
sl_woba0.358
sl_xwoba0.344
sl_xba0.255
sl_xslg0.428
sl_sweet_spot_percent38.5
sl_barrel_batted_rate7.7
sl_hard_hit_percent41.6
sl_exit_velocity_avg90.3
sl_launch_angle_avg8.8
sl_whiff_percent23.1
sl_swing_percent43.2
Christian Yelich (592885) · BATTER · DH · Team MIL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 478
All-history rows before 20261006: 478
System season_avg: 0.2310
Data season_avg (2026 season-to-date): 0.2380
Diff (system - data): -0.0070
System opponent_avg: 0.3890

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1900.0000.000Hitting_2B0.2011.000-0.201-1.000
predicted_3B0.0170.0000.000Hitting_3B0.0210.000-0.0210.000
predicted_AB3.8504.0004.000Hitting_AB3.9733.0000.0271.000
predicted_AVG0.2300.5000.500Hitting_AVG0.2380.3330.2620.167
predicted_BB0.4310.0000.000Hitting_BB0.4581.000-0.458-1.000
predicted_CS-0.0000.000BaseRunning_CS0.0100.000-0.0100.000
predicted_H0.8902.0002.000Hitting_H0.9461.0001.0541.000
predicted_HR0.1000.0000.000Hitting_HR0.1050.000-0.1050.000
predicted_OBP0.3230.5000.500Hitting_OBP0.3220.5000.1780.000
predicted_R0.5951.0001.000Hitting_R0.6382.0000.362-1.000
predicted_RBI0.4500.0000.000Hitting_RBI0.5250.000-0.5250.000
predicted_SLG0.3620.5000.500Hitting_SLG0.3780.6670.122-0.167
predicted_SO1.1380.0000.000Hitting_SO1.1841.000-1.184-1.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.8900 -> 2.0000 (boost 1.1100, better)
Biggest Deboostpredicted_SO: 1.1380 -> 0.0000 (deboost -1.1380, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend10101-predicted_AB: 3.8500 -> 3.7222 (deboost -0.1278, 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_snapshot11010predicted_SLG: 0.3598 -> 0.3685 (boost 0.0087, 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_scaling72534predicted_AB: 3.7222 -> 4.0000 (boost 0.2778, better)predicted_RBI: 0.4552 -> 0.0000 (deboost -0.4552, worse)AB rounded to 4 (raw=3.85), rates preserved: AVG=0.220 HR/AB=0.024
6bvp_blend00000--Sample-size BvP blend (BvP AB=18.0, weight=0.150, BvP AVG=0.389)
7consistency_constraints11010predicted_R: 0.6051 -> 1.0000 (boost 0.3949, better)-Enforced H<=AB, HR<=H, safety nets, derived R
8hitter_rate_engine65142predicted_RBI: 0.0000 -> 0.5003 (boost 0.5003, better)predicted_H: 1.0000 -> 0.8354 (deboost -0.1646, 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_allocation94554predicted_2B: 0.1710 -> 1.0000 (boost 0.8290, better)predicted_RBI: 0.5003 -> 0.0000 (deboost -0.5003, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
10embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
11kpi_run_environment40404-predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse)KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup
12play_by_play_realization31221predicted_H: 1.0000 -> 2.0000 (boost 1.0000, better)predicted_2B: 1.0000 -> 0.0000 (deboost -1.0000, worse)Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
13simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
14current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "592885",
  "player_name": "Christian Yelich",
  "position": "DH",
  "team": "MIL",
  "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.017,
        "predicted_AB": 3.85,
        "predicted_AVG": 0.23,
        "predicted_BB": 0.431,
        "predicted_H": 0.89,
        "predicted_HR": 0.1,
        "predicted_OBP": 0.323,
        "predicted_R": 0.595,
        "predicted_RBI": 0.45,
        "predicted_SLG": 0.362,
        "predicted_SO": 1.138
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "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.1839,
        "predicted_3B": 0.014,
        "predicted_AB": 3.7222,
        "predicted_AVG": 0.2312,
        "predicted_BB": 0.4423,
        "predicted_H": 0.8631,
        "predicted_HBP": 0.02,
        "predicted_HR": 0.0922,
        "predicted_OBP": 0.3223,
        "predicted_R": 0.5872,
        "predicted_RBI": 0.4418,
        "predicted_SLG": 0.3598,
        "predicted_SO": 1.1267
      },
      "changed_metrics": [
        {
          "metric": "predicted_AB",
          "before": 3.85,
          "after": 3.7222,
          "delta": -0.1278,
          "percent_delta": -0.0332,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 0,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 1,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 3.85,
          "after": 3.7222,
          "delta": -0.1278,
          "percent_delta": -0.0332,
          "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.1839,
        "predicted_3B": 0.014,
        "predicted_AB": 3.7222,
        "predicted_AVG": 0.2358,
        "predicted_BB": 0.4474,
        "predicted_H": 0.8775,
        "predicted_HBP": 0.02,
        "predicted_HR": 0.0941,
        "predicted_OBP": 0.3178,
        "predicted_R": 0.6051,
        "predicted_RBI": 0.4552,
        "predicted_SLG": 0.3685,
        "predicted_SO": 1.1136
      },
      "changed_metrics": [
        {
          "metric": "predicted_SLG",
          "before": 0.3598,
          "after": 0.3685,
          "delta": 0.0087,
          "percent_delta": 0.0242,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 1,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_SLG",
          "before": 0.3598,
          "after": 0.3685,
          "delta": 0.0087,
          "percent_delta": 0.0242,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 4 (raw=3.85), rates preserved: AVG=0.220 HR/AB=0.024",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1839,
          "after": 0.0,
          "delta": -0.1839,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AB",
          "before": 3.7222,
          "after": 4.0,
          "delta": 0.2778,
          "percent_delta": 0.0746,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.4474,
          "after": 0.0,
          "delta": -0.4474,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8775,
          "after": 1.0,
          "delta": 0.1225,
          "percent_delta": 0.1396,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0941,
          "after": 0.0,
          "delta": -0.0941,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4552,
          "after": 0.0,
          "delta": -0.4552,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.1136,
          "after": 1.0,
          "delta": -0.1136,
          "percent_delta": -0.102,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 7,
        "boosted_metrics": 2,
        "deboosted_metrics": 5,
        "better_metrics": 3,
        "worse_metrics": 4,
        "biggest_boost": {
          "metric": "predicted_AB",
          "before": 3.7222,
          "after": 4.0,
          "delta": 0.2778,
          "percent_delta": 0.0746,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.4552,
          "after": 0.0,
          "delta": -0.4552,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 6,
      "step": "bvp_blend",
      "description": "Sample-size BvP blend (BvP AB=18.0, weight=0.150, BvP AVG=0.389)",
      "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": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      },
      "weights": {
        "model_expectation": 0.85,
        "bvp": 0.15
      }
    },
    {
      "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_R",
          "before": 0.6051,
          "after": 1.0,
          "delta": 0.3949,
          "percent_delta": 0.6526,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 1,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_R",
          "before": 0.6051,
          "after": 1.0,
          "delta": 0.3949,
          "percent_delta": 0.6526,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "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.171,
        "predicted_3B": 0.0105,
        "predicted_BB": 0.4128,
        "predicted_H": 0.8354,
        "predicted_HR": 0.1211,
        "predicted_RBI": 0.5003,
        "predicted_SO": 1.1158
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.171,
          "delta": 0.171,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.4128,
          "delta": 0.4128,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8354,
          "delta": -0.1646,
          "percent_delta": -0.1646,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1211,
          "delta": 0.1211,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.5003,
          "delta": 0.5003,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 1.1158,
          "delta": 0.1158,
          "percent_delta": 0.1158,
          "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.5003,
          "delta": 0.5003,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8354,
          "delta": -0.1646,
          "percent_delta": -0.1646,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_AVG": 0.228,
        "predicted_BB": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.311,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.379,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.171,
          "after": 1.0,
          "delta": 0.829,
          "percent_delta": 4.848,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2358,
          "after": 0.228,
          "delta": -0.0078,
          "percent_delta": -0.0331,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.4128,
          "after": 1.0,
          "delta": 0.5872,
          "percent_delta": 1.4225,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8354,
          "after": 1.0,
          "delta": 0.1646,
          "percent_delta": 0.197,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1211,
          "after": 0.0,
          "delta": -0.1211,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3178,
          "after": 0.311,
          "delta": -0.0068,
          "percent_delta": -0.0214,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5003,
          "after": 0.0,
          "delta": -0.5003,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3685,
          "after": 0.379,
          "delta": 0.0105,
          "percent_delta": 0.0285,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.1158,
          "after": 1.0,
          "delta": -0.1158,
          "percent_delta": -0.1038,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 9,
        "boosted_metrics": 4,
        "deboosted_metrics": 5,
        "better_metrics": 5,
        "worse_metrics": 4,
        "biggest_boost": {
          "metric": "predicted_2B",
          "before": 0.171,
          "after": 1.0,
          "delta": 0.829,
          "percent_delta": 4.848,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.5003,
          "after": 0.0,
          "delta": -0.5003,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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": 1.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.228,
        "predicted_BB": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.311,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.379,
        "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
      }
    },
    {
      "index": 11,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup",
      "stats": {
        "predicted_2B": 1.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.218,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.299,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.363,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.228,
          "after": 0.218,
          "delta": -0.01,
          "percent_delta": -0.0439,
          "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_OBP",
          "before": 0.311,
          "after": 0.299,
          "delta": -0.012,
          "percent_delta": -0.0386,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.379,
          "after": 0.363,
          "delta": -0.016,
          "percent_delta": -0.0422,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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
        }
      }
    },
    {
      "index": 12,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_BB": 0.0,
        "predicted_H": 2.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.0,
        "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_H",
          "before": 1.0,
          "after": 2.0,
          "delta": 1.0,
          "percent_delta": 1.0,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "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_2B",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 13,
      "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_H": 2.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.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
      },
      "reference_only": true
    },
    {
      "index": 14,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.218,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_DH": 0.0,
        "predicted_H": 2.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.299,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.363,
        "predicted_SO": 0.0,
        "predicted_TB": 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
      }
    }
  ],
  "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_AB",
        "before": 3.85,
        "after": 4.0,
        "delta": 0.15,
        "percent_delta": 0.039,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.23,
        "after": 0.218,
        "delta": -0.012,
        "percent_delta": -0.0522,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.431,
        "after": 0.0,
        "delta": -0.431,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.89,
        "after": 2.0,
        "delta": 1.11,
        "percent_delta": 1.2472,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.1,
        "after": 0.0,
        "delta": -0.1,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.323,
        "after": 0.299,
        "delta": -0.024,
        "percent_delta": -0.0743,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.595,
        "after": 1.0,
        "delta": 0.405,
        "percent_delta": 0.6807,
        "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_SO",
        "before": 1.138,
        "after": 0.0,
        "delta": -1.138,
        "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.89,
        "after": 2.0,
        "delta": 1.11,
        "percent_delta": 1.2472,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_SO",
        "before": 1.138,
        "after": 0.0,
        "delta": -1.138,
        "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.190-
predicted_3B0.017-
predicted_AB3.850-
predicted_AVG0.230-
predicted_BB0.431-
predicted_H0.890-
predicted_HR0.100-
predicted_OBP0.323-
predicted_R0.595-
predicted_RBI0.450-
predicted_SLG0.362-
predicted_SO1.138-
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.184-0.006
predicted_3B0.014-0.003
predicted_AB3.722-0.128
predicted_AVG0.2310.001
predicted_BB0.4420.011
predicted_H0.863-0.027
predicted_HBP0.020-
predicted_HR0.092-0.008
predicted_OBP0.322-0.001
predicted_R0.587-0.008
predicted_RBI0.442-0.008
predicted_SLG0.360-0.002
predicted_SO1.127-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.1840.000
predicted_3B0.0140.000
predicted_AB3.7220.000
predicted_AVG0.2360.005
predicted_BB0.4470.005
predicted_H0.8770.014
predicted_HBP0.0200.000
predicted_HR0.0940.002
predicted_OBP0.318-0.004
predicted_R0.6050.018
predicted_RBI0.4550.013
predicted_SLG0.3680.009
predicted_SO1.114-0.013
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.85), rates preserved: AVG=0.220 HR/AB=0.024

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=18.0, weight=0.150, BvP AVG=0.389)

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.1710.171
3B0.0110.011
BB0.4130.413
H0.835-0.165
HR0.1210.121
RBI0.5000.500
SO1.1160.116
9. lineup_integer_allocation

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

MetricValueDelta vs Prev Step
2B1.0000.829
3B0.000-0.011
AB4.0000.000
AVG0.228-
BB1.0000.587
H1.0000.165
HR0.000-0.121
OBP0.311-
R1.0000.000
RBI0.000-0.500
SLG0.379-
SO1.000-0.116
10. embedded_savant_player_context

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

MetricValueDelta vs Prev Step
predicted_2B1.0000.816
predicted_3B0.000-0.014
predicted_AB4.0000.278
predicted_AVG0.228-0.008
predicted_BB1.0000.553
predicted_H1.0000.123
predicted_HR0.000-0.094
predicted_OBP0.311-0.007
predicted_R1.0000.395
predicted_RBI0.000-0.455
predicted_SLG0.3790.011
predicted_SO1.000-0.114
11. kpi_run_environment

KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B1.0000.000
3B0.0000.000
AB4.0000.000
AVG0.218-0.010
BB0.000-1.000
H1.0000.000
HR0.0000.000
OBP0.299-0.012
R1.0000.000
RBI0.0000.000
SLG0.363-0.016
SO1.0000.000
12. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

MetricValueDelta vs Prev Step
2B0.000-1.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
H2.0001.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R1.0000.000
RBI0.0000.000
SF0.0000.000
SO0.000-1.000
13. 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
H2.0000.000
HBP0.0000.000
HR0.0000.000
PA4.0000.000
R1.0000.000
RBI0.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: 116
Reference playing time: 3.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-15.0004.0001.0000.0000.0001.0003.0003.0005.0000.26670.38890.33330.26670.00000.06670.20000.3333
last_100.2010-35.0007.0001.0000.0001.0005.0005.0004.00012.0000.20000.28210.31430.20000.02860.14290.11430.3429
season0.60116-433.000100.00022.0002.00012.00057.00069.00050.000132.0000.23090.31360.37410.23090.02770.13160.11550.3049
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1760
predicted_3B0.0100
predicted_AB3.5550
predicted_AVG0.2328
predicted_BB0.4570
predicted_H0.8280
predicted_HBP0.0200
predicted_HR0.0820
predicted_OBP0.3214
predicted_R0.5770
predicted_RBI0.4310
predicted_SLG0.3570
predicted_SO1.1120
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.19000.17600.1839model_form_blend
predicted_3B0.01700.01000.0140model_form_blend
predicted_AB3.85003.55503.7222model_form_blend
predicted_AVG0.23000.23280.2312model_form_blend
predicted_BB0.43100.45700.4423model_form_blend
predicted_H0.89000.82800.8631model_form_blend
predicted_HBP-0.02000.0200form_only
predicted_HR0.10000.08200.0922model_form_blend
predicted_OBP0.32300.32140.3223model_form_blend
predicted_R0.59500.57700.5872model_form_blend
predicted_RBI0.45000.43100.4418model_form_blend
predicted_SLG0.36200.35700.3598model_form_blend
predicted_SO1.13801.11201.1267model_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 date478
Season rows before report date478
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

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_AB3
Hitting_AVG0.333
Hitting_BB1
Hitting_GIDP0
Hitting_H1
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R2
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
allPositionsPlayedDH
gameID20261004_SD@MIL
game_typefull
mlbID592885
playerID592885
playerNameChristian Yelich
posDH
startedTrue
startingPositionDH
teamMIL
teamID16
game_date2026-10-04
sl_k_percent27.0
sl_bb_percent9.8
sl_woba0.305
sl_xwoba0.308
sl_xba0.23
sl_xslg0.385
sl_sweet_spot_percent29.5
sl_barrel_batted_rate9.6
sl_hard_hit_percent42.9
sl_exit_velocity_avg88.9
sl_launch_angle_avg4.0
sl_whiff_percent29.6
sl_swing_percent45.4
Garrett Mitchell (669003) · BATTER · CF · Team MIL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 504
All-history rows before 20261006: 504
System season_avg: 0.2580
Data season_avg (2026 season-to-date): 0.2735
Diff (system - data): -0.0155
System opponent_avg: 0.2310
System season_avg diverges from 2026 season-to-date by -0.0155. 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.2011.0001.000Hitting_2B0.2320.0000.7681.000
predicted_3B0.0290.0000.000Hitting_3B0.0340.000-0.0340.000
predicted_AB4.0703.0003.000Hitting_AB3.5404.000-0.540-1.000
predicted_AVG0.2400.3330.333Hitting_AVG0.2740.2500.0600.083
predicted_BB0.4031.0001.000Hitting_BB0.4310.0000.5691.000
predicted_CS-0.0000.000BaseRunning_CS0.0580.000-0.0580.000
predicted_H0.9801.0001.000Hitting_H0.9681.0000.0320.000
predicted_HR0.0800.0000.000Hitting_HR0.0830.000-0.0830.000
predicted_OBP0.3360.5000.500Hitting_OBP0.3580.2500.1420.250
predicted_R0.5251.0001.000Hitting_R0.5831.0000.4170.000
predicted_RBI0.3202.0002.000Hitting_RBI0.5260.0001.4742.000
predicted_SLG0.3410.6670.667Hitting_SLG0.4290.2500.2380.417
predicted_SO1.1870.0000.000Hitting_SO1.1812.000-1.181-2.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics9
Boosted Metrics4
Deboosted Metrics5
Better Metrics5
Worse Metrics4
Biggest Boostpredicted_RBI: 0.3200 -> 2.0000 (boost 1.6800, better)
Biggest Deboostpredicted_SO: 1.1870 -> 0.0000 (deboost -1.1870, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend31212predicted_R: 0.5250 -> 0.5819 (boost 0.0569, better)predicted_AB: 4.0700 -> 3.7284 (deboost -0.3416, 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_snapshot21111predicted_SLG: 0.3406 -> 0.3596 (boost 0.0190, better)predicted_OBP: 0.3398 -> 0.3261 (deboost -0.0137, 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_H: 0.9253 -> 1.0000 (boost 0.0747, better)predicted_AB: 3.7284 -> 3.0000 (deboost -0.7284, worse)AB rounded to 3 (raw=4.07), rates preserved: AVG=0.219 HR/AB=0.016
6consistency_constraints11010predicted_R: 0.5996 -> 1.0000 (boost 0.4004, better)-Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine65142predicted_BB: 0.0000 -> 0.4129 (boost 0.4129, better)predicted_H: 1.0000 -> 0.7958 (deboost -0.2042, 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_allocation82635predicted_BB: 0.4129 -> 1.0000 (boost 0.5871, better)predicted_RBI: 0.4033 -> 0.0000 (deboost -0.4033, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10kpi_run_environment30303-predicted_SLG: 0.3560 -> 0.3400 (deboost -0.0160, worse)KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup
11play_by_play_realization32130predicted_RBI: 0.0000 -> 2.0000 (boost 2.0000, better)predicted_SO: 1.0000 -> 0.0000 (deboost -1.0000, better)Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
12simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
13current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "669003",
  "player_name": "Garrett Mitchell",
  "position": "CF",
  "team": "MIL",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.201,
        "predicted_3B": 0.029,
        "predicted_AB": 4.07,
        "predicted_AVG": 0.24,
        "predicted_BB": 0.403,
        "predicted_H": 0.98,
        "predicted_HR": 0.08,
        "predicted_OBP": 0.336,
        "predicted_R": 0.525,
        "predicted_RBI": 0.32,
        "predicted_SLG": 0.341,
        "predicted_SO": 1.187
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "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.1667,
        "predicted_3B": 0.0238,
        "predicted_AB": 3.7284,
        "predicted_AVG": 0.2441,
        "predicted_BB": 0.426,
        "predicted_H": 0.9101,
        "predicted_HBP": 0.026,
        "predicted_HR": 0.0657,
        "predicted_OBP": 0.3398,
        "predicted_R": 0.5819,
        "predicted_RBI": 0.2935,
        "predicted_SLG": 0.3406,
        "predicted_SO": 1.1636
      },
      "changed_metrics": [
        {
          "metric": "predicted_AB",
          "before": 4.07,
          "after": 3.7284,
          "delta": -0.3416,
          "percent_delta": -0.0839,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.98,
          "after": 0.9101,
          "delta": -0.0699,
          "percent_delta": -0.0713,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.525,
          "after": 0.5819,
          "delta": 0.0569,
          "percent_delta": 0.1084,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 3,
        "boosted_metrics": 1,
        "deboosted_metrics": 2,
        "better_metrics": 1,
        "worse_metrics": 2,
        "biggest_boost": {
          "metric": "predicted_R",
          "before": 0.525,
          "after": 0.5819,
          "delta": 0.0569,
          "percent_delta": 0.1084,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 4.07,
          "after": 3.7284,
          "delta": -0.3416,
          "percent_delta": -0.0839,
          "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.1667,
        "predicted_3B": 0.0238,
        "predicted_AB": 3.7284,
        "predicted_AVG": 0.2482,
        "predicted_BB": 0.4309,
        "predicted_H": 0.9253,
        "predicted_HBP": 0.026,
        "predicted_HR": 0.067,
        "predicted_OBP": 0.3261,
        "predicted_R": 0.5996,
        "predicted_RBI": 0.3024,
        "predicted_SLG": 0.3596,
        "predicted_SO": 1.1501
      },
      "changed_metrics": [
        {
          "metric": "predicted_OBP",
          "before": 0.3398,
          "after": 0.3261,
          "delta": -0.0137,
          "percent_delta": -0.0403,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3406,
          "after": 0.3596,
          "delta": 0.019,
          "percent_delta": 0.0558,
          "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_SLG",
          "before": 0.3406,
          "after": 0.3596,
          "delta": 0.019,
          "percent_delta": 0.0558,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_OBP",
          "before": 0.3398,
          "after": 0.3261,
          "delta": -0.0137,
          "percent_delta": -0.0403,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 3 (raw=4.07), rates preserved: AVG=0.219 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.1667,
          "after": 0.0,
          "delta": -0.1667,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AB",
          "before": 3.7284,
          "after": 3.0,
          "delta": -0.7284,
          "percent_delta": -0.1954,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.4309,
          "after": 0.0,
          "delta": -0.4309,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.9253,
          "after": 1.0,
          "delta": 0.0747,
          "percent_delta": 0.0807,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.067,
          "after": 0.0,
          "delta": -0.067,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3024,
          "after": 0.0,
          "delta": -0.3024,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.1501,
          "after": 1.0,
          "delta": -0.1501,
          "percent_delta": -0.1305,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 7,
        "boosted_metrics": 1,
        "deboosted_metrics": 6,
        "better_metrics": 2,
        "worse_metrics": 5,
        "biggest_boost": {
          "metric": "predicted_H",
          "before": 0.9253,
          "after": 1.0,
          "delta": 0.0747,
          "percent_delta": 0.0807,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 3.7284,
          "after": 3.0,
          "delta": -0.7284,
          "percent_delta": -0.1954,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 6,
      "step": "consistency_constraints",
      "description": "Enforced H<=AB, HR<=H, safety nets, derived R",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 3.0,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_R",
          "before": 0.5996,
          "after": 1.0,
          "delta": 0.4004,
          "percent_delta": 0.6678,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 1,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_R",
          "before": 0.5996,
          "after": 1.0,
          "delta": 0.4004,
          "percent_delta": 0.6678,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "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.1572,
        "predicted_3B": 0.0148,
        "predicted_BB": 0.4129,
        "predicted_H": 0.7958,
        "predicted_HR": 0.0869,
        "predicted_RBI": 0.4033,
        "predicted_SO": 1.2961
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1572,
          "delta": 0.1572,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.4129,
          "delta": 0.4129,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7958,
          "delta": -0.2042,
          "percent_delta": -0.2042,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.0869,
          "delta": 0.0869,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.4033,
          "delta": 0.4033,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 1.2961,
          "delta": 0.2961,
          "percent_delta": 0.2961,
          "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.4129,
          "delta": 0.4129,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7958,
          "delta": -0.2042,
          "percent_delta": -0.2042,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_AVG": 0.228,
        "predicted_BB": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.314,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.356,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1572,
          "after": 0.0,
          "delta": -0.1572,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2482,
          "after": 0.228,
          "delta": -0.0202,
          "percent_delta": -0.0814,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.4129,
          "after": 1.0,
          "delta": 0.5871,
          "percent_delta": 1.4219,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.7958,
          "after": 1.0,
          "delta": 0.2042,
          "percent_delta": 0.2566,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0869,
          "after": 0.0,
          "delta": -0.0869,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3261,
          "after": 0.314,
          "delta": -0.0121,
          "percent_delta": -0.0371,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4033,
          "after": 0.0,
          "delta": -0.4033,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.2961,
          "after": 1.0,
          "delta": -0.2961,
          "percent_delta": -0.2285,
          "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_BB",
          "before": 0.4129,
          "after": 1.0,
          "delta": 0.5871,
          "percent_delta": 1.4219,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.4033,
          "after": 0.0,
          "delta": -0.4033,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 9,
      "step": "embedded_savant_player_context",
      "description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 3.0,
        "predicted_AVG": 0.228,
        "predicted_BB": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.314,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.356,
        "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
      }
    },
    {
      "index": 10,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 3.0,
        "predicted_AVG": 0.218,
        "predicted_BB": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.303,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.34,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.228,
          "after": 0.218,
          "delta": -0.01,
          "percent_delta": -0.0439,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.314,
          "after": 0.303,
          "delta": -0.011,
          "percent_delta": -0.035,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.356,
          "after": 0.34,
          "delta": -0.016,
          "percent_delta": -0.0449,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.356,
          "after": 0.34,
          "delta": -0.016,
          "percent_delta": -0.0449,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 11,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "stats": {
        "predicted_2B": 1.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_R": 1.0,
        "predicted_RBI": 2.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_RBI",
          "before": 0.0,
          "after": 2.0,
          "delta": 2.0,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 3,
        "boosted_metrics": 2,
        "deboosted_metrics": 1,
        "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": {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      }
    },
    {
      "index": 12,
      "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_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 1.0,
        "predicted_RBI": 2.0,
        "predicted_SF": 0.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
      },
      "reference_only": true
    },
    {
      "index": 13,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_2B": 1.0,
        "predicted_3B": 0.0,
        "predicted_AB": 3.0,
        "predicted_AVG": 0.218,
        "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.303,
        "predicted_R": 1.0,
        "predicted_RBI": 2.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.34,
        "predicted_SO": 0.0,
        "predicted_TB": 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
      }
    }
  ],
  "total_change": {
    "from_step": "xgboost_raw",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_2B",
        "before": 0.201,
        "after": 1.0,
        "delta": 0.799,
        "percent_delta": 3.9751,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AB",
        "before": 4.07,
        "after": 3.0,
        "delta": -1.07,
        "percent_delta": -0.2629,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.24,
        "after": 0.218,
        "delta": -0.022,
        "percent_delta": -0.0917,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.403,
        "after": 1.0,
        "delta": 0.597,
        "percent_delta": 1.4814,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_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.336,
        "after": 0.303,
        "delta": -0.033,
        "percent_delta": -0.0982,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.525,
        "after": 1.0,
        "delta": 0.475,
        "percent_delta": 0.9048,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.32,
        "after": 2.0,
        "delta": 1.68,
        "percent_delta": 5.25,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 1.187,
        "after": 0.0,
        "delta": -1.187,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 9,
      "boosted_metrics": 4,
      "deboosted_metrics": 5,
      "better_metrics": 5,
      "worse_metrics": 4,
      "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": 1.187,
        "after": 0.0,
        "delta": -1.187,
        "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.201-
predicted_3B0.029-
predicted_AB4.070-
predicted_AVG0.240-
predicted_BB0.403-
predicted_H0.980-
predicted_HR0.080-
predicted_OBP0.336-
predicted_R0.525-
predicted_RBI0.320-
predicted_SLG0.341-
predicted_SO1.187-
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.167-0.034
predicted_3B0.024-0.005
predicted_AB3.728-0.342
predicted_AVG0.2440.004
predicted_BB0.4260.023
predicted_H0.910-0.070
predicted_HBP0.026-
predicted_HR0.066-0.014
predicted_OBP0.3400.004
predicted_R0.5820.057
predicted_RBI0.293-0.027
predicted_SLG0.341-0.000
predicted_SO1.164-0.023
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.1670.000
predicted_3B0.0240.000
predicted_AB3.7280.000
predicted_AVG0.2480.004
predicted_BB0.4310.005
predicted_H0.9250.015
predicted_HBP0.0260.000
predicted_HR0.0670.001
predicted_OBP0.326-0.014
predicted_R0.6000.018
predicted_RBI0.3020.009
predicted_SLG0.3600.019
predicted_SO1.150-0.014
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.07), rates preserved: AVG=0.219 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
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.1570.157
3B0.0150.015
BB0.4130.413
H0.796-0.204
HR0.0870.087
RBI0.4030.403
SO1.2960.296
8. lineup_integer_allocation

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

MetricValueDelta vs Prev Step
2B0.000-0.157
3B0.000-0.015
AB3.0000.000
AVG0.228-
BB1.0000.587
H1.0000.204
HR0.000-0.087
OBP0.314-
R1.0000.000
RBI0.000-0.403
SLG0.356-
SO1.000-0.296
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.167
predicted_3B0.000-0.024
predicted_AB3.000-0.728
predicted_AVG0.228-0.020
predicted_BB1.0000.569
predicted_H1.0000.075
predicted_HR0.000-0.067
predicted_OBP0.314-0.012
predicted_R1.0000.400
predicted_RBI0.000-0.302
predicted_SLG0.356-0.004
predicted_SO1.000-0.150
10. kpi_run_environment

KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
AVG0.218-0.010
BB1.0000.000
H1.0000.000
HR0.0000.000
OBP0.303-0.011
R1.0000.000
RBI0.0000.000
SLG0.340-0.016
SO1.0000.000
11. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

MetricValueDelta vs Prev Step
2B1.0001.000
3B0.0000.000
AB3.0000.000
BB1.0000.000
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R1.0000.000
RBI2.0002.000
SF0.0000.000
SO0.000-1.000
12. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B1.0000.000
3B0.0000.000
AB3.0000.000
BB1.0000.000
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA4.0000.000
R1.0000.000
RBI2.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: 139
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-15.0004.0000.0000.0000.0000.0005.0003.0004.0000.26670.38890.26670.26670.00000.00000.20000.2667
last_100.2010-34.0007.0000.0000.0000.0000.0007.0005.00014.0000.20590.30770.20590.20590.00000.00000.14710.4118
season0.60139-457.000118.00028.0004.00010.00058.00073.00056.000165.0000.25820.34620.40260.25820.02190.12690.12250.3610
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1220
predicted_3B0.0170
predicted_AB3.2830
predicted_AVG0.2494
predicted_BB0.4560
predicted_H0.8190
predicted_HBP0.0260
predicted_HR0.0470
predicted_OBP0.3448
predicted_R0.6560
predicted_RBI0.2590
predicted_SLG0.3400
predicted_SO1.1330
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.20100.12200.1667model_form_blend
predicted_3B0.02900.01700.0238model_form_blend
predicted_AB4.07003.28303.7284model_form_blend
predicted_AVG0.24000.24940.2441model_form_blend
predicted_BB0.40300.45600.4260model_form_blend
predicted_H0.98000.81900.9101model_form_blend
predicted_HBP-0.02600.0260form_only
predicted_HR0.08000.04700.0657model_form_blend
predicted_OBP0.33600.34480.3398model_form_blend
predicted_R0.52500.65600.5819model_form_blend
predicted_RBI0.32000.25900.2935model_form_blend
predicted_SLG0.34100.34000.3406model_form_blend
predicted_SO1.18701.13301.1636model_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 date504
Season rows before report date504
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
H1
2B1
3B0
HR0
R1
RBI2
BB1
SO0
SF0
HBP0

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_R1
Hitting_RBI0
Hitting_SAC0
Hitting_SF0
Hitting_SO2
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
allPositionsPlayedCF
gameID20261004_SD@MIL
game_typefull
mlbID669003
playerID669003
playerNameGarrett Mitchell
posCF
startedTrue
startingPositionCF
teamMIL
teamID16
game_date2026-10-04
sl_k_percent31.5
sl_bb_percent11.3
sl_woba0.34
sl_xwoba0.353
sl_xba0.268
sl_xslg0.447
sl_sweet_spot_percent31.5
sl_barrel_batted_rate11.7
sl_hard_hit_percent52.7
sl_exit_velocity_avg93.2
sl_launch_angle_avg2.2
sl_whiff_percent35.8
sl_swing_percent43.9
Cooper Pratt (806198) · BATTER · SS · Team MIL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 250
All-history rows before 20261006: 250
System season_avg: 0.2750
Data season_avg (2026 season-to-date): 0.2862
Diff (system - data): -0.0112
System opponent_avg: 0.1430

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.0830.0000.000Hitting_2B0.1040.000-0.1040.000
predicted_3B0.0280.0000.000Hitting_3B0.0560.000-0.0560.000
predicted_AB3.1814.0004.000Hitting_AB3.3123.0000.6881.000
predicted_AVG0.2530.0000.000Hitting_AVG0.2860.333-0.286-0.333
predicted_BB0.3330.0000.000Hitting_BB0.3760.000-0.3760.000
predicted_CS-0.0000.000BaseRunning_CS0.0240.000-0.0240.000
predicted_H0.8000.0000.000Hitting_H0.9481.000-0.948-1.000
predicted_HR0.0300.0000.000Hitting_HR0.0480.000-0.0480.000
predicted_OBP0.3090.0000.000Hitting_OBP0.3550.333-0.355-0.333
predicted_R0.4170.0000.000Hitting_R0.5360.000-0.5360.000
predicted_RBI0.3100.0000.000Hitting_RBI0.5560.000-0.5560.000
predicted_SLG0.3160.0000.000Hitting_SLG0.3950.333-0.395-0.333
predicted_SO0.6673.0003.000Hitting_SO0.6480.0002.3523.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics10
Boosted Metrics3
Deboosted Metrics7
Better Metrics2
Worse Metrics8
Biggest Boostpredicted_SO: 0.6670 -> 3.0000 (boost 2.3330, worse)
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_blend21111predicted_SLG: 0.3160 -> 0.3238 (boost 0.0078, better)predicted_R: 0.4170 -> 0.3624 (deboost -0.0546, 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.3139 -> 0.3271 (boost 0.0132, 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_scaling62415predicted_SO: 0.6875 -> 1.0000 (boost 0.3125, worse)predicted_RBI: 0.3346 -> 0.0000 (deboost -0.3346, worse)AB rounded to 3 (raw=3.19), rates preserved: AVG=0.248 HR/AB=0.010
6consistency_constraints10101-predicted_R: 0.3734 -> 0.0000 (deboost -0.3734, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine64251predicted_RBI: 0.0000 -> 0.4285 (boost 0.4285, better)predicted_H: 1.0000 -> 0.7852 (deboost -0.2148, 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_allocation93627predicted_H: 0.7852 -> 1.0000 (boost 0.2148, better)predicted_RBI: 0.4285 -> 0.0000 (deboost -0.4285, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10kpi_run_environment40404-predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse)KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup
11play_by_play_realization22011predicted_SO: 1.0000 -> 3.0000 (boost 2.0000, worse)-Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
12simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
13current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "806198",
  "player_name": "Cooper Pratt",
  "position": "SS",
  "team": "MIL",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.083,
        "predicted_3B": 0.028,
        "predicted_AB": 3.181,
        "predicted_AVG": 0.253,
        "predicted_BB": 0.333,
        "predicted_H": 0.8,
        "predicted_HR": 0.03,
        "predicted_OBP": 0.309,
        "predicted_R": 0.417,
        "predicted_RBI": 0.31,
        "predicted_SLG": 0.316,
        "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
      }
    },
    {
      "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.0973,
        "predicted_3B": 0.023,
        "predicted_AB": 3.1877,
        "predicted_AVG": 0.2542,
        "predicted_BB": 0.3254,
        "predicted_H": 0.8076,
        "predicted_HBP": 0.018,
        "predicted_HR": 0.0317,
        "predicted_OBP": 0.3139,
        "predicted_R": 0.3624,
        "predicted_RBI": 0.3247,
        "predicted_SLG": 0.3238,
        "predicted_SO": 0.6956
      },
      "changed_metrics": [
        {
          "metric": "predicted_R",
          "before": 0.417,
          "after": 0.3624,
          "delta": -0.0546,
          "percent_delta": -0.1309,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.316,
          "after": 0.3238,
          "delta": 0.0078,
          "percent_delta": 0.0247,
          "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_SLG",
          "before": 0.316,
          "after": 0.3238,
          "delta": 0.0078,
          "percent_delta": 0.0247,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_R",
          "before": 0.417,
          "after": 0.3624,
          "delta": -0.0546,
          "percent_delta": -0.1309,
          "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.0973,
        "predicted_3B": 0.023,
        "predicted_AB": 3.1877,
        "predicted_AVG": 0.2576,
        "predicted_BB": 0.3292,
        "predicted_H": 0.8211,
        "predicted_HBP": 0.018,
        "predicted_HR": 0.0323,
        "predicted_OBP": 0.3271,
        "predicted_R": 0.3734,
        "predicted_RBI": 0.3346,
        "predicted_SLG": 0.333,
        "predicted_SO": 0.6875
      },
      "changed_metrics": [
        {
          "metric": "predicted_OBP",
          "before": 0.3139,
          "after": 0.3271,
          "delta": 0.0132,
          "percent_delta": 0.0421,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3238,
          "after": 0.333,
          "delta": 0.0092,
          "percent_delta": 0.0284,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 2,
        "boosted_metrics": 2,
        "deboosted_metrics": 0,
        "better_metrics": 2,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_OBP",
          "before": 0.3139,
          "after": 0.3271,
          "delta": 0.0132,
          "percent_delta": 0.0421,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 3 (raw=3.19), rates preserved: AVG=0.248 HR/AB=0.010",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 3.0,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0973,
          "after": 0.0,
          "delta": -0.0973,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AB",
          "before": 3.1877,
          "after": 3.0,
          "delta": -0.1877,
          "percent_delta": -0.0589,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3292,
          "after": 0.0,
          "delta": -0.3292,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8211,
          "after": 1.0,
          "delta": 0.1789,
          "percent_delta": 0.2179,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3346,
          "after": 0.0,
          "delta": -0.3346,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.6875,
          "after": 1.0,
          "delta": 0.3125,
          "percent_delta": 0.4545,
          "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.6875,
          "after": 1.0,
          "delta": 0.3125,
          "percent_delta": 0.4545,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.3346,
          "after": 0.0,
          "delta": -0.3346,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_R",
          "before": 0.3734,
          "after": 0.0,
          "delta": -0.3734,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 0,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 1,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_R",
          "before": 0.3734,
          "after": 0.0,
          "delta": -0.3734,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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.1188,
        "predicted_3B": 0.0124,
        "predicted_BB": 0.3251,
        "predicted_H": 0.7852,
        "predicted_HR": 0.0754,
        "predicted_RBI": 0.4285,
        "predicted_SO": 0.7988
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1188,
          "delta": 0.1188,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.3251,
          "delta": 0.3251,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7852,
          "delta": -0.2148,
          "percent_delta": -0.2148,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.0754,
          "delta": 0.0754,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.4285,
          "delta": 0.4285,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.7988,
          "delta": -0.2012,
          "percent_delta": -0.2012,
          "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.4285,
          "delta": 0.4285,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7852,
          "delta": -0.2148,
          "percent_delta": -0.2148,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_AVG": 0.231,
        "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.339,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1188,
          "after": 0.0,
          "delta": -0.1188,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2576,
          "after": 0.231,
          "delta": -0.0266,
          "percent_delta": -0.1033,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3251,
          "after": 0.0,
          "delta": -0.3251,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.7852,
          "after": 1.0,
          "delta": 0.2148,
          "percent_delta": 0.2736,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "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_OBP",
          "before": 0.3271,
          "after": 0.303,
          "delta": -0.0241,
          "percent_delta": -0.0737,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4285,
          "after": 0.0,
          "delta": -0.4285,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.333,
          "after": 0.339,
          "delta": 0.006,
          "percent_delta": 0.018,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.7988,
          "after": 1.0,
          "delta": 0.2012,
          "percent_delta": 0.2519,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 9,
        "boosted_metrics": 3,
        "deboosted_metrics": 6,
        "better_metrics": 2,
        "worse_metrics": 7,
        "biggest_boost": {
          "metric": "predicted_H",
          "before": 0.7852,
          "after": 1.0,
          "delta": 0.2148,
          "percent_delta": 0.2736,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.4285,
          "after": 0.0,
          "delta": -0.4285,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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.303,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.339,
        "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
      }
    },
    {
      "index": 10,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 3.0,
        "predicted_AVG": 0.221,
        "predicted_BB": 0.0,
        "predicted_H": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.291,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.325,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.231,
          "after": 0.221,
          "delta": -0.01,
          "percent_delta": -0.0433,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "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_OBP",
          "before": 0.303,
          "after": 0.291,
          "delta": -0.012,
          "percent_delta": -0.0396,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.339,
          "after": 0.325,
          "delta": -0.014,
          "percent_delta": -0.0413,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 4,
        "boosted_metrics": 0,
        "deboosted_metrics": 4,
        "better_metrics": 0,
        "worse_metrics": 4,
        "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
        }
      }
    },
    {
      "index": 11,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "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_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.0,
        "predicted_SO": 3.0
      },
      "changed_metrics": [
        {
          "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_SO",
          "before": 1.0,
          "after": 3.0,
          "delta": 2.0,
          "percent_delta": 2.0,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 2,
        "boosted_metrics": 2,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "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
      }
    },
    {
      "index": 12,
      "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_H": 0.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.0,
        "predicted_SO": 3.0
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      },
      "reference_only": true
    },
    {
      "index": 13,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.221,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 0.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.291,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.325,
        "predicted_SO": 3.0,
        "predicted_SS": 0.0,
        "predicted_TB": 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
      }
    }
  ],
  "total_change": {
    "from_step": "xgboost_raw",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_2B",
        "before": 0.083,
        "after": 0.0,
        "delta": -0.083,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AB",
        "before": 3.181,
        "after": 4.0,
        "delta": 0.819,
        "percent_delta": 0.2575,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.253,
        "after": 0.221,
        "delta": -0.032,
        "percent_delta": -0.1265,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.333,
        "after": 0.0,
        "delta": -0.333,
        "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_OBP",
        "before": 0.309,
        "after": 0.291,
        "delta": -0.018,
        "percent_delta": -0.0583,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.417,
        "after": 0.0,
        "delta": -0.417,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.31,
        "after": 0.0,
        "delta": -0.31,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.316,
        "after": 0.325,
        "delta": 0.009,
        "percent_delta": 0.0285,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.667,
        "after": 3.0,
        "delta": 2.333,
        "percent_delta": 3.4978,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 10,
      "boosted_metrics": 3,
      "deboosted_metrics": 7,
      "better_metrics": 2,
      "worse_metrics": 8,
      "biggest_boost": {
        "metric": "predicted_SO",
        "before": 0.667,
        "after": 3.0,
        "delta": 2.333,
        "percent_delta": 3.4978,
        "direction": "boost",
        "projection_effect": "worse",
        "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.083-
predicted_3B0.028-
predicted_AB3.181-
predicted_AVG0.253-
predicted_BB0.333-
predicted_H0.800-
predicted_HR0.030-
predicted_OBP0.309-
predicted_R0.417-
predicted_RBI0.310-
predicted_SLG0.316-
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.0970.014
predicted_3B0.023-0.005
predicted_AB3.1880.007
predicted_AVG0.2540.001
predicted_BB0.325-0.008
predicted_H0.8080.008
predicted_HBP0.018-
predicted_HR0.0320.002
predicted_OBP0.3140.005
predicted_R0.362-0.055
predicted_RBI0.3250.015
predicted_SLG0.3240.008
predicted_SO0.6960.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.0970.000
predicted_3B0.0230.000
predicted_AB3.1880.000
predicted_AVG0.2580.003
predicted_BB0.3290.004
predicted_H0.8210.014
predicted_HBP0.0180.000
predicted_HR0.0320.001
predicted_OBP0.3270.013
predicted_R0.3730.011
predicted_RBI0.3350.010
predicted_SLG0.3330.009
predicted_SO0.688-0.008
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.19), rates preserved: AVG=0.248 HR/AB=0.010

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.0120.012
BB0.3250.325
H0.785-0.215
HR0.0750.075
RBI0.4280.428
SO0.799-0.201
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.012
AB3.0000.000
AVG0.231-
BB0.000-0.325
H1.0000.215
HR0.000-0.075
OBP0.303-
R0.0000.000
RBI0.000-0.428
SLG0.339-
SO1.0000.201
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.097
predicted_3B0.000-0.023
predicted_AB3.000-0.188
predicted_AVG0.231-0.027
predicted_BB0.000-0.329
predicted_H1.0000.179
predicted_HR0.000-0.032
predicted_OBP0.303-0.024
predicted_R0.000-0.373
predicted_RBI0.000-0.335
predicted_SLG0.3390.006
predicted_SO1.0000.312
10. kpi_run_environment

KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
AVG0.221-0.010
BB0.0000.000
H0.000-1.000
HR0.0000.000
OBP0.291-0.012
R0.0000.000
RBI0.0000.000
SLG0.325-0.014
SO1.0000.000
11. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0001.000
BB0.0000.000
H0.0000.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R0.0000.000
RBI0.0000.000
SF0.0000.000
SO3.0002.000
12. 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
H0.0000.000
HBP0.0000.000
HR0.0000.000
PA4.0000.000
R0.0000.000
RBI0.0000.000
SF0.0000.000
SO3.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: 3.801
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.0001.0000.0000.0000.0000.0001.0004.0000.20000.25000.26670.20000.00000.00000.06670.2667
last_100.2010-31.0008.0001.0000.0000.0003.0001.0004.0008.0000.25810.34290.29030.25810.00000.09680.12900.2581
season0.6072-229.00063.0006.0002.0003.00033.00030.00024.00048.0000.27510.33970.35810.27510.01310.14410.10480.2096
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1170
predicted_3B0.0160
predicted_AB3.1970
predicted_AVG0.2558
predicted_BB0.3150
predicted_H0.8180
predicted_HBP0.0180
predicted_HR0.0340
predicted_OBP0.3207
predicted_R0.2870
predicted_RBI0.3450
predicted_SLG0.3346
predicted_SO0.7350
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.08300.11700.0973model_form_blend
predicted_3B0.02800.01600.0230model_form_blend
predicted_AB3.18103.19703.1877model_form_blend
predicted_AVG0.25300.25580.2542model_form_blend
predicted_BB0.33300.31500.3254model_form_blend
predicted_H0.80000.81800.8076model_form_blend
predicted_HBP-0.01800.0180form_only
predicted_HR0.03000.03400.0317model_form_blend
predicted_OBP0.30900.32070.3139model_form_blend
predicted_R0.41700.28700.3624model_form_blend
predicted_RBI0.31000.34500.3247model_form_blend
predicted_SLG0.31600.33460.3238model_form_blend
predicted_SO0.66700.73500.6956model_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 date250
Season rows before report date250
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
PA4
AB4
H0
2B0
3B0
HR0
R0
RBI0
BB0
SO3
SF0
HBP0

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.333
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
allPositionsPlayedSS
gameID20261004_SD@MIL
game_typefull
mlbID806198
playerID806198
playerNameCooper Pratt
posSS
startedTrue
startingPositionSS
teamMIL
teamID16
game_date2026-10-04
sl_k_percent18.0
sl_bb_percent9.8
sl_woba0.32
sl_xwoba0.315
sl_xba0.266
sl_xslg0.362
sl_sweet_spot_percent41.1
sl_barrel_batted_rate3.2
sl_hard_hit_percent27.4
sl_exit_velocity_avg87.0
sl_launch_angle_avg9.1
sl_whiff_percent21.8
sl_swing_percent46.4
Sal Frelick (686217) · BATTER · RF · Team MIL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 373
All-history rows before 20261006: 373
System season_avg: 0.2340
Data season_avg (2026 season-to-date): 0.2394
Diff (system - data): -0.0054
System opponent_avg: 0.3170

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1680.0000.000Hitting_2B0.2090.000-0.2090.000
predicted_3B0.0000.0000.000Hitting_3B0.0000.0000.0000.000
predicted_AB3.1214.0004.000Hitting_AB3.4932.0000.5072.000
predicted_AVG0.2310.2500.250Hitting_AVG0.2390.5000.011-0.250
predicted_BB0.2800.0000.000Hitting_BB0.3272.000-0.327-2.000
predicted_CS-0.0000.000BaseRunning_CS0.0270.000-0.0270.000
predicted_H0.5701.0001.000Hitting_H0.8361.0000.1640.000
predicted_HR0.0200.0000.000Hitting_HR0.0480.000-0.0480.000
predicted_OBP0.3190.2500.250Hitting_OBP0.3050.750-0.055-0.500
predicted_R0.3460.0000.000Hitting_R0.3941.000-0.394-1.000
predicted_RBI0.3601.0001.000Hitting_RBI0.4371.0000.5630.000
predicted_SLG0.3050.2500.250Hitting_SLG0.3410.500-0.091-0.250
predicted_SO0.3550.0000.000Hitting_SO0.4210.000-0.4210.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_AB: 3.1210 -> 4.0000 (boost 0.8790, better)
Biggest Deboostpredicted_SO: 0.3550 -> 0.0000 (deboost -0.3550, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend31221predicted_BB: 0.2800 -> 0.3549 (boost 0.0749, better)predicted_AB: 3.1210 -> 3.0132 (deboost -0.1078, 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_OBP: 0.3212 -> 0.2866 (deboost -0.0346, 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_scaling51423predicted_H: 0.6074 -> 1.0000 (boost 0.3926, better)predicted_RBI: 0.3877 -> 0.0000 (deboost -0.3877, worse)AB rounded to 3 (raw=3.12), rates preserved: AVG=0.188 HR/AB=0.008
6bvp_blend00000--Sample-size BvP blend (BvP AB=5.0, weight=0.057, BvP AVG=0.400)
7consistency_constraints10101-predicted_R: 0.3244 -> 0.0000 (deboost -0.3244, worse)Enforced H<=AB, HR<=H, safety nets, derived R
8hitter_rate_engine65142predicted_SO: 0.0000 -> 0.4842 (boost 0.4842, worse)predicted_H: 1.0000 -> 0.7561 (deboost -0.2439, 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_allocation94536predicted_SO: 0.4842 -> 1.0000 (boost 0.5158, worse)predicted_H: 0.7561 -> 0.0000 (deboost -0.7561, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
10embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
11kpi_run_environment30303-predicted_SLG: 0.3320 -> 0.3180 (deboost -0.0140, worse)KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup
12play_by_play_realization43140predicted_AB: 3.0000 -> 4.0000 (boost 1.0000, better)predicted_SO: 1.0000 -> 0.0000 (deboost -1.0000, better)Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
13simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
14current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "686217",
  "player_name": "Sal Frelick",
  "position": "RF",
  "team": "MIL",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.168,
        "predicted_3B": 0.0,
        "predicted_AB": 3.121,
        "predicted_AVG": 0.231,
        "predicted_BB": 0.28,
        "predicted_H": 0.57,
        "predicted_HR": 0.02,
        "predicted_OBP": 0.319,
        "predicted_R": 0.346,
        "predicted_RBI": 0.36,
        "predicted_SLG": 0.305,
        "predicted_SO": 0.355
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "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.1663,
        "predicted_3B": 0.0004,
        "predicted_AB": 3.0132,
        "predicted_AVG": 0.2268,
        "predicted_BB": 0.3549,
        "predicted_H": 0.5974,
        "predicted_HBP": 0.011,
        "predicted_HR": 0.023,
        "predicted_OBP": 0.3212,
        "predicted_R": 0.3148,
        "predicted_RBI": 0.3763,
        "predicted_SLG": 0.3058,
        "predicted_SO": 0.3011
      },
      "changed_metrics": [
        {
          "metric": "predicted_AB",
          "before": 3.121,
          "after": 3.0132,
          "delta": -0.1078,
          "percent_delta": -0.0345,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.28,
          "after": 0.3549,
          "delta": 0.0749,
          "percent_delta": 0.2675,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.355,
          "after": 0.3011,
          "delta": -0.0539,
          "percent_delta": -0.1518,
          "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.28,
          "after": 0.3549,
          "delta": 0.0749,
          "percent_delta": 0.2675,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 3.121,
          "after": 3.0132,
          "delta": -0.1078,
          "percent_delta": -0.0345,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      },
      "weights": {
        "xgboost_raw": 0.55,
        "weighted_form": 0.45,
        "form_windows": {
          "last_5": 0.2,
          "last_10": 0.2,
          "season": 0.6
        }
      },
      "window_games": {
        "last_5": 5,
        "last_10": 10,
        "season": 107
      }
    },
    {
      "index": 3,
      "step": "team_form_snapshot",
      "description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
      "stats": {
        "predicted_2B": 0.1663,
        "predicted_3B": 0.0004,
        "predicted_AB": 3.0132,
        "predicted_AVG": 0.2016,
        "predicted_BB": 0.359,
        "predicted_H": 0.6074,
        "predicted_HBP": 0.011,
        "predicted_HR": 0.0235,
        "predicted_OBP": 0.2866,
        "predicted_R": 0.3244,
        "predicted_RBI": 0.3877,
        "predicted_SLG": 0.2804,
        "predicted_SO": 0.2976
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.2268,
          "after": 0.2016,
          "delta": -0.0252,
          "percent_delta": -0.1111,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3212,
          "after": 0.2866,
          "delta": -0.0346,
          "percent_delta": -0.1077,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3058,
          "after": 0.2804,
          "delta": -0.0254,
          "percent_delta": -0.0831,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.3212,
          "after": 0.2866,
          "delta": -0.0346,
          "percent_delta": -0.1077,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 3 (raw=3.12), rates preserved: AVG=0.188 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.1663,
          "after": 0.0,
          "delta": -0.1663,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.359,
          "after": 0.0,
          "delta": -0.359,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.6074,
          "after": 1.0,
          "delta": 0.3926,
          "percent_delta": 0.6464,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3877,
          "after": 0.0,
          "delta": -0.3877,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.2976,
          "after": 0.0,
          "delta": -0.2976,
          "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_H",
          "before": 0.6074,
          "after": 1.0,
          "delta": 0.3926,
          "percent_delta": 0.6464,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.3877,
          "after": 0.0,
          "delta": -0.3877,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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": 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": {
        "model_expectation": 0.9429,
        "bvp": 0.0571
      }
    },
    {
      "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_R",
          "before": 0.3244,
          "after": 0.0,
          "delta": -0.3244,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 0,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 1,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_R",
          "before": 0.3244,
          "after": 0.0,
          "delta": -0.3244,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 8,
      "step": "hitter_rate_engine",
      "description": "Step 3c: every metric rebuilt as an odds ratio with a per-metric fitted shrinkage, plus platoon, park and batter-versus-pitcher context",
      "stats": {
        "predicted_2B": 0.1375,
        "predicted_3B": 0.007,
        "predicted_BB": 0.3143,
        "predicted_H": 0.7561,
        "predicted_HR": 0.0659,
        "predicted_RBI": 0.383,
        "predicted_SO": 0.4842
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1375,
          "delta": 0.1375,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.3143,
          "delta": 0.3143,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7561,
          "delta": -0.2439,
          "percent_delta": -0.2439,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.0659,
          "delta": 0.0659,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.383,
          "delta": 0.383,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.0,
          "after": 0.4842,
          "delta": 0.4842,
          "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.4842,
          "delta": 0.4842,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7561,
          "delta": -0.2439,
          "percent_delta": -0.2439,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_AVG": 0.227,
        "predicted_BB": 0.0,
        "predicted_H": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.299,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.332,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1375,
          "after": 0.0,
          "delta": -0.1375,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2016,
          "after": 0.227,
          "delta": 0.0254,
          "percent_delta": 0.126,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3143,
          "after": 0.0,
          "delta": -0.3143,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.7561,
          "after": 0.0,
          "delta": -0.7561,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0659,
          "after": 0.0,
          "delta": -0.0659,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2866,
          "after": 0.299,
          "delta": 0.0124,
          "percent_delta": 0.0433,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.383,
          "after": 0.0,
          "delta": -0.383,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.2804,
          "after": 0.332,
          "delta": 0.0516,
          "percent_delta": 0.184,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.4842,
          "after": 1.0,
          "delta": 0.5158,
          "percent_delta": 1.0653,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 9,
        "boosted_metrics": 4,
        "deboosted_metrics": 5,
        "better_metrics": 3,
        "worse_metrics": 6,
        "biggest_boost": {
          "metric": "predicted_SO",
          "before": 0.4842,
          "after": 1.0,
          "delta": 0.5158,
          "percent_delta": 1.0653,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 0.7561,
          "after": 0.0,
          "delta": -0.7561,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 10,
      "step": "embedded_savant_player_context",
      "description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 3.0,
        "predicted_AVG": 0.227,
        "predicted_BB": 0.0,
        "predicted_H": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.299,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.332,
        "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
      }
    },
    {
      "index": 11,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 3.0,
        "predicted_AVG": 0.217,
        "predicted_BB": 0.0,
        "predicted_H": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.288,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.318,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.227,
          "after": 0.217,
          "delta": -0.01,
          "percent_delta": -0.0441,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.299,
          "after": 0.288,
          "delta": -0.011,
          "percent_delta": -0.0368,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.332,
          "after": 0.318,
          "delta": -0.014,
          "percent_delta": -0.0422,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.332,
          "after": 0.318,
          "delta": -0.014,
          "percent_delta": -0.0422,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 12,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "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_R": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SF": 0.0,
        "predicted_SO": 0.0
      },
      "changed_metrics": [
        {
          "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_H",
          "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_SO",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 4,
        "boosted_metrics": 3,
        "deboosted_metrics": 1,
        "better_metrics": 4,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_AB",
          "before": 3.0,
          "after": 4.0,
          "delta": 1.0,
          "percent_delta": 0.3333,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      }
    },
    {
      "index": 13,
      "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_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SF": 0.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
      },
      "reference_only": true
    },
    {
      "index": 14,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.217,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.288,
        "predicted_R": 0.0,
        "predicted_RBI": 1.0,
        "predicted_RF": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.318,
        "predicted_SO": 0.0,
        "predicted_TB": 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
      }
    }
  ],
  "total_change": {
    "from_step": "xgboost_raw",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_2B",
        "before": 0.168,
        "after": 0.0,
        "delta": -0.168,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AB",
        "before": 3.121,
        "after": 4.0,
        "delta": 0.879,
        "percent_delta": 0.2816,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.231,
        "after": 0.217,
        "delta": -0.014,
        "percent_delta": -0.0606,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.28,
        "after": 0.0,
        "delta": -0.28,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.57,
        "after": 1.0,
        "delta": 0.43,
        "percent_delta": 0.7544,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.319,
        "after": 0.288,
        "delta": -0.031,
        "percent_delta": -0.0972,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.346,
        "after": 0.0,
        "delta": -0.346,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.36,
        "after": 1.0,
        "delta": 0.64,
        "percent_delta": 1.7778,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.305,
        "after": 0.318,
        "delta": 0.013,
        "percent_delta": 0.0426,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.355,
        "after": 0.0,
        "delta": -0.355,
        "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_AB",
        "before": 3.121,
        "after": 4.0,
        "delta": 0.879,
        "percent_delta": 0.2816,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_SO",
        "before": 0.355,
        "after": 0.0,
        "delta": -0.355,
        "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.168-
predicted_3B0.000-
predicted_AB3.121-
predicted_AVG0.231-
predicted_BB0.280-
predicted_H0.570-
predicted_HR0.020-
predicted_OBP0.319-
predicted_R0.346-
predicted_RBI0.360-
predicted_SLG0.305-
predicted_SO0.355-
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.166-0.002
predicted_3B0.0000.000
predicted_AB3.013-0.108
predicted_AVG0.227-0.004
predicted_BB0.3550.075
predicted_H0.5970.027
predicted_HBP0.011-
predicted_HR0.0230.003
predicted_OBP0.3210.002
predicted_R0.315-0.031
predicted_RBI0.3760.016
predicted_SLG0.3060.001
predicted_SO0.301-0.054
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.0000.000
predicted_AB3.0130.000
predicted_AVG0.202-0.025
predicted_BB0.3590.004
predicted_H0.6070.010
predicted_HBP0.0110.000
predicted_HR0.0240.001
predicted_OBP0.287-0.035
predicted_R0.3240.010
predicted_RBI0.3880.011
predicted_SLG0.280-0.025
predicted_SO0.298-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 3 (raw=3.12), rates preserved: AVG=0.188 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=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
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.1380.138
3B0.0070.007
BB0.3140.314
H0.756-0.244
HR0.0660.066
RBI0.3830.383
SO0.4840.484
9. 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.007
AB3.0000.000
AVG0.227-
BB0.000-0.314
H0.000-0.756
HR0.000-0.066
OBP0.299-
R0.0000.000
RBI0.000-0.383
SLG0.332-
SO1.0000.516
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.166
predicted_3B0.000-0.000
predicted_AB3.000-0.013
predicted_AVG0.2270.025
predicted_BB0.000-0.359
predicted_H0.000-0.607
predicted_HR0.000-0.024
predicted_OBP0.2990.012
predicted_R0.000-0.324
predicted_RBI0.000-0.388
predicted_SLG0.3320.052
predicted_SO1.0000.702
11. kpi_run_environment

KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
AVG0.217-0.010
BB0.0000.000
H0.0000.000
HR0.0000.000
OBP0.288-0.011
R0.0000.000
RBI0.0000.000
SLG0.318-0.014
SO1.0000.000
12. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0001.000
BB0.0000.000
H1.0001.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R0.0000.000
RBI1.0001.000
SF0.0000.000
SO0.000-1.000
13. 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
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA4.0000.000
R0.0000.000
RBI1.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: 107
Reference playing time: 3.801
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.0004.0000.0000.16670.37500.25000.16670.00000.16670.33330.0000
last_100.2010-22.0005.0001.0000.0000.0004.0001.0005.0000.0000.22730.35710.27270.22730.00000.18180.22730.0000
season0.60107-334.00078.00018.0000.0004.00039.00037.00030.00038.0000.23350.29890.32340.23350.01200.11680.08980.1138
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1640
predicted_3B0.0010
predicted_AB2.8690
predicted_AVG0.2211
predicted_BB0.4550
predicted_H0.6340
predicted_HBP0.0110
predicted_HR0.0270
predicted_OBP0.3242
predicted_R0.2730
predicted_RBI0.3980
predicted_SLG0.3068
predicted_SO0.2290
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.16800.16400.1663model_form_blend
predicted_3B0.00000.00100.0004model_form_blend
predicted_AB3.12102.86903.0132model_form_blend
predicted_AVG0.23100.22110.2268model_form_blend
predicted_BB0.28000.45500.3549model_form_blend
predicted_H0.57000.63400.5974model_form_blend
predicted_HBP-0.01100.0110form_only
predicted_HR0.02000.02700.0230model_form_blend
predicted_OBP0.31900.32420.3212model_form_blend
predicted_R0.34600.27300.3148model_form_blend
predicted_RBI0.36000.39800.3763model_form_blend
predicted_SLG0.30500.30680.3058model_form_blend
predicted_SO0.35500.22900.3011model_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 date373
Season rows before report date373
Report year2026
Profile rows used107
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
RBI1
BB0
SO0
SF0
HBP0

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E0
Fielding_Outfield assists1
Fielding_Passed Ball0
Fielding_Pickoffs0
Hitting_2B0
Hitting_3B0
Hitting_AB2
Hitting_AVG0.5
Hitting_BB2
Hitting_GIDP0
Hitting_H1
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R1
Hitting_RBI1
Hitting_SAC0
Hitting_SF0
Hitting_SO0
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
allPositionsPlayedRF
gameID20261004_SD@MIL
game_typefull
mlbID686217
playerID686217
playerNameSal Frelick
posRF
startedTrue
startingPositionRF
teamMIL
teamID16
game_date2026-10-04
sl_k_percent9.9
sl_bb_percent8.1
sl_woba0.275
sl_xwoba0.281
sl_xba0.241
sl_xslg0.324
sl_sweet_spot_percent27.4
sl_barrel_batted_rate2.3
sl_hard_hit_percent26.8
sl_exit_velocity_avg85.7
sl_launch_angle_avg9.8
sl_whiff_percent10.1
sl_swing_percent42.8
Joey Ortiz (687401) · BATTER · 3B · Team MIL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 408
All-history rows before 20261006: 408
System season_avg: 0.2640
Data season_avg (2026 season-to-date): 0.2792
Diff (system - data): -0.0152
System opponent_avg: 0.2580
System season_avg diverges from 2026 season-to-date by -0.0152. 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.1110.0000.000Hitting_2B0.1180.000-0.1180.000
predicted_3B0.0340.0000.000Hitting_3B0.0340.000-0.0340.000
predicted_AB3.1374.0004.000Hitting_AB3.2480.0000.7524.000
predicted_AVG0.2640.2500.250Hitting_AVG0.279--0.029-
predicted_BB0.2910.0000.000Hitting_BB0.3090.000-0.3090.000
predicted_CS-0.0000.000BaseRunning_CS0.0370.000-0.0370.000
predicted_H0.8291.0001.000Hitting_H0.9070.0000.0931.000
predicted_HR0.0770.0000.000Hitting_HR0.0980.000-0.0980.000
predicted_OBP0.3270.2500.250Hitting_OBP0.337--0.087-
predicted_R0.4020.0000.000Hitting_R0.4510.000-0.4510.000
predicted_RBI0.3930.0000.000Hitting_RBI0.4190.000-0.4190.000
predicted_SLG0.3950.2500.250Hitting_SLG0.427--0.177-
predicted_SO0.7180.0000.000Hitting_SO0.6940.000-0.6940.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics11
Boosted Metrics2
Deboosted Metrics9
Better Metrics3
Worse Metrics8
Biggest Boostpredicted_AB: 3.1370 -> 4.0000 (boost 0.8630, better)
Biggest Deboostpredicted_SO: 0.7180 -> 0.0000 (deboost -0.7180, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend42213predicted_SO: 0.7180 -> 0.8663 (boost 0.1483, worse)predicted_SLG: 0.3950 -> 0.3785 (deboost -0.0165, 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_snapshot11010predicted_OBP: 0.3203 -> 0.3254 (boost 0.0051, 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_scaling72516predicted_SO: 0.8563 -> 1.0000 (boost 0.1437, worse)predicted_RBI: 0.3876 -> 0.0000 (deboost -0.3876, worse)AB rounded to 3 (raw=3.26), rates preserved: AVG=0.256 HR/AB=0.021
6consistency_constraints10101-predicted_R: 0.3956 -> 0.0000 (deboost -0.3956, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine64251predicted_RBI: 0.0000 -> 0.4022 (boost 0.4022, better)predicted_H: 1.0000 -> 0.7875 (deboost -0.2125, 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_allocation92718predicted_H: 0.7875 -> 1.0000 (boost 0.2125, better)predicted_RBI: 0.4022 -> 0.0000 (deboost -0.4022, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10kpi_run_environment30303-predicted_SLG: 0.3580 -> 0.3420 (deboost -0.0160, worse)KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup
11play_by_play_realization21120predicted_AB: 3.0000 -> 4.0000 (boost 1.0000, better)predicted_SO: 1.0000 -> 0.0000 (deboost -1.0000, better)Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
12simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
13current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "687401",
  "player_name": "Joey Ortiz",
  "position": "3B",
  "team": "MIL",
  "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.034,
        "predicted_AB": 3.137,
        "predicted_AVG": 0.264,
        "predicted_BB": 0.291,
        "predicted_H": 0.829,
        "predicted_HR": 0.077,
        "predicted_OBP": 0.327,
        "predicted_R": 0.402,
        "predicted_RBI": 0.393,
        "predicted_SLG": 0.395,
        "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
      }
    },
    {
      "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.1046,
        "predicted_3B": 0.0361,
        "predicted_AB": 3.263,
        "predicted_AVG": 0.2614,
        "predicted_BB": 0.2854,
        "predicted_H": 0.8526,
        "predicted_HBP": 0.002,
        "predicted_HR": 0.0675,
        "predicted_OBP": 0.3203,
        "predicted_R": 0.3839,
        "predicted_RBI": 0.3762,
        "predicted_SLG": 0.3785,
        "predicted_SO": 0.8663
      },
      "changed_metrics": [
        {
          "metric": "predicted_AB",
          "before": 3.137,
          "after": 3.263,
          "delta": 0.126,
          "percent_delta": 0.0402,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.327,
          "after": 0.3203,
          "delta": -0.0067,
          "percent_delta": -0.0205,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.395,
          "after": 0.3785,
          "delta": -0.0165,
          "percent_delta": -0.0418,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.718,
          "after": 0.8663,
          "delta": 0.1483,
          "percent_delta": 0.2065,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 4,
        "boosted_metrics": 2,
        "deboosted_metrics": 2,
        "better_metrics": 1,
        "worse_metrics": 3,
        "biggest_boost": {
          "metric": "predicted_SO",
          "before": 0.718,
          "after": 0.8663,
          "delta": 0.1483,
          "percent_delta": 0.2065,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SLG",
          "before": 0.395,
          "after": 0.3785,
          "delta": -0.0165,
          "percent_delta": -0.0418,
          "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": 117
      }
    },
    {
      "index": 3,
      "step": "team_form_snapshot",
      "description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
      "stats": {
        "predicted_2B": 0.1046,
        "predicted_3B": 0.0361,
        "predicted_AB": 3.263,
        "predicted_AVG": 0.2657,
        "predicted_BB": 0.2887,
        "predicted_H": 0.8668,
        "predicted_HBP": 0.002,
        "predicted_HR": 0.0689,
        "predicted_OBP": 0.3254,
        "predicted_R": 0.3956,
        "predicted_RBI": 0.3876,
        "predicted_SLG": 0.3832,
        "predicted_SO": 0.8563
      },
      "changed_metrics": [
        {
          "metric": "predicted_OBP",
          "before": 0.3203,
          "after": 0.3254,
          "delta": 0.0051,
          "percent_delta": 0.0159,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 1,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_OBP",
          "before": 0.3203,
          "after": 0.3254,
          "delta": 0.0051,
          "percent_delta": 0.0159,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 3 (raw=3.26), rates preserved: AVG=0.256 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.1046,
          "after": 0.0,
          "delta": -0.1046,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AB",
          "before": 3.263,
          "after": 3.0,
          "delta": -0.263,
          "percent_delta": -0.0806,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.2887,
          "after": 0.0,
          "delta": -0.2887,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8668,
          "after": 1.0,
          "delta": 0.1332,
          "percent_delta": 0.1537,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0689,
          "after": 0.0,
          "delta": -0.0689,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3876,
          "after": 0.0,
          "delta": -0.3876,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.8563,
          "after": 1.0,
          "delta": 0.1437,
          "percent_delta": 0.1678,
          "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.8563,
          "after": 1.0,
          "delta": 0.1437,
          "percent_delta": 0.1678,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.3876,
          "after": 0.0,
          "delta": -0.3876,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_R",
          "before": 0.3956,
          "after": 0.0,
          "delta": -0.3956,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 0,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 1,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_R",
          "before": 0.3956,
          "after": 0.0,
          "delta": -0.3956,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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.122,
        "predicted_3B": 0.0151,
        "predicted_BB": 0.3036,
        "predicted_H": 0.7875,
        "predicted_HR": 0.0914,
        "predicted_RBI": 0.4022,
        "predicted_SO": 0.8745
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.122,
          "delta": 0.122,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.3036,
          "delta": 0.3036,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7875,
          "delta": -0.2125,
          "percent_delta": -0.2125,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.0914,
          "delta": 0.0914,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.4022,
          "delta": 0.4022,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.8745,
          "delta": -0.1255,
          "percent_delta": -0.1255,
          "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.4022,
          "delta": 0.4022,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7875,
          "delta": -0.2125,
          "percent_delta": -0.2125,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_AVG": 0.232,
        "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.358,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.122,
          "after": 0.0,
          "delta": -0.122,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2657,
          "after": 0.232,
          "delta": -0.0337,
          "percent_delta": -0.1268,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3036,
          "after": 0.0,
          "delta": -0.3036,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.7875,
          "after": 1.0,
          "delta": 0.2125,
          "percent_delta": 0.2698,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0914,
          "after": 0.0,
          "delta": -0.0914,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3254,
          "after": 0.301,
          "delta": -0.0244,
          "percent_delta": -0.075,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4022,
          "after": 0.0,
          "delta": -0.4022,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3832,
          "after": 0.358,
          "delta": -0.0252,
          "percent_delta": -0.0658,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.8745,
          "after": 1.0,
          "delta": 0.1255,
          "percent_delta": 0.1435,
          "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_H",
          "before": 0.7875,
          "after": 1.0,
          "delta": 0.2125,
          "percent_delta": 0.2698,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.4022,
          "after": 0.0,
          "delta": -0.4022,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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.301,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.358,
        "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
      }
    },
    {
      "index": 10,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup",
      "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.289,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.342,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.232,
          "after": 0.222,
          "delta": -0.01,
          "percent_delta": -0.0431,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.301,
          "after": 0.289,
          "delta": -0.012,
          "percent_delta": -0.0399,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.358,
          "after": 0.342,
          "delta": -0.016,
          "percent_delta": -0.0447,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.358,
          "after": 0.342,
          "delta": -0.016,
          "percent_delta": -0.0447,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 11,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "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_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.0,
        "predicted_SO": 0.0
      },
      "changed_metrics": [
        {
          "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_SO",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 2,
        "boosted_metrics": 1,
        "deboosted_metrics": 1,
        "better_metrics": 2,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_AB",
          "before": 3.0,
          "after": 4.0,
          "delta": 1.0,
          "percent_delta": 0.3333,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      }
    },
    {
      "index": 12,
      "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_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.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
      },
      "reference_only": true
    },
    {
      "index": 13,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.222,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.289,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.342,
        "predicted_SO": 0.0,
        "predicted_TB": 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
      }
    }
  ],
  "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_AB",
        "before": 3.137,
        "after": 4.0,
        "delta": 0.863,
        "percent_delta": 0.2751,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.264,
        "after": 0.222,
        "delta": -0.042,
        "percent_delta": -0.1591,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.291,
        "after": 0.0,
        "delta": -0.291,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.829,
        "after": 1.0,
        "delta": 0.171,
        "percent_delta": 0.2063,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.077,
        "after": 0.0,
        "delta": -0.077,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.327,
        "after": 0.289,
        "delta": -0.038,
        "percent_delta": -0.1162,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.402,
        "after": 0.0,
        "delta": -0.402,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.393,
        "after": 0.0,
        "delta": -0.393,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.395,
        "after": 0.342,
        "delta": -0.053,
        "percent_delta": -0.1342,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.718,
        "after": 0.0,
        "delta": -0.718,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 11,
      "boosted_metrics": 2,
      "deboosted_metrics": 9,
      "better_metrics": 3,
      "worse_metrics": 8,
      "biggest_boost": {
        "metric": "predicted_AB",
        "before": 3.137,
        "after": 4.0,
        "delta": 0.863,
        "percent_delta": 0.2751,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_SO",
        "before": 0.718,
        "after": 0.0,
        "delta": -0.718,
        "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.111-
predicted_3B0.034-
predicted_AB3.137-
predicted_AVG0.264-
predicted_BB0.291-
predicted_H0.829-
predicted_HR0.077-
predicted_OBP0.327-
predicted_R0.402-
predicted_RBI0.393-
predicted_SLG0.395-
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.105-0.006
predicted_3B0.0360.002
predicted_AB3.2630.126
predicted_AVG0.261-0.003
predicted_BB0.285-0.006
predicted_H0.8530.024
predicted_HBP0.002-
predicted_HR0.068-0.009
predicted_OBP0.320-0.007
predicted_R0.384-0.018
predicted_RBI0.376-0.017
predicted_SLG0.379-0.017
predicted_SO0.8660.148
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.1050.000
predicted_3B0.0360.000
predicted_AB3.2630.000
predicted_AVG0.2660.004
predicted_BB0.2890.003
predicted_H0.8670.014
predicted_HBP0.0020.000
predicted_HR0.0690.001
predicted_OBP0.3250.005
predicted_R0.3960.012
predicted_RBI0.3880.011
predicted_SLG0.3830.005
predicted_SO0.856-0.010
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.26), rates preserved: AVG=0.256 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.1220.122
3B0.0150.015
BB0.3040.304
H0.787-0.213
HR0.0910.091
RBI0.4020.402
SO0.875-0.125
8. lineup_integer_allocation

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

MetricValueDelta vs Prev Step
2B0.000-0.122
3B0.000-0.015
AB3.0000.000
AVG0.232-
BB0.000-0.304
H1.0000.213
HR0.000-0.091
OBP0.301-
R0.0000.000
RBI0.000-0.402
SLG0.358-
SO1.0000.125
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.105
predicted_3B0.000-0.036
predicted_AB3.000-0.263
predicted_AVG0.232-0.034
predicted_BB0.000-0.289
predicted_H1.0000.133
predicted_HR0.000-0.069
predicted_OBP0.301-0.024
predicted_R0.000-0.396
predicted_RBI0.000-0.388
predicted_SLG0.358-0.025
predicted_SO1.0000.144
10. kpi_run_environment

KPI club run ratio x0.915 applied to runs and RBI, x0.957 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
AVG0.222-0.010
BB0.0000.000
H1.0000.000
HR0.0000.000
OBP0.289-0.012
R0.0000.000
RBI0.0000.000
SLG0.342-0.016
SO1.0000.000
11. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0001.000
BB0.0000.000
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R0.0000.000
RBI0.0000.000
SF0.0000.000
SO0.000-1.000
12. 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
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA4.0000.000
R0.0000.000
RBI0.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: 117
Reference playing time: 3.801
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.0000.0001.00010.0000.21050.25000.21050.21050.00000.05260.05260.5263
last_100.2010-38.00011.0001.0001.0000.0003.0005.0003.00014.0000.28950.34150.36840.28950.00000.07900.07900.3684
season0.60117-367.00097.00013.0004.0009.00046.00047.00034.00084.0000.26430.32270.39510.26430.02450.12530.09260.2289
Weighted Prediction From Real Data
MetricValue
predicted_2B0.0960
predicted_3B0.0390
predicted_AB3.4300
predicted_AVG0.2579
predicted_BB0.2780
predicted_H0.8840
predicted_HBP0.0020
predicted_HR0.0550
predicted_OBP0.3115
predicted_R0.3600
predicted_RBI0.3540
predicted_SLG0.3566
predicted_SO1.0630
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.11100.09600.1046model_form_blend
predicted_3B0.03400.03900.0361model_form_blend
predicted_AB3.13703.43003.2630model_form_blend
predicted_AVG0.26400.25790.2614model_form_blend
predicted_BB0.29100.27800.2854model_form_blend
predicted_H0.82900.88400.8526model_form_blend
predicted_HBP-0.00200.0020form_only
predicted_HR0.07700.05500.0675model_form_blend
predicted_OBP0.32700.31150.3203model_form_blend
predicted_R0.40200.36000.3839model_form_blend
predicted_RBI0.39300.35400.3762model_form_blend
predicted_SLG0.39500.35660.3785model_form_blend
predicted_SO0.71801.06300.8663model_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 date408
Season rows before report date408
Report year2026
Profile rows used117
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
SO0
SF0
HBP0

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_battingOrder9
Hitting_substitutionOrder2
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
allPositionsPlayedPR
gameID20261004_SD@MIL
game_typeph
mlbID687401
noteRan for Sánchez in the 9th.
playerID687401
playerNameJoey Ortiz
posSS
startedFalse
startingPositionPR
teamMIL
teamID16
game_date2026-10-04
sl_k_percent19.8
sl_bb_percent8.4
sl_woba0.321
sl_xwoba0.297
sl_xba0.243
sl_xslg0.346
sl_sweet_spot_percent29.2
sl_barrel_batted_rate4.0
sl_hard_hit_percent37.6
sl_exit_velocity_avg89.2
sl_launch_angle_avg6.4
sl_whiff_percent19.9
sl_swing_percent44.8
Dustin May (669160) · PITCHER · Starter · Team MIL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 10
All-history rows before 20261006: 10

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB2.0002.0002.000Pitching_BB1.5001.0000.5001.000
predicted_ER5.0005.0005.000Pitching_ER2.3002.0002.7003.000
predicted_H8.0008.0008.000Pitching_H3.7003.0004.3005.000
predicted_IP4.0004.0004.000Pitching_InningsPitched3.5503.0000.4501.000
predicted_SO4.0004.0004.000Pitching_SO3.8005.0000.200-1.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_rate_projection
Tocurrent_json_final
Dominant Effectworse
Changed Metrics5
Boosted Metrics3
Deboosted Metrics2
Better Metrics2
Worse Metrics3
Biggest Boostpredicted_H: 4.0000 -> 8.0000 (boost 4.0000, worse)
Biggest Deboostpredicted_HR: 1.0000 -> 0.0000 (deboost -1.0000, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_rate_projection00000--Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty
2pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
3team_form_adjustment00000--Club form: innings, run prevention and strikeout factors
4savant_pitcher_quality00000--Statcast pitch quality: strikeout, walk, home-run and run-prevention factors
5opposing_lineup_context00000--The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances
6kpi_run_environment00000--KPI blend published; the staff line follows the published score, not a KPI rescale
7play_by_play_realization53223predicted_H: 4.0000 -> 8.0000 (boost 4.0000, worse)predicted_HR: 1.0000 -> 0.0000 (deboost -1.0000, better)Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play
8current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "pitcher",
  "player_id": "669160",
  "player_name": "Dustin May",
  "position": "Starter",
  "team": "MIL",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_rate_projection",
      "description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
      "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
      }
    },
    {
      "index": 2,
      "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": 4.0,
        "predicted_HR": 1.0,
        "predicted_IP": 4.3333,
        "predicted_SO": 1.0
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "index": 3,
      "step": "team_form_adjustment",
      "description": "Club form: innings, run prevention and strikeout factors",
      "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
      }
    },
    {
      "index": 4,
      "step": "savant_pitcher_quality",
      "description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
      "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
      }
    },
    {
      "index": 5,
      "step": "opposing_lineup_context",
      "description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
      "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": {
        "H": 0.0,
        "BB": 0.15,
        "SO": 0.35,
        "HR": 0.0
      }
    },
    {
      "index": 6,
      "step": "kpi_run_environment",
      "description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
      "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
      }
    },
    {
      "index": 7,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
      "stats": {
        "predicted_BB": 2.0,
        "predicted_ER": 5.0,
        "predicted_H": 8.0,
        "predicted_HR": 0.0,
        "predicted_IP": 4.0,
        "predicted_R": 5.0,
        "predicted_SO": 4.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_ER",
          "before": 4.0,
          "after": 5.0,
          "delta": 1.0,
          "percent_delta": 0.25,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 4.0,
          "after": 8.0,
          "delta": 4.0,
          "percent_delta": 1.0,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_IP",
          "before": 4.3333,
          "after": 4.0,
          "delta": -0.3333,
          "percent_delta": -0.0769,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 4.0,
          "delta": 3.0,
          "percent_delta": 3.0,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 5,
        "boosted_metrics": 3,
        "deboosted_metrics": 2,
        "better_metrics": 2,
        "worse_metrics": 3,
        "biggest_boost": {
          "metric": "predicted_H",
          "before": 4.0,
          "after": 8.0,
          "delta": 4.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": "better",
          "material": true
        }
      }
    },
    {
      "index": 8,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_BB": 2.0,
        "predicted_ER": 5.0,
        "predicted_H": 8.0,
        "predicted_HR": 0.0,
        "predicted_IP": 4.0,
        "predicted_SO": 4.0
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    }
  ],
  "total_change": {
    "from_step": "pitcher_rate_projection",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_ER",
        "before": 4.0,
        "after": 5.0,
        "delta": 1.0,
        "percent_delta": 0.25,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 4.0,
        "after": 8.0,
        "delta": 4.0,
        "percent_delta": 1.0,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 1.0,
        "after": 0.0,
        "delta": -1.0,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_IP",
        "before": 4.3333,
        "after": 4.0,
        "delta": -0.3333,
        "percent_delta": -0.0769,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 1.0,
        "after": 4.0,
        "delta": 3.0,
        "percent_delta": 3.0,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 5,
      "boosted_metrics": 3,
      "deboosted_metrics": 2,
      "better_metrics": 2,
      "worse_metrics": 3,
      "biggest_boost": {
        "metric": "predicted_H",
        "before": 4.0,
        "after": 8.0,
        "delta": 4.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": "better",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_rate_projection

Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty

MetricValueDelta vs Prev Step
2. pitcher_form_blend

Pitcher model/profile expectation with Bayesian recent-form shrinkage

MetricValueDelta vs Prev Step
predicted_BB2.000-
predicted_ER4.000-
predicted_H4.000-
predicted_HR1.000-
predicted_IP4.333-
predicted_SO1.000-
3. team_form_adjustment

Club form: innings, run prevention and strikeout factors

MetricValueDelta vs Prev Step
4. savant_pitcher_quality

Statcast pitch quality: strikeout, walk, home-run and run-prevention factors

MetricValueDelta vs Prev Step
5. opposing_lineup_context

The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances

MetricValueDelta vs Prev Step
6. kpi_run_environment

KPI blend published; the staff line follows the published score, not a KPI rescale

MetricValueDelta vs Prev Step
7. play_by_play_realization

Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play

MetricValueDelta vs Prev Step
BB2.000-
BF22.000-
ER5.000-
H8.000-
HR0.000-
IP4.000-
Pitches89.000-
R5.000-
SO4.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 31
Reference playing time: 4.333
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.45517.0009.00017.0005.00022.0004.0004.76471.29410.52941.00000.29411.29410.2353
last_100.351036.20023.00037.00015.00038.0007.0005.64551.41820.62731.00910.40911.03640.1909
season0.2031145.20076.000142.00050.000144.00014.0004.69571.31810.52170.97480.34320.98860.0961
Weighted Prediction From Real Data
MetricValue
predicted_BB1.3280
predicted_ER2.1110
predicted_ERA4.9978
predicted_H3.7880
predicted_HR0.7060
predicted_IP3.2000
predicted_SO4.2350
predicted_WHIP1.3455
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB2.00001.32801.6026model_form_blend
predicted_ER4.00002.11102.8830model_form_blend
predicted_ERA-4.99784.9978form_only
predicted_H4.00003.78803.8746model_form_blend
predicted_HR1.00000.70600.8262model_form_blend
predicted_IP4.10003.20004.0000model_form_blend
predicted_SO1.00004.23502.9129model_form_blend
predicted_WHIP-1.34551.3455form_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 date10
Season rows before report date10
Report year2026
Profile rows used31
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP4.0
H8
R5
ER5
BB2
SO4
HR0
BF22
Pitches89

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 Faced13
Pitching_ER2
Pitching_ERA4.70
Pitching_Flyouts2
Pitching_Groundouts0
Pitching_H3
Pitching_HBP0
Pitching_HR1
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched3.0
Pitching_Pitches58
Pitching_R2
Pitching_SO5
Pitching_Strikes38
Pitching_Wild Pitch0
Pitching_pitchingOrder1
allPositionsPlayedP
gameID20260926_STL@MIL
game_typefull
mlbID669160
playerID669160
playerNameDustin May
posP
startedTrue
startingPositionP
teamMIL
teamID16
game_date2026-09-26
sl_k_percent23.2
sl_bb_percent8.1
sl_woba0.317
sl_xwoba0.323
sl_sweet_spot_percent36.1
sl_barrel_batted_rate7.8
sl_hard_hit_percent44.3
sl_whiff_percent23.0
sl_swing_percent47.6
sl_avg_best_speed79.285414951
sl_avg_hyper_speed94.649461397
JoJo Romero (668941) · PITCHER · Long Reliever · Team MIL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 12
All-history rows before 20261006: 12

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB0.0000.0000.000Pitching_BB0.2501.000-0.250-1.000
predicted_ER0.0000.0000.000Pitching_ER0.4170.000-0.4170.000
predicted_H1.0001.0001.000Pitching_H0.9170.0000.0831.000
predicted_IP1.0001.0001.000Pitching_InningsPitched0.8750.2000.1250.800
predicted_SO1.0001.0001.000Pitching_SO1.0832.000-0.083-1.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_rate_projection
Tocurrent_json_final
Dominant Effectworse
Changed Metrics1
Boosted Metrics1
Deboosted Metrics0
Better Metrics0
Worse Metrics1
Biggest Boostpredicted_H: 0.0000 -> 1.0000 (boost 1.0000, worse)
Biggest Deboost-
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_rate_projection00000--Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty
2pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
3team_form_adjustment00000--Club form: innings, run prevention and strikeout factors
4savant_pitcher_quality00000--Statcast pitch quality: strikeout, walk, home-run and run-prevention factors
5opposing_lineup_context00000--The nine hitters he faces: batter quality, weighted by plate appearances
6kpi_run_environment00000--KPI blend published; the staff line follows the published score, not a KPI rescale
7play_by_play_realization11001predicted_H: 0.0000 -> 1.0000 (boost 1.0000, worse)-Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play
8current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "pitcher",
  "player_id": "668941",
  "player_name": "JoJo Romero",
  "position": "Long Reliever",
  "team": "MIL",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_rate_projection",
      "description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
      "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
      }
    },
    {
      "index": 2,
      "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
      }
    },
    {
      "index": 3,
      "step": "team_form_adjustment",
      "description": "Club form: innings, run prevention and strikeout factors",
      "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
      }
    },
    {
      "index": 4,
      "step": "savant_pitcher_quality",
      "description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
      "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
      }
    },
    {
      "index": 5,
      "step": "opposing_lineup_context",
      "description": "The nine hitters he faces: batter quality, weighted by plate appearances",
      "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": {
        "H": 0.0,
        "BB": 0.15,
        "SO": 0.35,
        "HR": 0.0
      }
    },
    {
      "index": 6,
      "step": "kpi_run_environment",
      "description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
      "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
      }
    },
    {
      "index": 7,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
      "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_H",
          "before": 0.0,
          "after": 1.0,
          "delta": 1.0,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 1,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 1,
        "biggest_boost": {
          "metric": "predicted_H",
          "before": 0.0,
          "after": 1.0,
          "delta": 1.0,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "index": 8,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "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
      }
    }
  ],
  "total_change": {
    "from_step": "pitcher_rate_projection",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_H",
        "before": 0.0,
        "after": 1.0,
        "delta": 1.0,
        "percent_delta": null,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 1,
      "boosted_metrics": 1,
      "deboosted_metrics": 0,
      "better_metrics": 0,
      "worse_metrics": 1,
      "biggest_boost": {
        "metric": "predicted_H",
        "before": 0.0,
        "after": 1.0,
        "delta": 1.0,
        "percent_delta": null,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      },
      "biggest_deboost": null,
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_rate_projection

Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty

MetricValueDelta vs Prev Step
2. 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-
3. team_form_adjustment

Club form: innings, run prevention and strikeout factors

MetricValueDelta vs Prev Step
4. savant_pitcher_quality

Statcast pitch quality: strikeout, walk, home-run and run-prevention factors

MetricValueDelta vs Prev Step
5. opposing_lineup_context

The nine hitters he faces: batter quality, weighted by plate appearances

MetricValueDelta vs Prev Step
6. kpi_run_environment

KPI blend published; the staff line follows the published score, not a KPI rescale

MetricValueDelta vs Prev Step
7. play_by_play_realization

Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play

MetricValueDelta vs Prev Step
BB0.000-
BF5.000-
ER0.000-
H1.000-
HR0.000-
IP1.000-
Pitches14.000-
R0.000-
SO1.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 56
Reference playing time: 1.000
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.4556.1000.0002.0001.0008.0000.0000.00000.47370.00000.31580.15791.26320.0000
last_100.351012.1005.0009.0003.00012.0002.0003.64860.97300.40540.72970.24320.97300.1622
season0.205657.00021.00051.00019.00056.0007.0003.31581.22810.36840.89470.33330.98250.1228
Weighted Prediction From Real Data
MetricValue
predicted_BB0.3200
predicted_ER0.3610
predicted_ERA2.7381
predicted_H0.8290
predicted_HR0.1200
predicted_IP1.1000
predicted_SO1.2520
predicted_WHIP0.9680
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB0.00000.32000.1677model_form_blend
predicted_ER0.00000.36100.1892model_form_blend
predicted_ERA-2.73812.7381form_only
predicted_H0.00000.82900.4344model_form_blend
predicted_HR0.00000.12000.0629model_form_blend
predicted_IP1.00001.10001.2000model_form_blend
predicted_SO1.00001.25201.1321model_form_blend
predicted_WHIP-0.96800.9680form_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 used56
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
BF5
Pitches14

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 Faced3
Pitching_ER0
Pitching_ERA0.00
Pitching_Flyouts0
Pitching_Groundouts0
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners1
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.2
Pitching_Pitches15
Pitching_R0
Pitching_SO2
Pitching_Strikes7
Pitching_Wild Pitch0
Pitching_pitchingOrder2
allPositionsPlayedP
gameID20261004_SD@MIL
game_typefull
mlbID668941
playerID668941
playerNameJoJo Romero
posP
startedFalse
startingPositionP
teamMIL
teamID16
game_date2026-10-04
sl_k_percent22.7
sl_bb_percent7.6
sl_woba0.305
sl_xwoba0.323
sl_sweet_spot_percent34.0
sl_barrel_batted_rate7.5
sl_hard_hit_percent38.9
sl_whiff_percent22.1
sl_swing_percent41.8
sl_avg_best_speed79.261308481
sl_avg_hyper_speed94.932814051
Antonio Senzatela (622608) · PITCHER · Middle Reliever (High Leverage) · Team MIL
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 24
All-history rows before 20261006: 24

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB0.0000.0000.000Pitching_BB0.4171.000-0.417-1.000
predicted_ER0.0000.0000.000Pitching_ER0.5000.000-0.5000.000
predicted_H1.0001.0001.000Pitching_H1.0002.0000.000-1.000
predicted_IP3.0003.0003.000Pitching_InningsPitched0.7080.2002.2922.800
predicted_SO2.0002.0002.000Pitching_SO0.5830.0001.4172.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_rate_projection
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics5
Boosted Metrics2
Deboosted Metrics3
Better Metrics5
Worse Metrics0
Biggest Boostpredicted_IP: 0.1000 -> 3.0000 (boost 2.9000, better)
Biggest Deboostpredicted_H: 3.0000 -> 1.0000 (deboost -2.0000, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_rate_projection00000--Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty
2pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
3team_form_adjustment00000--Club form: innings, run prevention and strikeout factors
4savant_pitcher_quality00000--Statcast pitch quality: strikeout, walk, home-run and run-prevention factors
5opposing_lineup_context00000--The nine hitters he faces: batter quality, weighted by plate appearances
6kpi_run_environment00000--KPI blend published; the staff line follows the published score, not a KPI rescale
7play_by_play_realization52350predicted_IP: 0.1000 -> 3.0000 (boost 2.9000, better)predicted_H: 3.0000 -> 1.0000 (deboost -2.0000, better)Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play
8current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "pitcher",
  "player_id": "622608",
  "player_name": "Antonio Senzatela",
  "position": "Middle Reliever (High Leverage)",
  "team": "MIL",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_rate_projection",
      "description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
      "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
      }
    },
    {
      "index": 2,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 1.0,
        "predicted_ER": 1.0,
        "predicted_H": 3.0,
        "predicted_HR": 0.0,
        "predicted_IP": 0.1,
        "predicted_SO": 1.0
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "index": 3,
      "step": "team_form_adjustment",
      "description": "Club form: innings, run prevention and strikeout factors",
      "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
      }
    },
    {
      "index": 4,
      "step": "savant_pitcher_quality",
      "description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
      "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
      }
    },
    {
      "index": 5,
      "step": "opposing_lineup_context",
      "description": "The nine hitters he faces: batter quality, weighted by plate appearances",
      "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": {
        "H": 0.0,
        "BB": 0.15,
        "SO": 0.35,
        "HR": 0.0
      }
    },
    {
      "index": 6,
      "step": "kpi_run_environment",
      "description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
      "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
      }
    },
    {
      "index": 7,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
      "stats": {
        "predicted_BB": 0.0,
        "predicted_ER": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_IP": 3.0,
        "predicted_R": 0.0,
        "predicted_SO": 2.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_BB",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_ER",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 3.0,
          "after": 1.0,
          "delta": -2.0,
          "percent_delta": -0.6667,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_IP",
          "before": 0.1,
          "after": 3.0,
          "delta": 2.9,
          "percent_delta": 29.0,
          "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": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 5,
        "boosted_metrics": 2,
        "deboosted_metrics": 3,
        "better_metrics": 5,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_IP",
          "before": 0.1,
          "after": 3.0,
          "delta": 2.9,
          "percent_delta": 29.0,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 3.0,
          "after": 1.0,
          "delta": -2.0,
          "percent_delta": -0.6667,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      }
    },
    {
      "index": 8,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_BB": 0.0,
        "predicted_ER": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_IP": 3.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
      }
    }
  ],
  "total_change": {
    "from_step": "pitcher_rate_projection",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_BB",
        "before": 1.0,
        "after": 0.0,
        "delta": -1.0,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_ER",
        "before": 1.0,
        "after": 0.0,
        "delta": -1.0,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 3.0,
        "after": 1.0,
        "delta": -2.0,
        "percent_delta": -0.6667,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_IP",
        "before": 0.1,
        "after": 3.0,
        "delta": 2.9,
        "percent_delta": 29.0,
        "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": "better",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 5,
      "boosted_metrics": 2,
      "deboosted_metrics": 3,
      "better_metrics": 5,
      "worse_metrics": 0,
      "biggest_boost": {
        "metric": "predicted_IP",
        "before": 0.1,
        "after": 3.0,
        "delta": 2.9,
        "percent_delta": 29.0,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_H",
        "before": 3.0,
        "after": 1.0,
        "delta": -2.0,
        "percent_delta": -0.6667,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "better"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_rate_projection

Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty

MetricValueDelta vs Prev Step
2. pitcher_form_blend

Pitcher model/profile expectation with Bayesian recent-form shrinkage

MetricValueDelta vs Prev Step
predicted_BB1.000-
predicted_ER1.000-
predicted_H3.000-
predicted_HR0.000-
predicted_IP0.100-
predicted_SO1.000-
3. team_form_adjustment

Club form: innings, run prevention and strikeout factors

MetricValueDelta vs Prev Step
4. savant_pitcher_quality

Statcast pitch quality: strikeout, walk, home-run and run-prevention factors

MetricValueDelta vs Prev Step
5. opposing_lineup_context

The nine hitters he faces: batter quality, weighted by plate appearances

MetricValueDelta vs Prev Step
6. kpi_run_environment

KPI blend published; the staff line follows the published score, not a KPI rescale

MetricValueDelta vs Prev Step
7. play_by_play_realization

Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play

MetricValueDelta vs Prev Step
BB0.000-
BF10.000-
ER0.000-
H1.000-
HR0.000-
IP3.000-
Pitches37.000-
R0.000-
SO2.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 58
Reference playing time: 0.100
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.4554.1000.0005.0002.0002.0000.0000.00001.61540.00001.15390.46150.46150.0000
last_100.35108.0005.00010.0004.0006.0001.0005.62501.75000.62501.25000.50000.75000.1250
season0.205874.00033.00075.00027.00060.0006.0004.01351.37840.44601.01350.36490.81080.0811
Weighted Prediction From Real Data
MetricValue
predicted_BB0.3490
predicted_ER0.2860
predicted_ERA3.2264
predicted_H0.8910
predicted_HR0.0650
predicted_IP0.2000
predicted_SO0.5640
predicted_WHIP1.5535
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB1.00000.34900.6446model_form_blend
predicted_ER1.00000.28600.6103model_form_blend
predicted_ERA-3.22643.2264form_only
predicted_H3.00000.89101.8488model_form_blend
predicted_HR0.00000.06500.0355model_form_blend
predicted_IP0.10000.20000.2000model_form_blend
predicted_SO1.00000.56400.7620model_form_blend
predicted_WHIP-1.55351.5535form_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 date24
Season rows before report date24
Report year2026
Profile rows used58
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP3.0
H1
R0
ER0
BB0
SO2
HR0
BF10
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_BB1
Pitching_Balk0
Pitching_Batters Faced4
Pitching_ER0
Pitching_ERA0.00
Pitching_Flyouts0
Pitching_Groundouts1
Pitching_H2
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched0.2
Pitching_Pitches11
Pitching_R0
Pitching_SO0
Pitching_Strikes6
Pitching_Wild Pitch0
Pitching_pitchingOrder2
allPositionsPlayedP
gameID20261003_SD@MIL
game_typefull
mlbID622608
playerID622608
playerNameAntonio Senzatela
posP
startedFalse
startingPositionP
teamMIL
teamID16
game_date2026-10-03
sl_k_percent19.3
sl_bb_percent8.4
sl_woba0.31
sl_xwoba0.31
sl_sweet_spot_percent32.3
sl_barrel_batted_rate6.3
sl_hard_hit_percent40.4
sl_whiff_percent23.5
sl_swing_percent49.4
sl_avg_best_speed77.021888727
sl_avg_hyper_speed94.288859455

Home Team: SD

Home Pitcher Deep Analysis

FieldValue
PitcherNick Pivetta
RoleStarter
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score0.1561
ESPN Rank-
Movement AvailableTrue
Primary Pitch-
Movement Score-0.0365
Avg Velo89.2121
Avg Spin2437.1932
HB Inches0
IVB Inches0
Release Extension0
Pre IP4
Pre ER3
Pre H4
Pre BB1
Pre SO2
Season ERA2.8421
Season WHIP1.0526
Role Avg IP4.2220
Recent Avg IP4.4000
Last Start IP3.1000
Team Form Snapshot
{
  "team": {
    "team": "SD",
    "games": 162,
    "wins": 91,
    "losses": 71,
    "win_pct": 0.5617,
    "runs_scored": 722.0,
    "runs_allowed": 681.0,
    "run_differential": 41.0,
    "run_differential_per_game": 0.2531,
    "avg_runs_scored": 4.4568,
    "avg_runs_allowed": 4.2037,
    "offense_index": 0.9928,
    "defense_index": 1.0679,
    "current_streak": "W2",
    "recent": {
      "games": 10,
      "wins": 8,
      "losses": 2,
      "win_pct": 0.8,
      "avg_runs_scored": 6.3,
      "avg_runs_allowed": 4.5,
      "run_differential": 18.0
    },
    "available": true,
    "quality_score": 0.1885
  },
  "opponent": {
    "team": "MIL",
    "games": 162,
    "wins": 103,
    "losses": 59,
    "win_pct": 0.6358,
    "runs_scored": 832.0,
    "runs_allowed": 618.0,
    "run_differential": 214.0,
    "run_differential_per_game": 1.321,
    "avg_runs_scored": 5.1358,
    "avg_runs_allowed": 3.8148,
    "offense_index": 1.1441,
    "defense_index": 1.1767,
    "current_streak": "W5",
    "recent": {
      "games": 10,
      "wins": 8,
      "losses": 2,
      "win_pct": 0.8,
      "avg_runs_scored": 4.4,
      "avg_runs_allowed": 3.0,
      "run_differential": 14.0
    },
    "available": true,
    "quality_score": 0.3823
  },
  "method": "team_form_snapshot",
  "role": "pitcher",
  "edges": {
    "quality_edge": -0.1938,
    "offense_edge": -0.0072,
    "opponent_offense_edge": 0.1441,
    "defense_strength": 0.0679,
    "opponent_defense_weakness": -0.1767,
    "recent_win_pct_edge": 0.0
  },
  "player_factors": {
    "ip": 0.9885,
    "run_prevention": 1.026,
    "strikeout": 0.9827
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "601713",
    "profile": {
      "available": true,
      "pitcher_id": "601713",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 100.0,
        "k_percent": 30.0,
        "bb_percent": 5.7,
        "woba": 0.249,
        "xwoba": 0.277,
        "sweet_spot_percent": 34.8,
        "barrel_batted_rate": 10.1,
        "hard_hit_percent": 38.2,
        "avg_best_speed": 80.1978,
        "avg_hyper_speed": 93.7991,
        "whiff_percent": 22.8,
        "swing_percent": 47.8
      },
      "league_medians": {
        "pa": 134.0,
        "k_percent": 22.1,
        "bb_percent": 9.2,
        "woba": 0.315,
        "xwoba": 0.312,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6432,
        "avg_hyper_speed": 93.9005,
        "whiff_percent": 25.2,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": 0.5062,
        "command_and_miss": 0.5629,
        "regression_edge": -0.8,
        "xwoba_edge": 1.0,
        "barrel_edge": -0.6444,
        "hard_hit_edge": -0.0429,
        "whiff_edge": -0.3429,
        "bb_edge": 0.875,
        "pitch_design_score": -0.0365
      },
      "quality_score": 0.1561,
      "sample_weight": 0.45,
      "run_prevention_factor": 0.9867,
      "strikeout_factor": 1.0141,
      "walk_factor": 0.9685,
      "homer_factor": 1.0105,
      "woba_minus_xwoba": -0.028,
      "regression_flag": "neutral",
      "espn_rank": {
        "available": false,
        "player_id": "601713",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 1.0,
        "factor": 0.994,
        "adjusted": 1
      },
      "predicted_H": {
        "original": 3.0,
        "factor": 0.994,
        "adjusted": 3
      },
      "predicted_BB": {
        "original": 1.0,
        "factor": 0.9858,
        "adjusted": 1
      },
      "predicted_HR": {
        "original": 0.0,
        "factor": 1.0047,
        "adjusted": 0
      },
      "predicted_SO": {
        "original": 5.0,
        "factor": 1.0063,
        "adjusted": 5
      }
    }
  },
  "club_form": "game.<side>_team.predicted_performance.team_form"
}
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": 38.0,
    "ER": 12,
    "H": 30,
    "BB": 10,
    "SO": 46,
    "HR": 2,
    "ERA": 2.8421052631578947,
    "WHIP": 1.0526315789473684,
    "K9": 10.894736842105264,
    "HR9": 0.47368421052631576,
    "games_pitched": 9,
    "quality_starts": 0,
    "dominant_form": false,
    "struggling_form": false
  },
  "fielding": {
    "errors": 0,
    "assists": 0,
    "games_fielded": 9,
    "error_prone": false
  },
  "games_count": 9,
  "latest_game_date": "2026-09-30T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": true,
  "pitcher_id": "601713",
  "player_name": null,
  "source": "all_players_stats.csv embedded Savant pitcher movement features",
  "total_pitches": 59,
  "primary_pitch": {
    "pitch_type": null,
    "pitch_name": null,
    "pitches": 59,
    "pitch_usage": 0.0,
    "release_speed": 89.21211734682227,
    "release_spin_rate": 2437.193161283574,
    "spin_axis": null,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": null,
    "release_pos_x": null,
    "release_pos_z": null,
    "release_extension": 0.0,
    "arm_angle": 0.0,
    "whiff_percent": 0.0,
    "xwoba": 0.0,
    "hard_hit_percent": 0.0
  },
  "pitch_mix": [
    {
      "pitch_type": null,
      "pitch_name": null,
      "pitches": 59,
      "pitch_usage": 0.0,
      "release_speed": 89.21211734682227,
      "release_spin_rate": 2437.193161283574,
      "spin_axis": null,
      "horizontal_break_inches": 0.0,
      "induced_vertical_break_inches": 0.0,
      "vertical_break_with_gravity_inches": null,
      "release_pos_x": null,
      "release_pos_z": null,
      "release_extension": 0.0,
      "arm_angle": 0.0,
      "whiff_percent": 0.0,
      "xwoba": 0.0,
      "hard_hit_percent": 0.0
    }
  ],
  "summary": {
    "release_speed": 89.2121,
    "release_spin_rate": 2437.1932,
    "spin_axis": 0.0,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": 0.0,
    "release_pos_x": 0.0,
    "release_pos_z": 0.0,
    "release_extension": 0.0,
    "arm_angle": 0.0,
    "whiff_percent": 0.0,
    "xwoba": 0.0,
    "hard_hit_percent": 0.0
  },
  "components": {
    "movement_score": -0.0365,
    "horizontal_break_edge": 0.0,
    "induced_vertical_break_edge": 0.0,
    "extension_edge": 0.0,
    "velocity_edge": -0.2608,
    "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.6164383561643836,
    "last_10": 0.3835616438356164
  },
  "shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 9.0,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.6429,
    "prior_weight": 0.3571
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "601713",
  "report_date": "20261006",
  "season_year": 2026,
  "rows_used": 9,
  "reference_playing_time": 5.0,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 22.0,
        "ER": 4.0,
        "R": 4.0,
        "H": 18.0,
        "BB": 4.0,
        "SO": 22.0,
        "HR": 2.0,
        "BF": 89.0,
        "Pitches": 361.0
      },
      "per_game": {
        "IP": 4.1,
        "ER": 0.8,
        "R": 0.8,
        "H": 3.6,
        "BB": 0.8,
        "SO": 4.4,
        "HR": 0.4,
        "BF": 17.8,
        "Pitches": 72.2
      },
      "rates": {
        "ERA": 1.6364,
        "WHIP": 1.0,
        "ER_per_IP": 0.18182,
        "H_per_IP": 0.81818,
        "BB_per_IP": 0.18182,
        "SO_per_IP": 1.0,
        "HR_per_IP": 0.09091
      }
    },
    "last_10": {
      "games": 9,
      "totals": {
        "IP": 38.0,
        "ER": 12.0,
        "R": 12.0,
        "H": 30.0,
        "BB": 10.0,
        "SO": 46.0,
        "HR": 2.0,
        "BF": 155.0,
        "Pitches": 644.0
      },
      "per_game": {
        "IP": 4.1,
        "ER": 1.3333,
        "R": 1.3333,
        "H": 3.3333,
        "BB": 1.1111,
        "SO": 5.1111,
        "HR": 0.2222,
        "BF": 17.2222,
        "Pitches": 71.5556
      },
      "rates": {
        "ERA": 2.8421,
        "WHIP": 1.0526,
        "ER_per_IP": 0.31579,
        "H_per_IP": 0.78947,
        "BB_per_IP": 0.26316,
        "SO_per_IP": 1.21053,
        "HR_per_IP": 0.05263
      }
    },
    "season": {
      "games": 9,
      "totals": {
        "IP": 38.0,
        "ER": 12.0,
        "R": 12.0,
        "H": 30.0,
        "BB": 10.0,
        "SO": 46.0,
        "HR": 2.0,
        "BF": 155.0,
        "Pitches": 644.0
      },
      "per_game": {
        "IP": 4.1,
        "ER": 1.3333,
        "R": 1.3333,
        "H": 3.3333,
        "BB": 1.1111,
        "SO": 5.1111,
        "HR": 0.2222,
        "BF": 17.2222,
        "Pitches": 71.5556
      },
      "rates": {
        "ERA": 2.8421,
        "WHIP": 1.0526,
        "ER_per_IP": 0.31579,
        "H_per_IP": 0.78947,
        "BB_per_IP": 0.26316,
        "SO_per_IP": 1.21053,
        "HR_per_IP": 0.05263
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 4.2,
    "predicted_ER": 1.523,
    "predicted_H": 3.979,
    "predicted_BB": 1.247,
    "predicted_SO": 4.7,
    "predicted_HR": 0.465,
    "predicted_ERA": 2.9981,
    "predicted_WHIP": 1.1433
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.5009,
  "form_weight": 0.4991,
  "form_reliability": 0.6429,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 9.0,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.6429,
    "prior_weight": 0.3571
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 5.0,
      "form": 4.2,
      "final": 5.0,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 2.0,
      "form": 1.523,
      "final": 1.7619,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 3.0,
      "form": 3.979,
      "final": 3.4886,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 1.0,
      "form": 1.247,
      "final": 1.1233,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 7.0,
      "form": 4.7,
      "final": 5.852,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 0.0,
      "form": 0.465,
      "final": 0.2321,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 2.9981,
      "final": 2.9981,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 1.1433,
      "final": 1.1433,
      "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
PitcherBradgley Rodriguez
RoleMiddle Reliever (High Leverage)
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score1.0127
ESPN Rank-
Movement AvailableFalse
Primary Pitch-
Movement Score-
Avg Velo-
Avg Spin-
HB Inches-
IVB Inches-
Release Extension-
Pre IP1.1000
Pre ER0
Pre H2
Pre BB1
Pre SO1
Season ERA1.6223
Season WHIP0.9528
Role Avg IP1.1330
Recent Avg IP1.5330
Last Start IP0
Team Form Snapshot
{
  "team": {
    "team": "SD",
    "games": 162,
    "wins": 91,
    "losses": 71,
    "win_pct": 0.5617,
    "runs_scored": 722.0,
    "runs_allowed": 681.0,
    "run_differential": 41.0,
    "run_differential_per_game": 0.2531,
    "avg_runs_scored": 4.4568,
    "avg_runs_allowed": 4.2037,
    "offense_index": 0.9928,
    "defense_index": 1.0679,
    "current_streak": "W2",
    "recent": {
      "games": 10,
      "wins": 8,
      "losses": 2,
      "win_pct": 0.8,
      "avg_runs_scored": 6.3,
      "avg_runs_allowed": 4.5,
      "run_differential": 18.0
    },
    "available": true,
    "quality_score": 0.1885
  },
  "opponent": {
    "team": "MIL",
    "games": 162,
    "wins": 103,
    "losses": 59,
    "win_pct": 0.6358,
    "runs_scored": 832.0,
    "runs_allowed": 618.0,
    "run_differential": 214.0,
    "run_differential_per_game": 1.321,
    "avg_runs_scored": 5.1358,
    "avg_runs_allowed": 3.8148,
    "offense_index": 1.1441,
    "defense_index": 1.1767,
    "current_streak": "W5",
    "recent": {
      "games": 10,
      "wins": 8,
      "losses": 2,
      "win_pct": 0.8,
      "avg_runs_scored": 4.4,
      "avg_runs_allowed": 3.0,
      "run_differential": 14.0
    },
    "available": true,
    "quality_score": 0.3823
  },
  "method": "team_form_snapshot",
  "role": "pitcher",
  "edges": {
    "quality_edge": -0.1938,
    "offense_edge": -0.0072,
    "opponent_offense_edge": 0.1441,
    "defense_strength": 0.0679,
    "opponent_defense_weakness": -0.1767,
    "recent_win_pct_edge": 0.0
  },
  "player_factors": {
    "ip": 0.9885,
    "run_prevention": 1.026,
    "strikeout": 0.9827
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "699134",
    "profile": {
      "available": true,
      "pitcher_id": "699134",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 272.0,
        "k_percent": 26.9,
        "bb_percent": 6.6,
        "woba": 0.266,
        "xwoba": 0.239,
        "sweet_spot_percent": 27.0,
        "barrel_batted_rate": 4.5,
        "hard_hit_percent": 30.0,
        "avg_best_speed": 76.2635,
        "avg_hyper_speed": 92.9787,
        "whiff_percent": 30.1,
        "swing_percent": 51.6
      },
      "league_medians": {
        "pa": 134.0,
        "k_percent": 22.1,
        "bb_percent": 9.2,
        "woba": 0.315,
        "xwoba": 0.312,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6432,
        "avg_hyper_speed": 93.9005,
        "whiff_percent": 25.2,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": 1.3532,
        "command_and_miss": 0.6836,
        "regression_edge": 0.7714,
        "xwoba_edge": 2.0857,
        "barrel_edge": 0.6,
        "hard_hit_edge": 1.1286,
        "whiff_edge": 0.7,
        "bb_edge": 0.65,
        "pitch_design_score": 0.0
      },
      "quality_score": 1.0127,
      "sample_weight": 1.0,
      "run_prevention_factor": 0.9139,
      "strikeout_factor": 1.0554,
      "walk_factor": 0.948,
      "homer_factor": 0.8443,
      "woba_minus_xwoba": 0.027,
      "regression_flag": "neutral",
      "espn_rank": {
        "available": false,
        "player_id": "699134",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 0.0,
        "factor": 0.9139,
        "adjusted": 0
      },
      "predicted_H": {
        "original": 1.0,
        "factor": 0.9139,
        "adjusted": 1
      },
      "predicted_BB": {
        "original": 0.0,
        "factor": 0.948,
        "adjusted": 0
      },
      "predicted_HR": {
        "original": 0.0,
        "factor": 0.8443,
        "adjusted": 0
      },
      "predicted_SO": {
        "original": 2.0,
        "factor": 1.0554,
        "adjusted": 2
      }
    }
  },
  "club_form": "game.<side>_team.predicted_performance.team_form"
}
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.1,
    "ER": 1,
    "H": 6,
    "BB": 4,
    "SO": 13,
    "HR": 1,
    "ERA": 0.7297297297297297,
    "WHIP": 0.8108108108108107,
    "K9": 9.486486486486486,
    "HR9": 0.7297297297297297,
    "games_pitched": 9,
    "quality_starts": 0,
    "dominant_form": true,
    "struggling_form": false
  },
  "fielding": {
    "errors": 1,
    "assists": 0,
    "games_fielded": 10,
    "error_prone": false
  },
  "games_count": 10,
  "latest_game_date": "2026-10-04T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": false,
  "pitcher_id": "699134",
  "reason": "pitcher_movement_profile_has_no_pitches"
}
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.038,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.7623,
    "prior_weight": 0.2377
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "699134",
  "report_date": "20261006",
  "season_year": 2026,
  "rows_used": 69,
  "reference_playing_time": 1.333,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 7.2,
        "ER": 0.0,
        "R": 0.0,
        "H": 2.0,
        "BB": 4.0,
        "SO": 9.0,
        "HR": 0.0,
        "BF": 30.0,
        "Pitches": 124.0
      },
      "per_game": {
        "IP": 1.2,
        "ER": 0.0,
        "R": 0.0,
        "H": 0.4,
        "BB": 0.8,
        "SO": 1.8,
        "HR": 0.0,
        "BF": 6.0,
        "Pitches": 24.8
      },
      "rates": {
        "ERA": 0.0,
        "WHIP": 0.7826,
        "ER_per_IP": 0.0,
        "H_per_IP": 0.26087,
        "BB_per_IP": 0.52174,
        "SO_per_IP": 1.17391,
        "HR_per_IP": 0.0
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 13.1,
        "ER": 1.0,
        "R": 1.0,
        "H": 6.0,
        "BB": 4.0,
        "SO": 15.0,
        "HR": 1.0,
        "BF": 50.0,
        "Pitches": 193.0
      },
      "per_game": {
        "IP": 1.1,
        "ER": 0.1,
        "R": 0.1,
        "H": 0.6,
        "BB": 0.4,
        "SO": 1.5,
        "HR": 0.1,
        "BF": 5.0,
        "Pitches": 19.3
      },
      "rates": {
        "ERA": 0.675,
        "WHIP": 0.75,
        "ER_per_IP": 0.075,
        "H_per_IP": 0.45,
        "BB_per_IP": 0.3,
        "SO_per_IP": 1.125,
        "HR_per_IP": 0.075
      }
    },
    "season": {
      "games": 69,
      "totals": {
        "IP": 77.2,
        "ER": 14.0,
        "R": 18.0,
        "H": 53.0,
        "BB": 21.0,
        "SO": 85.0,
        "HR": 4.0,
        "BF": 309.0,
        "Pitches": 1214.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.2029,
        "R": 0.2609,
        "H": 0.7681,
        "BB": 0.3043,
        "SO": 1.2319,
        "HR": 0.058,
        "BF": 4.4783,
        "Pitches": 17.5942
      },
      "rates": {
        "ERA": 1.6223,
        "WHIP": 0.9528,
        "ER_per_IP": 0.18026,
        "H_per_IP": 0.6824,
        "BB_per_IP": 0.27039,
        "SO_per_IP": 1.09442,
        "HR_per_IP": 0.0515
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 1.1,
    "predicted_ER": 0.237,
    "predicted_H": 0.765,
    "predicted_BB": 0.546,
    "predicted_SO": 1.525,
    "predicted_HR": 0.088,
    "predicted_ERA": 1.5249,
    "predicted_WHIP": 0.9383
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.4504,
  "form_weight": 0.5496,
  "form_reliability": 0.7623,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 16.038,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.7623,
    "prior_weight": 0.2377
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 1.1,
      "form": 1.1,
      "final": 1.1,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 0.0,
      "form": 0.237,
      "final": 0.1302,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 1.0,
      "form": 0.765,
      "final": 0.8709,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 2.0,
      "form": 0.546,
      "final": 1.2009,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 0.0,
      "form": 1.525,
      "final": 0.8381,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 0.0,
      "form": 0.088,
      "final": 0.0484,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 1.5249,
      "final": 1.5249,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 0.9383,
      "final": 0.9383,
      "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
PitcherAdrian Morejon
RoleMiddle Reliever (High Leverage)
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score1.1536
ESPN Rank-
Movement AvailableFalse
Primary Pitch-
Movement Score-
Avg Velo-
Avg Spin-
HB Inches-
IVB Inches-
Release Extension-
Pre IP1.1000
Pre ER1
Pre H1
Pre BB0
Pre SO1
Season ERA2.8000
Season WHIP1.0778
Role Avg IP1.1540
Recent Avg IP1.4670
Last Start IP0
Team Form Snapshot
{
  "team": {
    "team": "SD",
    "games": 162,
    "wins": 91,
    "losses": 71,
    "win_pct": 0.5617,
    "runs_scored": 722.0,
    "runs_allowed": 681.0,
    "run_differential": 41.0,
    "run_differential_per_game": 0.2531,
    "avg_runs_scored": 4.4568,
    "avg_runs_allowed": 4.2037,
    "offense_index": 0.9928,
    "defense_index": 1.0679,
    "current_streak": "W2",
    "recent": {
      "games": 10,
      "wins": 8,
      "losses": 2,
      "win_pct": 0.8,
      "avg_runs_scored": 6.3,
      "avg_runs_allowed": 4.5,
      "run_differential": 18.0
    },
    "available": true,
    "quality_score": 0.1885
  },
  "opponent": {
    "team": "MIL",
    "games": 162,
    "wins": 103,
    "losses": 59,
    "win_pct": 0.6358,
    "runs_scored": 832.0,
    "runs_allowed": 618.0,
    "run_differential": 214.0,
    "run_differential_per_game": 1.321,
    "avg_runs_scored": 5.1358,
    "avg_runs_allowed": 3.8148,
    "offense_index": 1.1441,
    "defense_index": 1.1767,
    "current_streak": "W5",
    "recent": {
      "games": 10,
      "wins": 8,
      "losses": 2,
      "win_pct": 0.8,
      "avg_runs_scored": 4.4,
      "avg_runs_allowed": 3.0,
      "run_differential": 14.0
    },
    "available": true,
    "quality_score": 0.3823
  },
  "method": "team_form_snapshot",
  "role": "pitcher",
  "edges": {
    "quality_edge": -0.1938,
    "offense_edge": -0.0072,
    "opponent_offense_edge": 0.1441,
    "defense_strength": 0.0679,
    "opponent_defense_weakness": -0.1767,
    "recent_win_pct_edge": 0.0
  },
  "player_factors": {
    "ip": 0.9885,
    "run_prevention": 1.026,
    "strikeout": 0.9827
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "670970",
    "profile": {
      "available": true,
      "pitcher_id": "670970",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 324.0,
        "k_percent": 30.4,
        "bb_percent": 8.0,
        "woba": 0.244,
        "xwoba": 0.237,
        "sweet_spot_percent": 28.3,
        "barrel_batted_rate": 2.8,
        "hard_hit_percent": 32.5,
        "avg_best_speed": 74.3318,
        "avg_hyper_speed": 93.3234,
        "whiff_percent": 34.2,
        "swing_percent": 52.6
      },
      "league_medians": {
        "pa": 134.0,
        "k_percent": 22.1,
        "bb_percent": 9.2,
        "woba": 0.315,
        "xwoba": 0.312,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6432,
        "avg_hyper_speed": 93.9005,
        "whiff_percent": 25.2,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": 1.5398,
        "command_and_miss": 1.0436,
        "regression_edge": 0.2,
        "xwoba_edge": 2.1429,
        "barrel_edge": 0.9778,
        "hard_hit_edge": 0.7714,
        "whiff_edge": 1.2857,
        "bb_edge": 0.3,
        "pitch_design_score": 0.0
      },
      "quality_score": 1.1536,
      "sample_weight": 1.0,
      "run_prevention_factor": 0.9019,
      "strikeout_factor": 1.0989,
      "walk_factor": 0.976,
      "homer_factor": 0.8266,
      "woba_minus_xwoba": 0.007,
      "regression_flag": "neutral",
      "espn_rank": {
        "available": false,
        "player_id": "670970",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 0.0,
        "factor": 0.9019,
        "adjusted": 0
      },
      "predicted_H": {
        "original": 1.0,
        "factor": 0.9019,
        "adjusted": 1
      },
      "predicted_BB": {
        "original": 0.0,
        "factor": 0.976,
        "adjusted": 0
      },
      "predicted_HR": {
        "original": 0.0,
        "factor": 0.8266,
        "adjusted": 0
      },
      "predicted_SO": {
        "original": 2.0,
        "factor": 1.0989,
        "adjusted": 2
      }
    }
  },
  "club_form": "game.<side>_team.predicted_performance.team_form"
}
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": 3,
    "H": 8,
    "BB": 4,
    "SO": 13,
    "HR": 1,
    "ERA": 2.382352941176471,
    "WHIP": 1.0588235294117647,
    "K9": 10.323529411764707,
    "HR9": 0.7941176470588236,
    "games_pitched": 10,
    "quality_starts": 0,
    "dominant_form": false,
    "struggling_form": false
  },
  "fielding": {
    "errors": 0,
    "assists": 0,
    "games_fielded": 10,
    "error_prone": false
  },
  "games_count": 10,
  "latest_game_date": "2026-10-03T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": false,
  "pitcher_id": "670970",
  "reason": "pitcher_movement_profile_has_no_pitches"
}
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.585,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.788,
    "prior_weight": 0.212
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "670970",
  "report_date": "20261006",
  "season_year": 2026,
  "rows_used": 78,
  "reference_playing_time": 1.333,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 7.1,
        "ER": 2.0,
        "R": 2.0,
        "H": 6.0,
        "BB": 2.0,
        "SO": 6.0,
        "HR": 1.0,
        "BF": 29.0,
        "Pitches": 98.0
      },
      "per_game": {
        "IP": 1.1,
        "ER": 0.4,
        "R": 0.4,
        "H": 1.2,
        "BB": 0.4,
        "SO": 1.2,
        "HR": 0.2,
        "BF": 5.8,
        "Pitches": 19.6
      },
      "rates": {
        "ERA": 2.4545,
        "WHIP": 1.0909,
        "ER_per_IP": 0.27273,
        "H_per_IP": 0.81818,
        "BB_per_IP": 0.27273,
        "SO_per_IP": 0.81818,
        "HR_per_IP": 0.13636
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 11.1,
        "ER": 3.0,
        "R": 3.0,
        "H": 8.0,
        "BB": 4.0,
        "SO": 13.0,
        "HR": 1.0,
        "BF": 45.0,
        "Pitches": 158.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.3,
        "R": 0.3,
        "H": 0.8,
        "BB": 0.4,
        "SO": 1.3,
        "HR": 0.1,
        "BF": 4.5,
        "Pitches": 15.8
      },
      "rates": {
        "ERA": 2.3824,
        "WHIP": 1.0588,
        "ER_per_IP": 0.26471,
        "H_per_IP": 0.70588,
        "BB_per_IP": 0.35294,
        "SO_per_IP": 1.14706,
        "HR_per_IP": 0.08824
      }
    },
    "season": {
      "games": 78,
      "totals": {
        "IP": 90.0,
        "ER": 28.0,
        "R": 33.0,
        "H": 69.0,
        "BB": 28.0,
        "SO": 109.0,
        "HR": 5.0,
        "BF": 367.0,
        "Pitches": 1378.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.359,
        "R": 0.4231,
        "H": 0.8846,
        "BB": 0.359,
        "SO": 1.3974,
        "HR": 0.0641,
        "BF": 4.7051,
        "Pitches": 17.6667
      },
      "rates": {
        "ERA": 2.8,
        "WHIP": 1.0778,
        "ER_per_IP": 0.31111,
        "H_per_IP": 0.76667,
        "BB_per_IP": 0.31111,
        "SO_per_IP": 1.21111,
        "HR_per_IP": 0.05556
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 1.1,
    "predicted_ER": 0.389,
    "predicted_H": 0.968,
    "predicted_BB": 0.385,
    "predicted_SO": 1.183,
    "predicted_HR": 0.134,
    "predicted_ERA": 2.9475,
    "predicted_WHIP": 1.1381
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.4396,
  "form_weight": 0.5604,
  "form_reliability": 0.788,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 18.585,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.788,
    "prior_weight": 0.212
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 1.1,
      "form": 1.1,
      "final": 1.1,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 1.0,
      "form": 0.389,
      "final": 0.6576,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 2.0,
      "form": 0.968,
      "final": 1.4216,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 2.0,
      "form": 0.385,
      "final": 1.0949,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 0.0,
      "form": 1.183,
      "final": 0.663,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 1.0,
      "form": 0.134,
      "final": 0.5147,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 2.9475,
      "final": 2.9475,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 1.1381,
      "final": 1.1381,
      "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 Adam
RoleSetup Man
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score0.0599
ESPN Rank-
Movement AvailableTrue
Primary Pitch-
Movement Score-0.1391
Avg Velo87.3795
Avg Spin2393.0679
HB Inches0
IVB Inches0
Release Extension0
Pre IP1
Pre ER0
Pre H0
Pre BB1
Pre SO1
Season ERA2.4771
Season WHIP1.1284
Role Avg IP0.9080
Recent Avg IP1
Last Start IP0
Team Form Snapshot
{
  "team": {
    "team": "SD",
    "games": 162,
    "wins": 91,
    "losses": 71,
    "win_pct": 0.5617,
    "runs_scored": 722.0,
    "runs_allowed": 681.0,
    "run_differential": 41.0,
    "run_differential_per_game": 0.2531,
    "avg_runs_scored": 4.4568,
    "avg_runs_allowed": 4.2037,
    "offense_index": 0.9928,
    "defense_index": 1.0679,
    "current_streak": "W2",
    "recent": {
      "games": 10,
      "wins": 8,
      "losses": 2,
      "win_pct": 0.8,
      "avg_runs_scored": 6.3,
      "avg_runs_allowed": 4.5,
      "run_differential": 18.0
    },
    "available": true,
    "quality_score": 0.1885
  },
  "opponent": {
    "team": "MIL",
    "games": 162,
    "wins": 103,
    "losses": 59,
    "win_pct": 0.6358,
    "runs_scored": 832.0,
    "runs_allowed": 618.0,
    "run_differential": 214.0,
    "run_differential_per_game": 1.321,
    "avg_runs_scored": 5.1358,
    "avg_runs_allowed": 3.8148,
    "offense_index": 1.1441,
    "defense_index": 1.1767,
    "current_streak": "W5",
    "recent": {
      "games": 10,
      "wins": 8,
      "losses": 2,
      "win_pct": 0.8,
      "avg_runs_scored": 4.4,
      "avg_runs_allowed": 3.0,
      "run_differential": 14.0
    },
    "available": true,
    "quality_score": 0.3823
  },
  "method": "team_form_snapshot",
  "role": "pitcher",
  "edges": {
    "quality_edge": -0.1938,
    "offense_edge": -0.0072,
    "opponent_offense_edge": 0.1441,
    "defense_strength": 0.0679,
    "opponent_defense_weakness": -0.1767,
    "recent_win_pct_edge": 0.0
  },
  "player_factors": {
    "ip": 0.9885,
    "run_prevention": 1.026,
    "strikeout": 0.9827
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "592094",
    "profile": {
      "available": true,
      "pitcher_id": "592094",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 131.0,
        "k_percent": 15.5,
        "bb_percent": 7.0,
        "woba": 0.307,
        "xwoba": 0.3,
        "sweet_spot_percent": 26.2,
        "barrel_batted_rate": 7.5,
        "hard_hit_percent": 37.4,
        "avg_best_speed": 77.066,
        "avg_hyper_speed": 93.4317,
        "whiff_percent": 28.5,
        "swing_percent": 52.3
      },
      "league_medians": {
        "pa": 134.0,
        "k_percent": 22.1,
        "bb_percent": 9.2,
        "woba": 0.315,
        "xwoba": 0.312,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6432,
        "avg_hyper_speed": 93.9005,
        "whiff_percent": 25.2,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": 0.2575,
        "command_and_miss": -0.1493,
        "regression_edge": 0.2,
        "xwoba_edge": 0.3429,
        "barrel_edge": -0.0667,
        "hard_hit_edge": 0.0714,
        "whiff_edge": 0.4714,
        "bb_edge": 0.55,
        "pitch_design_score": -0.1391
      },
      "quality_score": 0.0599,
      "sample_weight": 0.524,
      "run_prevention_factor": 0.9949,
      "strikeout_factor": 0.9901,
      "walk_factor": 0.9769,
      "homer_factor": 0.9959,
      "woba_minus_xwoba": 0.007,
      "regression_flag": "neutral",
      "espn_rank": {
        "available": false,
        "player_id": "592094",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 0.0,
        "factor": 0.9973,
        "adjusted": 0
      },
      "predicted_H": {
        "original": 1.0,
        "factor": 0.9973,
        "adjusted": 1
      },
      "predicted_BB": {
        "original": 0.0,
        "factor": 0.9879,
        "adjusted": 0
      },
      "predicted_HR": {
        "original": 0.0,
        "factor": 0.9979,
        "adjusted": 0
      },
      "predicted_SO": {
        "original": 2.0,
        "factor": 0.9948,
        "adjusted": 2
      }
    }
  },
  "club_form": "game.<side>_team.predicted_performance.team_form"
}
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": 5,
    "H": 6,
    "BB": 3,
    "SO": 5,
    "HR": 2,
    "ERA": 4.5,
    "WHIP": 0.9,
    "K9": 4.5,
    "HR9": 1.8,
    "games_pitched": 10,
    "quality_starts": 0,
    "dominant_form": false,
    "struggling_form": false
  },
  "fielding": {
    "errors": 0,
    "assists": 0,
    "games_fielded": 10,
    "error_prone": false
  },
  "games_count": 10,
  "latest_game_date": "2026-10-03T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": true,
  "pitcher_id": "592094",
  "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": 87.37954533354257,
    "release_spin_rate": 2393.0678992520393,
    "spin_axis": null,
    "horizontal_break_inches": 0.0,
    "induced_vertical_break_inches": 0.0,
    "vertical_break_with_gravity_inches": null,
    "release_pos_x": null,
    "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": 87.37954533354257,
      "release_spin_rate": 2393.0678992520393,
      "spin_axis": null,
      "horizontal_break_inches": 0.0,
      "induced_vertical_break_inches": 0.0,
      "vertical_break_with_gravity_inches": null,
      "release_pos_x": null,
      "release_pos_z": null,
      "release_extension": 0.0,
      "arm_angle": 0.0,
      "whiff_percent": 0.0,
      "xwoba": 0.0,
      "hard_hit_percent": 0.0
    }
  ],
  "summary": {
    "release_speed": 87.3795,
    "release_spin_rate": 2393.0679,
    "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.1391,
    "horizontal_break_edge": 0.0,
    "induced_vertical_break_edge": 0.0,
    "extension_edge": 0.0,
    "velocity_edge": -0.9938,
    "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.503,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.6001,
    "prior_weight": 0.3999
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "592094",
  "report_date": "20261006",
  "season_year": 2026,
  "rows_used": 40,
  "reference_playing_time": 1.0,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 5.0,
        "ER": 2.0,
        "R": 2.0,
        "H": 2.0,
        "BB": 3.0,
        "SO": 1.0,
        "HR": 0.0,
        "BF": 20.0,
        "Pitches": 83.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.4,
        "R": 0.4,
        "H": 0.4,
        "BB": 0.6,
        "SO": 0.2,
        "HR": 0.0,
        "BF": 4.0,
        "Pitches": 16.6
      },
      "rates": {
        "ERA": 3.6,
        "WHIP": 1.0,
        "ER_per_IP": 0.4,
        "H_per_IP": 0.4,
        "BB_per_IP": 0.6,
        "SO_per_IP": 0.2,
        "HR_per_IP": 0.0
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 10.0,
        "ER": 5.0,
        "R": 5.0,
        "H": 6.0,
        "BB": 3.0,
        "SO": 5.0,
        "HR": 2.0,
        "BF": 39.0,
        "Pitches": 167.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.5,
        "R": 0.5,
        "H": 0.6,
        "BB": 0.3,
        "SO": 0.5,
        "HR": 0.2,
        "BF": 3.9,
        "Pitches": 16.7
      },
      "rates": {
        "ERA": 4.5,
        "WHIP": 0.9,
        "ER_per_IP": 0.5,
        "H_per_IP": 0.6,
        "BB_per_IP": 0.3,
        "SO_per_IP": 0.5,
        "HR_per_IP": 0.2
      }
    },
    "season": {
      "games": 40,
      "totals": {
        "IP": 36.1,
        "ER": 10.0,
        "R": 10.0,
        "H": 30.0,
        "BB": 11.0,
        "SO": 22.0,
        "HR": 5.0,
        "BF": 149.0,
        "Pitches": 610.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.25,
        "R": 0.25,
        "H": 0.75,
        "BB": 0.275,
        "SO": 0.55,
        "HR": 0.125,
        "BF": 3.725,
        "Pitches": 15.25
      },
      "rates": {
        "ERA": 2.4771,
        "WHIP": 1.1284,
        "ER_per_IP": 0.27523,
        "H_per_IP": 0.82569,
        "BB_per_IP": 0.30275,
        "SO_per_IP": 0.6055,
        "HR_per_IP": 0.13761
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 1.0,
    "predicted_ER": 0.451,
    "predicted_H": 0.727,
    "predicted_BB": 0.414,
    "predicted_SO": 0.605,
    "predicted_HR": 0.118,
    "predicted_ERA": 4.061,
    "predicted_WHIP": 1.1404
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.519,
  "form_weight": 0.481,
  "form_reliability": 0.6001,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 7.503,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.6001,
    "prior_weight": 0.3999
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 1.0,
      "form": 1.0,
      "final": 1.0,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 0.0,
      "form": 0.451,
      "final": 0.217,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 1.0,
      "form": 0.727,
      "final": 0.8687,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 0.0,
      "form": 0.414,
      "final": 0.1992,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 0.0,
      "form": 0.605,
      "final": 0.291,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 0.0,
      "form": 0.118,
      "final": 0.0568,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 4.061,
      "final": 4.061,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 1.1404,
      "final": 1.1404,
      "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
PitcherMason Miller
RoleCloser
Projection Sourceall_players_stats_recent_season_blend
Savant Quality Score1.4216
ESPN Rank-
Movement AvailableFalse
Primary Pitch-
Movement Score-
Avg Velo-
Avg Spin-
HB Inches-
IVB Inches-
Release Extension-
Pre IP1.1000
Pre ER0
Pre H1
Pre BB0
Pre SO0
Season ERA1.8578
Season WHIP0.9358
Role Avg IP1.0690
Recent Avg IP1.1330
Last Start IP0
Team Form Snapshot
{
  "team": {
    "team": "SD",
    "games": 162,
    "wins": 91,
    "losses": 71,
    "win_pct": 0.5617,
    "runs_scored": 722.0,
    "runs_allowed": 681.0,
    "run_differential": 41.0,
    "run_differential_per_game": 0.2531,
    "avg_runs_scored": 4.4568,
    "avg_runs_allowed": 4.2037,
    "offense_index": 0.9928,
    "defense_index": 1.0679,
    "current_streak": "W2",
    "recent": {
      "games": 10,
      "wins": 8,
      "losses": 2,
      "win_pct": 0.8,
      "avg_runs_scored": 6.3,
      "avg_runs_allowed": 4.5,
      "run_differential": 18.0
    },
    "available": true,
    "quality_score": 0.1885
  },
  "opponent": {
    "team": "MIL",
    "games": 162,
    "wins": 103,
    "losses": 59,
    "win_pct": 0.6358,
    "runs_scored": 832.0,
    "runs_allowed": 618.0,
    "run_differential": 214.0,
    "run_differential_per_game": 1.321,
    "avg_runs_scored": 5.1358,
    "avg_runs_allowed": 3.8148,
    "offense_index": 1.1441,
    "defense_index": 1.1767,
    "current_streak": "W5",
    "recent": {
      "games": 10,
      "wins": 8,
      "losses": 2,
      "win_pct": 0.8,
      "avg_runs_scored": 4.4,
      "avg_runs_allowed": 3.0,
      "run_differential": 14.0
    },
    "available": true,
    "quality_score": 0.3823
  },
  "method": "team_form_snapshot",
  "role": "pitcher",
  "edges": {
    "quality_edge": -0.1938,
    "offense_edge": -0.0072,
    "opponent_offense_edge": 0.1441,
    "defense_strength": 0.0679,
    "opponent_defense_weakness": -0.1767,
    "recent_win_pct_edge": 0.0
  },
  "player_factors": {
    "ip": 0.9885,
    "run_prevention": 1.026,
    "strikeout": 0.9827
  },
  "savant_pitcher_quality_adjustment": {
    "applied": true,
    "pitcher_id": "695243",
    "profile": {
      "available": true,
      "pitcher_id": "695243",
      "player_name": "",
      "source": "all_players_stats.csv embedded Savant pitcher features",
      "source_url": null,
      "metrics": {
        "pa": 245.0,
        "k_percent": 47.4,
        "bb_percent": 9.6,
        "woba": 0.208,
        "xwoba": 0.201,
        "sweet_spot_percent": 31.3,
        "barrel_batted_rate": 7.0,
        "hard_hit_percent": 28.7,
        "avg_best_speed": 75.8134,
        "avg_hyper_speed": 92.7864,
        "whiff_percent": 45.3,
        "swing_percent": 47.3
      },
      "league_medians": {
        "pa": 134.0,
        "k_percent": 22.1,
        "bb_percent": 9.2,
        "woba": 0.315,
        "xwoba": 0.312,
        "sweet_spot_percent": 33.3,
        "barrel_batted_rate": 7.2,
        "hard_hit_percent": 37.9,
        "avg_best_speed": 77.6432,
        "avg_hyper_speed": 93.9005,
        "whiff_percent": 25.2,
        "swing_percent": 47.4
      },
      "components": {
        "contact_quality": 1.6353,
        "command_and_miss": 1.98,
        "regression_edge": 0.2,
        "xwoba_edge": 2.5,
        "barrel_edge": 0.0444,
        "hard_hit_edge": 1.3143,
        "whiff_edge": 2.5,
        "bb_edge": -0.1,
        "pitch_design_score": 0.0
      },
      "quality_score": 1.4216,
      "sample_weight": 0.98,
      "run_prevention_factor": 0.8792,
      "strikeout_factor": 1.16,
      "walk_factor": 1.0078,
      "homer_factor": 0.8715,
      "woba_minus_xwoba": 0.007,
      "regression_flag": "neutral",
      "espn_rank": {
        "available": false,
        "player_id": "695243",
        "espn_rank": null
      }
    },
    "adjusted_fields": {
      "predicted_ER": {
        "original": 0.0,
        "factor": 0.8816,
        "adjusted": 0
      },
      "predicted_H": {
        "original": 1.0,
        "factor": 0.8816,
        "adjusted": 1
      },
      "predicted_BB": {
        "original": 1.0,
        "factor": 1.0076,
        "adjusted": 1
      },
      "predicted_HR": {
        "original": 0.0,
        "factor": 0.8741,
        "adjusted": 0
      },
      "predicted_SO": {
        "original": 3.0,
        "factor": 1.1568,
        "adjusted": 3
      }
    }
  },
  "club_form": "game.<side>_team.predicted_performance.team_form"
}
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": 7,
    "H": 9,
    "BB": 8,
    "SO": 20,
    "HR": 1,
    "ERA": 5.5588235294117645,
    "WHIP": 1.5,
    "K9": 15.88235294117647,
    "HR9": 0.7941176470588235,
    "games_pitched": 10,
    "quality_starts": 0,
    "dominant_form": false,
    "struggling_form": false
  },
  "fielding": {
    "errors": 0,
    "assists": 0,
    "games_fielded": 10,
    "error_prone": false
  },
  "games_count": 10,
  "latest_game_date": "2026-10-04T00:00:00"
}
Savant Pitch Movement Profile
{
  "available": false,
  "pitcher_id": "695243",
  "reason": "pitcher_movement_profile_has_no_pitches"
}
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.005,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.7501,
    "prior_weight": 0.2499
  },
  "role": "pitcher",
  "pitcher_usage_role": "starter",
  "player_id": "695243",
  "report_date": "20261006",
  "season_year": 2026,
  "rows_used": 68,
  "reference_playing_time": 0.333,
  "windows": {
    "last_5": {
      "games": 5,
      "totals": {
        "IP": 5.2,
        "ER": 6.0,
        "R": 6.0,
        "H": 6.0,
        "BB": 6.0,
        "SO": 10.0,
        "HR": 0.0,
        "BF": 30.0,
        "Pitches": 118.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 1.2,
        "R": 1.2,
        "H": 1.2,
        "BB": 1.2,
        "SO": 2.0,
        "HR": 0.0,
        "BF": 6.0,
        "Pitches": 23.6
      },
      "rates": {
        "ERA": 9.5294,
        "WHIP": 2.1176,
        "ER_per_IP": 1.05882,
        "H_per_IP": 1.05882,
        "BB_per_IP": 1.05882,
        "SO_per_IP": 1.76471,
        "HR_per_IP": 0.0
      }
    },
    "last_10": {
      "games": 10,
      "totals": {
        "IP": 11.1,
        "ER": 7.0,
        "R": 7.0,
        "H": 9.0,
        "BB": 8.0,
        "SO": 20.0,
        "HR": 1.0,
        "BF": 52.0,
        "Pitches": 209.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.7,
        "R": 0.7,
        "H": 0.9,
        "BB": 0.8,
        "SO": 2.0,
        "HR": 0.1,
        "BF": 5.2,
        "Pitches": 20.9
      },
      "rates": {
        "ERA": 5.5588,
        "WHIP": 1.5,
        "ER_per_IP": 0.61765,
        "H_per_IP": 0.79412,
        "BB_per_IP": 0.70588,
        "SO_per_IP": 1.76471,
        "HR_per_IP": 0.08824
      }
    },
    "season": {
      "games": 68,
      "totals": {
        "IP": 72.2,
        "ER": 15.0,
        "R": 18.0,
        "H": 39.0,
        "BB": 29.0,
        "SO": 133.0,
        "HR": 3.0,
        "BF": 285.0,
        "Pitches": 1208.0
      },
      "per_game": {
        "IP": 1.0,
        "ER": 0.2206,
        "R": 0.2647,
        "H": 0.5735,
        "BB": 0.4265,
        "SO": 1.9559,
        "HR": 0.0441,
        "BF": 4.1912,
        "Pitches": 17.7647
      },
      "rates": {
        "ERA": 1.8578,
        "WHIP": 0.9358,
        "ER_per_IP": 0.20642,
        "H_per_IP": 0.5367,
        "BB_per_IP": 0.39908,
        "SO_per_IP": 1.83028,
        "HR_per_IP": 0.04128
      }
    }
  },
  "blend_segments": {},
  "weighted_prediction": {
    "predicted_IP": 1.0,
    "predicted_ER": 0.566,
    "predicted_H": 0.744,
    "predicted_BB": 0.581,
    "predicted_SO": 1.306,
    "predicted_HR": 0.055,
    "predicted_ERA": 6.1085,
    "predicted_WHIP": 1.5901
  }
}
Model Form Blend Trace
{
  "requested_model_weight": 0.35,
  "requested_form_weight": 0.65,
  "model_weight": 0.4556,
  "form_weight": 0.5444,
  "form_reliability": 0.7501,
  "adaptive_parameters": {
    "player.model_weight": 0.5,
    "player.form_reliability_floor": 0.35
  },
  "form_shrinkage": {
    "method": "bayesian_league_prior",
    "sample_size": 15.005,
    "sample_unit": "starter_equivalent_games",
    "prior_size": 5.0,
    "data_weight": 0.7501,
    "prior_weight": 0.2499
  },
  "applied_metrics": {
    "predicted_IP": {
      "model": 0.1,
      "form": 1.0,
      "final": 0.2,
      "source": "model_form_blend"
    },
    "predicted_ER": {
      "model": 1.0,
      "form": 0.566,
      "final": 0.7637,
      "source": "model_form_blend"
    },
    "predicted_H": {
      "model": 2.0,
      "form": 0.744,
      "final": 1.3162,
      "source": "model_form_blend"
    },
    "predicted_BB": {
      "model": 0.0,
      "form": 0.581,
      "final": 0.3163,
      "source": "model_form_blend"
    },
    "predicted_SO": {
      "model": 1.0,
      "form": 1.306,
      "final": 1.1666,
      "source": "model_form_blend"
    },
    "predicted_HR": {
      "model": 0.0,
      "form": 0.055,
      "final": 0.0299,
      "source": "model_form_blend"
    },
    "predicted_ERA": {
      "model": null,
      "form": 6.1085,
      "final": 6.1085,
      "source": "form_only"
    },
    "predicted_WHIP": {
      "model": null,
      "form": 1.5901,
      "final": 1.5901,
      "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."
}
Fernando Tatis Jr. (665487) · BATTER · RF · Team SD
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 674
All-history rows before 20261006: 674
System season_avg: 0.2860
Data season_avg (2026 season-to-date): 0.2914
Diff (system - data): -0.0054
System opponent_avg: 0.2410

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1990.0000.000Hitting_2B0.2140.000-0.2140.000
predicted_3B0.0190.0000.000Hitting_3B0.0210.000-0.0210.000
predicted_AB5.2705.0005.000Hitting_AB4.0475.0000.9530.000
predicted_AVG0.2500.2000.200Hitting_AVG0.2910.000-0.0910.200
predicted_BB0.3910.0000.000Hitting_BB0.4090.000-0.4090.000
predicted_CS-0.0000.000BaseRunning_CS0.0850.000-0.0850.000
predicted_H1.3201.0001.000Hitting_H1.1800.000-0.1801.000
predicted_HR0.2400.0000.000Hitting_HR0.1650.000-0.1650.000
predicted_OBP0.3250.2000.200Hitting_OBP0.3600.000-0.1600.200
predicted_R0.6151.0001.000Hitting_R0.6361.0000.3640.000
predicted_RBI0.5501.0001.000Hitting_RBI0.5500.0000.4501.000
predicted_SLG0.4460.2000.200Hitting_SLG0.4770.000-0.2770.200
predicted_SO0.8391.0001.000Hitting_SO0.8461.0000.1540.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics10
Boosted Metrics3
Deboosted Metrics7
Better Metrics2
Worse Metrics8
Biggest Boostpredicted_RBI: 0.5500 -> 1.0000 (boost 0.4500, better)
Biggest Deboostpredicted_BB: 0.3910 -> 0.0000 (deboost -0.3910, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend20202-predicted_AB: 5.2700 -> 4.7252 (deboost -0.5448, 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_OBP: 0.3249 -> 0.3041 (deboost -0.0208, 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.8626 -> 1.0000 (boost 0.1374, worse)predicted_AB: 4.7252 -> 4.0000 (deboost -0.7252, worse)AB rounded to 4 (raw=5.27), rates preserved: AVG=0.226 HR/AB=0.039
6bvp_blend00000--Sample-size BvP blend (BvP AB=29.0, weight=0.197, BvP AVG=0.241)
7consistency_constraints11010predicted_R: 0.6267 -> 1.0000 (boost 0.3733, better)-Enforced H<=AB, HR<=H, safety nets, derived R
8hitter_rate_engine54150predicted_RBI: 0.0000 -> 0.4883 (boost 0.4883, better)predicted_SO: 1.0000 -> 0.8933 (deboost -0.1067, 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_allocation86253predicted_2B: 0.1552 -> 1.0000 (boost 0.8448, better)predicted_HR: 0.1465 -> 0.0000 (deboost -0.1465, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
10embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
11kpi_run_environment30303-predicted_SLG: 0.4080 -> 0.3940 (deboost -0.0140, worse)KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup
12play_by_play_realization31212predicted_AB: 4.0000 -> 5.0000 (boost 1.0000, better)predicted_2B: 1.0000 -> 0.0000 (deboost -1.0000, worse)Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
13simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
14current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "665487",
  "player_name": "Fernando Tatis Jr.",
  "position": "RF",
  "team": "SD",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.199,
        "predicted_3B": 0.019,
        "predicted_AB": 5.27,
        "predicted_AVG": 0.25,
        "predicted_BB": 0.391,
        "predicted_H": 1.32,
        "predicted_HR": 0.24,
        "predicted_OBP": 0.325,
        "predicted_R": 0.615,
        "predicted_RBI": 0.55,
        "predicted_SLG": 0.446,
        "predicted_SO": 0.839
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "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.1828,
        "predicted_3B": 0.0155,
        "predicted_AB": 4.7252,
        "predicted_AVG": 0.2543,
        "predicted_BB": 0.3818,
        "predicted_H": 1.1999,
        "predicted_HBP": 0.027,
        "predicted_HR": 0.2115,
        "predicted_OBP": 0.3249,
        "predicted_R": 0.6514,
        "predicted_RBI": 0.5154,
        "predicted_SLG": 0.4416,
        "predicted_SO": 0.8574
      },
      "changed_metrics": [
        {
          "metric": "predicted_AB",
          "before": 5.27,
          "after": 4.7252,
          "delta": -0.5448,
          "percent_delta": -0.1034,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.32,
          "after": 1.1999,
          "delta": -0.1201,
          "percent_delta": -0.091,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 2,
        "boosted_metrics": 0,
        "deboosted_metrics": 2,
        "better_metrics": 0,
        "worse_metrics": 2,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 5.27,
          "after": 4.7252,
          "delta": -0.5448,
          "percent_delta": -0.1034,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      },
      "weights": {
        "xgboost_raw": 0.55,
        "weighted_form": 0.45,
        "form_windows": {
          "last_5": 0.2,
          "last_10": 0.2,
          "season": 0.6
        }
      },
      "window_games": {
        "last_5": 5,
        "last_10": 10,
        "season": 161
      }
    },
    {
      "index": 3,
      "step": "team_form_snapshot",
      "description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
      "stats": {
        "predicted_2B": 0.1828,
        "predicted_3B": 0.0155,
        "predicted_AB": 4.7252,
        "predicted_AVG": 0.2482,
        "predicted_BB": 0.3795,
        "predicted_H": 1.1728,
        "predicted_HBP": 0.027,
        "predicted_HR": 0.2055,
        "predicted_OBP": 0.3041,
        "predicted_R": 0.6267,
        "predicted_RBI": 0.4959,
        "predicted_SLG": 0.4239,
        "predicted_SO": 0.8626
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.2543,
          "after": 0.2482,
          "delta": -0.0061,
          "percent_delta": -0.024,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3249,
          "after": 0.3041,
          "delta": -0.0208,
          "percent_delta": -0.064,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4416,
          "after": 0.4239,
          "delta": -0.0177,
          "percent_delta": -0.0401,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.3249,
          "after": 0.3041,
          "delta": -0.0208,
          "percent_delta": -0.064,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 4 (raw=5.27), rates preserved: AVG=0.226 HR/AB=0.039",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1828,
          "after": 0.0,
          "delta": -0.1828,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AB",
          "before": 4.7252,
          "after": 4.0,
          "delta": -0.7252,
          "percent_delta": -0.1535,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3795,
          "after": 0.0,
          "delta": -0.3795,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.1728,
          "after": 1.0,
          "delta": -0.1728,
          "percent_delta": -0.1473,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "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.4959,
          "after": 0.0,
          "delta": -0.4959,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.8626,
          "after": 1.0,
          "delta": 0.1374,
          "percent_delta": 0.1593,
          "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.8626,
          "after": 1.0,
          "delta": 0.1374,
          "percent_delta": 0.1593,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 4.7252,
          "after": 4.0,
          "delta": -0.7252,
          "percent_delta": -0.1535,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 6,
      "step": "bvp_blend",
      "description": "Sample-size BvP blend (BvP AB=29.0, weight=0.197, BvP AVG=0.241)",
      "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": [],
      "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.8034,
        "bvp": 0.1966
      }
    },
    {
      "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_R",
          "before": 0.6267,
          "after": 1.0,
          "delta": 0.3733,
          "percent_delta": 0.5957,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 1,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_R",
          "before": 0.6267,
          "after": 1.0,
          "delta": 0.3733,
          "percent_delta": 0.5957,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "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.1552,
        "predicted_3B": 0.0115,
        "predicted_BB": 0.3953,
        "predicted_H": 1.0289,
        "predicted_HR": 0.1465,
        "predicted_RBI": 0.4883,
        "predicted_SO": 0.8933
      },
      "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_BB",
          "before": 0.0,
          "after": 0.3953,
          "delta": 0.3953,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1465,
          "delta": 0.1465,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.4883,
          "delta": 0.4883,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.8933,
          "delta": -0.1067,
          "percent_delta": -0.1067,
          "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.4883,
          "delta": 0.4883,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.8933,
          "delta": -0.1067,
          "percent_delta": -0.1067,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      }
    },
    {
      "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_AVG": 0.255,
        "predicted_BB": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.327,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.408,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1552,
          "after": 1.0,
          "delta": 0.8448,
          "percent_delta": 5.4433,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2482,
          "after": 0.255,
          "delta": 0.0068,
          "percent_delta": 0.0274,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3953,
          "after": 1.0,
          "delta": 0.6047,
          "percent_delta": 1.5297,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "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_OBP",
          "before": 0.3041,
          "after": 0.327,
          "delta": 0.0229,
          "percent_delta": 0.0753,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4883,
          "after": 1.0,
          "delta": 0.5117,
          "percent_delta": 1.0479,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4239,
          "after": 0.408,
          "delta": -0.0159,
          "percent_delta": -0.0375,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.8933,
          "after": 1.0,
          "delta": 0.1067,
          "percent_delta": 0.1194,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 8,
        "boosted_metrics": 6,
        "deboosted_metrics": 2,
        "better_metrics": 5,
        "worse_metrics": 3,
        "biggest_boost": {
          "metric": "predicted_2B",
          "before": 0.1552,
          "after": 1.0,
          "delta": 0.8448,
          "percent_delta": 5.4433,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_HR",
          "before": 0.1465,
          "after": 0.0,
          "delta": -0.1465,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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": 1.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.255,
        "predicted_BB": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.327,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.408,
        "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
      }
    },
    {
      "index": 11,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup",
      "stats": {
        "predicted_2B": 1.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.317,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.394,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.255,
          "after": 0.246,
          "delta": -0.009,
          "percent_delta": -0.0353,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.327,
          "after": 0.317,
          "delta": -0.01,
          "percent_delta": -0.0306,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.408,
          "after": 0.394,
          "delta": -0.014,
          "percent_delta": -0.0343,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.408,
          "after": 0.394,
          "delta": -0.014,
          "percent_delta": -0.0343,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 12,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 5.0,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SF": 0.0,
        "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_AB",
          "before": 4.0,
          "after": 5.0,
          "delta": 1.0,
          "percent_delta": 0.25,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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_2B",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 13,
      "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_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SF": 0.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
      },
      "reference_only": true
    },
    {
      "index": 14,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 5.0,
        "predicted_AVG": 0.246,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.317,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_RF": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.394,
        "predicted_SO": 1.0,
        "predicted_TB": 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
      }
    }
  ],
  "total_change": {
    "from_step": "xgboost_raw",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_2B",
        "before": 0.199,
        "after": 0.0,
        "delta": -0.199,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AB",
        "before": 5.27,
        "after": 5.0,
        "delta": -0.27,
        "percent_delta": -0.0512,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.391,
        "after": 0.0,
        "delta": -0.391,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 1.32,
        "after": 1.0,
        "delta": -0.32,
        "percent_delta": -0.2424,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.24,
        "after": 0.0,
        "delta": -0.24,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.325,
        "after": 0.317,
        "delta": -0.008,
        "percent_delta": -0.0246,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.615,
        "after": 1.0,
        "delta": 0.385,
        "percent_delta": 0.626,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.55,
        "after": 1.0,
        "delta": 0.45,
        "percent_delta": 0.8182,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.446,
        "after": 0.394,
        "delta": -0.052,
        "percent_delta": -0.1166,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.839,
        "after": 1.0,
        "delta": 0.161,
        "percent_delta": 0.1919,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 10,
      "boosted_metrics": 3,
      "deboosted_metrics": 7,
      "better_metrics": 2,
      "worse_metrics": 8,
      "biggest_boost": {
        "metric": "predicted_RBI",
        "before": 0.55,
        "after": 1.0,
        "delta": 0.45,
        "percent_delta": 0.8182,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_BB",
        "before": 0.391,
        "after": 0.0,
        "delta": -0.391,
        "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.199-
predicted_3B0.019-
predicted_AB5.270-
predicted_AVG0.250-
predicted_BB0.391-
predicted_H1.320-
predicted_HR0.240-
predicted_OBP0.325-
predicted_R0.615-
predicted_RBI0.550-
predicted_SLG0.446-
predicted_SO0.839-
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.183-0.016
predicted_3B0.015-0.003
predicted_AB4.725-0.545
predicted_AVG0.2540.004
predicted_BB0.382-0.009
predicted_H1.200-0.120
predicted_HBP0.027-
predicted_HR0.211-0.028
predicted_OBP0.325-0.000
predicted_R0.6510.036
predicted_RBI0.515-0.035
predicted_SLG0.442-0.004
predicted_SO0.8570.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.1830.000
predicted_3B0.0150.000
predicted_AB4.7250.000
predicted_AVG0.248-0.006
predicted_BB0.380-0.002
predicted_H1.173-0.027
predicted_HBP0.0270.000
predicted_HR0.205-0.006
predicted_OBP0.304-0.021
predicted_R0.627-0.025
predicted_RBI0.496-0.019
predicted_SLG0.424-0.018
predicted_SO0.8630.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.27), rates preserved: AVG=0.226 HR/AB=0.039

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=29.0, weight=0.197, BvP AVG=0.241)

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.1550.155
3B0.0110.011
BB0.3950.395
H1.0290.029
HR0.1460.146
RBI0.4880.488
SO0.893-0.107
9. lineup_integer_allocation

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

MetricValueDelta vs Prev Step
2B1.0000.845
3B0.000-0.011
AB4.0000.000
AVG0.255-
BB1.0000.605
H1.000-0.029
HR0.000-0.146
OBP0.327-
R1.0000.000
RBI1.0000.512
SLG0.408-
SO1.0000.107
10. embedded_savant_player_context

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

MetricValueDelta vs Prev Step
predicted_2B1.0000.817
predicted_3B0.000-0.015
predicted_AB4.000-0.725
predicted_AVG0.2550.007
predicted_BB1.0000.621
predicted_H1.000-0.173
predicted_HR0.000-0.205
predicted_OBP0.3270.023
predicted_R1.0000.373
predicted_RBI1.0000.504
predicted_SLG0.408-0.016
predicted_SO1.0000.137
11. kpi_run_environment

KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B1.0000.000
3B0.0000.000
AB4.0000.000
AVG0.246-0.009
BB1.0000.000
H1.0000.000
HR0.0000.000
OBP0.317-0.010
R1.0000.000
RBI1.0000.000
SLG0.394-0.014
SO1.0000.000
12. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

MetricValueDelta vs Prev Step
2B0.000-1.000
3B0.0000.000
AB5.0001.000
BB0.000-1.000
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA5.000-
R1.0000.000
RBI1.0000.000
SF0.0000.000
SO1.0000.000
13. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB5.0000.000
BB0.0000.000
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA5.0000.000
R1.0000.000
RBI1.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: 161
Reference playing time: 5.270
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.0003.0000.0000.0001.0002.0005.0002.0005.0000.14290.21740.28570.14290.04760.09520.09520.2381
last_100.2010-40.00012.0002.0000.0002.0004.0007.0003.0009.0000.30000.34880.50000.30000.05000.10000.07500.2250
season0.60161-643.000184.00032.0003.00026.00083.00099.00063.000135.0000.28620.35380.46660.28620.04040.12910.09800.2099
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1620
predicted_3B0.0110
predicted_AB4.0270
predicted_AVG0.2598
predicted_BB0.3700
predicted_H1.0460
predicted_HBP0.0270
predicted_HR0.1750
predicted_OBP0.3247
predicted_R0.6980
predicted_RBI0.4710
predicted_SLG0.4359
predicted_SO0.8810
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.19900.16200.1828model_form_blend
predicted_3B0.01900.01100.0155model_form_blend
predicted_AB5.27004.02704.7252model_form_blend
predicted_AVG0.25000.25980.2543model_form_blend
predicted_BB0.39100.37000.3818model_form_blend
predicted_H1.32001.04601.1999model_form_blend
predicted_HBP-0.02700.0270form_only
predicted_HR0.24000.17500.2115model_form_blend
predicted_OBP0.32500.32470.3249model_form_blend
predicted_R0.61500.69800.6514model_form_blend
predicted_RBI0.55000.47100.5154model_form_blend
predicted_SLG0.44600.43590.4416model_form_blend
predicted_SO0.83900.88100.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 date674
Season rows before report date674
Report year2026
Profile rows used161
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
R1
RBI1
BB0
SO1
SF0
HBP0

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.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R1
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
allPositionsPlayedRF
gameID20261004_SD@MIL
game_typefull
mlbID665487
playerID665487
playerNameFernando Tatis Jr.
posRF
startedTrue
startingPositionRF
teamSD
teamID23
game_date2026-10-04
sl_k_percent18.5
sl_bb_percent9.1
sl_woba0.358
sl_xwoba0.379
sl_xba0.296
sl_xslg0.5
sl_sweet_spot_percent32.2
sl_barrel_batted_rate12.7
sl_hard_hit_percent53.9
sl_exit_velocity_avg92.9
sl_launch_angle_avg5.3
sl_whiff_percent25.9
sl_swing_percent46.1
Jackson Merrill (701538) · BATTER · CF · Team SD
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 644
All-history rows before 20261006: 644
System season_avg: 0.2560
Data season_avg (2026 season-to-date): 0.2646
Diff (system - data): -0.0086
System opponent_avg: 0.0000

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1611.0001.000Hitting_2B0.1690.0000.8311.000
predicted_3B0.0310.0000.000Hitting_3B0.0360.000-0.0360.000
predicted_AB5.4004.0004.000Hitting_AB4.0024.000-0.0020.000
predicted_AVG0.2600.2500.250Hitting_AVG0.2650.250-0.0150.000
predicted_BB0.2610.0000.000Hitting_BB0.2760.000-0.2760.000
predicted_CS-0.0000.000BaseRunning_CS0.0260.000-0.0260.000
predicted_H1.4101.0001.000Hitting_H1.0591.000-0.0590.000
predicted_HR0.1300.0000.000Hitting_HR0.1750.000-0.1750.000
predicted_OBP0.3100.2500.250Hitting_OBP0.3140.250-0.0640.000
predicted_R0.5400.0000.000Hitting_R0.5780.000-0.5780.000
predicted_RBI0.6401.0001.000Hitting_RBI0.6040.0000.3961.000
predicted_SLG0.4080.5000.500Hitting_SLG0.4560.2500.0440.250
predicted_SO1.0252.0002.000Hitting_SO1.0141.0000.9861.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_SO: 1.0250 -> 2.0000 (boost 0.9750, worse)
Biggest Deboostpredicted_AB: 5.4000 -> 4.0000 (deboost -1.4000, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend62424predicted_AVG: 0.2600 -> 0.2666 (boost 0.0066, better)predicted_AB: 5.4000 -> 4.7436 (deboost -0.6564, 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.4005 -> 0.3722 (deboost -0.0283, 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_AB: 4.7436 -> 4.0000 (deboost -0.7436, worse)AB rounded to 4 (raw=5.40), rates preserved: AVG=0.232 HR/AB=0.021
6bvp_blend00000--Sample-size BvP blend (BvP AB=10.0, weight=0.100, BvP AVG=0.000)
7consistency_constraints11010predicted_R: 0.5288 -> 1.0000 (boost 0.4712, better)-Enforced H<=AB, HR<=H, safety nets, derived R
8hitter_rate_engine65142predicted_RBI: 0.0000 -> 0.5120 (boost 0.5120, better)predicted_H: 1.0000 -> 0.9246 (deboost -0.0754, 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_allocation93645predicted_RBI: 0.5120 -> 1.0000 (boost 0.4880, better)predicted_BB: 0.3160 -> 0.0000 (deboost -0.3160, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
10embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
11kpi_run_environment30303-predicted_SLG: 0.3880 -> 0.3740 (deboost -0.0140, worse)KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup
12play_by_play_realization32112predicted_2B: 0.0000 -> 1.0000 (boost 1.0000, better)predicted_R: 1.0000 -> 0.0000 (deboost -1.0000, worse)Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
13simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
14current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "701538",
  "player_name": "Jackson Merrill",
  "position": "CF",
  "team": "SD",
  "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.031,
        "predicted_AB": 5.4,
        "predicted_AVG": 0.26,
        "predicted_BB": 0.261,
        "predicted_H": 1.41,
        "predicted_HR": 0.13,
        "predicted_OBP": 0.31,
        "predicted_R": 0.54,
        "predicted_RBI": 0.64,
        "predicted_SLG": 0.408,
        "predicted_SO": 1.025
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "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.0253,
        "predicted_AB": 4.7436,
        "predicted_AVG": 0.2666,
        "predicted_BB": 0.2671,
        "predicted_H": 1.2621,
        "predicted_HBP": 0.012,
        "predicted_HR": 0.116,
        "predicted_OBP": 0.316,
        "predicted_R": 0.5496,
        "predicted_RBI": 0.5827,
        "predicted_SLG": 0.4005,
        "predicted_SO": 1.0587
      },
      "changed_metrics": [
        {
          "metric": "predicted_AB",
          "before": 5.4,
          "after": 4.7436,
          "delta": -0.6564,
          "percent_delta": -0.1216,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.26,
          "after": 0.2666,
          "delta": 0.0066,
          "percent_delta": 0.0254,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.41,
          "after": 1.2621,
          "delta": -0.1479,
          "percent_delta": -0.1049,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.31,
          "after": 0.316,
          "delta": 0.006,
          "percent_delta": 0.0194,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.64,
          "after": 0.5827,
          "delta": -0.0573,
          "percent_delta": -0.0895,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.408,
          "after": 0.4005,
          "delta": -0.0075,
          "percent_delta": -0.0184,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 6,
        "boosted_metrics": 2,
        "deboosted_metrics": 4,
        "better_metrics": 2,
        "worse_metrics": 4,
        "biggest_boost": {
          "metric": "predicted_AVG",
          "before": 0.26,
          "after": 0.2666,
          "delta": 0.0066,
          "percent_delta": 0.0254,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 5.4,
          "after": 4.7436,
          "delta": -0.6564,
          "percent_delta": -0.1216,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      },
      "weights": {
        "xgboost_raw": 0.55,
        "weighted_form": 0.45,
        "form_windows": {
          "last_5": 0.2,
          "last_10": 0.2,
          "season": 0.6
        }
      },
      "window_games": {
        "last_5": 5,
        "last_10": 10,
        "season": 161
      }
    },
    {
      "index": 3,
      "step": "team_form_snapshot",
      "description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
      "stats": {
        "predicted_2B": 0.1431,
        "predicted_3B": 0.0253,
        "predicted_AB": 4.7436,
        "predicted_AVG": 0.2601,
        "predicted_BB": 0.2655,
        "predicted_H": 1.2336,
        "predicted_HBP": 0.012,
        "predicted_HR": 0.1127,
        "predicted_OBP": 0.2993,
        "predicted_R": 0.5288,
        "predicted_RBI": 0.5606,
        "predicted_SLG": 0.3722,
        "predicted_SO": 1.0652
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.2666,
          "after": 0.2601,
          "delta": -0.0065,
          "percent_delta": -0.0244,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.316,
          "after": 0.2993,
          "delta": -0.0167,
          "percent_delta": -0.0528,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4005,
          "after": 0.3722,
          "delta": -0.0283,
          "percent_delta": -0.0707,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.4005,
          "after": 0.3722,
          "delta": -0.0283,
          "percent_delta": -0.0707,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 4 (raw=5.40), rates preserved: AVG=0.232 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": 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_AB",
          "before": 4.7436,
          "after": 4.0,
          "delta": -0.7436,
          "percent_delta": -0.1568,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.2655,
          "after": 0.0,
          "delta": -0.2655,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.2336,
          "after": 1.0,
          "delta": -0.2336,
          "percent_delta": -0.1894,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1127,
          "after": 0.0,
          "delta": -0.1127,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5606,
          "after": 0.0,
          "delta": -0.5606,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0652,
          "after": 1.0,
          "delta": -0.0652,
          "percent_delta": -0.0612,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 7,
        "boosted_metrics": 0,
        "deboosted_metrics": 7,
        "better_metrics": 1,
        "worse_metrics": 6,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 4.7436,
          "after": 4.0,
          "delta": -0.7436,
          "percent_delta": -0.1568,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 6,
      "step": "bvp_blend",
      "description": "Sample-size BvP blend (BvP AB=10.0, weight=0.100, 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": 0.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": {
        "model_expectation": 0.9,
        "bvp": 0.1
      }
    },
    {
      "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_R",
          "before": 0.5288,
          "after": 1.0,
          "delta": 0.4712,
          "percent_delta": 0.8911,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 1,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_R",
          "before": 0.5288,
          "after": 1.0,
          "delta": 0.4712,
          "percent_delta": 0.8911,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "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.1481,
        "predicted_3B": 0.0162,
        "predicted_BB": 0.316,
        "predicted_H": 0.9246,
        "predicted_HR": 0.1469,
        "predicted_RBI": 0.512,
        "predicted_SO": 1.1113
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1481,
          "delta": 0.1481,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.316,
          "delta": 0.316,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.9246,
          "delta": -0.0754,
          "percent_delta": -0.0754,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1469,
          "delta": 0.1469,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.512,
          "delta": 0.512,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 1.1113,
          "delta": 0.1113,
          "percent_delta": 0.1113,
          "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.512,
          "delta": 0.512,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.9246,
          "delta": -0.0754,
          "percent_delta": -0.0754,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_AVG": 0.232,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.294,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.388,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1481,
          "after": 0.0,
          "delta": -0.1481,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2601,
          "after": 0.232,
          "delta": -0.0281,
          "percent_delta": -0.108,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.316,
          "after": 0.0,
          "delta": -0.316,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.9246,
          "after": 1.0,
          "delta": 0.0754,
          "percent_delta": 0.0815,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1469,
          "after": 0.0,
          "delta": -0.1469,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2993,
          "after": 0.294,
          "delta": -0.0053,
          "percent_delta": -0.0177,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.512,
          "after": 1.0,
          "delta": 0.488,
          "percent_delta": 0.9531,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3722,
          "after": 0.388,
          "delta": 0.0158,
          "percent_delta": 0.0425,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.1113,
          "after": 1.0,
          "delta": -0.1113,
          "percent_delta": -0.1002,
          "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_RBI",
          "before": 0.512,
          "after": 1.0,
          "delta": 0.488,
          "percent_delta": 0.9531,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.316,
          "after": 0.0,
          "delta": -0.316,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 10,
      "step": "embedded_savant_player_context",
      "description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.232,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.294,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.388,
        "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
      }
    },
    {
      "index": 11,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.224,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.285,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.374,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.232,
          "after": 0.224,
          "delta": -0.008,
          "percent_delta": -0.0345,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.294,
          "after": 0.285,
          "delta": -0.009,
          "percent_delta": -0.0306,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.388,
          "after": 0.374,
          "delta": -0.014,
          "percent_delta": -0.0361,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.388,
          "after": 0.374,
          "delta": -0.014,
          "percent_delta": -0.0361,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 12,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "stats": {
        "predicted_2B": 1.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_R": 0.0,
        "predicted_RBI": 1.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_R",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "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": 3,
        "boosted_metrics": 2,
        "deboosted_metrics": 1,
        "better_metrics": 1,
        "worse_metrics": 2,
        "biggest_boost": {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 1.0,
          "delta": 1.0,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_R",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 13,
      "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_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SF": 0.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
      },
      "reference_only": true
    },
    {
      "index": 14,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_2B": 1.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.224,
        "predicted_BB": 0.0,
        "predicted_CF": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.285,
        "predicted_R": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.374,
        "predicted_SO": 2.0,
        "predicted_TB": 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
      }
    }
  ],
  "total_change": {
    "from_step": "xgboost_raw",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_2B",
        "before": 0.161,
        "after": 1.0,
        "delta": 0.839,
        "percent_delta": 5.2112,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AB",
        "before": 5.4,
        "after": 4.0,
        "delta": -1.4,
        "percent_delta": -0.2593,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.26,
        "after": 0.224,
        "delta": -0.036,
        "percent_delta": -0.1385,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "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": 1.41,
        "after": 1.0,
        "delta": -0.41,
        "percent_delta": -0.2908,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.13,
        "after": 0.0,
        "delta": -0.13,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.31,
        "after": 0.285,
        "delta": -0.025,
        "percent_delta": -0.0806,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.54,
        "after": 0.0,
        "delta": -0.54,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.64,
        "after": 1.0,
        "delta": 0.36,
        "percent_delta": 0.5625,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.408,
        "after": 0.374,
        "delta": -0.034,
        "percent_delta": -0.0833,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 1.025,
        "after": 2.0,
        "delta": 0.975,
        "percent_delta": 0.9512,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 11,
      "boosted_metrics": 3,
      "deboosted_metrics": 8,
      "better_metrics": 2,
      "worse_metrics": 9,
      "biggest_boost": {
        "metric": "predicted_SO",
        "before": 1.025,
        "after": 2.0,
        "delta": 0.975,
        "percent_delta": 0.9512,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_AB",
        "before": 5.4,
        "after": 4.0,
        "delta": -1.4,
        "percent_delta": -0.2593,
        "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.031-
predicted_AB5.400-
predicted_AVG0.260-
predicted_BB0.261-
predicted_H1.410-
predicted_HR0.130-
predicted_OBP0.310-
predicted_R0.540-
predicted_RBI0.640-
predicted_SLG0.408-
predicted_SO1.025-
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.025-0.006
predicted_AB4.744-0.656
predicted_AVG0.2670.007
predicted_BB0.2670.006
predicted_H1.262-0.148
predicted_HBP0.012-
predicted_HR0.116-0.014
predicted_OBP0.3160.006
predicted_R0.5500.010
predicted_RBI0.583-0.057
predicted_SLG0.401-0.007
predicted_SO1.0590.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.0250.000
predicted_AB4.7440.000
predicted_AVG0.260-0.007
predicted_BB0.266-0.002
predicted_H1.234-0.028
predicted_HBP0.0120.000
predicted_HR0.113-0.003
predicted_OBP0.299-0.017
predicted_R0.529-0.021
predicted_RBI0.561-0.022
predicted_SLG0.372-0.028
predicted_SO1.0650.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=5.40), rates preserved: AVG=0.232 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-
SO1.000-
6. bvp_blend

Sample-size BvP blend (BvP AB=10.0, weight=0.100, BvP AVG=0.000)

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.1480.148
3B0.0160.016
BB0.3160.316
H0.925-0.075
HR0.1470.147
RBI0.5120.512
SO1.1110.111
9. lineup_integer_allocation

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

MetricValueDelta vs Prev Step
2B0.000-0.148
3B0.000-0.016
AB4.0000.000
AVG0.232-
BB0.000-0.316
H1.0000.075
HR0.000-0.147
OBP0.294-
R1.0000.000
RBI1.0000.488
SLG0.388-
SO1.000-0.111
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.143
predicted_3B0.000-0.025
predicted_AB4.000-0.744
predicted_AVG0.232-0.028
predicted_BB0.000-0.266
predicted_H1.000-0.234
predicted_HR0.000-0.113
predicted_OBP0.294-0.005
predicted_R1.0000.471
predicted_RBI1.0000.439
predicted_SLG0.3880.016
predicted_SO1.000-0.065
11. kpi_run_environment

KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
AVG0.224-0.008
BB0.0000.000
H1.0000.000
HR0.0000.000
OBP0.285-0.009
R1.0000.000
RBI1.0000.000
SLG0.374-0.014
SO1.0000.000
12. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

MetricValueDelta vs Prev Step
2B1.0001.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R0.000-1.000
RBI1.0000.000
SF0.0000.000
SO2.0001.000
13. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B1.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA4.0000.000
R0.0000.000
RBI1.0000.000
SF0.0000.000
SO2.0000.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 161
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-20.0007.0000.0000.0000.0003.0003.0002.0007.0000.35000.40910.35000.35000.00000.15000.10000.3500
last_100.2010-38.00010.0001.0000.0000.0003.0006.0002.00011.0000.26320.30000.28950.26320.00000.07900.05260.2895
season0.60161-629.000161.00026.0005.00026.00089.00087.00042.000165.0000.25600.30430.43720.25600.04130.14150.06680.2623
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1200
predicted_3B0.0180
predicted_AB3.9000
predicted_AVG0.2750
predicted_BB0.2750
predicted_H1.0720
predicted_HBP0.0120
predicted_HR0.0980
predicted_OBP0.3236
predicted_R0.5620
predicted_RBI0.5090
predicted_SLG0.3909
predicted_SO1.1020
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.16100.12000.1431model_form_blend
predicted_3B0.03100.01800.0253model_form_blend
predicted_AB5.40003.90004.7436model_form_blend
predicted_AVG0.26000.27500.2666model_form_blend
predicted_BB0.26100.27500.2671model_form_blend
predicted_H1.41001.07201.2621model_form_blend
predicted_HBP-0.01200.0120form_only
predicted_HR0.13000.09800.1160model_form_blend
predicted_OBP0.31000.32360.3160model_form_blend
predicted_R0.54000.56200.5496model_form_blend
predicted_RBI0.64000.50900.5827model_form_blend
predicted_SLG0.40800.39090.4005model_form_blend
predicted_SO1.02501.10201.0587model_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 date644
Season rows before report date644
Report year2026
Profile rows used161
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
R0
RBI1
BB0
SO2
SF0
HBP0

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
allPositionsPlayedCF
gameID20261004_SD@MIL
game_typefull
mlbID701538
playerID701538
playerNameJackson Merrill
posCF
startedTrue
startingPositionCF
teamSD
teamID23
game_date2026-10-04
sl_k_percent24.1
sl_bb_percent6.2
sl_woba0.32
sl_xwoba0.347
sl_xba0.27
sl_xslg0.491
sl_sweet_spot_percent39.8
sl_barrel_batted_rate12.4
sl_hard_hit_percent48.7
sl_exit_velocity_avg91.5
sl_launch_angle_avg14.3
sl_whiff_percent27.6
sl_swing_percent56.1
Manny Machado (592518) · BATTER · 3B · Team SD
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 647
All-history rows before 20261006: 647
System season_avg: 0.2210
Data season_avg (2026 season-to-date): 0.2228
Diff (system - data): -0.0018
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.1480.0000.000Hitting_2B0.1530.000-0.1530.000
predicted_3B0.0000.0000.000Hitting_3B0.0000.0000.0000.000
predicted_AB3.7502.0002.000Hitting_AB3.7672.000-1.7670.000
predicted_AVG0.2320.0000.000Hitting_AVG0.2230.000-0.2230.000
predicted_BB0.4941.0001.000Hitting_BB0.5072.0000.493-1.000
predicted_CS-0.0000.000BaseRunning_CS0.0280.000-0.0280.000
predicted_H0.8700.0000.000Hitting_H0.8390.000-0.8390.000
predicted_HR0.2100.0000.000Hitting_HR0.1960.000-0.1960.000
predicted_OBP0.3710.2500.250Hitting_OBP0.3110.500-0.061-0.250
predicted_R0.5250.0000.000Hitting_R0.5531.000-0.553-1.000
predicted_RBI0.6301.0001.000Hitting_RBI0.6060.0000.3941.000
predicted_SLG0.4520.0000.000Hitting_SLG0.4200.000-0.4200.000
predicted_SO0.9010.0000.000Hitting_SO0.8980.000-0.8980.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics12
Boosted Metrics3
Deboosted Metrics9
Better Metrics3
Worse Metrics8
Biggest Boostpredicted_SF: 0.0000 -> 1.0000 (boost 1.0000, higher)
Biggest Deboostpredicted_AB: 3.7500 -> 2.0000 (deboost -1.7500, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend42222predicted_SLG: 0.4520 -> 0.4756 (boost 0.0236, better)predicted_AB: 3.7500 -> 3.6585 (deboost -0.0915, 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_OBP: 0.3647 -> 0.3342 (deboost -0.0305, 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_scaling75243predicted_BB: 0.5193 -> 1.0000 (boost 0.4807, better)predicted_HR: 0.2053 -> 0.0000 (deboost -0.2053, worse)AB rounded to 4 (raw=3.75), rates preserved: AVG=0.238 HR/AB=0.055
6bvp_blend10101-predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse)Sample-size BvP blend (BvP AB=42.0, weight=0.233, BvP AVG=0.238)
7consistency_constraints11010predicted_R: 0.5115 -> 1.0000 (boost 0.4885, better)-Enforced H<=AB, HR<=H, safety nets, derived R
8hitter_rate_engine63342predicted_BB: 0.0000 -> 0.4718 (boost 0.4718, better)predicted_RBI: 1.0000 -> 0.5051 (deboost -0.4949, 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_allocation95445predicted_HR: 0.1672 -> 1.0000 (boost 0.8328, better)predicted_2B: 0.1397 -> 0.0000 (deboost -0.1397, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
10embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
11kpi_run_environment30303-predicted_SLG: 0.3950 -> 0.3810 (deboost -0.0140, worse)KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup
12play_by_play_realization61514predicted_SF: 0.0000 -> 1.0000 (boost 1.0000, higher)predicted_AB: 4.0000 -> 2.0000 (deboost -2.0000, worse)Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
13simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
14current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "592518",
  "player_name": "Manny Machado",
  "position": "3B",
  "team": "SD",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.148,
        "predicted_3B": 0.0,
        "predicted_AB": 3.75,
        "predicted_AVG": 0.232,
        "predicted_BB": 0.494,
        "predicted_H": 0.87,
        "predicted_HR": 0.21,
        "predicted_OBP": 0.371,
        "predicted_R": 0.525,
        "predicted_RBI": 0.63,
        "predicted_SLG": 0.452,
        "predicted_SO": 0.901
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "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.0004,
        "predicted_AB": 3.6585,
        "predicted_AVG": 0.2457,
        "predicted_BB": 0.5225,
        "predicted_H": 0.8971,
        "predicted_HBP": 0.005,
        "predicted_HR": 0.2113,
        "predicted_OBP": 0.3647,
        "predicted_R": 0.5316,
        "predicted_RBI": 0.6357,
        "predicted_SLG": 0.4756,
        "predicted_SO": 0.8647
      },
      "changed_metrics": [
        {
          "metric": "predicted_AB",
          "before": 3.75,
          "after": 3.6585,
          "delta": -0.0915,
          "percent_delta": -0.0244,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.232,
          "after": 0.2457,
          "delta": 0.0137,
          "percent_delta": 0.0591,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.371,
          "after": 0.3647,
          "delta": -0.0063,
          "percent_delta": -0.017,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.452,
          "after": 0.4756,
          "delta": 0.0236,
          "percent_delta": 0.0522,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 4,
        "boosted_metrics": 2,
        "deboosted_metrics": 2,
        "better_metrics": 2,
        "worse_metrics": 2,
        "biggest_boost": {
          "metric": "predicted_SLG",
          "before": 0.452,
          "after": 0.4756,
          "delta": 0.0236,
          "percent_delta": 0.0522,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 3.75,
          "after": 3.6585,
          "delta": -0.0915,
          "percent_delta": -0.0244,
          "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": 162
      }
    },
    {
      "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.0004,
        "predicted_AB": 3.6585,
        "predicted_AVG": 0.2397,
        "predicted_BB": 0.5193,
        "predicted_H": 0.8768,
        "predicted_HBP": 0.005,
        "predicted_HR": 0.2053,
        "predicted_OBP": 0.3342,
        "predicted_R": 0.5115,
        "predicted_RBI": 0.6116,
        "predicted_SLG": 0.457,
        "predicted_SO": 0.87
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.2457,
          "after": 0.2397,
          "delta": -0.006,
          "percent_delta": -0.0244,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3647,
          "after": 0.3342,
          "delta": -0.0305,
          "percent_delta": -0.0836,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4756,
          "after": 0.457,
          "delta": -0.0186,
          "percent_delta": -0.0391,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.3647,
          "after": 0.3342,
          "delta": -0.0305,
          "percent_delta": -0.0836,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 4 (raw=3.75), rates preserved: AVG=0.238 HR/AB=0.055",
      "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.1782,
          "after": 0.0,
          "delta": -0.1782,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AB",
          "before": 3.6585,
          "after": 4.0,
          "delta": 0.3415,
          "percent_delta": 0.0933,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.5193,
          "after": 1.0,
          "delta": 0.4807,
          "percent_delta": 0.9257,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8768,
          "after": 1.0,
          "delta": 0.1232,
          "percent_delta": 0.1405,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.2053,
          "after": 0.0,
          "delta": -0.2053,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.6116,
          "after": 1.0,
          "delta": 0.3884,
          "percent_delta": 0.6351,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.87,
          "after": 1.0,
          "delta": 0.13,
          "percent_delta": 0.1494,
          "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.5193,
          "after": 1.0,
          "delta": 0.4807,
          "percent_delta": 0.9257,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_HR",
          "before": 0.2053,
          "after": 0.0,
          "delta": -0.2053,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 6,
      "step": "bvp_blend",
      "description": "Sample-size BvP blend (BvP AB=42.0, weight=0.233, BvP AVG=0.238)",
      "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_BB",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 0,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 1,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_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.7667,
        "bvp": 0.2333
      }
    },
    {
      "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_R",
          "before": 0.5115,
          "after": 1.0,
          "delta": 0.4885,
          "percent_delta": 0.955,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 1,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_R",
          "before": 0.5115,
          "after": 1.0,
          "delta": 0.4885,
          "percent_delta": 0.955,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "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.1397,
        "predicted_3B": 0.0058,
        "predicted_BB": 0.4718,
        "predicted_H": 0.8473,
        "predicted_HR": 0.1672,
        "predicted_RBI": 0.5051,
        "predicted_SO": 0.9057
      },
      "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_BB",
          "before": 0.0,
          "after": 0.4718,
          "delta": 0.4718,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8473,
          "delta": -0.1527,
          "percent_delta": -0.1527,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1672,
          "delta": 0.1672,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.5051,
          "delta": -0.4949,
          "percent_delta": -0.4949,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.9057,
          "delta": -0.0943,
          "percent_delta": -0.0943,
          "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.4718,
          "delta": 0.4718,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.5051,
          "delta": -0.4949,
          "percent_delta": -0.4949,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_AVG": 0.223,
        "predicted_BB": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 1.0,
        "predicted_OBP": 0.314,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.395,
        "predicted_SO": 1.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_AVG",
          "before": 0.2397,
          "after": 0.223,
          "delta": -0.0167,
          "percent_delta": -0.0697,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.4718,
          "after": 1.0,
          "delta": 0.5282,
          "percent_delta": 1.1195,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8473,
          "after": 1.0,
          "delta": 0.1527,
          "percent_delta": 0.1802,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1672,
          "after": 1.0,
          "delta": 0.8328,
          "percent_delta": 4.9809,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3342,
          "after": 0.314,
          "delta": -0.0202,
          "percent_delta": -0.0604,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5051,
          "after": 1.0,
          "delta": 0.4949,
          "percent_delta": 0.9798,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.457,
          "after": 0.395,
          "delta": -0.062,
          "percent_delta": -0.1357,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.9057,
          "after": 1.0,
          "delta": 0.0943,
          "percent_delta": 0.1041,
          "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_HR",
          "before": 0.1672,
          "after": 1.0,
          "delta": 0.8328,
          "percent_delta": 4.9809,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_2B",
          "before": 0.1397,
          "after": 0.0,
          "delta": -0.1397,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 10,
      "step": "embedded_savant_player_context",
      "description": "Player Savant profile contributed to the team run-environment adjustment against the opposing starter",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.223,
        "predicted_BB": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 1.0,
        "predicted_OBP": 0.314,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "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
      }
    },
    {
      "index": 11,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.215,
        "predicted_BB": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 1.0,
        "predicted_OBP": 0.305,
        "predicted_R": 1.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.381,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.223,
          "after": 0.215,
          "delta": -0.008,
          "percent_delta": -0.0359,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.314,
          "after": 0.305,
          "delta": -0.009,
          "percent_delta": -0.0287,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.395,
          "after": 0.381,
          "delta": -0.014,
          "percent_delta": -0.0354,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.395,
          "after": 0.381,
          "delta": -0.014,
          "percent_delta": -0.0354,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 12,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 2.0,
        "predicted_BB": 1.0,
        "predicted_H": 0.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SF": 1.0,
        "predicted_SO": 0.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AB",
          "before": 4.0,
          "after": 2.0,
          "delta": -2.0,
          "percent_delta": -0.5,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "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_HR",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "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_SF",
          "before": 0.0,
          "after": 1.0,
          "delta": 1.0,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "higher",
          "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": 6,
        "boosted_metrics": 1,
        "deboosted_metrics": 5,
        "better_metrics": 1,
        "worse_metrics": 4,
        "biggest_boost": {
          "metric": "predicted_SF",
          "before": 0.0,
          "after": 1.0,
          "delta": 1.0,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "higher",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 4.0,
          "after": 2.0,
          "delta": -2.0,
          "percent_delta": -0.5,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 13,
      "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_H": 0.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SF": 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
      },
      "reference_only": true
    },
    {
      "index": 14,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 2.0,
        "predicted_AVG": 0.215,
        "predicted_BB": 1.0,
        "predicted_CS": 0.0,
        "predicted_H": 0.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.305,
        "predicted_R": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SB": 0.0,
        "predicted_SF": 1.0,
        "predicted_SLG": 0.381,
        "predicted_SO": 0.0,
        "predicted_TB": 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
      }
    }
  ],
  "total_change": {
    "from_step": "xgboost_raw",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_2B",
        "before": 0.148,
        "after": 0.0,
        "delta": -0.148,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AB",
        "before": 3.75,
        "after": 2.0,
        "delta": -1.75,
        "percent_delta": -0.4667,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.232,
        "after": 0.215,
        "delta": -0.017,
        "percent_delta": -0.0733,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.494,
        "after": 1.0,
        "delta": 0.506,
        "percent_delta": 1.0243,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.87,
        "after": 0.0,
        "delta": -0.87,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.21,
        "after": 0.0,
        "delta": -0.21,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.371,
        "after": 0.305,
        "delta": -0.066,
        "percent_delta": -0.1779,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.525,
        "after": 0.0,
        "delta": -0.525,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.63,
        "after": 1.0,
        "delta": 0.37,
        "percent_delta": 0.5873,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SF",
        "before": 0.0,
        "after": 1.0,
        "delta": 1.0,
        "percent_delta": null,
        "direction": "boost",
        "projection_effect": "higher",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.452,
        "after": 0.381,
        "delta": -0.071,
        "percent_delta": -0.1571,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.901,
        "after": 0.0,
        "delta": -0.901,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 12,
      "boosted_metrics": 3,
      "deboosted_metrics": 9,
      "better_metrics": 3,
      "worse_metrics": 8,
      "biggest_boost": {
        "metric": "predicted_SF",
        "before": 0.0,
        "after": 1.0,
        "delta": 1.0,
        "percent_delta": null,
        "direction": "boost",
        "projection_effect": "higher",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_AB",
        "before": 3.75,
        "after": 2.0,
        "delta": -1.75,
        "percent_delta": -0.4667,
        "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.148-
predicted_3B0.000-
predicted_AB3.750-
predicted_AVG0.232-
predicted_BB0.494-
predicted_H0.870-
predicted_HR0.210-
predicted_OBP0.371-
predicted_R0.525-
predicted_RBI0.630-
predicted_SLG0.452-
predicted_SO0.901-
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.030
predicted_3B0.0000.000
predicted_AB3.659-0.091
predicted_AVG0.2460.014
predicted_BB0.5220.028
predicted_H0.8970.027
predicted_HBP0.005-
predicted_HR0.2110.001
predicted_OBP0.365-0.006
predicted_R0.5320.007
predicted_RBI0.6360.006
predicted_SLG0.4760.024
predicted_SO0.865-0.036
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.0000.000
predicted_AB3.6590.000
predicted_AVG0.240-0.006
predicted_BB0.519-0.003
predicted_H0.877-0.020
predicted_HBP0.0050.000
predicted_HR0.205-0.006
predicted_OBP0.334-0.031
predicted_R0.511-0.020
predicted_RBI0.612-0.024
predicted_SLG0.457-0.019
predicted_SO0.8700.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.75), rates preserved: AVG=0.238 HR/AB=0.055

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=42.0, weight=0.233, BvP AVG=0.238)

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.1400.140
3B0.0060.006
BB0.4720.472
H0.847-0.153
HR0.1670.167
RBI0.505-0.495
SO0.906-0.094
9. 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.006
AB4.0000.000
AVG0.223-
BB1.0000.528
H1.0000.153
HR1.0000.833
OBP0.314-
R1.0000.000
RBI1.0000.495
SLG0.395-
SO1.0000.094
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.178
predicted_3B0.000-0.000
predicted_AB4.0000.341
predicted_AVG0.223-0.017
predicted_BB1.0000.481
predicted_H1.0000.123
predicted_HR1.0000.795
predicted_OBP0.314-0.020
predicted_R1.0000.489
predicted_RBI1.0000.388
predicted_SLG0.395-0.062
predicted_SO1.0000.130
11. kpi_run_environment

KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
AVG0.215-0.008
BB1.0000.000
H1.0000.000
HR1.0000.000
OBP0.305-0.009
R1.0000.000
RBI1.0000.000
SLG0.381-0.014
SO1.0000.000
12. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB2.000-2.000
BB1.0000.000
H0.000-1.000
HBP0.0000.000
HR0.000-1.000
PA4.000-
R0.000-1.000
RBI1.0000.000
SF1.0001.000
SO0.000-1.000
13. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB2.0000.000
BB1.0000.000
H0.0000.000
HBP0.0000.000
HR0.0000.000
PA4.0000.000
R0.0000.000
RBI1.0000.000
SF1.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: 162
Reference playing time: 3.801
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.0002.0000.0001.0003.0003.0004.0003.0000.40000.52630.73330.40000.06670.20000.26670.2000
last_100.2010-35.0009.0002.0000.0003.0009.0005.0005.0008.0000.25710.34150.57140.25710.08570.25710.14290.2286
season0.60162-602.000133.00024.0000.00031.00093.00085.00080.000146.0000.22090.30880.41530.22090.05150.15450.13290.2425
Weighted Prediction From Real Data
MetricValue
predicted_2B0.2170
predicted_3B0.0010
predicted_AB3.5410
predicted_AVG0.2633
predicted_BB0.5590
predicted_H0.9320
predicted_HBP0.0050
predicted_HR0.2130
predicted_OBP0.3566
predicted_R0.5400
predicted_RBI0.6430
predicted_SLG0.5059
predicted_SO0.8180
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.14800.21700.1782model_form_blend
predicted_3B0.00000.00100.0004model_form_blend
predicted_AB3.75003.54103.6585model_form_blend
predicted_AVG0.23200.26330.2457model_form_blend
predicted_BB0.49400.55900.5225model_form_blend
predicted_H0.87000.93200.8971model_form_blend
predicted_HBP-0.00500.0050form_only
predicted_HR0.21000.21300.2113model_form_blend
predicted_OBP0.37100.35660.3647model_form_blend
predicted_R0.52500.54000.5316model_form_blend
predicted_RBI0.63000.64300.6357model_form_blend
predicted_SLG0.45200.50590.4756model_form_blend
predicted_SO0.90100.81800.8647model_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 date647
Season rows before report date647
Report year2026
Profile rows used162
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
AB2
H0
2B0
3B0
HR0
R0
RBI1
BB1
SO0
SF1
HBP0

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_BB2
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R1
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
allPositionsPlayed3B
gameID20261004_SD@MIL
game_typefull
mlbID592518
playerID592518
playerNameManny Machado
pos3B
startedTrue
startingPosition3B
teamSD
teamID23
game_date2026-10-04
sl_k_percent21.3
sl_bb_percent11.2
sl_woba0.31
sl_xwoba0.328
sl_xba0.243
sl_xslg0.42
sl_sweet_spot_percent32.7
sl_barrel_batted_rate9.7
sl_hard_hit_percent43.6
sl_exit_velocity_avg90.1
sl_launch_angle_avg14.5
sl_whiff_percent25.3
sl_swing_percent47.8
Ty France (664034) · BATTER · 1B · Team SD
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 481
All-history rows before 20261006: 481
System season_avg: 0.3010
Data season_avg (2026 season-to-date): 0.3079
Diff (system - data): -0.0069
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.1910.0000.000Hitting_2B0.2140.000-0.2140.000
predicted_3B0.0150.0000.000Hitting_3B0.0120.000-0.0120.000
predicted_AB3.6904.0004.000Hitting_AB3.5993.0000.4011.000
predicted_AVG0.3190.0000.000Hitting_AVG0.3080.667-0.308-0.667
predicted_BB0.2820.0000.000Hitting_BB0.3010.000-0.3010.000
predicted_CS-0.0000.000BaseRunning_CS0.0060.000-0.0060.000
predicted_H1.1800.0000.000Hitting_H1.1082.000-1.108-2.000
predicted_HR0.1200.0000.000Hitting_HR0.1770.000-0.1770.000
predicted_OBP0.4030.0000.000Hitting_OBP0.3730.750-0.373-0.750
predicted_R0.4660.0000.000Hitting_R0.4970.000-0.4970.000
predicted_RBI0.6100.0000.000Hitting_RBI0.6012.000-0.601-2.000
predicted_SLG0.4350.0000.000Hitting_SLG0.5220.667-0.522-0.667
predicted_SO0.8472.0002.000Hitting_SO0.8321.0001.1681.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectworse
Changed Metrics12
Boosted Metrics2
Deboosted Metrics10
Better Metrics1
Worse Metrics11
Biggest Boostpredicted_SO: 0.8470 -> 2.0000 (boost 1.1530, worse)
Biggest Deboostpredicted_H: 1.1800 -> 0.0000 (deboost -1.1800, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend11010predicted_SLG: 0.4350 -> 0.4495 (boost 0.0145, 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_snapshot31212predicted_SLG: 0.4495 -> 0.4636 (boost 0.0141, better)predicted_OBP: 0.4029 -> 0.3647 (deboost -0.0382, 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_scaling83526predicted_RBI: 0.5564 -> 1.0000 (boost 0.4436, better)predicted_BB: 0.2751 -> 0.0000 (deboost -0.2751, worse)AB rounded to 4 (raw=3.69), rates preserved: AVG=0.319 HR/AB=0.029
6bvp_blend00000--Sample-size BvP blend (BvP AB=12.0, weight=0.114, BvP AVG=0.333)
7consistency_constraints10101-predicted_R: 0.4767 -> 0.0000 (deboost -0.4767, worse)Enforced H<=AB, HR<=H, safety nets, derived R
8hitter_rate_engine43131predicted_BB: 0.0000 -> 0.3211 (boost 0.3211, better)predicted_RBI: 1.0000 -> 0.5272 (deboost -0.4728, 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_allocation71616predicted_RBI: 0.5272 -> 1.0000 (boost 0.4728, better)predicted_BB: 0.3211 -> 0.0000 (deboost -0.3211, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
10embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
11kpi_run_environment30303-predicted_SLG: 0.4390 -> 0.4240 (deboost -0.0150, worse)KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup
12play_by_play_realization31203predicted_SO: 1.0000 -> 2.0000 (boost 1.0000, worse)predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, worse)Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
13simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
14current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "664034",
  "player_name": "Ty France",
  "position": "1B",
  "team": "SD",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.191,
        "predicted_3B": 0.015,
        "predicted_AB": 3.69,
        "predicted_AVG": 0.319,
        "predicted_BB": 0.282,
        "predicted_H": 1.18,
        "predicted_HR": 0.12,
        "predicted_OBP": 0.403,
        "predicted_R": 0.466,
        "predicted_RBI": 0.61,
        "predicted_SLG": 0.435,
        "predicted_SO": 0.847
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "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.1841,
        "predicted_3B": 0.0128,
        "predicted_AB": 3.6492,
        "predicted_AVG": 0.3238,
        "predicted_BB": 0.2768,
        "predicted_H": 1.183,
        "predicted_HBP": 0.196,
        "predicted_HR": 0.1118,
        "predicted_OBP": 0.4029,
        "predicted_R": 0.4955,
        "predicted_RBI": 0.5783,
        "predicted_SLG": 0.4495,
        "predicted_SO": 0.8487
      },
      "changed_metrics": [
        {
          "metric": "predicted_SLG",
          "before": 0.435,
          "after": 0.4495,
          "delta": 0.0145,
          "percent_delta": 0.0333,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 1,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_SLG",
          "before": 0.435,
          "after": 0.4495,
          "delta": 0.0145,
          "percent_delta": 0.0333,
          "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": 131
      }
    },
    {
      "index": 3,
      "step": "team_form_snapshot",
      "description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
      "stats": {
        "predicted_2B": 0.1841,
        "predicted_3B": 0.0128,
        "predicted_AB": 3.6492,
        "predicted_AVG": 0.3169,
        "predicted_BB": 0.2751,
        "predicted_H": 1.1563,
        "predicted_HBP": 0.196,
        "predicted_HR": 0.1086,
        "predicted_OBP": 0.3647,
        "predicted_R": 0.4767,
        "predicted_RBI": 0.5564,
        "predicted_SLG": 0.4636,
        "predicted_SO": 0.8539
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.3238,
          "after": 0.3169,
          "delta": -0.0069,
          "percent_delta": -0.0213,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.4029,
          "after": 0.3647,
          "delta": -0.0382,
          "percent_delta": -0.0948,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4495,
          "after": 0.4636,
          "delta": 0.0141,
          "percent_delta": 0.0314,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 3,
        "boosted_metrics": 1,
        "deboosted_metrics": 2,
        "better_metrics": 1,
        "worse_metrics": 2,
        "biggest_boost": {
          "metric": "predicted_SLG",
          "before": 0.4495,
          "after": 0.4636,
          "delta": 0.0141,
          "percent_delta": 0.0314,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_OBP",
          "before": 0.4029,
          "after": 0.3647,
          "delta": -0.0382,
          "percent_delta": -0.0948,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 4 (raw=3.69), rates preserved: AVG=0.319 HR/AB=0.029",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SB": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1841,
          "after": 0.0,
          "delta": -0.1841,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AB",
          "before": 3.6492,
          "after": 4.0,
          "delta": 0.3508,
          "percent_delta": 0.0961,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.2751,
          "after": 0.0,
          "delta": -0.2751,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.1563,
          "after": 1.0,
          "delta": -0.1563,
          "percent_delta": -0.1352,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HBP",
          "before": 0.196,
          "after": 0.0,
          "delta": -0.196,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1086,
          "after": 0.0,
          "delta": -0.1086,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5564,
          "after": 1.0,
          "delta": 0.4436,
          "percent_delta": 0.7973,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.8539,
          "after": 1.0,
          "delta": 0.1461,
          "percent_delta": 0.1711,
          "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.5564,
          "after": 1.0,
          "delta": 0.4436,
          "percent_delta": 0.7973,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.2751,
          "after": 0.0,
          "delta": -0.2751,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 6,
      "step": "bvp_blend",
      "description": "Sample-size BvP blend (BvP AB=12.0, weight=0.114, BvP AVG=0.333)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_RBI": 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": {
        "model_expectation": 0.8857,
        "bvp": 0.1143
      }
    },
    {
      "index": 7,
      "step": "consistency_constraints",
      "description": "Enforced H<=AB, HR<=H, safety nets, derived R",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_R",
          "before": 0.4767,
          "after": 0.0,
          "delta": -0.4767,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 0,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 1,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_R",
          "before": 0.4767,
          "after": 0.0,
          "delta": -0.4767,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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.1464,
        "predicted_3B": 0.0108,
        "predicted_BB": 0.3211,
        "predicted_H": 1.0228,
        "predicted_HR": 0.1644,
        "predicted_RBI": 0.5272,
        "predicted_SO": 0.9625
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1464,
          "delta": 0.1464,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.3211,
          "delta": 0.3211,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1644,
          "delta": 0.1644,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.5272,
          "delta": -0.4728,
          "percent_delta": -0.4728,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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": 0.3211,
          "delta": 0.3211,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 1.0,
          "after": 0.5272,
          "delta": -0.4728,
          "percent_delta": -0.4728,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_AVG": 0.267,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.329,
        "predicted_R": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.439,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1464,
          "after": 0.0,
          "delta": -0.1464,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.3169,
          "after": 0.267,
          "delta": -0.0499,
          "percent_delta": -0.1575,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3211,
          "after": 0.0,
          "delta": -0.3211,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1644,
          "after": 0.0,
          "delta": -0.1644,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3647,
          "after": 0.329,
          "delta": -0.0357,
          "percent_delta": -0.0979,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.5272,
          "after": 1.0,
          "delta": 0.4728,
          "percent_delta": 0.8968,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4636,
          "after": 0.439,
          "delta": -0.0246,
          "percent_delta": -0.0531,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 7,
        "boosted_metrics": 1,
        "deboosted_metrics": 6,
        "better_metrics": 1,
        "worse_metrics": 6,
        "biggest_boost": {
          "metric": "predicted_RBI",
          "before": 0.5272,
          "after": 1.0,
          "delta": 0.4728,
          "percent_delta": 0.8968,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 0.3211,
          "after": 0.0,
          "delta": -0.3211,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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.267,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.329,
        "predicted_R": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.439,
        "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
      }
    },
    {
      "index": 11,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup",
      "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.318,
        "predicted_R": 0.0,
        "predicted_RBI": 1.0,
        "predicted_SLG": 0.424,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.267,
          "after": 0.257,
          "delta": -0.01,
          "percent_delta": -0.0375,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.329,
          "after": 0.318,
          "delta": -0.011,
          "percent_delta": -0.0334,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.439,
          "after": 0.424,
          "delta": -0.015,
          "percent_delta": -0.0342,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.439,
          "after": 0.424,
          "delta": -0.015,
          "percent_delta": -0.0342,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 12,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "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_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.0,
        "predicted_SO": 2.0
      },
      "changed_metrics": [
        {
          "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_RBI",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "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": 3,
        "boosted_metrics": 1,
        "deboosted_metrics": 2,
        "better_metrics": 0,
        "worse_metrics": 3,
        "biggest_boost": {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 2.0,
          "delta": 1.0,
          "percent_delta": 1.0,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 13,
      "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_H": 0.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.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
      },
      "reference_only": true
    },
    {
      "index": 14,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.257,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_FB": 0.0,
        "predicted_H": 0.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.318,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.424,
        "predicted_SO": 2.0,
        "predicted_TB": 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
      }
    }
  ],
  "total_change": {
    "from_step": "xgboost_raw",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_2B",
        "before": 0.191,
        "after": 0.0,
        "delta": -0.191,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AB",
        "before": 3.69,
        "after": 4.0,
        "delta": 0.31,
        "percent_delta": 0.084,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.319,
        "after": 0.257,
        "delta": -0.062,
        "percent_delta": -0.1944,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.282,
        "after": 0.0,
        "delta": -0.282,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 1.18,
        "after": 0.0,
        "delta": -1.18,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_HBP",
        "before": 0.196,
        "after": 0.0,
        "delta": -0.196,
        "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.403,
        "after": 0.318,
        "delta": -0.085,
        "percent_delta": -0.2109,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.466,
        "after": 0.0,
        "delta": -0.466,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.61,
        "after": 0.0,
        "delta": -0.61,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.435,
        "after": 0.424,
        "delta": -0.011,
        "percent_delta": -0.0253,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.847,
        "after": 2.0,
        "delta": 1.153,
        "percent_delta": 1.3613,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 12,
      "boosted_metrics": 2,
      "deboosted_metrics": 10,
      "better_metrics": 1,
      "worse_metrics": 11,
      "biggest_boost": {
        "metric": "predicted_SO",
        "before": 0.847,
        "after": 2.0,
        "delta": 1.153,
        "percent_delta": 1.3613,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_H",
        "before": 1.18,
        "after": 0.0,
        "delta": -1.18,
        "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.191-
predicted_3B0.015-
predicted_AB3.690-
predicted_AVG0.319-
predicted_BB0.282-
predicted_H1.180-
predicted_HR0.120-
predicted_OBP0.403-
predicted_R0.466-
predicted_RBI0.610-
predicted_SLG0.435-
predicted_SO0.847-
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.184-0.007
predicted_3B0.013-0.002
predicted_AB3.649-0.041
predicted_AVG0.3240.005
predicted_BB0.277-0.005
predicted_H1.1830.003
predicted_HBP0.196-
predicted_HR0.112-0.008
predicted_OBP0.403-0.000
predicted_R0.4950.029
predicted_RBI0.578-0.032
predicted_SLG0.4500.015
predicted_SO0.8490.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.1840.000
predicted_3B0.0130.000
predicted_AB3.6490.000
predicted_AVG0.317-0.007
predicted_BB0.275-0.002
predicted_H1.156-0.027
predicted_HBP0.1960.000
predicted_HR0.109-0.003
predicted_OBP0.365-0.038
predicted_R0.477-0.019
predicted_RBI0.556-0.022
predicted_SLG0.4640.014
predicted_SO0.8540.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.69), rates preserved: AVG=0.319 HR/AB=0.029

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=12.0, weight=0.114, BvP AVG=0.333)

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
R0.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.1460.146
3B0.0110.011
BB0.3210.321
H1.0230.023
HR0.1640.164
RBI0.527-0.473
SO0.963-0.037
9. 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.011
AB4.0000.000
AVG0.267-
BB0.000-0.321
H1.000-0.023
HR0.000-0.164
OBP0.329-
R0.0000.000
RBI1.0000.473
SLG0.439-
SO1.0000.037
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.184
predicted_3B0.000-0.013
predicted_AB4.0000.351
predicted_AVG0.267-0.050
predicted_BB0.000-0.275
predicted_H1.000-0.156
predicted_HR0.000-0.109
predicted_OBP0.329-0.036
predicted_R0.000-0.477
predicted_RBI1.0000.444
predicted_SLG0.439-0.025
predicted_SO1.0000.146
11. kpi_run_environment

KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
AVG0.257-0.010
BB0.0000.000
H1.0000.000
HR0.0000.000
OBP0.318-0.011
R0.0000.000
RBI1.0000.000
SLG0.424-0.015
SO1.0000.000
12. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
BB0.0000.000
H0.000-1.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R0.0000.000
RBI0.000-1.000
SF0.0000.000
SO2.0001.000
13. 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
H0.0000.000
HBP0.0000.000
HR0.0000.000
PA4.0000.000
R0.0000.000
RBI0.0000.000
SF0.0000.000
SO2.0000.000

Weighted Real-Data Form Profile

Blend weights: last 5=0.20, last 10=0.20, season=0.60
Rows used: 131
Reference playing time: 3.801
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.0003.0004.0001.0003.0000.47370.54550.52630.47370.00000.15790.05260.1579
last_100.2010-37.00011.0001.0000.0000.0004.0005.0003.00011.0000.29730.39530.32430.29730.00000.10810.08110.2973
season0.60131-455.000137.00025.0002.00021.00074.00061.00037.000111.0000.30110.36700.50330.30110.04610.16260.08130.2440
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1750
predicted_3B0.0100
predicted_AB3.5960
predicted_AVG0.3301
predicted_BB0.2700
predicted_H1.1870
predicted_HBP0.1960
predicted_HR0.1010
predicted_OBP0.4027
predicted_R0.5340
predicted_RBI0.5370
predicted_SLG0.4685
predicted_SO0.8510
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.19100.17500.1841model_form_blend
predicted_3B0.01500.01000.0128model_form_blend
predicted_AB3.69003.59603.6492model_form_blend
predicted_AVG0.31900.33010.3238model_form_blend
predicted_BB0.28200.27000.2768model_form_blend
predicted_H1.18001.18701.1830model_form_blend
predicted_HBP-0.19600.1960form_only
predicted_HR0.12000.10100.1118model_form_blend
predicted_OBP0.40300.40270.4029model_form_blend
predicted_R0.46600.53400.4955model_form_blend
predicted_RBI0.61000.53700.5783model_form_blend
predicted_SLG0.43500.46850.4495model_form_blend
predicted_SO0.84700.85100.8487model_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 date481
Season rows before report date481
Report year2026
Profile rows used131
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

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_BB0
Hitting_GIDP0
Hitting_H2
Hitting_HBP1
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI2
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
allPositionsPlayed1B
gameID20261004_SD@MIL
game_typefull
mlbID664034
playerID664034
playerNameTy France
pos1B
startedTrue
startingPosition1B
teamSD
teamID23
game_date2026-10-04
sl_k_percent21.6
sl_bb_percent7.4
sl_woba0.373
sl_xwoba0.327
sl_xba0.248
sl_xslg0.421
sl_sweet_spot_percent38.5
sl_barrel_batted_rate9.1
sl_hard_hit_percent47.4
sl_exit_velocity_avg91.5
sl_launch_angle_avg14.6
sl_whiff_percent28.1
sl_swing_percent54.3
Ethan Salas (806956) · BATTER · C · Team SD
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 30
All-history rows before 20261006: 30
System season_avg: 0.2560
Data season_avg (2026 season-to-date): 0.2222
Diff (system - data): 0.0338
System opponent_avg: 0.2560
System season_avg diverges from 2026 season-to-date by 0.0338. 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.0000.0000.000Hitting_2B0.0000.0000.0000.000
predicted_3B0.0580.0000.000Hitting_3B0.0670.000-0.0670.000
predicted_AB2.5004.0004.000Hitting_AB2.7003.0001.3001.000
predicted_AVG0.3310.5000.500Hitting_AVG0.2220.3330.2780.167
predicted_BB0.0580.0000.000Hitting_BB0.0330.000-0.0330.000
predicted_CS-0.0000.000BaseRunning_CS0.0000.0000.0000.000
predicted_H0.7902.0002.000Hitting_H0.6001.0001.4001.000
predicted_HR0.0800.0000.000Hitting_HR0.2670.000-0.2670.000
predicted_OBP0.3370.5000.500Hitting_OBP0.2290.3330.2710.167
predicted_R0.4071.0001.000Hitting_R0.4671.0000.5330.000
predicted_RBI0.3200.0000.000Hitting_RBI0.5000.000-0.5000.000
predicted_SLG0.4370.5000.500Hitting_SLG0.5680.333-0.0680.167
predicted_SO0.6401.0001.000Hitting_SO0.7001.0000.3000.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.5000 -> 4.0000 (boost 1.5000, better)
Biggest Deboostpredicted_RBI: 0.3200 -> 0.0000 (deboost -0.3200, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend31212predicted_AB: 2.5000 -> 2.6678 (boost 0.1678, better)predicted_AVG: 0.3310 -> 0.3183 (deboost -0.0127, 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_AVG: 0.3183 -> 0.3004 (deboost -0.0179, 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_scaling63324predicted_SO: 0.6587 -> 1.0000 (boost 0.3413, worse)predicted_RBI: 0.3469 -> 0.0000 (deboost -0.3469, worse)AB rounded to 3 (raw=2.67), rates preserved: AVG=0.305 HR/AB=0.034
6consistency_constraints10101-predicted_R: 0.4303 -> 0.0000 (deboost -0.4303, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine64251predicted_RBI: 0.0000 -> 0.3891 (boost 0.3891, better)predicted_H: 1.0000 -> 0.7690 (deboost -0.2310, 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_allocation92718predicted_H: 0.7690 -> 1.0000 (boost 0.2310, better)predicted_RBI: 0.3891 -> 0.0000 (deboost -0.3891, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10kpi_run_environment30303-predicted_SLG: 0.3900 -> 0.3760 (deboost -0.0140, worse)KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup
11play_by_play_realization33030predicted_AB: 3.0000 -> 4.0000 (boost 1.0000, better)-Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
12simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
13current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "806956",
  "player_name": "Ethan Salas",
  "position": "C",
  "team": "SD",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.058,
        "predicted_AB": 2.5,
        "predicted_AVG": 0.331,
        "predicted_BB": 0.058,
        "predicted_H": 0.79,
        "predicted_HR": 0.08,
        "predicted_OBP": 0.337,
        "predicted_R": 0.407,
        "predicted_RBI": 0.32,
        "predicted_SLG": 0.437,
        "predicted_SO": 0.64
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "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.0186,
        "predicted_3B": 0.0487,
        "predicted_AB": 2.6678,
        "predicted_AVG": 0.3183,
        "predicted_BB": 0.0793,
        "predicted_H": 0.82,
        "predicted_HBP": 0.01,
        "predicted_HR": 0.0933,
        "predicted_OBP": 0.3316,
        "predicted_R": 0.4473,
        "predicted_RBI": 0.3606,
        "predicted_SLG": 0.4417,
        "predicted_SO": 0.6547
      },
      "changed_metrics": [
        {
          "metric": "predicted_AB",
          "before": 2.5,
          "after": 2.6678,
          "delta": 0.1678,
          "percent_delta": 0.0671,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.331,
          "after": 0.3183,
          "delta": -0.0127,
          "percent_delta": -0.0384,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.337,
          "after": 0.3316,
          "delta": -0.0054,
          "percent_delta": -0.016,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 3,
        "boosted_metrics": 1,
        "deboosted_metrics": 2,
        "better_metrics": 1,
        "worse_metrics": 2,
        "biggest_boost": {
          "metric": "predicted_AB",
          "before": 2.5,
          "after": 2.6678,
          "delta": 0.1678,
          "percent_delta": 0.0671,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AVG",
          "before": 0.331,
          "after": 0.3183,
          "delta": -0.0127,
          "percent_delta": -0.0384,
          "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.0186,
        "predicted_3B": 0.0487,
        "predicted_AB": 2.6678,
        "predicted_AVG": 0.3004,
        "predicted_BB": 0.0788,
        "predicted_H": 0.8015,
        "predicted_HBP": 0.01,
        "predicted_HR": 0.0907,
        "predicted_OBP": 0.3205,
        "predicted_R": 0.4303,
        "predicted_RBI": 0.3469,
        "predicted_SLG": 0.4459,
        "predicted_SO": 0.6587
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.3183,
          "after": 0.3004,
          "delta": -0.0179,
          "percent_delta": -0.0562,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3316,
          "after": 0.3205,
          "delta": -0.0111,
          "percent_delta": -0.0335,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.3183,
          "after": 0.3004,
          "delta": -0.0179,
          "percent_delta": -0.0562,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 3 (raw=2.67), rates preserved: AVG=0.305 HR/AB=0.034",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 3.0,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AB",
          "before": 2.6678,
          "after": 3.0,
          "delta": 0.3322,
          "percent_delta": 0.1245,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.0788,
          "after": 0.0,
          "delta": -0.0788,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8015,
          "after": 1.0,
          "delta": 0.1985,
          "percent_delta": 0.2477,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0907,
          "after": 0.0,
          "delta": -0.0907,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3469,
          "after": 0.0,
          "delta": -0.3469,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.6587,
          "after": 1.0,
          "delta": 0.3413,
          "percent_delta": 0.5181,
          "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.6587,
          "after": 1.0,
          "delta": 0.3413,
          "percent_delta": 0.5181,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.3469,
          "after": 0.0,
          "delta": -0.3469,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_R",
          "before": 0.4303,
          "after": 0.0,
          "delta": -0.4303,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 0,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 1,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_R",
          "before": 0.4303,
          "after": 0.0,
          "delta": -0.4303,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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.1257,
        "predicted_3B": 0.0121,
        "predicted_BB": 0.2715,
        "predicted_H": 0.769,
        "predicted_HR": 0.1142,
        "predicted_RBI": 0.3891,
        "predicted_SO": 0.841
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1257,
          "delta": 0.1257,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.2715,
          "delta": 0.2715,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.769,
          "delta": -0.231,
          "percent_delta": -0.231,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.1142,
          "delta": 0.1142,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.3891,
          "delta": 0.3891,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.841,
          "delta": -0.159,
          "percent_delta": -0.159,
          "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.3891,
          "delta": 0.3891,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.769,
          "delta": -0.231,
          "percent_delta": -0.231,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_AVG": 0.238,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.302,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.39,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1257,
          "after": 0.0,
          "delta": -0.1257,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.3004,
          "after": 0.238,
          "delta": -0.0624,
          "percent_delta": -0.2077,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.2715,
          "after": 0.0,
          "delta": -0.2715,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.769,
          "after": 1.0,
          "delta": 0.231,
          "percent_delta": 0.3004,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1142,
          "after": 0.0,
          "delta": -0.1142,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3205,
          "after": 0.302,
          "delta": -0.0185,
          "percent_delta": -0.0577,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3891,
          "after": 0.0,
          "delta": -0.3891,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4459,
          "after": 0.39,
          "delta": -0.0559,
          "percent_delta": -0.1254,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.841,
          "after": 1.0,
          "delta": 0.159,
          "percent_delta": 0.1891,
          "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_H",
          "before": 0.769,
          "after": 1.0,
          "delta": 0.231,
          "percent_delta": 0.3004,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.3891,
          "after": 0.0,
          "delta": -0.3891,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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.238,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.302,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.39,
        "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
      }
    },
    {
      "index": 10,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 3.0,
        "predicted_AVG": 0.229,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.293,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.376,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.238,
          "after": 0.229,
          "delta": -0.009,
          "percent_delta": -0.0378,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.302,
          "after": 0.293,
          "delta": -0.009,
          "percent_delta": -0.0298,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.39,
          "after": 0.376,
          "delta": -0.014,
          "percent_delta": -0.0359,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.39,
          "after": 0.376,
          "delta": -0.014,
          "percent_delta": -0.0359,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 11,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_BB": 0.0,
        "predicted_H": 2.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "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_H",
          "before": 1.0,
          "after": 2.0,
          "delta": 1.0,
          "percent_delta": 1.0,
          "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
        }
      ],
      "summary": {
        "changed_metrics": 3,
        "boosted_metrics": 3,
        "deboosted_metrics": 0,
        "better_metrics": 3,
        "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
      }
    },
    {
      "index": 12,
      "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_H": 2.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.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
      },
      "reference_only": true
    },
    {
      "index": 13,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.229,
        "predicted_BB": 0.0,
        "predicted_C": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 2.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.293,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.376,
        "predicted_SO": 1.0,
        "predicted_TB": 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
      }
    }
  ],
  "total_change": {
    "from_step": "xgboost_raw",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_3B",
        "before": 0.058,
        "after": 0.0,
        "delta": -0.058,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AB",
        "before": 2.5,
        "after": 4.0,
        "delta": 1.5,
        "percent_delta": 0.6,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.331,
        "after": 0.229,
        "delta": -0.102,
        "percent_delta": -0.3082,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.058,
        "after": 0.0,
        "delta": -0.058,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.79,
        "after": 2.0,
        "delta": 1.21,
        "percent_delta": 1.5316,
        "direction": "boost",
        "projection_effect": "better",
        "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.337,
        "after": 0.293,
        "delta": -0.044,
        "percent_delta": -0.1306,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.407,
        "after": 1.0,
        "delta": 0.593,
        "percent_delta": 1.457,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.32,
        "after": 0.0,
        "delta": -0.32,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.437,
        "after": 0.376,
        "delta": -0.061,
        "percent_delta": -0.1396,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.64,
        "after": 1.0,
        "delta": 0.36,
        "percent_delta": 0.5625,
        "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.5,
        "after": 4.0,
        "delta": 1.5,
        "percent_delta": 0.6,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_RBI",
        "before": 0.32,
        "after": 0.0,
        "delta": -0.32,
        "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.000-
predicted_3B0.058-
predicted_AB2.500-
predicted_AVG0.331-
predicted_BB0.058-
predicted_H0.790-
predicted_HR0.080-
predicted_OBP0.337-
predicted_R0.407-
predicted_RBI0.320-
predicted_SLG0.437-
predicted_SO0.640-
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.0190.019
predicted_3B0.049-0.009
predicted_AB2.6680.168
predicted_AVG0.318-0.013
predicted_BB0.0790.021
predicted_H0.8200.030
predicted_HBP0.010-
predicted_HR0.0930.013
predicted_OBP0.332-0.005
predicted_R0.4470.040
predicted_RBI0.3610.041
predicted_SLG0.4420.005
predicted_SO0.6550.015
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.0190.000
predicted_3B0.0490.000
predicted_AB2.6680.000
predicted_AVG0.300-0.018
predicted_BB0.079-0.001
predicted_H0.801-0.018
predicted_HBP0.0100.000
predicted_HR0.091-0.003
predicted_OBP0.321-0.011
predicted_R0.430-0.017
predicted_RBI0.347-0.014
predicted_SLG0.4460.004
predicted_SO0.6590.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.67), rates preserved: AVG=0.305 HR/AB=0.034

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.1260.126
3B0.0120.012
BB0.2720.272
H0.769-0.231
HR0.1140.114
RBI0.3890.389
SO0.841-0.159
8. lineup_integer_allocation

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

MetricValueDelta vs Prev Step
2B0.000-0.126
3B0.000-0.012
AB3.0000.000
AVG0.238-
BB0.000-0.272
H1.0000.231
HR0.000-0.114
OBP0.302-
R0.0000.000
RBI0.000-0.389
SLG0.390-
SO1.0000.159
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.019
predicted_3B0.000-0.049
predicted_AB3.0000.332
predicted_AVG0.238-0.062
predicted_BB0.000-0.079
predicted_H1.0000.199
predicted_HR0.000-0.091
predicted_OBP0.302-0.019
predicted_R0.000-0.430
predicted_RBI0.000-0.347
predicted_SLG0.390-0.056
predicted_SO1.0000.341
10. kpi_run_environment

KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
AVG0.229-0.009
BB0.0000.000
H1.0000.000
HR0.0000.000
OBP0.293-0.009
R0.0000.000
RBI0.0000.000
SLG0.376-0.014
SO1.0000.000
11. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0001.000
BB0.0000.000
H2.0001.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R1.0001.000
RBI0.0000.000
SF0.0000.000
SO1.0000.000
12. 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
H2.0000.000
HBP0.0000.000
HR0.0000.000
PA4.0000.000
R1.0000.000
RBI0.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: 18
Reference playing time: 3.801
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.0006.0000.0000.0000.0002.0004.0000.0003.0000.46150.46150.46150.46150.00000.15380.00000.2308
last_100.2010-26.00010.0000.0000.0002.0006.0006.0001.0004.0000.38460.39290.61540.38460.07690.23080.03850.1538
season0.6018-43.00011.0000.0001.0002.0006.0007.0001.00011.0000.25580.26670.44190.25580.04650.13950.02330.2558
Weighted Prediction From Real Data
MetricValue
predicted_2B0.0560
predicted_3B0.0300
predicted_AB3.0040
predicted_AVG0.2928
predicted_BB0.1220
predicted_H0.8800
predicted_HBP0.0100
predicted_HR0.1200
predicted_OBP0.3207
predicted_R0.5280
predicted_RBI0.4420
predicted_SLG0.4512
predicted_SO0.6840
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.00000.05600.0186model_form_blend
predicted_3B0.05800.03000.0487model_form_blend
predicted_AB2.50003.00402.6678model_form_blend
predicted_AVG0.33100.29280.3183model_form_blend
predicted_BB0.05800.12200.0793model_form_blend
predicted_H0.79000.88000.8200model_form_blend
predicted_HBP-0.01000.0100form_only
predicted_HR0.08000.12000.0933model_form_blend
predicted_OBP0.33700.32070.3316model_form_blend
predicted_R0.40700.52800.4473model_form_blend
predicted_RBI0.32000.44200.3606model_form_blend
predicted_SLG0.43700.45120.4417model_form_blend
predicted_SO0.64000.68400.6547model_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 date30
Season rows before report date30
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
H2
2B0
3B0
HR0
R1
RBI0
BB0
SO1
SF0
HBP0

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_BB0
Hitting_GIDP0
Hitting_H1
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R1
Hitting_RBI0
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
allPositionsPlayedC
gameID20261003_SD@MIL
game_typefull
mlbID806956
playerID806956
playerNameEthan Salas
posC
startedTrue
startingPositionC
teamSD
teamID23
game_date2026-10-03
sl_k_percent22.5
sl_bb_percent2.5
sl_woba0.316
sl_xwoba0.227
sl_xba0.188
sl_xslg0.316
sl_sweet_spot_percent23.3
sl_barrel_batted_rate3.3
sl_hard_hit_percent33.3
sl_exit_velocity_avg90.1
sl_launch_angle_avg25.7
sl_whiff_percent19.4
sl_swing_percent48.3
Xander Bogaerts (593428) · BATTER · SS · Team SD
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 587
All-history rows before 20261006: 587
System season_avg: 0.2340
Data season_avg (2026 season-to-date): 0.2357
Diff (system - data): -0.0017
System opponent_avg: 0.1880

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_2B0.1210.0000.000Hitting_2B0.1260.000-0.1260.000
predicted_3B0.0060.0000.000Hitting_3B0.0090.000-0.0090.000
predicted_AB3.4014.0004.000Hitting_AB3.5063.0000.4941.000
predicted_AVG0.2230.2500.250Hitting_AVG0.2360.0000.0140.250
predicted_BB0.5030.0000.000Hitting_BB0.5181.000-0.518-1.000
predicted_CS-0.0000.000BaseRunning_CS0.0070.000-0.0070.000
predicted_H0.7601.0001.000Hitting_H0.8260.0000.1741.000
predicted_HR0.1400.0000.000Hitting_HR0.0900.000-0.0900.000
predicted_OBP0.3800.2500.250Hitting_OBP0.3350.250-0.0850.000
predicted_R0.4521.0001.000Hitting_R0.4550.0000.5451.000
predicted_RBI0.4600.0000.000Hitting_RBI0.4240.000-0.4240.000
predicted_SLG0.4320.2500.250Hitting_SLG0.3540.000-0.1040.250
predicted_SO0.7130.0000.000Hitting_SO0.7212.000-0.721-2.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_AB: 3.4010 -> 4.0000 (boost 0.5990, better)
Biggest Deboostpredicted_SO: 0.7130 -> 0.0000 (deboost -0.7130, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend44040predicted_H: 0.7600 -> 0.8329 (boost 0.0729, 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.3837 -> 0.3473 (deboost -0.0364, 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_BB: 0.5399 -> 1.0000 (boost 0.4601, better)predicted_RBI: 0.4216 -> 0.0000 (deboost -0.4216, worse)AB rounded to 3 (raw=3.40), rates preserved: AVG=0.243 HR/AB=0.044
6bvp_blend10101-predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse)Sample-size BvP blend (BvP AB=16.0, weight=0.139, BvP AVG=0.188)
7consistency_constraints10101-predicted_R: 0.4958 -> 0.0000 (deboost -0.4958, worse)Enforced H<=AB, HR<=H, safety nets, derived R
8hitter_rate_engine64251predicted_BB: 0.0000 -> 0.4641 (boost 0.4641, better)predicted_SO: 1.0000 -> 0.7241 (deboost -0.2759, 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_allocation93627predicted_BB: 0.4641 -> 1.0000 (boost 0.5359, better)predicted_RBI: 0.3476 -> 0.0000 (deboost -0.3476, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
10embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
11kpi_run_environment30303-predicted_SLG: 0.3510 -> 0.3390 (deboost -0.0120, worse)KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup
12play_by_play_realization42231predicted_AB: 3.0000 -> 4.0000 (boost 1.0000, better)predicted_BB: 1.0000 -> 0.0000 (deboost -1.0000, worse)Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
13simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
14current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "593428",
  "player_name": "Xander Bogaerts",
  "position": "SS",
  "team": "SD",
  "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.006,
        "predicted_AB": 3.401,
        "predicted_AVG": 0.223,
        "predicted_BB": 0.503,
        "predicted_H": 0.76,
        "predicted_HR": 0.14,
        "predicted_OBP": 0.38,
        "predicted_R": 0.452,
        "predicted_RBI": 0.46,
        "predicted_SLG": 0.432,
        "predicted_SO": 0.713
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "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.1271,
        "predicted_3B": 0.0051,
        "predicted_AB": 3.3591,
        "predicted_AVG": 0.2481,
        "predicted_BB": 0.5432,
        "predicted_H": 0.8329,
        "predicted_HBP": 0.015,
        "predicted_HR": 0.1557,
        "predicted_OBP": 0.3837,
        "predicted_R": 0.5153,
        "predicted_RBI": 0.4382,
        "predicted_SLG": 0.4544,
        "predicted_SO": 0.7134
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.223,
          "after": 0.2481,
          "delta": 0.0251,
          "percent_delta": 0.1126,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.76,
          "after": 0.8329,
          "delta": 0.0729,
          "percent_delta": 0.0959,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.452,
          "after": 0.5153,
          "delta": 0.0633,
          "percent_delta": 0.14,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.432,
          "after": 0.4544,
          "delta": 0.0224,
          "percent_delta": 0.0519,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 4,
        "boosted_metrics": 4,
        "deboosted_metrics": 0,
        "better_metrics": 4,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_H",
          "before": 0.76,
          "after": 0.8329,
          "delta": 0.0729,
          "percent_delta": 0.0959,
          "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": 157
      }
    },
    {
      "index": 3,
      "step": "team_form_snapshot",
      "description": "Step 3: player projection adjusted by team form snapshot (record, run differential, streak, offense, defense, runs allowed)",
      "stats": {
        "predicted_2B": 0.1271,
        "predicted_3B": 0.0051,
        "predicted_AB": 3.3591,
        "predicted_AVG": 0.2423,
        "predicted_BB": 0.5399,
        "predicted_H": 0.8141,
        "predicted_HBP": 0.015,
        "predicted_HR": 0.1513,
        "predicted_OBP": 0.3473,
        "predicted_R": 0.4958,
        "predicted_RBI": 0.4216,
        "predicted_SLG": 0.4184,
        "predicted_SO": 0.7178
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.2481,
          "after": 0.2423,
          "delta": -0.0058,
          "percent_delta": -0.0234,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3837,
          "after": 0.3473,
          "delta": -0.0364,
          "percent_delta": -0.0949,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4544,
          "after": 0.4184,
          "delta": -0.036,
          "percent_delta": -0.0792,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.3837,
          "after": 0.3473,
          "delta": -0.0364,
          "percent_delta": -0.0949,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 3 (raw=3.40), rates preserved: AVG=0.243 HR/AB=0.044",
      "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": 0.0,
        "predicted_SB": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1271,
          "after": 0.0,
          "delta": -0.1271,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AB",
          "before": 3.3591,
          "after": 3.0,
          "delta": -0.3591,
          "percent_delta": -0.1069,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.5399,
          "after": 1.0,
          "delta": 0.4601,
          "percent_delta": 0.8522,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8141,
          "after": 1.0,
          "delta": 0.1859,
          "percent_delta": 0.2284,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.1513,
          "after": 0.0,
          "delta": -0.1513,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4216,
          "after": 0.0,
          "delta": -0.4216,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.7178,
          "after": 1.0,
          "delta": 0.2822,
          "percent_delta": 0.3931,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 7,
        "boosted_metrics": 3,
        "deboosted_metrics": 4,
        "better_metrics": 2,
        "worse_metrics": 5,
        "biggest_boost": {
          "metric": "predicted_BB",
          "before": 0.5399,
          "after": 1.0,
          "delta": 0.4601,
          "percent_delta": 0.8522,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.4216,
          "after": 0.0,
          "delta": -0.4216,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 6,
      "step": "bvp_blend",
      "description": "Sample-size BvP blend (BvP AB=16.0, weight=0.139, BvP AVG=0.188)",
      "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_BB",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 0,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 1,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_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.8609,
        "bvp": 0.1391
      }
    },
    {
      "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_R",
          "before": 0.4958,
          "after": 0.0,
          "delta": -0.4958,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 0,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 1,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_R",
          "before": 0.4958,
          "after": 0.0,
          "delta": -0.4958,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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.1252,
        "predicted_3B": 0.0072,
        "predicted_BB": 0.4641,
        "predicted_H": 0.7689,
        "predicted_HR": 0.101,
        "predicted_RBI": 0.3476,
        "predicted_SO": 0.7241
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1252,
          "delta": 0.1252,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.4641,
          "delta": 0.4641,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7689,
          "delta": -0.2311,
          "percent_delta": -0.2311,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.101,
          "delta": 0.101,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.3476,
          "delta": 0.3476,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.7241,
          "delta": -0.2759,
          "percent_delta": -0.2759,
          "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.4641,
          "delta": 0.4641,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.7241,
          "delta": -0.2759,
          "percent_delta": -0.2759,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      }
    },
    {
      "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_AVG": 0.223,
        "predicted_BB": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.32,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.351,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1252,
          "after": 0.0,
          "delta": -0.1252,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2423,
          "after": 0.223,
          "delta": -0.0193,
          "percent_delta": -0.0797,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.4641,
          "after": 1.0,
          "delta": 0.5359,
          "percent_delta": 1.1547,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.7689,
          "after": 1.0,
          "delta": 0.2311,
          "percent_delta": 0.3006,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.101,
          "after": 0.0,
          "delta": -0.101,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3473,
          "after": 0.32,
          "delta": -0.0273,
          "percent_delta": -0.0786,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3476,
          "after": 0.0,
          "delta": -0.3476,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.4184,
          "after": 0.351,
          "delta": -0.0674,
          "percent_delta": -0.1611,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.7241,
          "after": 1.0,
          "delta": 0.2759,
          "percent_delta": 0.381,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 9,
        "boosted_metrics": 3,
        "deboosted_metrics": 6,
        "better_metrics": 2,
        "worse_metrics": 7,
        "biggest_boost": {
          "metric": "predicted_BB",
          "before": 0.4641,
          "after": 1.0,
          "delta": 0.5359,
          "percent_delta": 1.1547,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.3476,
          "after": 0.0,
          "delta": -0.3476,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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.223,
        "predicted_BB": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.32,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.351,
        "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
      }
    },
    {
      "index": 11,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 3.0,
        "predicted_AVG": 0.215,
        "predicted_BB": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.311,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.339,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.223,
          "after": 0.215,
          "delta": -0.008,
          "percent_delta": -0.0359,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.32,
          "after": 0.311,
          "delta": -0.009,
          "percent_delta": -0.0281,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.351,
          "after": 0.339,
          "delta": -0.012,
          "percent_delta": -0.0342,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.339,
          "delta": -0.012,
          "percent_delta": -0.0342,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 12,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "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_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.0,
        "predicted_SO": 0.0
      },
      "changed_metrics": [
        {
          "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_R",
          "before": 0.0,
          "after": 1.0,
          "delta": 1.0,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 4,
        "boosted_metrics": 2,
        "deboosted_metrics": 2,
        "better_metrics": 3,
        "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_BB",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 13,
      "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_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.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
      },
      "reference_only": true
    },
    {
      "index": 14,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.215,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.311,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.339,
        "predicted_SO": 0.0,
        "predicted_SS": 0.0,
        "predicted_TB": 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
      }
    }
  ],
  "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_AB",
        "before": 3.401,
        "after": 4.0,
        "delta": 0.599,
        "percent_delta": 0.1761,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.223,
        "after": 0.215,
        "delta": -0.008,
        "percent_delta": -0.0359,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.503,
        "after": 0.0,
        "delta": -0.503,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.76,
        "after": 1.0,
        "delta": 0.24,
        "percent_delta": 0.3158,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_HR",
        "before": 0.14,
        "after": 0.0,
        "delta": -0.14,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.38,
        "after": 0.311,
        "delta": -0.069,
        "percent_delta": -0.1816,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.452,
        "after": 1.0,
        "delta": 0.548,
        "percent_delta": 1.2124,
        "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.432,
        "after": 0.339,
        "delta": -0.093,
        "percent_delta": -0.2153,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.713,
        "after": 0.0,
        "delta": -0.713,
        "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_AB",
        "before": 3.401,
        "after": 4.0,
        "delta": 0.599,
        "percent_delta": 0.1761,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_SO",
        "before": 0.713,
        "after": 0.0,
        "delta": -0.713,
        "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.121-
predicted_3B0.006-
predicted_AB3.401-
predicted_AVG0.223-
predicted_BB0.503-
predicted_H0.760-
predicted_HR0.140-
predicted_OBP0.380-
predicted_R0.452-
predicted_RBI0.460-
predicted_SLG0.432-
predicted_SO0.713-
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.1270.006
predicted_3B0.005-0.001
predicted_AB3.359-0.042
predicted_AVG0.2480.025
predicted_BB0.5430.040
predicted_H0.8330.073
predicted_HBP0.015-
predicted_HR0.1560.016
predicted_OBP0.3840.004
predicted_R0.5150.063
predicted_RBI0.438-0.022
predicted_SLG0.4540.022
predicted_SO0.7130.000
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.1270.000
predicted_3B0.0050.000
predicted_AB3.3590.000
predicted_AVG0.242-0.006
predicted_BB0.540-0.003
predicted_H0.814-0.019
predicted_HBP0.0150.000
predicted_HR0.151-0.004
predicted_OBP0.347-0.036
predicted_R0.496-0.019
predicted_RBI0.422-0.017
predicted_SLG0.418-0.036
predicted_SO0.7180.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.40), rates preserved: AVG=0.243 HR/AB=0.044

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

Sample-size BvP blend (BvP AB=16.0, weight=0.139, BvP AVG=0.188)

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB0.000-1.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.1250.125
3B0.0070.007
BB0.4640.464
H0.769-0.231
HR0.1010.101
RBI0.3480.348
SO0.724-0.276
9. lineup_integer_allocation

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

MetricValueDelta vs Prev Step
2B0.000-0.125
3B0.000-0.007
AB3.0000.000
AVG0.223-
BB1.0000.536
H1.0000.231
HR0.000-0.101
OBP0.320-
R0.0000.000
RBI0.000-0.348
SLG0.351-
SO1.0000.276
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.127
predicted_3B0.000-0.005
predicted_AB3.000-0.359
predicted_AVG0.223-0.019
predicted_BB1.0000.460
predicted_H1.0000.186
predicted_HR0.000-0.151
predicted_OBP0.320-0.027
predicted_R0.000-0.496
predicted_RBI0.000-0.422
predicted_SLG0.351-0.067
predicted_SO1.0000.282
11. kpi_run_environment

KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
AVG0.215-0.008
BB1.0000.000
H1.0000.000
HR0.0000.000
OBP0.311-0.009
R0.0000.000
RBI0.0000.000
SLG0.339-0.012
SO1.0000.000
12. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0001.000
BB0.000-1.000
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R1.0001.000
RBI0.0000.000
SF0.0000.000
SO0.000-1.000
13. 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
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA4.0000.000
R1.0000.000
RBI0.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: 157
Reference playing time: 3.801
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.0001.0000.0002.0003.0004.0004.0004.0000.37500.50000.81250.37500.12500.18750.25000.2500
last_100.2010-30.00010.0001.0000.0002.0003.0008.0007.0006.0000.33330.45950.56670.33330.06670.10000.23330.2000
season0.60157-534.000125.00019.0001.00014.00059.00071.00079.000112.0000.23410.33440.35210.23410.02620.11050.14790.2097
Weighted Prediction From Real Data
MetricValue
predicted_2B0.1350
predicted_3B0.0040
predicted_AB3.3050
predicted_AVG0.2806
predicted_BB0.5950
predicted_H0.9270
predicted_HBP0.0150
predicted_HR0.1760
predicted_OBP0.3885
predicted_R0.5970
predicted_RBI0.4100
predicted_SLG0.4834
predicted_SO0.7140
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.12100.13500.1271model_form_blend
predicted_3B0.00600.00400.0051model_form_blend
predicted_AB3.40103.30503.3591model_form_blend
predicted_AVG0.22300.28060.2481model_form_blend
predicted_BB0.50300.59500.5432model_form_blend
predicted_H0.76000.92700.8329model_form_blend
predicted_HBP-0.01500.0150form_only
predicted_HR0.14000.17600.1557model_form_blend
predicted_OBP0.38000.38850.3837model_form_blend
predicted_R0.45200.59700.5153model_form_blend
predicted_RBI0.46000.41000.4382model_form_blend
predicted_SLG0.43200.48340.4544model_form_blend
predicted_SO0.71300.71400.7134model_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 date587
Season rows before report date587
Report year2026
Profile rows used157
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
R1
RBI0
BB0
SO0
SF0
HBP0

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_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
gameID20261004_SD@MIL
game_typefull
mlbID593428
playerID593428
playerNameXander Bogaerts
posSS
startedTrue
startingPositionSS
teamSD
teamID23
game_date2026-10-04
sl_k_percent18.0
sl_bb_percent12.7
sl_woba0.306
sl_xwoba0.325
sl_xba0.248
sl_xslg0.376
sl_sweet_spot_percent27.9
sl_barrel_batted_rate5.5
sl_hard_hit_percent42.3
sl_exit_velocity_avg89.6
sl_launch_angle_avg6.7
sl_whiff_percent23.1
sl_swing_percent41.5
Dustin Harris (687957) · BATTER · LF · Team SD
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 74
All-history rows before 20261006: 74
System season_avg: 0.2780
Data season_avg (2026 season-to-date): 0.3494
Diff (system - data): -0.0714
System opponent_avg: 0.2220
System season_avg diverges from 2026 season-to-date by -0.0714. 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.0910.0000.000Hitting_2B0.1490.000-0.1490.000
predicted_3B0.0911.0001.000Hitting_3B0.1350.0000.8651.000
predicted_AB3.4304.0004.000Hitting_AB3.6355.0000.365-1.000
predicted_AVG0.2490.5000.500Hitting_AVG0.3490.0000.1510.500
predicted_BB0.2270.0000.000Hitting_BB0.2300.000-0.2300.000
predicted_CS-0.0000.000BaseRunning_CS0.0410.000-0.0410.000
predicted_H0.8502.0002.000Hitting_H1.2700.0000.7302.000
predicted_HR0.0200.0000.000Hitting_HR0.0000.0000.0000.000
predicted_OBP0.3040.5000.500Hitting_OBP0.3840.0000.1160.500
predicted_R0.5231.0001.000Hitting_R0.6620.0000.3381.000
predicted_RBI0.4202.0002.000Hitting_RBI0.7701.0001.2301.000
predicted_SLG0.3421.0001.000Hitting_SLG0.4650.0000.5351.000
predicted_SO0.4771.0001.000Hitting_SO0.4591.0000.5410.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectboosted
Changed Metrics10
Boosted Metrics6
Deboosted Metrics4
Better Metrics5
Worse Metrics5
Biggest Boostpredicted_RBI: 0.4200 -> 2.0000 (boost 1.5800, better)
Biggest Deboostpredicted_BB: 0.2270 -> 0.0000 (deboost -0.2270, 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_snapshot20202-predicted_OBP: 0.3071 -> 0.2921 (deboost -0.0150, 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_scaling83526predicted_AB: 3.4789 -> 4.0000 (boost 0.5211, better)predicted_RBI: 0.3894 -> 0.0000 (deboost -0.3894, worse)AB rounded to 4 (raw=3.48), rates preserved: AVG=0.250 HR/AB=0.005
6consistency_constraints11010predicted_R: 0.5009 -> 1.0000 (boost 0.4991, better)-Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine64251predicted_RBI: 0.0000 -> 0.4451 (boost 0.4451, better)predicted_SO: 1.0000 -> 0.6291 (deboost -0.3709, 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_allocation83544predicted_H: 0.8888 -> 1.0000 (boost 0.1112, better)predicted_SO: 0.6291 -> 0.0000 (deboost -0.6291, better)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10kpi_run_environment30303-predicted_SLG: 0.3540 -> 0.3410 (deboost -0.0130, worse)KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup
11play_by_play_realization44031predicted_RBI: 0.0000 -> 2.0000 (boost 2.0000, better)-Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
12simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
13current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "687957",
  "player_name": "Dustin Harris",
  "position": "LF",
  "team": "SD",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.091,
        "predicted_3B": 0.091,
        "predicted_AB": 3.43,
        "predicted_AVG": 0.249,
        "predicted_BB": 0.227,
        "predicted_H": 0.85,
        "predicted_HR": 0.02,
        "predicted_OBP": 0.304,
        "predicted_R": 0.523,
        "predicted_RBI": 0.42,
        "predicted_SLG": 0.342,
        "predicted_SO": 0.477
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "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.0849,
        "predicted_3B": 0.0817,
        "predicted_AB": 3.4789,
        "predicted_AVG": 0.2526,
        "predicted_BB": 0.2266,
        "predicted_H": 0.8767,
        "predicted_HBP": 0.075,
        "predicted_HR": 0.0196,
        "predicted_OBP": 0.3071,
        "predicted_R": 0.5206,
        "predicted_RBI": 0.4047,
        "predicted_SLG": 0.3389,
        "predicted_SO": 0.479
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      },
      "weights": {
        "xgboost_raw": 0.55,
        "weighted_form": 0.45,
        "form_windows": {
          "last_5": 0.2,
          "last_10": 0.2,
          "season": 0.6
        }
      },
      "window_games": {
        "last_5": 5,
        "last_10": 10,
        "season": 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.0849,
        "predicted_3B": 0.0817,
        "predicted_AB": 3.4789,
        "predicted_AVG": 0.2463,
        "predicted_BB": 0.2252,
        "predicted_H": 0.8569,
        "predicted_HBP": 0.075,
        "predicted_HR": 0.019,
        "predicted_OBP": 0.2921,
        "predicted_R": 0.5009,
        "predicted_RBI": 0.3894,
        "predicted_SLG": 0.3341,
        "predicted_SO": 0.4819
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.2526,
          "after": 0.2463,
          "delta": -0.0063,
          "percent_delta": -0.0249,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3071,
          "after": 0.2921,
          "delta": -0.015,
          "percent_delta": -0.0488,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.3071,
          "after": 0.2921,
          "delta": -0.015,
          "percent_delta": -0.0488,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 4 (raw=3.48), rates preserved: AVG=0.250 HR/AB=0.005",
      "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.0849,
          "after": 0.0,
          "delta": -0.0849,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_3B",
          "before": 0.0817,
          "after": 0.0,
          "delta": -0.0817,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AB",
          "before": 3.4789,
          "after": 4.0,
          "delta": 0.5211,
          "percent_delta": 0.1498,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.2252,
          "after": 0.0,
          "delta": -0.2252,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8569,
          "after": 1.0,
          "delta": 0.1431,
          "percent_delta": 0.167,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HBP",
          "before": 0.075,
          "after": 0.0,
          "delta": -0.075,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3894,
          "after": 0.0,
          "delta": -0.3894,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.4819,
          "after": 1.0,
          "delta": 0.5181,
          "percent_delta": 1.0751,
          "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_AB",
          "before": 3.4789,
          "after": 4.0,
          "delta": 0.5211,
          "percent_delta": 0.1498,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.3894,
          "after": 0.0,
          "delta": -0.3894,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_R",
          "before": 0.5009,
          "after": 1.0,
          "delta": 0.4991,
          "percent_delta": 0.9964,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 1,
        "deboosted_metrics": 0,
        "better_metrics": 1,
        "worse_metrics": 0,
        "biggest_boost": {
          "metric": "predicted_R",
          "before": 0.5009,
          "after": 1.0,
          "delta": 0.4991,
          "percent_delta": 0.9964,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "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.1405,
        "predicted_3B": 0.0206,
        "predicted_BB": 0.3218,
        "predicted_H": 0.8888,
        "predicted_HR": 0.0742,
        "predicted_RBI": 0.4451,
        "predicted_SO": 0.6291
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1405,
          "delta": 0.1405,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.3218,
          "delta": 0.3218,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8888,
          "delta": -0.1112,
          "percent_delta": -0.1112,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.0742,
          "delta": 0.0742,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.4451,
          "delta": 0.4451,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.6291,
          "delta": -0.3709,
          "percent_delta": -0.3709,
          "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.4451,
          "delta": 0.4451,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.6291,
          "delta": -0.3709,
          "percent_delta": -0.3709,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      }
    },
    {
      "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_AVG": 0.243,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.31,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.354,
        "predicted_SO": 0.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1405,
          "after": 0.0,
          "delta": -0.1405,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3218,
          "after": 0.0,
          "delta": -0.3218,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8888,
          "after": 1.0,
          "delta": 0.1112,
          "percent_delta": 0.1251,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0742,
          "after": 0.0,
          "delta": -0.0742,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2921,
          "after": 0.31,
          "delta": 0.0179,
          "percent_delta": 0.0613,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4451,
          "after": 0.0,
          "delta": -0.4451,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3341,
          "after": 0.354,
          "delta": 0.0199,
          "percent_delta": 0.0596,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.6291,
          "after": 0.0,
          "delta": -0.6291,
          "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_H",
          "before": 0.8888,
          "after": 1.0,
          "delta": 0.1112,
          "percent_delta": 0.1251,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 0.6291,
          "after": 0.0,
          "delta": -0.6291,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      }
    },
    {
      "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.31,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.354,
        "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
      }
    },
    {
      "index": 10,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.235,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.3,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.341,
        "predicted_SO": 0.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.243,
          "after": 0.235,
          "delta": -0.008,
          "percent_delta": -0.0329,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.31,
          "after": 0.3,
          "delta": -0.01,
          "percent_delta": -0.0323,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.354,
          "after": 0.341,
          "delta": -0.013,
          "percent_delta": -0.0367,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.341,
          "delta": -0.013,
          "percent_delta": -0.0367,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 11,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 1.0,
        "predicted_AB": 4.0,
        "predicted_BB": 0.0,
        "predicted_H": 2.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 1.0,
        "predicted_RBI": 2.0,
        "predicted_SF": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_3B",
          "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": 2.0,
          "delta": 1.0,
          "percent_delta": 1.0,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 2.0,
          "delta": 2.0,
          "percent_delta": null,
          "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": 4,
        "boosted_metrics": 4,
        "deboosted_metrics": 0,
        "better_metrics": 3,
        "worse_metrics": 1,
        "biggest_boost": {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 2.0,
          "delta": 2.0,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": null
      }
    },
    {
      "index": 12,
      "step": "simulation_box_score_reference",
      "description": "Attached simulation box score without overwriting model prediction",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 1.0,
        "predicted_AB": 4.0,
        "predicted_BB": 0.0,
        "predicted_H": 2.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 1.0,
        "predicted_RBI": 2.0,
        "predicted_SF": 0.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
      },
      "reference_only": true
    },
    {
      "index": 13,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 1.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.235,
        "predicted_BB": 0.0,
        "predicted_CS": 0.0,
        "predicted_H": 2.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_LF": 0.0,
        "predicted_OBP": 0.3,
        "predicted_R": 1.0,
        "predicted_RBI": 2.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.341,
        "predicted_SO": 1.0,
        "predicted_TB": 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
      }
    }
  ],
  "total_change": {
    "from_step": "xgboost_raw",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_2B",
        "before": 0.091,
        "after": 0.0,
        "delta": -0.091,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_3B",
        "before": 0.091,
        "after": 1.0,
        "delta": 0.909,
        "percent_delta": 9.989,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AB",
        "before": 3.43,
        "after": 4.0,
        "delta": 0.57,
        "percent_delta": 0.1662,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.249,
        "after": 0.235,
        "delta": -0.014,
        "percent_delta": -0.0562,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.227,
        "after": 0.0,
        "delta": -0.227,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.85,
        "after": 2.0,
        "delta": 1.15,
        "percent_delta": 1.3529,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_HBP",
        "before": 0.075,
        "after": 0.0,
        "delta": -0.075,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.523,
        "after": 1.0,
        "delta": 0.477,
        "percent_delta": 0.912,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.42,
        "after": 2.0,
        "delta": 1.58,
        "percent_delta": 3.7619,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.477,
        "after": 1.0,
        "delta": 0.523,
        "percent_delta": 1.0964,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 10,
      "boosted_metrics": 6,
      "deboosted_metrics": 4,
      "better_metrics": 5,
      "worse_metrics": 5,
      "biggest_boost": {
        "metric": "predicted_RBI",
        "before": 0.42,
        "after": 2.0,
        "delta": 1.58,
        "percent_delta": 3.7619,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_BB",
        "before": 0.227,
        "after": 0.0,
        "delta": -0.227,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "boosted"
    }
  }
}

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.091-
predicted_3B0.091-
predicted_AB3.430-
predicted_AVG0.249-
predicted_BB0.227-
predicted_H0.850-
predicted_HR0.020-
predicted_OBP0.304-
predicted_R0.523-
predicted_RBI0.420-
predicted_SLG0.342-
predicted_SO0.477-
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.085-0.006
predicted_3B0.082-0.009
predicted_AB3.4790.049
predicted_AVG0.2530.004
predicted_BB0.227-0.000
predicted_H0.8770.027
predicted_HBP0.075-
predicted_HR0.020-0.000
predicted_OBP0.3070.003
predicted_R0.521-0.002
predicted_RBI0.405-0.015
predicted_SLG0.339-0.003
predicted_SO0.4790.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.0850.000
predicted_3B0.0820.000
predicted_AB3.4790.000
predicted_AVG0.246-0.006
predicted_BB0.225-0.001
predicted_H0.857-0.020
predicted_HBP0.0750.000
predicted_HR0.019-0.001
predicted_OBP0.292-0.015
predicted_R0.501-0.020
predicted_RBI0.389-0.015
predicted_SLG0.334-0.005
predicted_SO0.4820.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.48), rates preserved: AVG=0.250 HR/AB=0.005

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.1410.141
3B0.0210.021
BB0.3220.322
H0.889-0.111
HR0.0740.074
RBI0.4450.445
SO0.629-0.371
8. lineup_integer_allocation

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

MetricValueDelta vs Prev Step
2B0.000-0.141
3B0.000-0.021
AB4.0000.000
AVG0.243-
BB0.000-0.322
H1.0000.111
HR0.000-0.074
OBP0.310-
R1.0000.000
RBI0.000-0.445
SLG0.354-
SO0.000-0.629
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.085
predicted_3B0.000-0.082
predicted_AB4.0000.521
predicted_AVG0.243-0.003
predicted_BB0.000-0.225
predicted_H1.0000.143
predicted_HR0.000-0.019
predicted_OBP0.3100.018
predicted_R1.0000.499
predicted_RBI0.000-0.389
predicted_SLG0.3540.020
predicted_SO0.000-0.482
10. kpi_run_environment

KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0000.000
AVG0.235-0.008
BB0.0000.000
H1.0000.000
HR0.0000.000
OBP0.300-0.010
R1.0000.000
RBI0.0000.000
SLG0.341-0.013
SO0.0000.000
11. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

MetricValueDelta vs Prev Step
2B0.0000.000
3B1.0001.000
AB4.0000.000
BB0.0000.000
H2.0001.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R1.0000.000
RBI2.0002.000
SF0.0000.000
SO1.0001.000
12. simulation_box_score_reference

Attached simulation box score without overwriting model prediction

MetricValueDelta vs Prev Step
2B0.0000.000
3B1.0000.000
AB4.0000.000
BB0.0000.000
H2.0000.000
HBP0.0000.000
HR0.0000.000
PA4.0000.000
R1.0000.000
RBI2.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: 44
Reference playing time: 3.801
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.0005.0000.0000.0000.0001.0002.0001.0001.0000.25000.28570.25000.25000.00000.05000.05000.0500
last_100.2010-37.0008.0000.0001.0000.0002.0006.0002.0004.0000.21620.28570.27030.21620.00000.05410.05410.1081
season0.6044-144.00040.0004.0004.0000.00020.00023.00010.00021.0000.27780.33120.36110.27780.00000.13890.06940.1458
Weighted Prediction From Real Data
MetricValue
predicted_2B0.0760
predicted_3B0.0680
predicted_AB3.5510
predicted_AVG0.2580
predicted_BB0.2260
predicted_H0.9160
predicted_HBP0.0750
predicted_HR0.0190
predicted_OBP0.3118
predicted_R0.5170
predicted_RBI0.3820
predicted_SLG0.3344
predicted_SO0.4820
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.09100.07600.0849model_form_blend
predicted_3B0.09100.06800.0817model_form_blend
predicted_AB3.43003.55103.4789model_form_blend
predicted_AVG0.24900.25800.2526model_form_blend
predicted_BB0.22700.22600.2266model_form_blend
predicted_H0.85000.91600.8767model_form_blend
predicted_HBP-0.07500.0750form_only
predicted_HR0.02000.01900.0196model_form_blend
predicted_OBP0.30400.31180.3071model_form_blend
predicted_R0.52300.51700.5206model_form_blend
predicted_RBI0.42000.38200.4047model_form_blend
predicted_SLG0.34200.33440.3389model_form_blend
predicted_SO0.47700.48200.4790model_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 date74
Season rows before report date74
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
PA4
AB4
H2
2B0
3B1
HR0
R1
RBI2
BB0
SO1
SF0
HBP0

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.0
Hitting_BB0
Hitting_GIDP0
Hitting_H0
Hitting_HBP0
Hitting_HR0
Hitting_IBB0
Hitting_R0
Hitting_RBI1
Hitting_SAC0
Hitting_SF0
Hitting_SO1
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
allPositionsPlayedLF
gameID20261004_SD@MIL
game_typefull
mlbID687957
playerID687957
playerNameDustin Harris
posLF
startedTrue
startingPositionLF
teamSD
teamID23
game_date2026-10-04
sl_k_percent13.2
sl_bb_percent7.2
sl_woba0.326
sl_xwoba0.314
sl_xba0.278
sl_xslg0.36
sl_sweet_spot_percent39.8
sl_barrel_batted_rate1.7
sl_hard_hit_percent19.5
sl_exit_velocity_avg85.2
sl_launch_angle_avg15.6
sl_whiff_percent19.3
sl_swing_percent48.7
Samad Taylor (669392) · BATTER · DH · Team SD
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 159
All-history rows before 20261006: 159
System season_avg: 0.3140
Data season_avg (2026 season-to-date): 0.3321
Diff (system - data): -0.0181
System opponent_avg: 0.3140
System season_avg diverges from 2026 season-to-date by -0.0181. 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.0800.0000.000Hitting_2B0.0940.000-0.0940.000
predicted_3B0.0400.0000.000Hitting_3B0.0440.000-0.0440.000
predicted_AB3.1204.0004.000Hitting_AB3.4651.0000.5353.000
predicted_AVG0.3140.5000.500Hitting_AVG0.3321.0000.168-0.500
predicted_BB0.3600.0000.000Hitting_BB0.4590.000-0.4590.000
predicted_CS-0.0000.000BaseRunning_CS0.0630.000-0.0630.000
predicted_H0.9802.0002.000Hitting_H1.1511.0000.8491.000
predicted_HR0.0400.0000.000Hitting_HR0.0380.000-0.0380.000
predicted_OBP0.3850.5000.500Hitting_OBP0.4141.0000.086-0.500
predicted_R0.5200.0000.000Hitting_R0.6230.000-0.6230.000
predicted_RBI0.3600.0000.000Hitting_RBI0.4150.000-0.4150.000
predicted_SLG0.4040.5000.500Hitting_SLG0.4171.0000.083-0.500
predicted_SO0.9400.0000.000Hitting_SO1.0500.000-1.0500.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_H: 0.9800 -> 2.0000 (boost 1.0200, better)
Biggest Deboostpredicted_SO: 0.9400 -> 0.0000 (deboost -0.9400, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend60606-predicted_H: 0.9800 -> 0.9050 (deboost -0.0750, 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.3896 -> 0.3820 (deboost -0.0076, 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_scaling52314predicted_H: 0.8845 -> 1.0000 (boost 0.1155, better)predicted_RBI: 0.3193 -> 0.0000 (deboost -0.3193, worse)AB rounded to 3 (raw=3.12), rates preserved: AVG=0.288 HR/AB=0.014
6consistency_constraints10101-predicted_R: 0.4332 -> 0.0000 (deboost -0.4332, worse)Enforced H<=AB, HR<=H, safety nets, derived R
7hitter_rate_engine54141predicted_RBI: 0.0000 -> 0.3694 (boost 0.3694, better)predicted_H: 1.0000 -> 0.8171 (deboost -0.1829, 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_allocation81717predicted_H: 0.8171 -> 1.0000 (boost 0.1829, better)predicted_RBI: 0.3694 -> 0.0000 (deboost -0.3694, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
9embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
10kpi_run_environment30303-predicted_SLG: 0.3670 -> 0.3540 (deboost -0.0130, worse)KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup
11play_by_play_realization32130predicted_AB: 3.0000 -> 4.0000 (boost 1.0000, better)predicted_SO: 1.0000 -> 0.0000 (deboost -1.0000, better)Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
12simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
13current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "669392",
  "player_name": "Samad Taylor",
  "position": "DH",
  "team": "SD",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.08,
        "predicted_3B": 0.04,
        "predicted_AB": 3.12,
        "predicted_AVG": 0.314,
        "predicted_BB": 0.36,
        "predicted_H": 0.98,
        "predicted_HR": 0.04,
        "predicted_OBP": 0.385,
        "predicted_R": 0.52,
        "predicted_RBI": 0.36,
        "predicted_SLG": 0.404,
        "predicted_SO": 0.94
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "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.08,
        "predicted_3B": 0.0323,
        "predicted_AB": 3.0463,
        "predicted_AVG": 0.2964,
        "predicted_BB": 0.3131,
        "predicted_H": 0.905,
        "predicted_HBP": 0.013,
        "predicted_HR": 0.0461,
        "predicted_OBP": 0.3602,
        "predicted_R": 0.4503,
        "predicted_RBI": 0.3319,
        "predicted_SLG": 0.3896,
        "predicted_SO": 0.905
      },
      "changed_metrics": [
        {
          "metric": "predicted_AB",
          "before": 3.12,
          "after": 3.0463,
          "delta": -0.0737,
          "percent_delta": -0.0236,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.314,
          "after": 0.2964,
          "delta": -0.0176,
          "percent_delta": -0.0561,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.98,
          "after": 0.905,
          "delta": -0.075,
          "percent_delta": -0.0765,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.385,
          "after": 0.3602,
          "delta": -0.0248,
          "percent_delta": -0.0644,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.52,
          "after": 0.4503,
          "delta": -0.0697,
          "percent_delta": -0.134,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.404,
          "after": 0.3896,
          "delta": -0.0144,
          "percent_delta": -0.0356,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 6,
        "boosted_metrics": 0,
        "deboosted_metrics": 6,
        "better_metrics": 0,
        "worse_metrics": 6,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 0.98,
          "after": 0.905,
          "delta": -0.075,
          "percent_delta": -0.0765,
          "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": 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.08,
        "predicted_3B": 0.0323,
        "predicted_AB": 3.0463,
        "predicted_AVG": 0.2904,
        "predicted_BB": 0.3112,
        "predicted_H": 0.8845,
        "predicted_HBP": 0.013,
        "predicted_HR": 0.0448,
        "predicted_OBP": 0.3561,
        "predicted_R": 0.4332,
        "predicted_RBI": 0.3193,
        "predicted_SLG": 0.382,
        "predicted_SO": 0.9105
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.2964,
          "after": 0.2904,
          "delta": -0.006,
          "percent_delta": -0.0202,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.3896,
          "after": 0.382,
          "delta": -0.0076,
          "percent_delta": -0.0195,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.3896,
          "after": 0.382,
          "delta": -0.0076,
          "percent_delta": -0.0195,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 3 (raw=3.12), rates preserved: AVG=0.288 HR/AB=0.014",
      "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.08,
          "after": 0.0,
          "delta": -0.08,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3112,
          "after": 0.0,
          "delta": -0.3112,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8845,
          "after": 1.0,
          "delta": 0.1155,
          "percent_delta": 0.1306,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3193,
          "after": 0.0,
          "delta": -0.3193,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.9105,
          "after": 1.0,
          "delta": 0.0895,
          "percent_delta": 0.0983,
          "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.8845,
          "after": 1.0,
          "delta": 0.1155,
          "percent_delta": 0.1306,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.3193,
          "after": 0.0,
          "delta": -0.3193,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_R",
          "before": 0.4332,
          "after": 0.0,
          "delta": -0.4332,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 0,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 1,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_R",
          "before": 0.4332,
          "after": 0.0,
          "delta": -0.4332,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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.1167,
        "predicted_3B": 0.0128,
        "predicted_BB": 0.3494,
        "predicted_H": 0.8171,
        "predicted_HR": 0.0784,
        "predicted_RBI": 0.3694,
        "predicted_SO": 0.9601
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1167,
          "delta": 0.1167,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.3494,
          "delta": 0.3494,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8171,
          "delta": -0.1829,
          "percent_delta": -0.1829,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.0784,
          "delta": 0.0784,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.3694,
          "delta": 0.3694,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "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.3694,
          "delta": 0.3694,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.8171,
          "delta": -0.1829,
          "percent_delta": -0.1829,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_AVG": 0.251,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.329,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.367,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1167,
          "after": 0.0,
          "delta": -0.1167,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.2904,
          "after": 0.251,
          "delta": -0.0394,
          "percent_delta": -0.1357,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3494,
          "after": 0.0,
          "delta": -0.3494,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.8171,
          "after": 1.0,
          "delta": 0.1829,
          "percent_delta": 0.2238,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0784,
          "after": 0.0,
          "delta": -0.0784,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.3561,
          "after": 0.329,
          "delta": -0.0271,
          "percent_delta": -0.0761,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3694,
          "after": 0.0,
          "delta": -0.3694,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.382,
          "after": 0.367,
          "delta": -0.015,
          "percent_delta": -0.0393,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 8,
        "boosted_metrics": 1,
        "deboosted_metrics": 7,
        "better_metrics": 1,
        "worse_metrics": 7,
        "biggest_boost": {
          "metric": "predicted_H",
          "before": 0.8171,
          "after": 1.0,
          "delta": 0.1829,
          "percent_delta": 0.2238,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_RBI",
          "before": 0.3694,
          "after": 0.0,
          "delta": -0.3694,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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.251,
        "predicted_BB": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.329,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.367,
        "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
      }
    },
    {
      "index": 10,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup",
      "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.319,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.354,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.251,
          "after": 0.242,
          "delta": -0.009,
          "percent_delta": -0.0359,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.329,
          "after": 0.319,
          "delta": -0.01,
          "percent_delta": -0.0304,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.367,
          "after": 0.354,
          "delta": -0.013,
          "percent_delta": -0.0354,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.354,
          "delta": -0.013,
          "percent_delta": -0.0354,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 11,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_BB": 0.0,
        "predicted_H": 2.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.0,
        "predicted_SO": 0.0
      },
      "changed_metrics": [
        {
          "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_H",
          "before": 1.0,
          "after": 2.0,
          "delta": 1.0,
          "percent_delta": 1.0,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "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": 3.0,
          "after": 4.0,
          "delta": 1.0,
          "percent_delta": 0.3333,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      }
    },
    {
      "index": 12,
      "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_H": 2.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.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
      },
      "reference_only": true
    },
    {
      "index": 13,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 4.0,
        "predicted_AVG": 0.242,
        "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.319,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.354,
        "predicted_SO": 0.0,
        "predicted_TB": 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
      }
    }
  ],
  "total_change": {
    "from_step": "xgboost_raw",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_2B",
        "before": 0.08,
        "after": 0.0,
        "delta": -0.08,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AB",
        "before": 3.12,
        "after": 4.0,
        "delta": 0.88,
        "percent_delta": 0.2821,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.314,
        "after": 0.242,
        "delta": -0.072,
        "percent_delta": -0.2293,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.36,
        "after": 0.0,
        "delta": -0.36,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.98,
        "after": 2.0,
        "delta": 1.02,
        "percent_delta": 1.0408,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_OBP",
        "before": 0.385,
        "after": 0.319,
        "delta": -0.066,
        "percent_delta": -0.1714,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.52,
        "after": 0.0,
        "delta": -0.52,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_RBI",
        "before": 0.36,
        "after": 0.0,
        "delta": -0.36,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SLG",
        "before": 0.404,
        "after": 0.354,
        "delta": -0.05,
        "percent_delta": -0.1238,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.94,
        "after": 0.0,
        "delta": -0.94,
        "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_H",
        "before": 0.98,
        "after": 2.0,
        "delta": 1.02,
        "percent_delta": 1.0408,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_SO",
        "before": 0.94,
        "after": 0.0,
        "delta": -0.94,
        "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.080-
predicted_3B0.040-
predicted_AB3.120-
predicted_AVG0.314-
predicted_BB0.360-
predicted_H0.980-
predicted_HR0.040-
predicted_OBP0.385-
predicted_R0.520-
predicted_RBI0.360-
predicted_SLG0.404-
predicted_SO0.940-
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.0800.000
predicted_3B0.032-0.008
predicted_AB3.046-0.074
predicted_AVG0.296-0.018
predicted_BB0.313-0.047
predicted_H0.905-0.075
predicted_HBP0.013-
predicted_HR0.0460.006
predicted_OBP0.360-0.025
predicted_R0.450-0.070
predicted_RBI0.332-0.028
predicted_SLG0.390-0.014
predicted_SO0.905-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.0800.000
predicted_3B0.0320.000
predicted_AB3.0460.000
predicted_AVG0.290-0.006
predicted_BB0.311-0.002
predicted_H0.884-0.021
predicted_HBP0.0130.000
predicted_HR0.045-0.001
predicted_OBP0.356-0.004
predicted_R0.433-0.017
predicted_RBI0.319-0.013
predicted_SLG0.382-0.008
predicted_SO0.9100.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=3.12), rates preserved: AVG=0.288 HR/AB=0.014

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.1170.117
3B0.0130.013
BB0.3490.349
H0.817-0.183
HR0.0780.078
RBI0.3690.369
SO0.960-0.040
8. lineup_integer_allocation

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

MetricValueDelta vs Prev Step
2B0.000-0.117
3B0.000-0.013
AB3.0000.000
AVG0.251-
BB0.000-0.349
H1.0000.183
HR0.000-0.078
OBP0.329-
R0.0000.000
RBI0.000-0.369
SLG0.367-
SO1.0000.040
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.032
predicted_AB3.000-0.046
predicted_AVG0.251-0.039
predicted_BB0.000-0.311
predicted_H1.0000.116
predicted_HR0.000-0.045
predicted_OBP0.329-0.027
predicted_R0.000-0.433
predicted_RBI0.000-0.319
predicted_SLG0.367-0.015
predicted_SO1.0000.090
10. kpi_run_environment

KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
AVG0.242-0.009
BB0.0000.000
H1.0000.000
HR0.0000.000
OBP0.319-0.010
R0.0000.000
RBI0.0000.000
SLG0.354-0.013
SO1.0000.000
11. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB4.0001.000
BB0.0000.000
H2.0001.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R0.0000.000
RBI0.0000.000
SF0.0000.000
SO0.000-1.000
12. 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
H2.0000.000
HBP0.0000.000
HR0.0000.000
PA4.0000.000
R0.0000.000
RBI0.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: 50
Reference playing time: 3.801
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.0000.0000.0000.0000.0000.0000.0003.0000.18180.18180.18180.18180.00000.00000.00000.2727
last_100.2010-24.0006.0001.0000.0001.0003.0002.0002.0008.0000.25000.29630.41670.25000.04170.12500.08330.3333
season0.6050-156.00049.0004.0002.0002.00018.00026.00018.00047.0000.31410.38640.40380.31410.01280.11540.11540.3013
Weighted Prediction From Real Data
MetricValue
predicted_2B0.0800
predicted_3B0.0210
predicted_AB2.9390
predicted_AVG0.2709
predicted_BB0.2450
predicted_H0.7960
predicted_HBP0.0130
predicted_HR0.0550
predicted_OBP0.3242
predicted_R0.3490
predicted_RBI0.2910
predicted_SLG0.3686
predicted_SO0.8540
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.08000.08000.0800model_form_blend
predicted_3B0.04000.02100.0323model_form_blend
predicted_AB3.12002.93903.0463model_form_blend
predicted_AVG0.31400.27090.2964model_form_blend
predicted_BB0.36000.24500.3131model_form_blend
predicted_H0.98000.79600.9050model_form_blend
predicted_HBP-0.01300.0130form_only
predicted_HR0.04000.05500.0461model_form_blend
predicted_OBP0.38500.32420.3602model_form_blend
predicted_R0.52000.34900.4503model_form_blend
predicted_RBI0.36000.29100.3319model_form_blend
predicted_SLG0.40400.36860.3896model_form_blend
predicted_SO0.94000.85400.9050model_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 date159
Season rows before report date159
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
H2
2B0
3B0
HR0
R0
RBI0
BB0
SO0
SF0
HBP0

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_AVG1.0
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_battingOrder6
Hitting_substitutionOrder2
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-DH
gameID20261004_SD@MIL
game_typeph
mlbID669392
noteSingled for Hays in the 8th.
playerID669392
playerNameSamad Taylor
posLF
startedFalse
startingPositionPH
teamSD
teamID23
game_date2026-10-04
sl_k_percent25.7
sl_bb_percent10.3
sl_woba0.356
sl_xwoba0.309
sl_xba0.256
sl_xslg0.328
sl_sweet_spot_percent33.3
sl_barrel_batted_rate3.6
sl_hard_hit_percent25.2
sl_exit_velocity_avg85.9
sl_launch_angle_avg9.0
sl_whiff_percent25.2
sl_swing_percent44.1
Jake Cronenworth (630105) · BATTER · 2B · Team SD
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 404
All-history rows before 20261006: 404
System season_avg: 0.2210
Data season_avg (2026 season-to-date): 0.2313
Diff (system - data): -0.0103
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.1160.0000.000Hitting_2B0.1240.000-0.1240.000
predicted_3B0.0090.0000.000Hitting_3B0.0120.000-0.0120.000
predicted_AB3.7503.0003.000Hitting_AB3.6814.000-0.681-1.000
predicted_AVG0.1780.3330.333Hitting_AVG0.2310.0000.1020.333
predicted_BB0.3391.0001.000Hitting_BB0.3690.0000.6311.000
predicted_CS-0.0000.000BaseRunning_CS0.0220.000-0.0220.000
predicted_H0.6701.0001.000Hitting_H0.8510.0000.1491.000
predicted_HR0.0800.0000.000Hitting_HR0.0570.000-0.0570.000
predicted_OBP0.2830.5000.500Hitting_OBP0.3110.0000.1890.500
predicted_R0.4111.0001.000Hitting_R0.4550.0000.5451.000
predicted_RBI0.4600.0000.000Hitting_RBI0.3560.000-0.3560.000
predicted_SB-0.0000.000BaseRunning_SB0.0820.000-0.0820.000
predicted_SLG0.2730.3330.333Hitting_SLG0.3180.0000.0150.333
predicted_SO0.8930.0000.000Hitting_SO0.9230.000-0.9230.000

Boost/Deboost Impact Trace

Impact ItemValue
Fromxgboost_raw
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics12
Boosted Metrics6
Deboosted Metrics6
Better Metrics7
Worse Metrics5
Biggest Boostpredicted_BB: 0.3390 -> 1.0000 (boost 0.6610, better)
Biggest Deboostpredicted_SO: 0.8930 -> 0.0000 (deboost -0.8930, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1xgboost_raw00000--Raw model output with missing event categories filled from season-profile fallback
2weighted_recent_form_blend30303-predicted_AB: 3.7500 -> 3.5818 (deboost -0.1682, 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.2819 -> 0.2431 (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_scaling82617predicted_H: 0.6211 -> 1.0000 (boost 0.3789, better)predicted_AB: 3.5818 -> 3.0000 (deboost -0.5818, worse)AB rounded to 3 (raw=3.75), rates preserved: AVG=0.168 HR/AB=0.016
6bvp_blend00000--Sample-size BvP blend (BvP AB=21.0, weight=0.165, BvP AVG=0.238)
7consistency_constraints10101-predicted_R: 0.3369 -> 0.0000 (deboost -0.3369, worse)Enforced H<=AB, HR<=H, safety nets, derived R
8hitter_rate_engine64251predicted_BB: 0.0000 -> 0.3500 (boost 0.3500, better)predicted_H: 1.0000 -> 0.7541 (deboost -0.2459, 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_allocation94536predicted_SO: 0.8306 -> 1.0000 (boost 0.1694, worse)predicted_H: 0.7541 -> 0.0000 (deboost -0.7541, worse)Lineup-level largest-remainder allocation so team totals match the summed model expectation
10embedded_savant_player_context00000--Player Savant profile contributed to the team run-environment adjustment against the opposing starter
11kpi_run_environment30303-predicted_SLG: 0.3400 -> 0.3280 (deboost -0.0120, worse)KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup
12play_by_play_realization43140predicted_BB: 0.0000 -> 1.0000 (boost 1.0000, better)predicted_SO: 1.0000 -> 0.0000 (deboost -1.0000, better)Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score
13simulation_box_score_reference00000--Attached simulation box score without overwriting model prediction
14current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "batter",
  "player_id": "630105",
  "player_name": "Jake Cronenworth",
  "position": "2B",
  "team": "SD",
  "steps": [
    {
      "index": 1,
      "step": "xgboost_raw",
      "description": "Raw model output with missing event categories filled from season-profile fallback",
      "stats": {
        "predicted_2B": 0.116,
        "predicted_3B": 0.009,
        "predicted_AB": 3.75,
        "predicted_AVG": 0.178,
        "predicted_BB": 0.339,
        "predicted_H": 0.67,
        "predicted_HR": 0.08,
        "predicted_OBP": 0.283,
        "predicted_R": 0.411,
        "predicted_RBI": 0.46,
        "predicted_SLG": 0.273,
        "predicted_SO": 0.893
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "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.1061,
        "predicted_3B": 0.0077,
        "predicted_AB": 3.5818,
        "predicted_AVG": 0.177,
        "predicted_BB": 0.3317,
        "predicted_H": 0.6355,
        "predicted_HBP": 0.164,
        "predicted_HR": 0.0632,
        "predicted_OBP": 0.2819,
        "predicted_R": 0.3502,
        "predicted_RBI": 0.4479,
        "predicted_SLG": 0.2603,
        "predicted_SO": 0.8943
      },
      "changed_metrics": [
        {
          "metric": "predicted_AB",
          "before": 3.75,
          "after": 3.5818,
          "delta": -0.1682,
          "percent_delta": -0.0449,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_R",
          "before": 0.411,
          "after": 0.3502,
          "delta": -0.0608,
          "percent_delta": -0.1479,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.273,
          "after": 0.2603,
          "delta": -0.0127,
          "percent_delta": -0.0465,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 3,
        "boosted_metrics": 0,
        "deboosted_metrics": 3,
        "better_metrics": 0,
        "worse_metrics": 3,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 3.75,
          "after": 3.5818,
          "delta": -0.1682,
          "percent_delta": -0.0449,
          "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": 112
      }
    },
    {
      "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.1061,
        "predicted_3B": 0.0077,
        "predicted_AB": 3.5818,
        "predicted_AVG": 0.1734,
        "predicted_BB": 0.3297,
        "predicted_H": 0.6211,
        "predicted_HBP": 0.164,
        "predicted_HR": 0.0614,
        "predicted_OBP": 0.2431,
        "predicted_R": 0.3369,
        "predicted_RBI": 0.4309,
        "predicted_SLG": 0.2588,
        "predicted_SO": 0.8998
      },
      "changed_metrics": [
        {
          "metric": "predicted_OBP",
          "before": 0.2819,
          "after": 0.2431,
          "delta": -0.0388,
          "percent_delta": -0.1376,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 0,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 1,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_OBP",
          "before": 0.2819,
          "after": 0.2431,
          "delta": -0.0388,
          "percent_delta": -0.1376,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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
      }
    },
    {
      "index": 5,
      "step": "ab_floor_and_scaling",
      "description": "AB rounded to 3 (raw=3.75), rates preserved: AVG=0.168 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.1061,
          "after": 0.0,
          "delta": -0.1061,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AB",
          "before": 3.5818,
          "after": 3.0,
          "delta": -0.5818,
          "percent_delta": -0.1624,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.3297,
          "after": 0.0,
          "delta": -0.3297,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.6211,
          "after": 1.0,
          "delta": 0.3789,
          "percent_delta": 0.61,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_HBP",
          "before": 0.164,
          "after": 0.0,
          "delta": -0.164,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0614,
          "after": 0.0,
          "delta": -0.0614,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.4309,
          "after": 0.0,
          "delta": -0.4309,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.8998,
          "after": 1.0,
          "delta": 0.1002,
          "percent_delta": 0.1114,
          "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_H",
          "before": 0.6211,
          "after": 1.0,
          "delta": 0.3789,
          "percent_delta": 0.61,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_AB",
          "before": 3.5818,
          "after": 3.0,
          "delta": -0.5818,
          "percent_delta": -0.1624,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 6,
      "step": "bvp_blend",
      "description": "Sample-size BvP blend (BvP AB=21.0, weight=0.165, BvP AVG=0.238)",
      "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": [],
      "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.8353,
        "bvp": 0.1647
      }
    },
    {
      "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_R",
          "before": 0.3369,
          "after": 0.0,
          "delta": -0.3369,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 1,
        "boosted_metrics": 0,
        "deboosted_metrics": 1,
        "better_metrics": 0,
        "worse_metrics": 1,
        "biggest_boost": null,
        "biggest_deboost": {
          "metric": "predicted_R",
          "before": 0.3369,
          "after": 0.0,
          "delta": -0.3369,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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.1132,
        "predicted_3B": 0.0081,
        "predicted_BB": 0.35,
        "predicted_H": 0.7541,
        "predicted_HR": 0.0846,
        "predicted_RBI": 0.3304,
        "predicted_SO": 0.8306
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.0,
          "after": 0.1132,
          "delta": 0.1132,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.0,
          "after": 0.35,
          "delta": 0.35,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7541,
          "delta": -0.2459,
          "percent_delta": -0.2459,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0,
          "after": 0.0846,
          "delta": 0.0846,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.0,
          "after": 0.3304,
          "delta": 0.3304,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.8306,
          "delta": -0.1694,
          "percent_delta": -0.1694,
          "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.35,
          "delta": 0.35,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.7541,
          "delta": -0.2459,
          "percent_delta": -0.2459,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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_AVG": 0.226,
        "predicted_BB": 0.0,
        "predicted_H": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.305,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.34,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_2B",
          "before": 0.1132,
          "after": 0.0,
          "delta": -0.1132,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_AVG",
          "before": 0.1734,
          "after": 0.226,
          "delta": 0.0526,
          "percent_delta": 0.3033,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_BB",
          "before": 0.35,
          "after": 0.0,
          "delta": -0.35,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 0.7541,
          "after": 0.0,
          "delta": -0.7541,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_HR",
          "before": 0.0846,
          "after": 0.0,
          "delta": -0.0846,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.2431,
          "after": 0.305,
          "delta": 0.0619,
          "percent_delta": 0.2546,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_RBI",
          "before": 0.3304,
          "after": 0.0,
          "delta": -0.3304,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.2588,
          "after": 0.34,
          "delta": 0.0812,
          "percent_delta": 0.3138,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.8306,
          "after": 1.0,
          "delta": 0.1694,
          "percent_delta": 0.2039,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 9,
        "boosted_metrics": 4,
        "deboosted_metrics": 5,
        "better_metrics": 3,
        "worse_metrics": 6,
        "biggest_boost": {
          "metric": "predicted_SO",
          "before": 0.8306,
          "after": 1.0,
          "delta": 0.1694,
          "percent_delta": 0.2039,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_H",
          "before": 0.7541,
          "after": 0.0,
          "delta": -0.7541,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "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.226,
        "predicted_BB": 0.0,
        "predicted_H": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.305,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.34,
        "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
      }
    },
    {
      "index": 11,
      "step": "kpi_run_environment",
      "description": "KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 3.0,
        "predicted_AVG": 0.218,
        "predicted_BB": 0.0,
        "predicted_H": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.295,
        "predicted_R": 0.0,
        "predicted_RBI": 0.0,
        "predicted_SLG": 0.328,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_AVG",
          "before": 0.226,
          "after": 0.218,
          "delta": -0.008,
          "percent_delta": -0.0354,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_OBP",
          "before": 0.305,
          "after": 0.295,
          "delta": -0.01,
          "percent_delta": -0.0328,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SLG",
          "before": 0.34,
          "after": 0.328,
          "delta": -0.012,
          "percent_delta": -0.0353,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "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.34,
          "after": 0.328,
          "delta": -0.012,
          "percent_delta": -0.0353,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 12,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score",
      "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_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.0,
        "predicted_SO": 0.0
      },
      "changed_metrics": [
        {
          "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": 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_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
        }
      }
    },
    {
      "index": 13,
      "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_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SF": 0.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
      },
      "reference_only": true
    },
    {
      "index": 14,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_2B": 0.0,
        "predicted_3B": 0.0,
        "predicted_AB": 3.0,
        "predicted_AVG": 0.218,
        "predicted_BB": 1.0,
        "predicted_CS": 0.0,
        "predicted_H": 1.0,
        "predicted_HBP": 0.0,
        "predicted_HR": 0.0,
        "predicted_OBP": 0.295,
        "predicted_R": 1.0,
        "predicted_RBI": 0.0,
        "predicted_SB": 0.0,
        "predicted_SF": 0.0,
        "predicted_SLG": 0.328,
        "predicted_SO": 0.0,
        "predicted_TB": 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
      }
    }
  ],
  "total_change": {
    "from_step": "xgboost_raw",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_2B",
        "before": 0.116,
        "after": 0.0,
        "delta": -0.116,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AB",
        "before": 3.75,
        "after": 3.0,
        "delta": -0.75,
        "percent_delta": -0.2,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_AVG",
        "before": 0.178,
        "after": 0.218,
        "delta": 0.04,
        "percent_delta": 0.2247,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_BB",
        "before": 0.339,
        "after": 1.0,
        "delta": 0.661,
        "percent_delta": 1.9499,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 0.67,
        "after": 1.0,
        "delta": 0.33,
        "percent_delta": 0.4925,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_HBP",
        "before": 0.164,
        "after": 0.0,
        "delta": -0.164,
        "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.283,
        "after": 0.295,
        "delta": 0.012,
        "percent_delta": 0.0424,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_R",
        "before": 0.411,
        "after": 1.0,
        "delta": 0.589,
        "percent_delta": 1.4331,
        "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.273,
        "after": 0.328,
        "delta": 0.055,
        "percent_delta": 0.2015,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.893,
        "after": 0.0,
        "delta": -0.893,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 12,
      "boosted_metrics": 6,
      "deboosted_metrics": 6,
      "better_metrics": 7,
      "worse_metrics": 5,
      "biggest_boost": {
        "metric": "predicted_BB",
        "before": 0.339,
        "after": 1.0,
        "delta": 0.661,
        "percent_delta": 1.9499,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_SO",
        "before": 0.893,
        "after": 0.0,
        "delta": -0.893,
        "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.116-
predicted_3B0.009-
predicted_AB3.750-
predicted_AVG0.178-
predicted_BB0.339-
predicted_H0.670-
predicted_HR0.080-
predicted_OBP0.283-
predicted_R0.411-
predicted_RBI0.460-
predicted_SLG0.273-
predicted_SO0.893-
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.106-0.010
predicted_3B0.008-0.001
predicted_AB3.582-0.168
predicted_AVG0.177-0.001
predicted_BB0.332-0.007
predicted_H0.635-0.035
predicted_HBP0.164-
predicted_HR0.063-0.017
predicted_OBP0.282-0.001
predicted_R0.350-0.061
predicted_RBI0.448-0.012
predicted_SLG0.260-0.013
predicted_SO0.8940.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.1060.000
predicted_3B0.0080.000
predicted_AB3.5820.000
predicted_AVG0.173-0.004
predicted_BB0.330-0.002
predicted_H0.621-0.014
predicted_HBP0.1640.000
predicted_HR0.061-0.002
predicted_OBP0.243-0.039
predicted_R0.337-0.013
predicted_RBI0.431-0.017
predicted_SLG0.259-0.002
predicted_SO0.9000.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 3 (raw=3.75), rates preserved: AVG=0.168 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=21.0, weight=0.165, BvP AVG=0.238)

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.1130.113
3B0.0080.008
BB0.3500.350
H0.754-0.246
HR0.0850.085
RBI0.3300.330
SO0.831-0.169
9. lineup_integer_allocation

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

MetricValueDelta vs Prev Step
2B0.000-0.113
3B0.000-0.008
AB3.0000.000
AVG0.226-
BB0.000-0.350
H0.000-0.754
HR0.000-0.085
OBP0.305-
R0.0000.000
RBI0.000-0.330
SLG0.340-
SO1.0000.169
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.106
predicted_3B0.000-0.008
predicted_AB3.000-0.582
predicted_AVG0.2260.053
predicted_BB0.000-0.330
predicted_H0.000-0.621
predicted_HR0.000-0.061
predicted_OBP0.3050.062
predicted_R0.000-0.337
predicted_RBI0.000-0.431
predicted_SLG0.3400.081
predicted_SO1.0000.100
11. kpi_run_environment

KPI club run ratio x0.931 applied to runs and RBI, x0.965 to on-base events; integer line re-allocated across the lineup

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
AVG0.218-0.008
BB0.0000.000
H0.0000.000
HR0.0000.000
OBP0.295-0.010
R0.0000.000
RBI0.0000.000
SLG0.328-0.012
SO1.0000.000
12. play_by_play_realization

Integer line taken from the one realized game whose plays produce the published score; identical to the play by play and the box score

MetricValueDelta vs Prev Step
2B0.0000.000
3B0.0000.000
AB3.0000.000
BB1.0001.000
H1.0001.000
HBP0.0000.000
HR0.0000.000
PA4.000-
R1.0001.000
RBI0.0000.000
SF0.0000.000
SO0.000-1.000
13. 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
H1.0000.000
HBP0.0000.000
HR0.0000.000
PA4.0000.000
R1.0000.000
RBI0.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: 112
Reference playing time: 3.801
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.0001.0000.0000.0000.0002.0000.0002.0004.0000.06670.26320.06670.06670.00000.13330.13330.2667
last_100.2010-32.0004.0001.0000.0000.0006.0001.0002.00010.0000.12500.22220.15620.12500.00000.18750.06250.3125
season0.60112-390.00086.00013.0001.0007.00042.00046.00038.000100.0000.22050.30280.31280.22050.01800.10770.09740.2564
Weighted Prediction From Real Data
MetricValue
predicted_2B0.0930
predicted_3B0.0060
predicted_AB3.3600
predicted_AVG0.1756
predicted_BB0.3220
predicted_H0.5900
predicted_HBP0.1640
predicted_HR0.0410
predicted_OBP0.2805
predicted_R0.2700
predicted_RBI0.4320
predicted_SLG0.2435
predicted_SO0.8960
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_2B0.11600.09300.1061model_form_blend
predicted_3B0.00900.00600.0077model_form_blend
predicted_AB3.75003.36003.5818model_form_blend
predicted_AVG0.17800.17560.1770model_form_blend
predicted_BB0.33900.32200.3317model_form_blend
predicted_H0.67000.59000.6355model_form_blend
predicted_HBP-0.16400.1640form_only
predicted_HR0.08000.04100.0632model_form_blend
predicted_OBP0.28300.28050.2819model_form_blend
predicted_R0.41100.27000.3502model_form_blend
predicted_RBI0.46000.43200.4479model_form_blend
predicted_SLG0.27300.24350.2603model_form_blend
predicted_SO0.89300.89600.8943model_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 date404
Season rows before report date404
Report year2026
Profile rows used112
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

Latest Real Data Snapshot (before report date)

Latest Real Data ColumnValue
BaseRunning_CS0
BaseRunning_PO0
BaseRunning_SB0
Fielding_E2
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_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
gameID20261004_SD@MIL
game_typefull
mlbID630105
playerID630105
playerNameJake Cronenworth
pos2B
startedTrue
startingPosition2B
teamSD
teamID23
game_date2026-10-04
sl_k_percent22.8
sl_bb_percent8.9
sl_woba0.287
sl_xwoba0.275
sl_xba0.213
sl_xslg0.308
sl_sweet_spot_percent30.7
sl_barrel_batted_rate3.9
sl_hard_hit_percent29.7
sl_exit_velocity_avg87.2
sl_launch_angle_avg11.4
sl_whiff_percent21.3
sl_swing_percent45.8
Nick Pivetta (601713) · PITCHER · Starter · Team SD
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 9
All-history rows before 20261006: 9

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB1.0001.0001.000Pitching_BB1.1112.000-0.111-1.000
predicted_ER3.0003.0003.000Pitching_ER1.3331.0001.6672.000
predicted_H4.0004.0004.000Pitching_H3.3333.0000.6671.000
predicted_IP4.0004.0004.000Pitching_InningsPitched4.1443.100-0.1440.900
predicted_SO2.0002.0002.000Pitching_SO5.1114.000-3.111-2.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_rate_projection
Tocurrent_json_final
Dominant Effectworse
Changed Metrics4
Boosted Metrics2
Deboosted Metrics2
Better Metrics0
Worse Metrics4
Biggest Boostpredicted_ER: 2.0000 -> 3.0000 (boost 1.0000, worse)
Biggest Deboostpredicted_SO: 7.0000 -> 2.0000 (deboost -5.0000, worse)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_rate_projection00000--Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty
2pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
3team_form_adjustment00000--Club form: innings, run prevention and strikeout factors
4savant_pitcher_quality00000--Statcast pitch quality: strikeout, walk, home-run and run-prevention factors
5opposing_lineup_context00000--The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances
6kpi_run_environment00000--KPI blend published; the staff line follows the published score, not a KPI rescale
7pitcher_quality_guardrail00000--Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.
8play_by_play_realization42204predicted_ER: 2.0000 -> 3.0000 (boost 1.0000, worse)predicted_SO: 7.0000 -> 2.0000 (deboost -5.0000, worse)Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play
9current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "pitcher",
  "player_id": "601713",
  "player_name": "Nick Pivetta",
  "position": "Starter",
  "team": "SD",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_rate_projection",
      "description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
      "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
      }
    },
    {
      "index": 2,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 1.0,
        "predicted_ER": 2.0,
        "predicted_H": 3.0,
        "predicted_HR": 0.0,
        "predicted_IP": 5.0,
        "predicted_SO": 7.0
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "index": 3,
      "step": "team_form_adjustment",
      "description": "Club form: innings, run prevention and strikeout factors",
      "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
      }
    },
    {
      "index": 4,
      "step": "savant_pitcher_quality",
      "description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
      "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
      }
    },
    {
      "index": 5,
      "step": "opposing_lineup_context",
      "description": "The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances",
      "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": {
        "H": 0.0,
        "BB": 0.15,
        "SO": 0.35,
        "HR": 0.0
      }
    },
    {
      "index": 6,
      "step": "kpi_run_environment",
      "description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
      "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
      }
    },
    {
      "index": 7,
      "step": "pitcher_quality_guardrail",
      "description": "Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.",
      "stats": {
        "predicted_BB": 1.0,
        "predicted_ER": 2.0,
        "predicted_H": 3.0,
        "predicted_HR": 0.0,
        "predicted_IP": 5.0,
        "predicted_SO": 7.0
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "index": 8,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
      "stats": {
        "predicted_BB": 1.0,
        "predicted_ER": 3.0,
        "predicted_H": 4.0,
        "predicted_HR": 0.0,
        "predicted_IP": 4.0,
        "predicted_R": 3.0,
        "predicted_SO": 2.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_ER",
          "before": 2.0,
          "after": 3.0,
          "delta": 1.0,
          "percent_delta": 0.5,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 3.0,
          "after": 4.0,
          "delta": 1.0,
          "percent_delta": 0.3333,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_IP",
          "before": 5.0,
          "after": 4.0,
          "delta": -1.0,
          "percent_delta": -0.2,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 7.0,
          "after": 2.0,
          "delta": -5.0,
          "percent_delta": -0.7143,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 4,
        "boosted_metrics": 2,
        "deboosted_metrics": 2,
        "better_metrics": 0,
        "worse_metrics": 4,
        "biggest_boost": {
          "metric": "predicted_ER",
          "before": 2.0,
          "after": 3.0,
          "delta": 1.0,
          "percent_delta": 0.5,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_SO",
          "before": 7.0,
          "after": 2.0,
          "delta": -5.0,
          "percent_delta": -0.7143,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      }
    },
    {
      "index": 9,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_BB": 1.0,
        "predicted_ER": 3.0,
        "predicted_H": 4.0,
        "predicted_HR": 0.0,
        "predicted_IP": 4.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
      }
    }
  ],
  "total_change": {
    "from_step": "pitcher_rate_projection",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_ER",
        "before": 2.0,
        "after": 3.0,
        "delta": 1.0,
        "percent_delta": 0.5,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 3.0,
        "after": 4.0,
        "delta": 1.0,
        "percent_delta": 0.3333,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_IP",
        "before": 5.0,
        "after": 4.0,
        "delta": -1.0,
        "percent_delta": -0.2,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 7.0,
        "after": 2.0,
        "delta": -5.0,
        "percent_delta": -0.7143,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 4,
      "boosted_metrics": 2,
      "deboosted_metrics": 2,
      "better_metrics": 0,
      "worse_metrics": 4,
      "biggest_boost": {
        "metric": "predicted_ER",
        "before": 2.0,
        "after": 3.0,
        "delta": 1.0,
        "percent_delta": 0.5,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_SO",
        "before": 7.0,
        "after": 2.0,
        "delta": -5.0,
        "percent_delta": -0.7143,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "worse"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_rate_projection

Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty

MetricValueDelta vs Prev Step
2. pitcher_form_blend

Pitcher model/profile expectation with Bayesian recent-form shrinkage

MetricValueDelta vs Prev Step
predicted_BB1.000-
predicted_ER2.000-
predicted_H3.000-
predicted_HR0.000-
predicted_IP5.000-
predicted_SO7.000-
3. team_form_adjustment

Club form: innings, run prevention and strikeout factors

MetricValueDelta vs Prev Step
4. savant_pitcher_quality

Statcast pitch quality: strikeout, walk, home-run and run-prevention factors

MetricValueDelta vs Prev Step
5. opposing_lineup_context

The nine hitters he faces: batter quality, platoon split against his hand, batter-versus-pitcher history, weighted by plate appearances

MetricValueDelta vs Prev Step
6. kpi_run_environment

KPI blend published; the staff line follows the published score, not a KPI rescale

MetricValueDelta vs Prev Step
7. pitcher_quality_guardrail

Elite/strong starter guardrail capped a noisy simulation draw using season workload, ERA/WHIP, and weighted recent form.

MetricValueDelta vs Prev Step
predicted_BB1.0000.000
predicted_ER2.0000.000
predicted_H3.0000.000
predicted_HR0.0000.000
predicted_IP5.0000.000
predicted_SO7.0000.000
8. play_by_play_realization

Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play

MetricValueDelta vs Prev Step
BB1.000-
BF19.000-
ER3.000-
H4.000-
HR0.000-
IP4.000-
Pitches69.000-
R3.000-
SO2.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 9
Reference playing time: 5.000
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.45522.0004.00018.0004.00022.0002.0001.63641.00000.18180.81820.18181.00000.0909
last_100.35938.00012.00030.00010.00046.0002.0002.84211.05260.31580.78950.26321.21050.0526
season0.20938.00012.00030.00010.00046.0002.0002.84211.05260.31580.78950.26321.21050.0526
Weighted Prediction From Real Data
MetricValue
predicted_BB1.2470
predicted_ER1.5230
predicted_ERA2.9981
predicted_H3.9790
predicted_HR0.4650
predicted_IP4.2000
predicted_SO4.7000
predicted_WHIP1.1433
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB1.00001.24701.1233model_form_blend
predicted_ER2.00001.52301.7619model_form_blend
predicted_ERA-2.99812.9981form_only
predicted_H3.00003.97903.4886model_form_blend
predicted_HR0.00000.46500.2321model_form_blend
predicted_IP5.00004.20005.0000model_form_blend
predicted_SO7.00004.70005.8520model_form_blend
predicted_WHIP-1.14331.1433form_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 date9
Season rows before report date9
Report year2026
Profile rows used9
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP4.0
H4
R3
ER3
BB1
SO2
HR0
BF19
Pitches69

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 Faced15
Pitching_ER1
Pitching_ERA2.70
Pitching_Flyouts4
Pitching_Groundouts1
Pitching_H3
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched3.1
Pitching_Pitches66
Pitching_R1
Pitching_SO4
Pitching_Strikes36
Pitching_Wild Pitch0
Pitching_pitchingOrder1
allPositionsPlayedP
gameID20260930_CHC@SD
game_typefull
mlbID601713
playerID601713
playerNameNick Pivetta
posP
startedTrue
startingPositionP
teamSD
teamID23
game_date2026-09-30
sl_k_percent30.0
sl_bb_percent5.7
sl_woba0.249
sl_xwoba0.277
sl_sweet_spot_percent34.8
sl_barrel_batted_rate10.1
sl_hard_hit_percent38.2
sl_whiff_percent22.8
sl_swing_percent47.8
sl_avg_best_speed80.197836591
sl_avg_hyper_speed93.799081364
Bradgley Rodriguez (699134) · PITCHER · Middle Reliever (High Leverage) · Team SD
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 71
All-history rows before 20261006: 71

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB1.0001.0001.000Pitching_BB0.3100.0000.6901.000
predicted_ER0.0000.0000.000Pitching_ER0.2540.000-0.2540.000
predicted_H2.0002.0002.000Pitching_H0.8310.0001.1692.000
predicted_IP1.1001.1001.100Pitching_InningsPitched0.9490.2000.1510.900
predicted_SO1.0001.0001.000Pitching_SO1.1970.000-0.1971.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_rate_projection
Tocurrent_json_final
Dominant Effectneutral
Changed Metrics4
Boosted Metrics2
Deboosted Metrics2
Better Metrics2
Worse Metrics2
Biggest Boostpredicted_H: 1.0000 -> 2.0000 (boost 1.0000, worse)
Biggest Deboostpredicted_BB: 2.0000 -> 1.0000 (deboost -1.0000, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_rate_projection00000--Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty
2pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
3team_form_adjustment00000--Club form: innings, run prevention and strikeout factors
4savant_pitcher_quality00000--Statcast pitch quality: strikeout, walk, home-run and run-prevention factors
5opposing_lineup_context00000--The nine hitters he faces: batter quality, weighted by plate appearances
6kpi_run_environment00000--KPI blend published; the staff line follows the published score, not a KPI rescale
7play_by_play_realization42222predicted_H: 1.0000 -> 2.0000 (boost 1.0000, worse)predicted_BB: 2.0000 -> 1.0000 (deboost -1.0000, better)Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play
8current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "pitcher",
  "player_id": "699134",
  "player_name": "Bradgley Rodriguez",
  "position": "Middle Reliever (High Leverage)",
  "team": "SD",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_rate_projection",
      "description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
      "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
      }
    },
    {
      "index": 2,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 2.0,
        "predicted_ER": 0.0,
        "predicted_H": 1.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
      }
    },
    {
      "index": 3,
      "step": "team_form_adjustment",
      "description": "Club form: innings, run prevention and strikeout factors",
      "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
      }
    },
    {
      "index": 4,
      "step": "savant_pitcher_quality",
      "description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
      "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
      }
    },
    {
      "index": 5,
      "step": "opposing_lineup_context",
      "description": "The nine hitters he faces: batter quality, weighted by plate appearances",
      "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": {
        "H": 0.0,
        "BB": 0.15,
        "SO": 0.35,
        "HR": 0.0
      }
    },
    {
      "index": 6,
      "step": "kpi_run_environment",
      "description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
      "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
      }
    },
    {
      "index": 7,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
      "stats": {
        "predicted_BB": 1.0,
        "predicted_ER": 0.0,
        "predicted_H": 2.0,
        "predicted_HR": 0.0,
        "predicted_IP": 1.1,
        "predicted_R": 0.0,
        "predicted_SO": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_BB",
          "before": 2.0,
          "after": 1.0,
          "delta": -1.0,
          "percent_delta": -0.5,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 2.0,
          "delta": 1.0,
          "percent_delta": 1.0,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "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": 1.0,
          "delta": 1.0,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 4,
        "boosted_metrics": 2,
        "deboosted_metrics": 2,
        "better_metrics": 2,
        "worse_metrics": 2,
        "biggest_boost": {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 2.0,
          "delta": 1.0,
          "percent_delta": 1.0,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 2.0,
          "after": 1.0,
          "delta": -1.0,
          "percent_delta": -0.5,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      }
    },
    {
      "index": 8,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_BB": 1.0,
        "predicted_ER": 0.0,
        "predicted_H": 2.0,
        "predicted_HR": 0.0,
        "predicted_IP": 1.1,
        "predicted_SO": 1.0
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    }
  ],
  "total_change": {
    "from_step": "pitcher_rate_projection",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_BB",
        "before": 2.0,
        "after": 1.0,
        "delta": -1.0,
        "percent_delta": -0.5,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 1.0,
        "after": 2.0,
        "delta": 1.0,
        "percent_delta": 1.0,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "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": 1.0,
        "delta": 1.0,
        "percent_delta": null,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 4,
      "boosted_metrics": 2,
      "deboosted_metrics": 2,
      "better_metrics": 2,
      "worse_metrics": 2,
      "biggest_boost": {
        "metric": "predicted_H",
        "before": 1.0,
        "after": 2.0,
        "delta": 1.0,
        "percent_delta": 1.0,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_BB",
        "before": 2.0,
        "after": 1.0,
        "delta": -1.0,
        "percent_delta": -0.5,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "neutral"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_rate_projection

Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty

MetricValueDelta vs Prev Step
2. pitcher_form_blend

Pitcher model/profile expectation with Bayesian recent-form shrinkage

MetricValueDelta vs Prev Step
predicted_BB2.000-
predicted_ER0.000-
predicted_H1.000-
predicted_HR0.000-
predicted_IP1.333-
predicted_SO0.000-
3. team_form_adjustment

Club form: innings, run prevention and strikeout factors

MetricValueDelta vs Prev Step
4. savant_pitcher_quality

Statcast pitch quality: strikeout, walk, home-run and run-prevention factors

MetricValueDelta vs Prev Step
5. opposing_lineup_context

The nine hitters he faces: batter quality, weighted by plate appearances

MetricValueDelta vs Prev Step
6. kpi_run_environment

KPI blend published; the staff line follows the published score, not a KPI rescale

MetricValueDelta vs Prev Step
7. play_by_play_realization

Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play

MetricValueDelta vs Prev Step
BB1.000-
BF7.000-
ER0.000-
H2.000-
HR0.000-
IP1.100-
Pitches29.000-
R0.000-
SO1.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 69
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.2000.0002.0004.0009.0000.0000.00000.78260.00000.26090.52171.17390.0000
last_100.351013.1001.0006.0004.00015.0001.0000.67500.75000.07500.45000.30001.12500.0750
season0.206977.20014.00053.00021.00085.0004.0001.62230.95280.18030.68240.27041.09440.0515
Weighted Prediction From Real Data
MetricValue
predicted_BB0.5460
predicted_ER0.2370
predicted_ERA1.5249
predicted_H0.7650
predicted_HR0.0880
predicted_IP1.1000
predicted_SO1.5250
predicted_WHIP0.9383
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB2.00000.54601.2009model_form_blend
predicted_ER0.00000.23700.1302model_form_blend
predicted_ERA-1.52491.5249form_only
predicted_H1.00000.76500.8709model_form_blend
predicted_HR0.00000.08800.0484model_form_blend
predicted_IP1.10001.10001.1000model_form_blend
predicted_SO0.00001.52500.8381model_form_blend
predicted_WHIP-0.93830.9383form_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 date71
Season rows before report date71
Report year2026
Profile rows used69
Pitcher metricsPitching_InningsPitched, Pitching_ER, Pitching_SO, Pitching_H, Pitching_BB

Simulation Box Score (from JSON)

Simulation Box Score FieldValue
IP1.1
H2
R0
ER0
BB1
SO1
HR0
BF7
Pitches29

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_ERA0.00
Pitching_Flyouts0
Pitching_Groundouts3
Pitching_H0
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners2
Pitching_Inherited Runners Scored1
Pitching_InningsPitched0.2
Pitching_Pitches13
Pitching_R0
Pitching_SO0
Pitching_Strikes8
Pitching_Wild Pitch0
Pitching_decisionH
Pitching_pitchingOrder3
allPositionsPlayedP
gameID20261004_SD@MIL
game_typefull
mlbID699134
playerID699134
playerNameBradgley Rodriguez
posP
startedFalse
startingPositionP
teamSD
teamID23
game_date2026-10-04
sl_k_percent26.9
sl_bb_percent6.6
sl_woba0.266
sl_xwoba0.239
sl_sweet_spot_percent27.0
sl_barrel_batted_rate4.5
sl_hard_hit_percent30.0
sl_whiff_percent30.1
sl_swing_percent51.6
sl_avg_best_speed76.26349102
sl_avg_hyper_speed92.978718367
Adrian Morejon (670970) · PITCHER · Middle Reliever (High Leverage) · Team SD
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 78
All-history rows before 20261006: 78

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB0.0000.0000.000Pitching_BB0.3590.000-0.3590.000
predicted_ER1.0001.0001.000Pitching_ER0.3591.0000.6410.000
predicted_H1.0001.0001.000Pitching_H0.8853.0000.115-2.000
predicted_IP1.1001.1001.100Pitching_InningsPitched1.0282.0000.072-0.900
predicted_SO1.0001.0001.000Pitching_SO1.3972.000-0.397-1.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_rate_projection
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics4
Boosted Metrics1
Deboosted Metrics3
Better Metrics3
Worse Metrics1
Biggest Boostpredicted_SO: 0.0000 -> 1.0000 (boost 1.0000, better)
Biggest Deboostpredicted_BB: 2.0000 -> 0.0000 (deboost -2.0000, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_rate_projection00000--Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty
2pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
3team_form_adjustment00000--Club form: innings, run prevention and strikeout factors
4savant_pitcher_quality00000--Statcast pitch quality: strikeout, walk, home-run and run-prevention factors
5opposing_lineup_context00000--The nine hitters he faces: batter quality, weighted by plate appearances
6kpi_run_environment00000--KPI blend published; the staff line follows the published score, not a KPI rescale
7play_by_play_realization41331predicted_SO: 0.0000 -> 1.0000 (boost 1.0000, better)predicted_BB: 2.0000 -> 0.0000 (deboost -2.0000, better)Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play
8current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "pitcher",
  "player_id": "670970",
  "player_name": "Adrian Morejon",
  "position": "Middle Reliever (High Leverage)",
  "team": "SD",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_rate_projection",
      "description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
      "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
      }
    },
    {
      "index": 2,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 2.0,
        "predicted_ER": 1.0,
        "predicted_H": 2.0,
        "predicted_HR": 1.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
      }
    },
    {
      "index": 3,
      "step": "team_form_adjustment",
      "description": "Club form: innings, run prevention and strikeout factors",
      "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
      }
    },
    {
      "index": 4,
      "step": "savant_pitcher_quality",
      "description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
      "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
      }
    },
    {
      "index": 5,
      "step": "opposing_lineup_context",
      "description": "The nine hitters he faces: batter quality, weighted by plate appearances",
      "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": {
        "H": 0.0,
        "BB": 0.15,
        "SO": 0.35,
        "HR": 0.0
      }
    },
    {
      "index": 6,
      "step": "kpi_run_environment",
      "description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
      "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
      }
    },
    {
      "index": 7,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
      "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": 1.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_BB",
          "before": 2.0,
          "after": 0.0,
          "delta": -2.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 2.0,
          "after": 1.0,
          "delta": -1.0,
          "percent_delta": -0.5,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        },
        {
          "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": 1.0,
          "delta": 1.0,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 4,
        "boosted_metrics": 1,
        "deboosted_metrics": 3,
        "better_metrics": 3,
        "worse_metrics": 1,
        "biggest_boost": {
          "metric": "predicted_SO",
          "before": 0.0,
          "after": 1.0,
          "delta": 1.0,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_BB",
          "before": 2.0,
          "after": 0.0,
          "delta": -2.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      }
    },
    {
      "index": 8,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_BB": 0.0,
        "predicted_ER": 1.0,
        "predicted_H": 1.0,
        "predicted_HR": 1.0,
        "predicted_IP": 1.1,
        "predicted_SO": 1.0
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    }
  ],
  "total_change": {
    "from_step": "pitcher_rate_projection",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_BB",
        "before": 2.0,
        "after": 0.0,
        "delta": -2.0,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 2.0,
        "after": 1.0,
        "delta": -1.0,
        "percent_delta": -0.5,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      {
        "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": 1.0,
        "delta": 1.0,
        "percent_delta": null,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 4,
      "boosted_metrics": 1,
      "deboosted_metrics": 3,
      "better_metrics": 3,
      "worse_metrics": 1,
      "biggest_boost": {
        "metric": "predicted_SO",
        "before": 0.0,
        "after": 1.0,
        "delta": 1.0,
        "percent_delta": null,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_BB",
        "before": 2.0,
        "after": 0.0,
        "delta": -2.0,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "better"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_rate_projection

Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty

MetricValueDelta vs Prev Step
2. pitcher_form_blend

Pitcher model/profile expectation with Bayesian recent-form shrinkage

MetricValueDelta vs Prev Step
predicted_BB2.000-
predicted_ER1.000-
predicted_H2.000-
predicted_HR1.000-
predicted_IP1.333-
predicted_SO0.000-
3. team_form_adjustment

Club form: innings, run prevention and strikeout factors

MetricValueDelta vs Prev Step
4. savant_pitcher_quality

Statcast pitch quality: strikeout, walk, home-run and run-prevention factors

MetricValueDelta vs Prev Step
5. opposing_lineup_context

The nine hitters he faces: batter quality, weighted by plate appearances

MetricValueDelta vs Prev Step
6. kpi_run_environment

KPI blend published; the staff line follows the published score, not a KPI rescale

MetricValueDelta vs Prev Step
7. play_by_play_realization

Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play

MetricValueDelta vs Prev Step
BB0.000-
BF5.000-
ER1.000-
H1.000-
HR1.000-
IP1.100-
Pitches19.000-
R1.000-
SO1.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 78
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.1002.0006.0002.0006.0001.0002.45451.09090.27270.81820.27270.81820.1364
last_100.351011.1003.0008.0004.00013.0001.0002.38241.05880.26470.70590.35291.14710.0882
season0.207890.00028.00069.00028.000109.0005.0002.80001.07780.31110.76670.31111.21110.0556
Weighted Prediction From Real Data
MetricValue
predicted_BB0.3850
predicted_ER0.3890
predicted_ERA2.9475
predicted_H0.9680
predicted_HR0.1340
predicted_IP1.1000
predicted_SO1.1830
predicted_WHIP1.1381
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB2.00000.38501.0949model_form_blend
predicted_ER1.00000.38900.6576model_form_blend
predicted_ERA-2.94752.9475form_only
predicted_H2.00000.96801.4216model_form_blend
predicted_HR1.00000.13400.5147model_form_blend
predicted_IP1.10001.10001.1000model_form_blend
predicted_SO0.00001.18300.6630model_form_blend
predicted_WHIP-1.13811.1381form_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 date78
Season rows before report date78
Report year2026
Profile rows used78
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
SO1
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 Faced9
Pitching_ER1
Pitching_ERA2.25
Pitching_Flyouts0
Pitching_Groundouts2
Pitching_H3
Pitching_HBP0
Pitching_HR1
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched2.0
Pitching_Pitches31
Pitching_R1
Pitching_SO2
Pitching_Strikes20
Pitching_Wild Pitch0
Pitching_decisionL
Pitching_pitchingOrder5
allPositionsPlayedP
gameID20261003_SD@MIL
game_typefull
mlbID670970
playerID670970
playerNameAdrian Morejon
posP
startedFalse
startingPositionP
teamSD
teamID23
game_date2026-10-03
sl_k_percent30.4
sl_bb_percent8.0
sl_woba0.244
sl_xwoba0.237
sl_sweet_spot_percent28.3
sl_barrel_batted_rate2.8
sl_hard_hit_percent32.5
sl_whiff_percent34.2
sl_swing_percent52.6
sl_avg_best_speed74.331806132
sl_avg_hyper_speed93.323366588
Jason Adam (592094) · PITCHER · Setup Man · Team SD
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 40
All-history rows before 20261006: 40

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB1.0001.0001.000Pitching_BB0.2751.0000.7250.000
predicted_ER0.0000.0000.000Pitching_ER0.2500.000-0.2500.000
predicted_H0.0000.0000.000Pitching_H0.7500.000-0.7500.000
predicted_IP1.0001.0001.000Pitching_InningsPitched0.8501.0000.1500.000
predicted_SO1.0001.0001.000Pitching_SO0.5500.0000.4501.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_rate_projection
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics3
Boosted Metrics2
Deboosted Metrics1
Better Metrics2
Worse Metrics1
Biggest Boostpredicted_BB: 0.0000 -> 1.0000 (boost 1.0000, worse)
Biggest Deboostpredicted_H: 1.0000 -> 0.0000 (deboost -1.0000, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_rate_projection00000--Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty
2pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
3team_form_adjustment00000--Club form: innings, run prevention and strikeout factors
4savant_pitcher_quality00000--Statcast pitch quality: strikeout, walk, home-run and run-prevention factors
5opposing_lineup_context00000--The nine hitters he faces: batter quality, weighted by plate appearances
6kpi_run_environment00000--KPI blend published; the staff line follows the published score, not a KPI rescale
7play_by_play_realization32121predicted_BB: 0.0000 -> 1.0000 (boost 1.0000, worse)predicted_H: 1.0000 -> 0.0000 (deboost -1.0000, better)Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play
8current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "pitcher",
  "player_id": "592094",
  "player_name": "Jason Adam",
  "position": "Setup Man",
  "team": "SD",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_rate_projection",
      "description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
      "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
      }
    },
    {
      "index": 2,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 0.0,
        "predicted_ER": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_IP": 1.0,
        "predicted_SO": 0.0
      },
      "changed_metrics": [],
      "summary": {
        "changed_metrics": 0,
        "boosted_metrics": 0,
        "deboosted_metrics": 0,
        "better_metrics": 0,
        "worse_metrics": 0,
        "biggest_boost": null,
        "biggest_deboost": null
      }
    },
    {
      "index": 3,
      "step": "team_form_adjustment",
      "description": "Club form: innings, run prevention and strikeout factors",
      "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
      }
    },
    {
      "index": 4,
      "step": "savant_pitcher_quality",
      "description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
      "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
      }
    },
    {
      "index": 5,
      "step": "opposing_lineup_context",
      "description": "The nine hitters he faces: batter quality, weighted by plate appearances",
      "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": {
        "H": 0.0,
        "BB": 0.15,
        "SO": 0.35,
        "HR": 0.0
      }
    },
    {
      "index": 6,
      "step": "kpi_run_environment",
      "description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
      "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
      }
    },
    {
      "index": 7,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
      "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": 0.0,
          "after": 1.0,
          "delta": 1.0,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "worse",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 0.0,
          "after": 1.0,
          "delta": 1.0,
          "percent_delta": null,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 3,
        "boosted_metrics": 2,
        "deboosted_metrics": 1,
        "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": "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": "better",
          "material": true
        }
      }
    },
    {
      "index": 8,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "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
      }
    }
  ],
  "total_change": {
    "from_step": "pitcher_rate_projection",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_BB",
        "before": 0.0,
        "after": 1.0,
        "delta": 1.0,
        "percent_delta": null,
        "direction": "boost",
        "projection_effect": "worse",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 1.0,
        "after": 0.0,
        "delta": -1.0,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 0.0,
        "after": 1.0,
        "delta": 1.0,
        "percent_delta": null,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 3,
      "boosted_metrics": 2,
      "deboosted_metrics": 1,
      "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": "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": "better",
        "material": true
      },
      "has_material_change": true,
      "dominant_effect": "better"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_rate_projection

Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty

MetricValueDelta vs Prev Step
2. 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_SO0.000-
3. team_form_adjustment

Club form: innings, run prevention and strikeout factors

MetricValueDelta vs Prev Step
4. savant_pitcher_quality

Statcast pitch quality: strikeout, walk, home-run and run-prevention factors

MetricValueDelta vs Prev Step
5. opposing_lineup_context

The nine hitters he faces: batter quality, weighted by plate appearances

MetricValueDelta vs Prev Step
6. kpi_run_environment

KPI blend published; the staff line follows the published score, not a KPI rescale

MetricValueDelta vs Prev Step
7. play_by_play_realization

Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play

MetricValueDelta vs Prev Step
BB1.000-
BF4.000-
ER0.000-
H0.000-
HR0.000-
IP1.000-
Pitches18.000-
R0.000-
SO1.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.000
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.4555.0002.0002.0003.0001.0000.0003.60001.00000.40000.40000.60000.20000.0000
last_100.351010.0005.0006.0003.0005.0002.0004.50000.90000.50000.60000.30000.50000.2000
season0.204036.10010.00030.00011.00022.0005.0002.47711.12840.27520.82570.30280.60550.1376
Weighted Prediction From Real Data
MetricValue
predicted_BB0.4140
predicted_ER0.4510
predicted_ERA4.0610
predicted_H0.7270
predicted_HR0.1180
predicted_IP1.0000
predicted_SO0.6050
predicted_WHIP1.1404
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB0.00000.41400.1992model_form_blend
predicted_ER0.00000.45100.2170model_form_blend
predicted_ERA-4.06104.0610form_only
predicted_H1.00000.72700.8687model_form_blend
predicted_HR0.00000.11800.0568model_form_blend
predicted_IP1.00001.00001.0000model_form_blend
predicted_SO0.00000.60500.2910model_form_blend
predicted_WHIP-1.14041.1404form_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 date40
Season rows before report date40
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.0
H0
R0
ER0
BB1
SO1
HR0
BF4
Pitches18

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_ERA0.00
Pitching_Flyouts1
Pitching_Groundouts1
Pitching_H0
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_pitchingOrder4
allPositionsPlayedP
gameID20261003_SD@MIL
game_typefull
mlbID592094
playerID592094
playerNameJason Adam
posP
startedFalse
startingPositionP
teamSD
teamID23
game_date2026-10-03
sl_k_percent15.5
sl_bb_percent7.0
sl_woba0.307
sl_xwoba0.3
sl_sweet_spot_percent26.2
sl_barrel_batted_rate7.5
sl_hard_hit_percent37.4
sl_whiff_percent28.5
sl_swing_percent52.3
sl_avg_best_speed77.065990566
sl_avg_hyper_speed93.431740849
Mason Miller (695243) · PITCHER · Closer · Team SD
Player Historical Window (helpers): 75 games (system)
Player Historical Window (balancing): 162 games (system)
2026 rows before 20261006: 68
All-history rows before 20261006: 68

Metric-by-Metric Comparison

MetricXGBoost RawFinal Simulated PredictionPre-Sim FinalizedTrue Data ColumnHistorical BaselineLatest Real GameFinal - BaselineFinal - Latest Real
predicted_BB0.0000.0000.000Pitching_BB0.4263.000-0.426-3.000
predicted_ER0.0000.0000.000Pitching_ER0.2212.000-0.221-2.000
predicted_H1.0001.0001.000Pitching_H0.5741.0000.4260.000
predicted_IP1.1001.1001.100Pitching_InningsPitched1.0101.2000.090-0.100
predicted_SO0.0000.0000.000Pitching_SO1.9562.000-1.956-2.000

Boost/Deboost Impact Trace

Impact ItemValue
Frompitcher_rate_projection
Tocurrent_json_final
Dominant Effectbetter
Changed Metrics4
Boosted Metrics1
Deboosted Metrics3
Better Metrics3
Worse Metrics1
Biggest Boostpredicted_IP: 0.3333 -> 1.1000 (boost 0.7667, better)
Biggest Deboostpredicted_ER: 1.0000 -> 0.0000 (deboost -1.0000, better)
#StepChangedBoostedDeboostedBetterWorseBiggest BoostBiggest DeboostReason
1pitcher_rate_projection00000--Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty
2pitcher_form_blend00000--Pitcher model/profile expectation with Bayesian recent-form shrinkage
3team_form_adjustment00000--Club form: innings, run prevention and strikeout factors
4savant_pitcher_quality00000--Statcast pitch quality: strikeout, walk, home-run and run-prevention factors
5opposing_lineup_context00000--The nine hitters he faces: batter quality, weighted by plate appearances
6kpi_run_environment00000--KPI blend published; the staff line follows the published score, not a KPI rescale
7play_by_play_realization41331predicted_IP: 0.3333 -> 1.1000 (boost 0.7667, better)predicted_ER: 1.0000 -> 0.0000 (deboost -1.0000, better)Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play
8current_json_final00000--Published player line stored in the game JSON (model predictions and finalized integer line)
Raw Prediction Impact Trace JSON
{
  "trace_version": "1.1",
  "role": "pitcher",
  "player_id": "695243",
  "player_name": "Mason Miller",
  "position": "Closer",
  "team": "SD",
  "steps": [
    {
      "index": 1,
      "step": "pitcher_rate_projection",
      "description": "Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty",
      "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
      }
    },
    {
      "index": 2,
      "step": "pitcher_form_blend",
      "description": "Pitcher model/profile expectation with Bayesian recent-form shrinkage",
      "stats": {
        "predicted_BB": 0.0,
        "predicted_ER": 1.0,
        "predicted_H": 2.0,
        "predicted_HR": 0.0,
        "predicted_IP": 0.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
      }
    },
    {
      "index": 3,
      "step": "team_form_adjustment",
      "description": "Club form: innings, run prevention and strikeout factors",
      "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
      }
    },
    {
      "index": 4,
      "step": "savant_pitcher_quality",
      "description": "Statcast pitch quality: strikeout, walk, home-run and run-prevention factors",
      "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
      }
    },
    {
      "index": 5,
      "step": "opposing_lineup_context",
      "description": "The nine hitters he faces: batter quality, weighted by plate appearances",
      "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": {
        "H": 0.0,
        "BB": 0.15,
        "SO": 0.35,
        "HR": 0.0
      }
    },
    {
      "index": 6,
      "step": "kpi_run_environment",
      "description": "KPI blend published; the staff line follows the published score, not a KPI rescale",
      "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
      }
    },
    {
      "index": 7,
      "step": "play_by_play_realization",
      "description": "Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play",
      "stats": {
        "predicted_BB": 0.0,
        "predicted_ER": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_IP": 1.1,
        "predicted_R": 0.0,
        "predicted_SO": 0.0
      },
      "changed_metrics": [
        {
          "metric": "predicted_ER",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_H",
          "before": 2.0,
          "after": 1.0,
          "delta": -1.0,
          "percent_delta": -0.5,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_IP",
          "before": 0.3333,
          "after": 1.1,
          "delta": 0.7667,
          "percent_delta": 2.3,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        {
          "metric": "predicted_SO",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "worse",
          "material": true
        }
      ],
      "summary": {
        "changed_metrics": 4,
        "boosted_metrics": 1,
        "deboosted_metrics": 3,
        "better_metrics": 3,
        "worse_metrics": 1,
        "biggest_boost": {
          "metric": "predicted_IP",
          "before": 0.3333,
          "after": 1.1,
          "delta": 0.7667,
          "percent_delta": 2.3,
          "direction": "boost",
          "projection_effect": "better",
          "material": true
        },
        "biggest_deboost": {
          "metric": "predicted_ER",
          "before": 1.0,
          "after": 0.0,
          "delta": -1.0,
          "percent_delta": -1.0,
          "direction": "deboost",
          "projection_effect": "better",
          "material": true
        }
      }
    },
    {
      "index": 8,
      "step": "current_json_final",
      "description": "Published player line stored in the game JSON (model predictions and finalized integer line)",
      "stats": {
        "predicted_BB": 0.0,
        "predicted_ER": 0.0,
        "predicted_H": 1.0,
        "predicted_HR": 0.0,
        "predicted_IP": 1.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
      }
    }
  ],
  "total_change": {
    "from_step": "pitcher_rate_projection",
    "to_step": "current_json_final",
    "changed_metrics": [
      {
        "metric": "predicted_ER",
        "before": 1.0,
        "after": 0.0,
        "delta": -1.0,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_H",
        "before": 2.0,
        "after": 1.0,
        "delta": -1.0,
        "percent_delta": -0.5,
        "direction": "deboost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_IP",
        "before": 0.3333,
        "after": 1.1,
        "delta": 0.7667,
        "percent_delta": 2.3,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      {
        "metric": "predicted_SO",
        "before": 1.0,
        "after": 0.0,
        "delta": -1.0,
        "percent_delta": -1.0,
        "direction": "deboost",
        "projection_effect": "worse",
        "material": true
      }
    ],
    "summary": {
      "changed_metrics": 4,
      "boosted_metrics": 1,
      "deboosted_metrics": 3,
      "better_metrics": 3,
      "worse_metrics": 1,
      "biggest_boost": {
        "metric": "predicted_IP",
        "before": 0.3333,
        "after": 1.1,
        "delta": 0.7667,
        "percent_delta": 2.3,
        "direction": "boost",
        "projection_effect": "better",
        "material": true
      },
      "biggest_deboost": {
        "metric": "predicted_ER",
        "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": "better"
    }
  }
}

Prediction Evolution Trace (from JSON)

1. pitcher_rate_projection

Own per-inning rates from his recent and season work in this role, projected innings, times-through-the-order penalty

MetricValueDelta vs Prev Step
2. 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_IP0.333-
predicted_SO1.000-
3. team_form_adjustment

Club form: innings, run prevention and strikeout factors

MetricValueDelta vs Prev Step
4. savant_pitcher_quality

Statcast pitch quality: strikeout, walk, home-run and run-prevention factors

MetricValueDelta vs Prev Step
5. opposing_lineup_context

The nine hitters he faces: batter quality, weighted by plate appearances

MetricValueDelta vs Prev Step
6. kpi_run_environment

KPI blend published; the staff line follows the published score, not a KPI rescale

MetricValueDelta vs Prev Step
7. play_by_play_realization

Integer line taken from the realized game: every out, hit, walk and run he is charged with is a play

MetricValueDelta vs Prev Step
BB0.000-
BF5.000-
ER0.000-
H1.000-
HR0.000-
IP1.100-
Pitches28.000-
R0.000-
SO0.000-

Weighted Real-Data Form Profile

Blend weights: last 5=0.45, last 10=0.35, season=0.20
Rows used: 68
Reference playing time: 0.333
WindowWeightGamesTotal IPTotal ERTotal HTotal BBTotal SOTotal HRERAWHIPER_per_IPH_per_IPBB_per_IPSO_per_IPHR_per_IP
last_50.4555.2006.0006.0006.00010.0000.0009.52942.11761.05881.05881.05881.76470.0000
last_100.351011.1007.0009.0008.00020.0001.0005.55881.50000.61770.79410.70591.76470.0882
season0.206872.20015.00039.00029.000133.0003.0001.85780.93580.20640.53670.39911.83030.0413
Weighted Prediction From Real Data
MetricValue
predicted_BB0.5810
predicted_ER0.5660
predicted_ERA6.1085
predicted_H0.7440
predicted_HR0.0550
predicted_IP1.0000
predicted_SO1.3060
predicted_WHIP1.5901
Model/Form Calibration Trace
MetricModelWeighted FormFinal Model InputSource
predicted_BB0.00000.58100.3163model_form_blend
predicted_ER1.00000.56600.7637model_form_blend
predicted_ERA-6.10856.1085form_only
predicted_H2.00000.74401.3162model_form_blend
predicted_HR0.00000.05500.0299model_form_blend
predicted_IP0.10001.00000.2000model_form_blend
predicted_SO1.00001.30601.1666model_form_blend
predicted_WHIP-1.59011.5901form_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 date68
Season rows before report date68
Report year2026
Profile rows used68
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
BB0
SO0
HR0
BF5
Pitches28

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_BB3
Pitching_Balk0
Pitching_Batters Faced9
Pitching_ER2
Pitching_ERA6.75
Pitching_Flyouts2
Pitching_Groundouts1
Pitching_H1
Pitching_HBP0
Pitching_HR0
Pitching_Inherited Runners0
Pitching_Inherited Runners Scored0
Pitching_InningsPitched1.2
Pitching_Pitches40
Pitching_R2
Pitching_SO2
Pitching_Strikes21
Pitching_Wild Pitch0
Pitching_decisionL, BS
Pitching_pitchingOrder4
allPositionsPlayedP
gameID20261004_SD@MIL
game_typefull
mlbID695243
playerID695243
playerNameMason Miller
posP
startedFalse
startingPositionP
teamSD
teamID23
game_date2026-10-04
sl_k_percent47.4
sl_bb_percent9.6
sl_woba0.208
sl_xwoba0.201
sl_sweet_spot_percent31.3
sl_barrel_batted_rate7.0
sl_hard_hit_percent28.7
sl_whiff_percent45.3
sl_swing_percent47.3
sl_avg_best_speed75.813395439
sl_avg_hyper_speed92.786414386